diff --git a/components/Master/CardList.vue b/components/Master/CardList.vue
new file mode 100644
index 0000000..047cbf8
--- /dev/null
+++ b/components/Master/CardList.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+ {{item.display}}
+
+
+
+
+
+
+
+
+ Detail
+
+
+
+
\ No newline at end of file
diff --git a/components/Master/Table.vue b/components/Master/Table.vue
new file mode 100644
index 0000000..3d8927b
--- /dev/null
+++ b/components/Master/Table.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+ | {{col.label}} |
+
+
+
+
+ | {{item[col.key]}}
+
+ ubah
+ hapus
+
+ |
+
+
+
+
diff --git a/components/layout/full/vertical-sidebar/sidebarItem.ts b/components/layout/full/vertical-sidebar/sidebarItem.ts
index 3a75918..4dfa520 100644
--- a/components/layout/full/vertical-sidebar/sidebarItem.ts
+++ b/components/layout/full/vertical-sidebar/sidebarItem.ts
@@ -33,7 +33,7 @@ const sidebarItem: menu[] = [
children:[
{
title: "index",
- to: "/master/index",
+ to: "/master/",
external: false,
},
{
diff --git a/components/master/Form.vue b/components/master/Form.vue
deleted file mode 100644
index 18f1e54..0000000
--- a/components/master/Form.vue
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data/dummy/encounter.json b/data/dummy/encounter.json
new file mode 100644
index 0000000..5a0cf61
--- /dev/null
+++ b/data/dummy/encounter.json
@@ -0,0 +1,952 @@
+{
+ "data": [
+ {
+ "resourceType": "Encounter",
+ "id": "682eca2506243e4b51edf8b1",
+ "identifier": [
+ {
+ "use": "usual",
+ "type": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ },
+ "system": "",
+ "value": "",
+ "period": {
+ "start": "2025-05-22"
+ },
+ "assigner": {
+ "reference": "",
+ "display": ""
+ },
+ "coding": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ }
+ ],
+ "status": "planned",
+ "class": [
+ {
+ "coding": [
+ {
+ "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
+ "version": "",
+ "code": "AMB",
+ "display": "ambulatory",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "priority": {
+ "coding": null,
+ "text": ""
+ },
+ "type": [
+ {
+ "coding": [
+ {
+ "system": "http://snomed.info/sct",
+ "version": "",
+ "code": "000000002116",
+ "display": "Consultan",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "serviceType": null,
+ "subject": {
+ "reference": "Patient/682c20242af192c70dccef9b",
+ "display": "Hilyah Wati Sukma S.P"
+ },
+ "subjectStatus": {
+ "coding": null,
+ "text": ""
+ },
+ "episodeOfCare": null,
+ "baseOn": null,
+ "careTeam": null,
+ "partOf": {
+ "reference": "",
+ "display": ""
+ },
+ "serviceProvider": {
+ "reference": "",
+ "display": ""
+ },
+ "participant": [
+ {
+ "type": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "period": {},
+ "actor": {
+ "reference": "Practitioner/68253d9305321465b1fd64ad",
+ "display": "dr.VATIEN RAHMAWATI,Sp.M"
+ }
+ }
+ ],
+ "appointment": null,
+ "virtualServiceDetail": null,
+ "actualPeriod": {},
+ "plannedStartDate": "",
+ "plannedEndDate": "",
+ "length": {
+ "duration": {
+ "system": "http://unitsofmeasure.org",
+ "version": "",
+ "code": "min",
+ "display": "45 Minutes",
+ "userSelected": "",
+ "value": 45,
+ "unit": "minutes"
+ }
+ },
+ "reason": [
+ {
+ "use": [
+ {
+ "coding": [
+ {
+ "system": "http://hl7.org/fhir/ValueSet/encounter-reason-use",
+ "version": "",
+ "code": "CC",
+ "display": "Chief Complaint",
+ "userSelected": false
+ }
+ ],
+ "text": "aaaaaaaaa"
+ }
+ ],
+ "value": null,
+ "reference": {
+ "reference": "",
+ "display": ""
+ }
+ }
+ ],
+ "diagnosis": null,
+ "account": null,
+ "dietPreference": null,
+ "specialArrangement": null,
+ "specialCourtesy": null,
+ "admission": {
+ "preAdmissionIdentifier": {
+ "use": "",
+ "type": {
+ "coding": null,
+ "text": ""
+ },
+ "system": "",
+ "value": "",
+ "period": {},
+ "assigner": {
+ "reference": "",
+ "display": ""
+ },
+ "coding": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ },
+ "origin": {
+ "reference": "",
+ "display": ""
+ },
+ "admitSource": {
+ "coding": null,
+ "text": ""
+ },
+ "readmitSource": {
+ "coding": null,
+ "text": ""
+ },
+ "destination": {
+ "reference": "",
+ "display": ""
+ },
+ "dischargeDisposition": {
+ "coding": null,
+ "text": ""
+ }
+ },
+ "location": [
+ {
+ "location": {
+ "reference": "Location/682e8c4aae74fc3d30866a65",
+ "display": "MATA"
+ },
+ "status": "",
+ "form": {
+ "coding": null,
+ "text": ""
+ },
+ "period": {}
+ }
+ ],
+ "createdAt": "2025-05-22 13:54:29",
+ "updatedAt": "2025-05-22 13:54:29",
+ "extension": null
+ },
+ {
+ "resourceType": "Encounter",
+ "id": "682eca3c06243e4b51edf8c4",
+ "identifier": [
+ {
+ "use": "usual",
+ "type": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ },
+ "system": "",
+ "value": "",
+ "period": {
+ "start": "2025-05-22"
+ },
+ "assigner": {
+ "reference": "",
+ "display": ""
+ },
+ "coding": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ }
+ ],
+ "status": "in-progress",
+ "class": [
+ {
+ "coding": [
+ {
+ "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
+ "version": "",
+ "code": "AMB",
+ "display": "ambulatory",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "priority": {
+ "coding": null,
+ "text": ""
+ },
+ "type": [
+ {
+ "coding": [
+ {
+ "system": "http://snomed.info/sct",
+ "version": "",
+ "code": "000000002115",
+ "display": "Consultan",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "serviceType": null,
+ "subject": {
+ "reference": "Patient/682c1f662af192c70dccef3b",
+ "display": "dr. Soni sulis haryono SP.OK"
+ },
+ "subjectStatus": {
+ "coding": null,
+ "text": ""
+ },
+ "episodeOfCare": null,
+ "baseOn": null,
+ "careTeam": null,
+ "partOf": {
+ "reference": "",
+ "display": ""
+ },
+ "serviceProvider": {
+ "reference": "",
+ "display": ""
+ },
+ "participant": [
+ {
+ "type": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "period": {},
+ "actor": {
+ "reference": "Practitioner/68253d9305321465b1fd6438",
+ "display": "dr.AUNUR ROFIQ,Sp.KK"
+ }
+ }
+ ],
+ "appointment": null,
+ "virtualServiceDetail": null,
+ "actualPeriod": {},
+ "plannedStartDate": "",
+ "plannedEndDate": "",
+ "length": {
+ "duration": {
+ "system": "http://unitsofmeasure.org",
+ "version": "",
+ "code": "min",
+ "display": "45 Minutes",
+ "userSelected": "",
+ "value": 45,
+ "unit": "minutes"
+ }
+ },
+ "reason": [
+ {
+ "use": [
+ {
+ "coding": [
+ {
+ "system": "http://hl7.org/fhir/ValueSet/encounter-reason-use",
+ "version": "",
+ "code": "CC",
+ "display": "Chief Complaint",
+ "userSelected": false
+ }
+ ],
+ "text": "cssssss"
+ }
+ ],
+ "value": null,
+ "reference": {
+ "reference": "",
+ "display": ""
+ }
+ }
+ ],
+ "diagnosis": null,
+ "account": null,
+ "dietPreference": null,
+ "specialArrangement": null,
+ "specialCourtesy": null,
+ "admission": {
+ "preAdmissionIdentifier": {
+ "use": "",
+ "type": {
+ "coding": null,
+ "text": ""
+ },
+ "system": "",
+ "value": "",
+ "period": {},
+ "assigner": {
+ "reference": "",
+ "display": ""
+ },
+ "coding": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ },
+ "origin": {
+ "reference": "",
+ "display": ""
+ },
+ "admitSource": {
+ "coding": null,
+ "text": ""
+ },
+ "readmitSource": {
+ "coding": null,
+ "text": ""
+ },
+ "destination": {
+ "reference": "",
+ "display": ""
+ },
+ "dischargeDisposition": {
+ "coding": null,
+ "text": ""
+ }
+ },
+ "location": [
+ {
+ "location": {
+ "reference": "Location/682e8c4aae74fc3d30866a6a",
+ "display": "KULIT"
+ },
+ "status": "",
+ "form": {
+ "coding": null,
+ "text": ""
+ },
+ "period": {}
+ }
+ ],
+ "createdAt": "2025-05-22 13:54:52",
+ "updatedAt": "2025-05-22 13:54:52",
+ "extension": null
+ },
+ {
+ "resourceType": "Encounter",
+ "id": "68357074f856dc2104eb5c87",
+ "identifier": [
+ {
+ "use": "",
+ "type": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "system": "",
+ "value": "",
+ "period": {},
+ "assigner": {
+ "reference": "",
+ "display": ""
+ },
+ "coding": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ }
+ ],
+ "status": "in-progress",
+ "class": [
+ {
+ "coding": [
+ {
+ "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
+ "version": "",
+ "code": "AMB",
+ "display": "ambulatory",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "priority": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ },
+ "type": [
+ {
+ "coding": [
+ {
+ "system": "http://snomed.info/sct",
+ "version": "",
+ "code": "11429006",
+ "display": "Consultation",
+ "userSelected": true
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "serviceType": [
+ {
+ "concept": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "reference": {
+ "reference": "",
+ "display": ""
+ }
+ }
+ ],
+ "subject": {
+ "reference": "Patient/1",
+ "display": "John Doe"
+ },
+ "subjectStatus": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "episodeOfCare": [
+ {
+ "reference": "",
+ "display": ""
+ }
+ ],
+ "baseOn": [
+ {
+ "reference": "",
+ "display": ""
+ }
+ ],
+ "careTeam": [
+ {
+ "reference": "",
+ "display": ""
+ }
+ ],
+ "partOf": {
+ "reference": "",
+ "display": ""
+ },
+ "serviceProvider": {
+ "reference": "",
+ "display": ""
+ },
+ "participant": [
+ {
+ "type": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "period": {},
+ "actor": {
+ "reference": "Practitioner/1",
+ "display": "Dr. Sarah Smith"
+ }
+ }
+ ],
+ "appointment": [
+ {
+ "reference": "",
+ "display": ""
+ }
+ ],
+ "virtualServiceDetail": [
+ {
+ "channelType": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ },
+ "address": {
+ "addressUrl": "",
+ "addressString": "",
+ "addressContactPoint": {
+ "rank": "0",
+ "period": {}
+ },
+ "addressExtendedContactDetail": {
+ "purpose": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "name": [
+ {
+ "use": "",
+ "text": "",
+ "family": "",
+ "given": [
+ ""
+ ],
+ "prefix": [
+ ""
+ ],
+ "suffix": [
+ ""
+ ],
+ "period": {}
+ }
+ ],
+ "telecom": [
+ {
+ "rank": "0",
+ "period": {}
+ }
+ ],
+ "address": {
+ "use": "",
+ "type": "",
+ "text": "",
+ "line": [
+ ""
+ ],
+ "village": "",
+ "district": "",
+ "city": "",
+ "state": "",
+ "postalCode": "",
+ "country": "",
+ "period": {},
+ "extension": [
+ {
+ "url": "",
+ "extension": [
+ {
+ "url": "",
+ "valueDisplay": "",
+ "valueCode": ""
+ }
+ ]
+ }
+ ]
+ },
+ "organization": {
+ "reference": "",
+ "display": ""
+ },
+ "period": {}
+ }
+ },
+ "additionalInfo": [
+ ""
+ ],
+ "maxParticipants": 0,
+ "sessionKey": ""
+ }
+ ],
+ "actualPeriod": {},
+ "plannedStartDate": "",
+ "plannedEndDate": "",
+ "length": {
+ "duration": {
+ "system": "http://unitsofmeasure.org",
+ "version": "",
+ "code": "min",
+ "display": "45 Minutes",
+ "userSelected": "",
+ "value": 45,
+ "unit": "minutes"
+ }
+ },
+ "reason": [
+ {
+ "use": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "value": [
+ {
+ "concept": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "reference": {
+ "reference": "",
+ "display": ""
+ }
+ }
+ ],
+ "reference": {
+ "reference": "",
+ "display": ""
+ }
+ }
+ ],
+ "diagnosis": [
+ {
+ "condition": [
+ {
+ "concept": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "reference": {
+ "reference": "",
+ "display": ""
+ }
+ }
+ ],
+ "use": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ]
+ }
+ ],
+ "account": [
+ {
+ "reference": "",
+ "display": ""
+ }
+ ],
+ "dietPreference": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "specialArrangement": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "specialCourtesy": [
+ {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ ],
+ "admission": {
+ "preAdmissionIdentifier": {
+ "use": "",
+ "type": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "system": "",
+ "value": "",
+ "period": {},
+ "assigner": {
+ "reference": "",
+ "display": ""
+ },
+ "coding": {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ },
+ "origin": {
+ "reference": "",
+ "display": ""
+ },
+ "admitSource": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "readmitSource": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "destination": {
+ "reference": "",
+ "display": ""
+ },
+ "dischargeDisposition": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ }
+ },
+ "location": [
+ {
+ "location": {
+ "reference": "Location/1",
+ "display": "City Clinic - Room 5"
+ },
+ "status": "",
+ "form": {
+ "coding": [
+ {
+ "system": "",
+ "version": "",
+ "code": "",
+ "display": "",
+ "userSelected": false
+ }
+ ],
+ "text": ""
+ },
+ "period": {}
+ }
+ ],
+ "createdAt": "2025-05-27 14:57:40",
+ "updatedAt": "2025-05-27 14:57:40",
+ "extension": [
+ {
+ "url": "",
+ "extension": [
+ {
+ "url": "",
+ "valueDisplay": "",
+ "valueCode": ""
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "message": "Encounter Sukses Ter-ambil "
+}
\ No newline at end of file
diff --git a/data/dummy/keuangan.menu.json b/data/dummy/keuangan.menu.json
new file mode 100644
index 0000000..cf9f06d
--- /dev/null
+++ b/data/dummy/keuangan.menu.json
@@ -0,0 +1,66 @@
+[{
+ "_id": {
+ "$oid": "683d582ebccc67d467a9e114"
+ },
+ "display": "Setting",
+ "child": "",
+ "ordered": 9,
+ "parent": null,
+ "icon": "",
+ "link": "/setting"
+},
+{
+ "_id": {
+ "$oid": "683d99fe1b8c132fda4b32cb"
+ },
+ "display": "Tipe Pengguna",
+ "child": "",
+ "ordered": 9,
+ "parent": "683d582ebccc67d467a9e114",
+ "icon": "",
+ "link": "/setting/typeUser"
+},
+{
+ "_id": {
+ "$oid": "683d9d561b8c132fda4b32e1"
+ },
+ "display": "Hak Akses",
+ "child": "",
+ "ordered": 9,
+ "parent": "683d582ebccc67d467a9e114",
+ "icon": "",
+ "link": "/setting/typeUser/hakAkses"
+},
+{
+ "_id": {
+ "$oid": "683d9ebc1b8c132fda4b32e2"
+ },
+ "display": "Profile",
+ "child": "",
+ "ordered": 3,
+ "parent": null,
+ "icon": "",
+ "link": "/profile"
+},
+{
+ "_id": {
+ "$oid": "683d9f071b8c132fda4b32e3"
+ },
+ "display": "Dashboard",
+ "child": "",
+ "ordered": 1,
+ "parent": null,
+ "icon": "",
+ "link": "/"
+},
+{
+ "_id": {
+ "$oid": "683da1491b8c132fda4b32e7"
+ },
+ "display": "Sample Page",
+ "child": "",
+ "ordered": 2,
+ "parent": null,
+ "icon": "",
+ "link": "/sample"
+}]
\ No newline at end of file
diff --git a/data/dummy/keuangan.role_menu.json b/data/dummy/keuangan.role_menu.json
new file mode 100644
index 0000000..be99ea3
--- /dev/null
+++ b/data/dummy/keuangan.role_menu.json
@@ -0,0 +1,126 @@
+[{
+ "_id": {
+ "$oid": "683da37c1b8c132fda4b32f7"
+ },
+ "type_user_id": "683d57b2bccc67d467a9e10f",
+ "menu_id": "683d582ebccc67d467a9e114",
+ "access": [
+ {
+ "add": 0
+ },
+ {
+ "update": 0
+ },
+ {
+ "read": 0
+ },
+ {
+ "delete": 0
+ }
+ ]
+},
+{
+ "_id": {
+ "$oid": "683da7481b8c132fda4b3302"
+ },
+ "type_user_id": "683d57b2bccc67d467a9e10f",
+ "menu_id": "683d99fe1b8c132fda4b32cb",
+ "access": [
+ {
+ "add": 1
+ },
+ {
+ "update": 1
+ },
+ {
+ "read": 1
+ },
+ {
+ "delete": 1
+ }
+ ]
+},
+{
+ "_id": {
+ "$oid": "683da81a1b8c132fda4b3308"
+ },
+ "type_user_id": "683d57b2bccc67d467a9e10f",
+ "menu_id": "683d9d561b8c132fda4b32e1",
+ "access": [
+ {
+ "add": 1
+ },
+ {
+ "update": 1
+ },
+ {
+ "read": 1
+ },
+ {
+ "delete": 0
+ }
+ ]
+},
+{
+ "_id": {
+ "$oid": "683da9791b8c132fda4b3314"
+ },
+ "type_user_id": "683d57b2bccc67d467a9e10f",
+ "menu_id": "683d9ebc1b8c132fda4b32e2",
+ "access": [
+ {
+ "add": 1
+ },
+ {
+ "update": 1
+ },
+ {
+ "read": 1
+ },
+ {
+ "delete": 0
+ }
+ ]
+},
+{
+ "_id": {
+ "$oid": "683daa6f1b8c132fda4b3319"
+ },
+ "type_user_id": "683d57b2bccc67d467a9e10f",
+ "menu_id": "683d9f071b8c132fda4b32e3",
+ "access": [
+ {
+ "add": 1
+ },
+ {
+ "update": 1
+ },
+ {
+ "read": 1
+ },
+ {
+ "delete": 1
+ }
+ ]
+},
+{
+ "_id": {
+ "$oid": "683daaf71b8c132fda4b3322"
+ },
+ "type_user_id": "683d57b2bccc67d467a9e10f",
+ "menu_id": "683da1491b8c132fda4b32e7",
+ "access": [
+ {
+ "add": 1
+ },
+ {
+ "update": 1
+ },
+ {
+ "read": 1
+ },
+ {
+ "delete": 0
+ }
+ ]
+}]
\ No newline at end of file
diff --git a/data/dummy/keuangan.type_user.json b/data/dummy/keuangan.type_user.json
new file mode 100644
index 0000000..e13483f
--- /dev/null
+++ b/data/dummy/keuangan.type_user.json
@@ -0,0 +1,28 @@
+[{
+ "_id": {
+ "$oid": "683d57b2bccc67d467a9e10f"
+ },
+ "display": "Super Admin",
+ "status": true
+},
+{
+ "_id": {
+ "$oid": "683d5805bccc67d467a9e110"
+ },
+ "display": "Admin",
+ "status": true
+},
+{
+ "_id": {
+ "$oid": "683d5811bccc67d467a9e111"
+ },
+ "display": "Staf",
+ "status": true
+},
+{
+ "_id": {
+ "$oid": "683d5825bccc67d467a9e112"
+ },
+ "display": "PJA / Koordinator",
+ "status": true
+}]
\ No newline at end of file
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 881c864..71abbd2 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -56,9 +56,14 @@ export default defineNuxtConfig({
public: {
keycloakUrl: 'https://auth.rssa.top',
keycloakRealm: 'sandbox',
- keycloakClient: 'keuangan-firman',
+ keycloakClient: 'keuangan-davila',
keycloakSecretKey: '32HslhZ8Hn97SsbxcmowhXvmNZ9cPGNE',
keycloakRedirectURI: 'http://localhost:3000',
+ // keycloakUrl: 'https://auth.rssa.top',
+ // keycloakRealm: 'sandbox',
+ // keycloakClient: 'keuangan-firman',
+ // keycloakSecretKey: '32HslhZ8Hn97SsbxcmowhXvmNZ9cPGNE',
+ // keycloakRedirectURI: 'http://localhost:3000',
SIMRS_API: 'http://10.10.150.131:8084/api', // local Ahdan
// SIMRS_API: 'http://10.10.123.140:8084/api'
diff --git a/package-lock.json b/package-lock.json
index f69513c..af5e283 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,17 +14,49 @@
"@nuxt/vite-builder": "3.16.2",
"@vueform/nuxt": "^1.13.0",
"apexcharts": "4.5.0",
+ "axios": "^1.9.0",
+ "cors": "^2.8.5",
+ "nuxt-auth-utils": "^0.5.16",
+ "openid-client": "^5.7.1",
+ "pinia": "^3.0.2",
"sass": "1.70.0",
"vue": "3.5.13",
"vue-tabler-icons": "2.21.0",
"vue3-apexcharts": "1.5.2",
"vue3-perfect-scrollbar": "1.6.1",
- "vuetify": "3.7.18"
+ "vuetify": "3.7.18",
+ "zod": "^3.25.46"
},
"devDependencies": {
+ "@sidebase/nuxt-auth": "^0.10.1",
"nuxt": "3.16.2"
}
},
+ "node_modules/@adonisjs/hash": {
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/@adonisjs/hash/-/hash-9.1.1.tgz",
+ "integrity": "sha512-ZkRguwjAp4skKvKDdRAfdJ2oqQ0N7p9l3sioyXO1E8o0WcsyDgEpsTQtuVNoIdMiw4sn4gJlmL3nyF4BcK1ZDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@phc/format": "^1.0.0",
+ "@poppinss/utils": "^6.9.3"
+ },
+ "engines": {
+ "node": ">=20.6.0"
+ },
+ "peerDependencies": {
+ "argon2": "^0.31.2 || ^0.41.0 || ^0.43.0",
+ "bcrypt": "^5.1.1 || ^6.0.0"
+ },
+ "peerDependenciesMeta": {
+ "argon2": {
+ "optional": true
+ },
+ "bcrypt": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
@@ -381,6 +413,17 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.27.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.4.tgz",
+ "integrity": "sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.27.2",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
@@ -1120,6 +1163,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@lukeed/ms": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@lukeed/ms/-/ms-2.0.2.tgz",
+ "integrity": "sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@mapbox/node-pre-gyp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.0.tgz",
@@ -1809,6 +1861,176 @@
"@esbuild/win32-x64": "0.25.4"
}
},
+ "node_modules/@next/env": {
+ "version": "13.5.11",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.11.tgz",
+ "integrity": "sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.9.tgz",
+ "integrity": "sha512-pVyd8/1y1l5atQRvOaLOvfbmRwefxLhqQOzYo/M7FQ5eaRwA1+wuCn7t39VwEgDd7Aw1+AIWwd+MURXUeXhwDw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.9.tgz",
+ "integrity": "sha512-DwdeJqP7v8wmoyTWPbPVodTwCybBZa02xjSJ6YQFIFZFZ7dFgrieKW4Eo0GoIcOJq5+JxkQyejmI+8zwDp3pwA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.9.tgz",
+ "integrity": "sha512-wdQsKsIsGSNdFojvjW3Ozrh8Q00+GqL3wTaMjDkQxVtRbAqfFBtrLPO0IuWChVUP2UeuQcHpVeUvu0YgOP00+g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.9.tgz",
+ "integrity": "sha512-6VpS+bodQqzOeCwGxoimlRoosiWlSc0C224I7SQWJZoyJuT1ChNCo+45QQH+/GtbR/s7nhaUqmiHdzZC9TXnXA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.9.tgz",
+ "integrity": "sha512-XxG3yj61WDd28NA8gFASIR+2viQaYZEFQagEodhI/R49gXWnYhiflTeeEmCn7Vgnxa/OfK81h1gvhUZ66lozpw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.9.tgz",
+ "integrity": "sha512-/dnscWqfO3+U8asd+Fc6dwL2l9AZDl7eKtPNKW8mKLh4Y4wOpjJiamhe8Dx+D+Oq0GYVjuW0WwjIxYWVozt2bA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.9.tgz",
+ "integrity": "sha512-T/iPnyurOK5a4HRUcxAlss8uzoEf5h9tkd+W2dSWAfzxv8WLKlUgbfk+DH43JY3Gc2xK5URLuXrxDZ2mGfk/jw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-ia32-msvc": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.9.tgz",
+ "integrity": "sha512-BLiPKJomaPrTAb7ykjA0LPcuuNMLDVK177Z1xe0nAem33+9FIayU4k/OWrtSn9SAJW/U60+1hoey5z+KCHdRLQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-x64-msvc": {
+ "version": "13.5.9",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.9.tgz",
+ "integrity": "sha512-/72/dZfjXXNY/u+n8gqZDjI6rxKMpYsgBBYNZKWOQw0BpBF7WCnPflRy3ZtvQ2+IYI3ZH2bPyj7K+6a6wNk90Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -2483,6 +2705,17 @@
"url": "https://github.com/sponsors/Boshen"
}
},
+ "node_modules/@panva/hkdf": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz",
+ "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/@parcel/watcher": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
@@ -2820,6 +3053,15 @@
"url": "https://opencollective.com/parcel"
}
},
+ "node_modules/@phc/format": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@phc/format/-/format-1.0.0.tgz",
+ "integrity": "sha512-m7X9U6BG2+J+R1lSOdCiITLLrxm+cWlNI3HUFA92oLO77ObGNzaKdh8pMLqdZcshtkKuV84olNNXDfMc4FezBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -2887,12 +3129,53 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.1.tgz",
"integrity": "sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=18"
}
},
+ "node_modules/@poppinss/object-builder": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@poppinss/object-builder/-/object-builder-1.1.0.tgz",
+ "integrity": "sha512-FOrOq52l7u8goR5yncX14+k+Ewi5djnrt1JwXeS/FvnwAPOiveFhiczCDuvXdssAwamtrV2hp5Rw9v+n2T7hQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.6.0"
+ }
+ },
+ "node_modules/@poppinss/string": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@poppinss/string/-/string-1.6.0.tgz",
+ "integrity": "sha512-HfAf9VqTvo31BsruwgwEauQ316RNODdryk6QgYZo4qTV50s0h1H9HmIr+QjwwI3u4Sz7r4Q1dd1EVaLB7pWlaw==",
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/ms": "^2.0.2",
+ "@types/bytes": "^3.1.5",
+ "@types/pluralize": "^0.0.33",
+ "bytes": "^3.1.2",
+ "case-anything": "^3.1.2",
+ "pluralize": "^8.0.0",
+ "slugify": "^1.6.6",
+ "truncatise": "^0.0.8"
+ }
+ },
+ "node_modules/@poppinss/utils": {
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/@poppinss/utils/-/utils-6.9.4.tgz",
+ "integrity": "sha512-KJe9/ebFBqb4fFBdadgN4YgT4bHAKdWhLAFzjaeDqx5vOCtD3C+byN5DrORVNbwAjt+rb8beP8pXaWZWx+WmTA==",
+ "license": "MIT",
+ "dependencies": {
+ "@poppinss/exception": "^1.2.1",
+ "@poppinss/object-builder": "^1.1.0",
+ "@poppinss/string": "^1.3.0",
+ "flattie": "^1.1.1",
+ "safe-stable-stringify": "^2.5.0",
+ "secure-json-parse": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18.16.0"
+ }
+ },
"node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.9",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz",
@@ -3360,6 +3643,30 @@
"win32"
]
},
+ "node_modules/@sidebase/nuxt-auth": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/@sidebase/nuxt-auth/-/nuxt-auth-0.10.1.tgz",
+ "integrity": "sha512-fCSDfGl6npVIWrb//NbeKA16ATk1CpjzfRrNAdJ2PRr0BF5aJz6KCvDI8dSzs5VLMJBIRLR39G2rWYq5q+v5iA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nuxt/kit": "^3.14.1592",
+ "defu": "^6.1.4",
+ "h3": "^1.13.0",
+ "knitwork": "^1.1.0",
+ "nitropack": "^2.10.4",
+ "requrl": "^3.0.2",
+ "scule": "^1.3.0",
+ "ufo": "^1.5.4"
+ },
+ "engines": {
+ "node": ">=20",
+ "pnpm": ">=9.4.0"
+ },
+ "peerDependencies": {
+ "next-auth": "~4.21.1"
+ }
+ },
"node_modules/@sindresorhus/is": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.1.tgz",
@@ -3448,6 +3755,17 @@
"@svgdotjs/svg.js": "^3.2.4"
}
},
+ "node_modules/@swc/helpers": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz",
+ "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
"node_modules/@trysound/sax": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
@@ -3468,6 +3786,12 @@
"tslib": "^2.4.0"
}
},
+ "node_modules/@types/bytes": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/@types/bytes/-/bytes-3.1.5.tgz",
+ "integrity": "sha512-VgZkrJckypj85YxEsEavcMmmSOIzkUHqWmM4CCyia5dc54YwsXzJ5uT4fYxBQNEXx+oF1krlhgCbvfubXqZYsQ==",
+ "license": "MIT"
+ },
"node_modules/@types/estree": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
@@ -3498,6 +3822,12 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/pluralize": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.33.tgz",
+ "integrity": "sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==",
+ "license": "MIT"
+ },
"node_modules/@types/resolve": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
@@ -3841,7 +4171,6 @@
"version": "7.7.6",
"resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.6.tgz",
"integrity": "sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@vue/devtools-shared": "^7.7.6",
@@ -3857,7 +4186,6 @@
"version": "7.7.6",
"resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.6.tgz",
"integrity": "sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"rfdc": "^1.4.1"
@@ -4527,7 +4855,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/birpc/-/birpc-2.3.0.tgz",
"integrity": "sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==",
- "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/antfu"
@@ -4664,6 +4991,28 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/c12": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/c12/-/c12-3.0.4.tgz",
@@ -4772,6 +5121,18 @@
],
"license": "CC-BY-4.0"
},
+ "node_modules/case-anything": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-3.1.2.tgz",
+ "integrity": "sha512-wljhAjDDIv/hM2FzgJnYQg90AWmZMNtESCjTeLH680qTzdo0nErlCxOmgzgX4ZsZAtIvqHyD87ES8QyriXB+BQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mesqueeb"
+ }
+ },
"node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
@@ -4806,6 +5167,14 @@
"consola": "^3.2.3"
}
},
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/clipboardy": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz",
@@ -5069,7 +5438,6 @@
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz",
"integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-what": "^4.1.8"
@@ -5105,6 +5473,19 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "license": "MIT",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/crc-32": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
@@ -6428,6 +6809,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/flattie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz",
+ "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/fn.name": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
@@ -6722,6 +7112,14 @@
"node": ">= 6"
}
},
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "peer": true
+ },
"node_modules/glob/node_modules/minimatch": {
"version": "5.1.6",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
@@ -6890,7 +7288,6 @@
"version": "5.5.3",
"resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
"integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/hosted-git-info": {
@@ -7342,7 +7739,6 @@
"version": "4.1.16",
"resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz",
"integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=12.13"
@@ -7425,6 +7821,15 @@
"jiti": "lib/jiti-cli.mjs"
}
},
+ "node_modules/jose": {
+ "version": "4.15.9",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz",
+ "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -7732,6 +8137,20 @@
"node": ">= 12.0.0"
}
},
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -7976,7 +8395,6 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
"integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
- "dev": true,
"license": "MIT"
},
"node_modules/mkdirp": {
@@ -8135,6 +8553,156 @@
"url": "https://opencollective.com/node-fetch"
}
},
+ "node_modules/next": {
+ "version": "13.5.11",
+ "resolved": "https://registry.npmjs.org/next/-/next-13.5.11.tgz",
+ "integrity": "sha512-WUPJ6WbAX9tdC86kGTu92qkrRdgRqVrY++nwM+shmWQwmyxt4zhZfR59moXSI4N8GDYCBY3lIAqhzjDd4rTC8Q==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@next/env": "13.5.11",
+ "@swc/helpers": "0.5.2",
+ "busboy": "1.6.0",
+ "caniuse-lite": "^1.0.30001406",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.1",
+ "watchpack": "2.4.0"
+ },
+ "bin": {
+ "next": "dist/bin/next"
+ },
+ "engines": {
+ "node": ">=16.14.0"
+ },
+ "optionalDependencies": {
+ "@next/swc-darwin-arm64": "13.5.9",
+ "@next/swc-darwin-x64": "13.5.9",
+ "@next/swc-linux-arm64-gnu": "13.5.9",
+ "@next/swc-linux-arm64-musl": "13.5.9",
+ "@next/swc-linux-x64-gnu": "13.5.9",
+ "@next/swc-linux-x64-musl": "13.5.9",
+ "@next/swc-win32-arm64-msvc": "13.5.9",
+ "@next/swc-win32-ia32-msvc": "13.5.9",
+ "@next/swc-win32-x64-msvc": "13.5.9"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "sass": "^1.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/next-auth": {
+ "version": "4.21.1",
+ "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.21.1.tgz",
+ "integrity": "sha512-NYkU4jAPSVxWhCblE8dDFAnKM7kOoO/QEobQ0RoEVP9Wox99A3PKHwOAsWhSg8ahJG/iKIWk2Bo1xHvsS4R39Q==",
+ "dev": true,
+ "license": "ISC",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.20.13",
+ "@panva/hkdf": "^1.0.2",
+ "cookie": "^0.5.0",
+ "jose": "^4.11.4",
+ "oauth": "^0.9.15",
+ "openid-client": "^5.4.0",
+ "preact": "^10.6.3",
+ "preact-render-to-string": "^5.1.19",
+ "uuid": "^8.3.2"
+ },
+ "peerDependencies": {
+ "next": "^12.2.5 || ^13",
+ "nodemailer": "^6.6.5",
+ "react": "^17.0.2 || ^18",
+ "react-dom": "^17.0.2 || ^18"
+ },
+ "peerDependenciesMeta": {
+ "nodemailer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/next-auth/node_modules/cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/next-auth/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/next/node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/next/node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
"node_modules/nitropack": {
"version": "2.11.12",
"resolved": "https://registry.npmjs.org/nitropack/-/nitropack-2.11.12.tgz",
@@ -8598,6 +9166,76 @@
}
}
},
+ "node_modules/nuxt-auth-utils": {
+ "version": "0.5.20",
+ "resolved": "https://registry.npmjs.org/nuxt-auth-utils/-/nuxt-auth-utils-0.5.20.tgz",
+ "integrity": "sha512-hoXopfYeK4Cdu17WxxDWYc66EH7ZYG8JUodPxxef9vjfXOXqz3s1gxi/JWsiqkwN6s7K1RpKEESZGg1EopCgAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@adonisjs/hash": "^9.0.5",
+ "@nuxt/kit": "^3.15.4",
+ "defu": "^6.1.4",
+ "h3": "^1.14.0",
+ "hookable": "^5.5.3",
+ "jose": "^5.9.6",
+ "ofetch": "^1.4.1",
+ "openid-client": "^6.1.7",
+ "pathe": "^2.0.2",
+ "scule": "^1.3.0",
+ "uncrypto": "^0.1.3"
+ },
+ "peerDependencies": {
+ "@atproto/api": "^0.13.15",
+ "@atproto/oauth-client-node": "^0.2.0",
+ "@simplewebauthn/browser": "^11.0.0",
+ "@simplewebauthn/server": "^11.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@atproto/api": {
+ "optional": true
+ },
+ "@atproto/oauth-client-node": {
+ "optional": true
+ },
+ "@simplewebauthn/browser": {
+ "optional": true
+ },
+ "@simplewebauthn/server": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nuxt-auth-utils/node_modules/jose": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-5.10.0.tgz",
+ "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/nuxt-auth-utils/node_modules/openid-client": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-6.5.0.tgz",
+ "integrity": "sha512-fAfYaTnOYE2kQCqEJGX9KDObW2aw7IQy4jWpU/+3D3WoCFLbix5Hg6qIPQ6Js9r7f8jDUmsnnguRNCSw4wU/IQ==",
+ "license": "MIT",
+ "dependencies": {
+ "jose": "^6.0.10",
+ "oauth4webapi": "^3.5.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/nuxt-auth-utils/node_modules/openid-client/node_modules/jose": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.11.tgz",
+ "integrity": "sha512-QxG7EaliDARm1O1S8BGakqncGT9s25bKL1WSf6/oa17Tkqwi8D2ZNglqCF+DsYF88/rV66Q/Q2mFAy697E1DUg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
"node_modules/nuxt/node_modules/cookie-es": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz",
@@ -8640,6 +9278,41 @@
"integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
"license": "MIT"
},
+ "node_modules/oauth": {
+ "version": "0.9.15",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+ "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/oauth4webapi": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.5.1.tgz",
+ "integrity": "sha512-txg/jZQwcbaF7PMJgY7aoxc9QuCxHVFMiEkDIJ60DwDz3PbtXPQnrzo+3X4IRYGChIwWLabRBRpf1k9hO9+xrQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+ "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
@@ -8657,7 +9330,6 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz",
"integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"destr": "^2.0.3",
@@ -8671,6 +9343,15 @@
"integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==",
"license": "MIT"
},
+ "node_modules/oidc-token-hash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.1.0.tgz",
+ "integrity": "sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^10.13.0 || >=12.0.0"
+ }
+ },
"node_modules/on-change": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz",
@@ -8777,6 +9458,39 @@
"node": ">=8"
}
},
+ "node_modules/openid-client": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.7.1.tgz",
+ "integrity": "sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==",
+ "license": "MIT",
+ "dependencies": {
+ "jose": "^4.15.9",
+ "lru-cache": "^6.0.0",
+ "object-hash": "^2.2.0",
+ "oidc-token-hash": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/openid-client/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/openid-client/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
+ },
"node_modules/oxc-parser": {
"version": "0.56.5",
"resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.56.5.tgz",
@@ -9095,6 +9809,36 @@
"node": ">=0.10.0"
}
},
+ "node_modules/pinia": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.2.tgz",
+ "integrity": "sha512-sH2JK3wNY809JOeiiURUR0wehJ9/gd9qFN2Y828jCbxEzKEmEt0pzCXwqiSTfuRsK9vQsOflSdnbdBOGrhtn+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/devtools-api": "^7.7.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.4.4",
+ "vue": "^2.7.0 || ^3.5.11"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/@vue/devtools-api": {
+ "version": "7.7.6",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.6.tgz",
+ "integrity": "sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/devtools-kit": "^7.7.6"
+ }
+ },
"node_modules/pkg-types": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz",
@@ -9106,6 +9850,15 @@
"pathe": "^2.0.3"
}
},
+ "node_modules/pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/postcss": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
@@ -9673,6 +10426,32 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/preact": {
+ "version": "10.26.8",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.26.8.tgz",
+ "integrity": "sha512-1nMfdFjucm5hKvq0IClqZwK4FJkGXhRrQstOQ3P4vp8HxKrJEMFcY6RdBRVTdfQS/UlnX6gfbPuTvaqx/bDoeQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/preact"
+ }
+ },
+ "node_modules/preact-render-to-string": {
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz",
+ "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "pretty-format": "^3.8.0"
+ },
+ "peerDependencies": {
+ "preact": ">=10"
+ }
+ },
"node_modules/precinct": {
"version": "12.2.0",
"resolved": "https://registry.npmjs.org/precinct/-/precinct-12.2.0.tgz",
@@ -9726,6 +10505,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/pretty-format": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz",
+ "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -9876,6 +10663,35 @@
"destr": "^2.0.3"
}
},
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -10035,6 +10851,13 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/requrl": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/requrl/-/requrl-3.0.2.tgz",
+ "integrity": "sha512-f3gjR6d8MhOpn46PP+DSJywbmxi95fxQm3coXBFwognjFLla9X6tr8BdNyaIKNOEkaRbRcm0/zYAqN19N1oyhg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/resolve": {
"version": "2.0.0-next.5",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
@@ -10077,7 +10900,6 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
"integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
- "dev": true,
"license": "MIT"
},
"node_modules/rollup": {
@@ -10210,7 +11032,6 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
"integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -10281,12 +11102,39 @@
"node": ">=8.10.0"
}
},
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
"node_modules/scule": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz",
"integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
"license": "MIT"
},
+ "node_modules/secure-json-parse": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.0.0.tgz",
+ "integrity": "sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
"node_modules/semver": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
@@ -10572,6 +11420,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/smob": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
@@ -10658,7 +11515,6 @@
"version": "14.0.1",
"resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz",
"integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -10704,6 +11560,16 @@
"integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
"license": "MIT"
},
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
"node_modules/streamx": {
"version": "2.22.0",
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz",
@@ -10879,6 +11745,31 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/styled-jsx": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
+ "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "client-only": "0.0.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
"node_modules/stylehacks": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.5.tgz",
@@ -10899,7 +11790,6 @@
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz",
"integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"copy-anything": "^3.0.2"
@@ -11186,6 +12076,12 @@
"dompurify": "^3.2.5"
}
},
+ "node_modules/truncatise": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/truncatise/-/truncatise-0.0.8.tgz",
+ "integrity": "sha512-cXzueh9pzBCsLzhToB4X4gZCb3KYkrsAcBAX97JnazE74HOl3cpBJYEV7nabHeG/6/WXCU5Yujlde/WPBUwnsg==",
+ "license": "MIT"
+ },
"node_modules/ts-api-utils": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
@@ -11715,6 +12611,15 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/vite": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
@@ -12907,6 +13812,21 @@
}
}
},
+ "node_modules/watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "dev": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
"node_modules/web-streams-polyfill": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
@@ -13302,10 +14222,9 @@
}
},
"node_modules/zod": {
- "version": "3.25.30",
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.30.tgz",
- "integrity": "sha512-VolhdEtu6TJr/fzGuHA/SZ5ixvXqA6ADOG9VRcQ3rdOKmF5hkmcJbyaQjUH5BgmpA9gej++zYRX7zjSmdReIwA==",
- "dev": true,
+ "version": "3.25.47",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.47.tgz",
+ "integrity": "sha512-+f8+agSYoT9niC0VUL60IuXnr81FJeJ27Lf5YPrmcxTWmygcpGBeEuAAovDDEjkyQ36KyqNswwbhISZ1Z7yY+A==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
diff --git a/pages/Setting/typeUser/HakAkses.vue b/pages/Setting/typeUser/HakAkses.vue
new file mode 100644
index 0000000..94e057d
--- /dev/null
+++ b/pages/Setting/typeUser/HakAkses.vue
@@ -0,0 +1,48 @@
+
+
+
+
diff --git a/pages/Setting/typeUser/index.vue b/pages/Setting/typeUser/index.vue
new file mode 100644
index 0000000..140d6ef
--- /dev/null
+++ b/pages/Setting/typeUser/index.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/pages/master/form.vue b/pages/master/form.vue
deleted file mode 100644
index c79e2fc..0000000
--- a/pages/master/form.vue
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Form Pendaftaran
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/master/index.vue b/pages/master/index.vue
index b81591c..96ea215 100644
--- a/pages/master/index.vue
+++ b/pages/master/index.vue
@@ -1,95 +1,3 @@
-
-
-
+
master
+
\ No newline at end of file
diff --git a/utils/convertCurrency.ts b/utils/convertCurrency.ts
new file mode 100644
index 0000000..9fba11b
--- /dev/null
+++ b/utils/convertCurrency.ts
@@ -0,0 +1,12 @@
+//https://stackoverflow.com/questions/68549027/currency-formatting-using-intl-numberformat-without-currency-symbol
+export function format(data:number){
+ return new Intl.NumberFormat('id-ID',{
+ style:'currency',
+ currency:'IDR',
+ currencyDisplay: "code",
+ }).formatToParts(data)
+ .filter(x => x.type !== "currency")
+ .filter(x => x.type !== "literal" || x.value.trim().length !== 0)
+ .map(x => x.value)
+ .join("")
+}
\ No newline at end of file