diff --git a/.roo/history.md b/.roo/history.md index 8c85a4f..27aeaad 100644 --- a/.roo/history.md +++ b/.roo/history.md @@ -202,3 +202,227 @@ A `GET /expenses/` endpoint (`backend/app/api/v1/endpoints/expenses.py:130-139`) ### 📄 Dokumentáció `docs/cost_pipeline_audit.md` - Teljes pipeline audit a frontendtől a DB-ig. + +## 2026-06-23 - P0 Architecture Audit Fixes: Vendor Leak & Expense Priority + +### 🎯 Cél +Az Architect által auditált P0 hibák kijavítása: vendor org szivárgás megszüntetése, expense organization_id prioritás javítása, frontend payload kiegészítése vendor_organization_id-val. + +### 🔧 Módosított fájlok +- **`backend/app/services/provider_service.py`** (632-651. sor) - `quick_add_provider`: Eltávolítva az OrganizationMember létrehozás. A létrehozó user NEM lesz tagja a beszállító szervezetének. Owner_id=None marad. +- **`backend/app/api/v1/endpoints/expenses.py`** (398-429. sor) - `create_expense`: Átírva az organization_id feloldási prioritás: 1) asset.current_organization_id, 2) asset.owner_org_id, 3) user active org membership fallback. +- **`frontend/src/components/cost/CostEntryWizard.vue`** (690-714. sor) - `vendor_organization_id` és `external_vendor_name` root szintű payload mezők hozzáadva. +- **`frontend/src/stores/cost.ts`** - `AddExpensePayload` interface kiegészítve `vendor_organization_id` és `external_vendor_name` mezőkkel; `addExpense()` body-ba is átadva. + +### 🗄️ Adatbázis Cleanup +- **`backend/scripts/fix_vendor_leak.py`** (ideiglenes, futás után törölve) + - A) Törölve `fleet.organization_members` rekord (org_id=63, user_id=28) - phantom ADMIN jog megvonva + - B) Javítva `fleet_finance.asset_costs` rekord: organization_id=63 → 21, vendor_organization_id=63 beállítva + +### ✅ Verifikáció +- Backend restart: ✅ Sikeres +- Python syntax check: ✅ provider_service.py OK, expenses.py OK +- Vite build: ✅ Sikeres (255 modules, 6.97s) + +## 2026-06-23 - P0 Tenant Isolation & Vehicle Mapping Audit + +### Scope +Full-stack audit of vehicle dropdown tenant isolation failure in CostsView.vue + +### Elemzett fájlok +- `backend/app/api/v1/endpoints/assets.py` - GET /assets/vehicles (229-318) +- `frontend/src/views/costs/CostsView.vue` - Vehicle dropdown & org switch (330-565) +- `frontend/src/stores/vehicle.ts` - fetchVehicles() (141-158) +- `frontend/src/stores/auth.ts` - switchOrganization() & active_organization_id (687-717) +- `frontend/src/stores/cost.ts` - defense-in-depth org injection (71) + +### Adatbázis: tester_pro (User ID: 28) +- 2 organization: Test Company (ID:1, 19 vehicles) + Private_28 (ID:21, 6 vehicles) = 25 total +- Schema: identity.users, fleet.organization_members, fleet.organizations, vehicle.assets + +### Root Cause +Frontend cache staleness: vehicles load once in onMounted(), never refresh on org switch. The watch on active_organization_id only re-fetches costs, not vehicles. + +### Verdict +Backend filtering is correct (JWT scope_id). Database schema is correct. Fix requires adding `vehicleStore.fetchVehicles()` to the org switch watch in CostsView.vue:549. + +### Report +`docs/p0_tenant_isolation_vehicle_mapping_audit_report.md` + +## 2026-06-23 - P0 Tenant Isolation Fix: CostsView.vue org switch watcher + +### 🎯 Cél +Frontend tenant isolation fix: garázsváltáskor a CostsView.vue watch blokkja most már reseteli a jármű szűrőt (`selectedVehicleFilter.value = null`), újratölti a járműveket az új garázs scope-jával (`vehicleStore.fetchVehicles()`), és frissíti a költségeket. + +### 🔧 Módosított fájlok +- `frontend/src/views/costs/CostsView.vue` — watch blokk kiegészítése: jármű szűrő reset + vehicleStore.fetchVehicles() hívás + +### ✅ Verifikáció +- Vite build: ✅ Sikeres (0 hiba) +- `vehicleStore.fetchVehicles()` mindig küld GET kérést (nincs belső cache guard) + +## 2026-06-23 - P0 EXECUTION: UI Switcher, Subscription Widget & Menu Alignment + +### 🎯 Cél +A P0 audit riportban azonosított hibák kijavítása: garázsválasztó szűrés, előfizetés widget jármű limit megjelenítés, mobil menü igazítás, backend admin jogosultság javítás. + +### 🔧 Változtatások + +**1. HeaderCompanySwitcher.vue — Garázsválasztó javítás** +- Eltávolítva az `org_type !== 'individual'` szűrő a `companyOrganizations` computed property-ből +- Létrehozva új `individualOrganizations` computed property a privát garázsokhoz +- Dropdown most két csoportra van osztva: "👤 Saját garázsok" (individual) és "🏢 Céges garázsok" (business) +- Privát garázsokra kattintva `switchOrganization()` hívódik, majd `/dashboard` navigáció +- Eltávolítva a keménykódolt "Private Garage" gomb — helyette dinamikus lista + +**2. SubscriptionStatusWidget.vue — Jármű limit megjelenítés** +- Hozzáadva `useVehicleStore` import és `vehicleCount` computed property +- Hozzáadva `maxVehicles` computed property (org vagy user szintről) +- Második progress bar a jármű telítettséghez (🚗 Járművek: X / Y) +- Színkódolt sáv: zöld (<75%), sárga (75-90%), piros (>90%) +- Ha nincs limit (0 vagy null): "Korlátlan" felirat +- Dátum formázás és lejárati információ hozzáadva + +**3. PrivateLayout.vue — Mobil menü igazítás** +- "Költségek" gombhoz hozzáadva `justify-end` és `text-right` osztályok +- A gomb ikonja és szövege jobbra igazítva + +**4. organizations.py — Backend admin jogosultság javítás** +- `PUT /{org_id}/subscription` végpontról eltávolítva a `RequireSystemCapability(Capability.CAN_MANAGE_SUBSCRIPTIONS)` függőség +- Helyette `_check_org_admin_access(org_id, current_user.id, db)` hívás — így org ADMIN/OWNER is kezelheti a saját előfizetését + +**5. organization.ts — TypeScript típus javítás** +- `org_type` mező kötelezővé téve (eltávolítva a `?` optional flag) + +### ✅ Verifikáció +- Vite build: ✅ Sikeres (6.75s, 0 hiba) +- Backend Python szintaxis: ✅ Sikeres +- API konténer újraindítás: ✅ Sikeres + +## 2026-06-23 - P0 HOTFIX: Cost Wizard Edit Mode Bug (POST vs PUT) + +### 🎯 Cél +A CostEntryWizard szerkesztés módban POST helyett PUT hívást indítson, hogy ne hozzon létre duplikátumot. + +### 🔧 Módosított fájlok + +1. **`backend/app/schemas/asset_cost.py`** - Új `AssetCostUpdate` Pydantic schema (minden mező opcionális) +2. **`backend/app/api/v1/endpoints/expenses.py`** - Új `PUT /expenses/{expense_id}` végpont a meglévő költségrekordok módosítására +3. **`frontend/src/stores/cost.ts`** - Új `updateExpense(id, payload)` action a store-ban, ami `PUT /expenses/{id}`-t hív +4. **`frontend/src/components/cost/CostEntryWizard.vue`** - `handleSubmit()` logika javítva: ha `props.editCost.id` létezik, `updateExpense()`-t hív, egyébként `addExpense()`-t + +### 🗑️ Adatbázis cleanup +- Duplikált rekord törölve: `55214098-74be-4261-a101-7fd9159e10d8` (asset_id=`deb42aea-1f48-4a70-85b5-ba451d005577`, amount_gross=5500.00) + +### ✅ Verifikáció +- Vite build: ✅ Sikeres (7.09s, 255 module, 0 hiba) +- Backend Python AST parse: ✅ Sikeres (expenses.py, asset_cost.py) +- `AssetCostUpdate` schema import: ✅ Sikeres (14 field) +- Duplikátum törlés: ✅ Sikeres + +## 2026-06-23 - P0 Final Polish: Wizard UX & Menu Alignment + +### 🎯 Cél +Három kritikus UI hiba javítása: dátum hydratáció Edit módban, Fizetési Mód logika és UI átrendezés, mobil menü jobbra igazítás. + +### 🔧 Módosított fájlok + +1. **`frontend/src/components/cost/CostEntryWizard.vue`** + - **Date Hydration Fix (watch block):** `form.invoiceDate` és `form.paymentDeadline` most már mindig érvényes `YYYY-MM-DD` stringet kap (vagy `''` ha null). Két forrást is ellenőriz: `data.invoice_date` (JSONB) és `editData.invoice_date` (top-level). Használ `rawDate.split('T')[0] || rawDate.slice(0, 10) || ''` fallback láncot. + - **Payment Method UI áthelyezés:** A `
`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/", + class: "text-sm text-slate-500 hover:text-cyan-400 transition" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` ← Back to ServiceFinder `); + } else { + return [ + createTextVNode(" ← Back to ServiceFinder ") + ]; + } + }), + _: 1 + }, _parent)); + _push(`
`); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/login.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=login-CLIOTi6c.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map new file mode 100644 index 0000000..19b9785 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"login-CLIOTi6c.js","sources":["../../../../pages/login.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderAttr","_unref","_ssrInterpolate","_ssrIncludeBooleanAttr","_push","_parent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+FA,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,EAAE;AACR,cAAA;AAEf,UAAM,YAAY,aAAA;;;mBAlGXA,eAAAC,WAAA,EAAA,OAAM,kEAAA,GAAiE,MAAA,CAAA,6HAMlEC,cAAA,OAAA,UAAkB;AAiBd,UAAAC,MAAA,SAAA,EAAU,OAAK;AAGlB,cAAA,6FAAAC,eAAAD,MAAA,SAAA,EAAU,KAAK,CAAA,QAAA;AAAA;;;sLAWLA,MAAA,KAAA,CAAK,0aAgBLA,MAAA,QAAA,CAAQ,oTAYRE,sBAAAF,MAAA,SAAA,EAAU,SAAS,IAAA,cAAA;AAItB,UAAAA,MAAA,SAAA,EAAU,WAAS;;;;;AASlB,YAAA,SAAAC,eAAAD,MAAA,SAAA,EAAU,YAAS,kBAAA,SAAA,CAAA,uDAAA;;QAMpB,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEW,GAAAG,QAAAC,UAAA,aAAA;;;;;8BAFoE,2BAE/E;AAAA,YAAA;AAAA;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json new file mode 100644 index 0000000..3c7f6d1 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json @@ -0,0 +1 @@ +{"file":"login-CLIOTi6c.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+FA,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,EAAE;AACR,cAAA;AAEf,UAAM,YAAY,aAAA;;;mBAlGXA,eAAAC,WAAA,EAAA,OAAM,kEAAA,GAAiE,MAAA,CAAA,6HAMlEC,cAAA,OAAA,UAAkB;AAiBd,UAAAC,MAAA,SAAA,EAAU,OAAK;AAGlB,cAAA,6FAAAC,eAAAD,MAAA,SAAA,EAAU,KAAK,CAAA,QAAA;AAAA;;;sLAWLA,MAAA,KAAA,CAAK,0aAgBLA,MAAA,QAAA,CAAQ,oTAYRE,sBAAAF,MAAA,SAAA,EAAU,SAAS,IAAA,cAAA;AAItB,UAAAA,MAAA,SAAA,EAAU,WAAS;;;;;AASlB,YAAA,SAAAC,eAAAD,MAAA,SAAA,EAAU,YAAS,kBAAA,SAAA,CAAA,uDAAA;;QAMpB,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEW,GAAAG,QAAAC,UAAA,aAAA;;;;;8BAFoE,2BAE/E;AAAA,YAAA;AAAA;;;;;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderAttr","_unref","_ssrInterpolate","_ssrIncludeBooleanAttr","_push","_parent"],"sources":["../../../../pages/login.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js new file mode 100644 index 0000000..cf9e5d2 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js @@ -0,0 +1,307 @@ +import { defineComponent, shallowRef, h, resolveComponent, computed, unref } from "vue"; +import { parseQuery, hasProtocol, joinURL, isScriptProtocol, withTrailingSlash, withoutTrailingSlash } from "/app/node_modules/ufo/dist/index.mjs"; +import { u as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, a as useNuxtApp, b as useRuntimeConfig, c as nuxtLinkDefaults } from "../server.mjs"; +import "/app/node_modules/defu/dist/defu.mjs"; +const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); +function sanitizeExternalHref(value) { + let candidate = value.replace(/[\u0000-\u001f\s]+/g, ""); + while (candidate.toLowerCase().startsWith("view-source:")) { + candidate = candidate.slice("view-source:".length); + } + const colon = candidate.indexOf(":"); + if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) { + return null; + } + return value; +} +// @__NO_SIDE_EFFECTS__ +function defineNuxtLink(options) { + const componentName = options.componentName || "NuxtLink"; + function isHashLinkWithoutHashMode(link) { + return typeof link === "string" && link.startsWith("#"); + } + function resolveTrailingSlashBehavior(to, resolve, trailingSlash) { + const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash; + if (!to || effectiveTrailingSlash !== "append" && effectiveTrailingSlash !== "remove") { + return to; + } + if (typeof to === "string") { + return applyTrailingSlashBehavior(to, effectiveTrailingSlash); + } + const path = "path" in to && to.path !== void 0 ? to.path : resolve(to).path; + const resolvedPath = { + ...to, + name: void 0, + // named routes would otherwise always override trailing slash behavior + path: applyTrailingSlashBehavior(path, effectiveTrailingSlash) + }; + return resolvedPath; + } + function useNuxtLink(props) { + const router = useRouter(); + const config = useRuntimeConfig(); + const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== "_self"); + const isAbsoluteUrl = computed(() => { + const path = unref(props.to) || unref(props.href) || ""; + return typeof path === "string" && hasProtocol(path, { acceptRelative: true }); + }); + const builtinRouterLink = resolveComponent("RouterLink"); + const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== "string" ? builtinRouterLink.useLink : void 0; + const isExternal = computed(() => { + if (unref(props.external)) { + return true; + } + const path = unref(props.to) || unref(props.href) || ""; + if (typeof path === "object") { + return false; + } + return path === "" || isAbsoluteUrl.value; + }); + const to = computed(() => { + const path = unref(props.to) || unref(props.href) || ""; + if (isExternal.value) { + return path; + } + return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash)); + }); + const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) }); + const href = computed(() => { + const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash; + if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) { + const raw = to.value; + return typeof raw === "string" ? sanitizeExternalHref(raw) : raw; + } + if (isExternal.value) { + const path = typeof to.value === "object" && "path" in to.value ? resolveRouteObject(to.value) : to.value; + const href2 = typeof path === "object" ? router.resolve(path).href : path; + const safe = typeof href2 === "string" ? sanitizeExternalHref(href2) : href2; + return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash); + } + if (typeof to.value === "object") { + return router.resolve(to.value)?.href ?? null; + } + return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash); + }); + return { + to, + hasTarget, + isAbsoluteUrl, + isExternal, + // + href, + isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path), + isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path), + route: link?.route ?? computed(() => router.resolve(to.value)), + async navigate(_e) { + if (href.value === null) { + return; + } + await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value }); + } + }; + } + return defineComponent({ + name: componentName, + props: { + // Routing + to: { + type: [String, Object], + default: void 0, + required: false + }, + href: { + type: [String, Object], + default: void 0, + required: false + }, + // Attributes + target: { + type: String, + default: void 0, + required: false + }, + rel: { + type: String, + default: void 0, + required: false + }, + noRel: { + type: Boolean, + default: void 0, + required: false + }, + // Prefetching + prefetch: { + type: Boolean, + default: void 0, + required: false + }, + prefetchOn: { + type: [String, Object], + default: void 0, + required: false + }, + noPrefetch: { + type: Boolean, + default: void 0, + required: false + }, + // Styling + activeClass: { + type: String, + default: void 0, + required: false + }, + exactActiveClass: { + type: String, + default: void 0, + required: false + }, + prefetchedClass: { + type: String, + default: void 0, + required: false + }, + // Vue Router's `` additional props + replace: { + type: Boolean, + default: void 0, + required: false + }, + ariaCurrentValue: { + type: String, + default: void 0, + required: false + }, + // Edge cases handling + external: { + type: Boolean, + default: void 0, + required: false + }, + // Slot API + custom: { + type: Boolean, + default: void 0, + required: false + }, + // Behavior + trailingSlash: { + type: String, + default: void 0, + required: false + } + }, + useLink: useNuxtLink, + setup(props, { slots }) { + const router = useRouter(); + const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props); + shallowRef(false); + const el = void 0; + const elRef = void 0; + async function prefetch(nuxtApp = useNuxtApp()) { + { + return; + } + } + return () => { + if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) { + const routerLinkProps = { + ref: elRef, + to: to.value, + activeClass: props.activeClass || options.activeClass, + exactActiveClass: props.exactActiveClass || options.exactActiveClass, + replace: props.replace, + ariaCurrentValue: props.ariaCurrentValue, + custom: props.custom + }; + if (!props.custom) { + routerLinkProps.rel = props.rel || void 0; + } + return h( + resolveComponent("RouterLink"), + routerLinkProps, + slots.default + ); + } + const target = props.target || null; + const rel = firstNonUndefined( + // converts `""` to `null` to prevent the attribute from being added as empty (`rel=""`) + props.noRel ? "" : props.rel, + options.externalRelAttribute, + /* + * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab. + * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy. + */ + isAbsoluteUrl.value || hasTarget.value ? "noopener noreferrer" : "" + ) || null; + if (props.custom) { + if (!slots.default) { + return null; + } + return slots.default({ + href: href.value, + navigate, + prefetch, + get route() { + if (!href.value) { + return void 0; + } + const url = new URL(href.value, "http://localhost"); + return { + path: url.pathname, + fullPath: url.pathname, + get query() { + return parseQuery(url.search); + }, + hash: url.hash, + params: {}, + name: void 0, + matched: [], + redirectedFrom: void 0, + meta: {}, + href: href.value + }; + }, + rel, + target, + isExternal: isExternal.value || hasTarget.value, + isActive: false, + isExactActive: false + }); + } + return h("a", { + ref: el, + href: href.value || null, + // converts `""` to `null` to prevent the attribute from being added as empty (`href=""`) + rel, + target, + onClick: async (event) => { + if (isExternal.value || hasTarget.value) { + return; + } + event.preventDefault(); + try { + const encodedHref = encodeRoutePath(href.value ?? ""); + return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref)); + } finally { + } + } + }, slots.default?.()); + }; + } + }); +} +const __nuxt_component_0 = /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults); +function applyTrailingSlashBehavior(to, trailingSlash) { + const normalizeFn = trailingSlash === "append" ? withTrailingSlash : withoutTrailingSlash; + const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith("http"); + if (hasProtocolDifferentFromHttp) { + return to; + } + return normalizeFn(to, true); +} +export { + __nuxt_component_0 as _ +}; +//# sourceMappingURL=nuxt-link-DNVrgHUL.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map new file mode 100644 index 0000000..6e32339 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"nuxt-link-DNVrgHUL.js","sources":["../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001f\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json new file mode 100644 index 0000000..f760ead --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json @@ -0,0 +1 @@ +{"file":"nuxt-link-DNVrgHUL.js","mappings":";;;;AASA,MAAM,oBAAoB,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ,QAAQ,MAAM;AACxE,SAAS,qBAAqB,OAAO;AACnC,MAAI,YAAY,MAAM,QAAQ,uBAAuB,EAAE;AACvD,SAAO,UAAU,YAAA,EAAc,WAAW,cAAc,GAAG;AACzD,gBAAY,UAAU,MAAM,eAAe,MAAM;AAAA,EACnD;AACA,QAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,MAAI,QAAQ,KAAK,iBAAiB,UAAU,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG;AAChE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAAA;AAGO,SAAS,eAAe,SAAS;AACtC,QAAM,gBAAgB,QAAQ,iBAAiB;AAM/C,WAAS,0BAA0B,MAAM;AACvC,WAAoB,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAAA,EACrE;AACA,WAAS,6BAA6B,IAAI,SAAS,eAAe;AAChE,UAAM,yBAAyB,iBAAiB,QAAQ;AACxD,QAAI,CAAC,MAAM,2BAA2B,YAAY,2BAA2B,UAAU;AACrF,aAAO;AAAA,IACT;AACA,QAAI,OAAO,OAAO,UAAU;AAC1B,aAAO,2BAA2B,IAAI,sBAAsB;AAAA,IAC9D;AACA,UAAM,OAAO,UAAU,MAAM,GAAG,SAAS,SAAS,GAAG,OAAO,QAAQ,EAAE,EAAE;AACxE,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,MACH,MAAM;AAAA;AAAA,MAEN,MAAM,2BAA2B,MAAM,sBAAsB;AAAA,IAAA;AAE/D,WAAO;AAAA,EACT;AACA,WAAS,YAAY,OAAO;AAC1B,UAAM,SAAS,UAAA;AACf,UAAM,SAAS,iBAAA;AACf,UAAM,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO;AACzF,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,OAAO,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK;AACrD,aAAO,OAAO,SAAS,YAAY,YAAY,MAAM,EAAE,gBAAgB,MAAM;AAAA,IAC/E,CAAC;AACD,UAAM,oBAAoB,iBAAiB,YAAY;AACvD,UAAM,iBAAiB,qBAAqB,OAAO,sBAAsB,WAAW,kBAAkB,UAAU;AAChH,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,MAAM,QAAQ,GAAG;AACzB,eAAO;AAAA,MACT;AACA,YAAM,OAAO,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK;AACrD,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO;AAAA,MACT;AACA,aAAO,SAAS,MAAM,cAAc;AAAA,IACtC,CAAC;AACD,UAAM,KAAK,SAAS,MAAM;AAExB,YAAM,OAAO,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK;AACrD,UAAI,WAAW,OAAO;AACpB,eAAO;AAAA,MACT;AACA,aAAO,6BAA6B,MAAM,OAAO,SAAS,MAAM,MAAM,aAAa,CAAC;AAAA,IACtF,CAAC;AACD,UAAM,OAAO,WAAW,QAAQ,SAAS,iBAAiB,EAAE,GAAG,OAAO,IAAI,gBAAgB,MAAM,MAAM,cAAc,GAAG;AACvH,UAAM,OAAO,SAAS,MAAM;AAC1B,YAAM,yBAAyB,MAAM,MAAM,aAAa,KAAK,QAAQ;AACrE,UAAI,CAAC,GAAG,SAAS,cAAc,SAAS,0BAA0B,GAAG,KAAK,GAAG;AAC3E,cAAM,MAAM,GAAG;AACf,eAAO,OAAO,QAAQ,WAAW,qBAAqB,GAAG,IAAI;AAAA,MAC/D;AACA,UAAI,WAAW,OAAO;AACpB,cAAM,OAAO,OAAO,GAAG,UAAU,YAAY,UAAU,GAAG,QAAQ,mBAAmB,GAAG,KAAK,IAAI,GAAG;AACpG,cAAM,QAAQ,OAAO,SAAS,WAAW,OAAO,QAAQ,IAAI,EAAE,OAAO;AACrE,cAAM,OAAO,OAAO,UAAU,WAAW,qBAAqB,KAAK,IAAI;AACvE,eAAO,SAAS,OAAO,OAAO,2BAA2B,MAAM,sBAAsB;AAAA,MACvF;AACA,UAAI,OAAO,GAAG,UAAU,UAAU;AAChC,eAAO,OAAO,QAAQ,GAAG,KAAK,GAAG,QAAQ;AAAA,MAC3C;AACA,aAAO,2BAA2B,QAAQ,OAAO,IAAI,SAAS,GAAG,KAAK,GAAG,sBAAsB;AAAA,IACjG,CAAC;AACD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA,UAAU,MAAM,YAAY,SAAS,MAAM,GAAG,UAAU,OAAO,aAAa,MAAM,IAAI;AAAA,MACtF,eAAe,MAAM,iBAAiB,SAAS,MAAM,GAAG,UAAU,OAAO,aAAa,MAAM,IAAI;AAAA,MAChG,OAAO,MAAM,SAAS,SAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,CAAC;AAAA,MAC7D,MAAM,SAAS,IAAI;AACjB,YAAI,KAAK,UAAU,MAAM;AAIvB;AAAA,QACF;AACA,cAAM,WAAW,KAAK,OAAO,EAAE,SAAS,MAAM,MAAM,OAAO,GAAG,UAAU,WAAW,SAAS,UAAU,OAAO;AAAA,MAC/G;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO,gBAAgB;AAAA,IACrB,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,MAEL,IAAI;AAAA,QACF,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,MAAM;AAAA,QACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,KAAK;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,YAAY;AAAA,QACV,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,YAAY;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,eAAe;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,SAAS;AAAA,IACT,MAAM,OAAO,EAAE,SAAS;AACtB,YAAM,SAAS,UAAA;AACf,YAAM,EAAE,IAAI,MAAM,UAAU,YAAY,WAAW,cAAA,IAAkB,YAAY,KAAK;AACnE,iBAAW,KAAK;AACnC,YAAM,KAA0B;AAChC,YAAM,QAA6B;AASnC,qBAAe,SAAS,UAAU,cAAc;AACtB;AACtB;AAAA,QACF;AAAA,MAgBF;AAsCA,aAAO,MAAM;AACX,YAAI,CAAC,WAAW,SAAS,CAAC,UAAU,SAAS,CAAC,0BAA0B,GAAG,KAAK,GAAG;AACjF,gBAAM,kBAAkB;AAAA,YACtB,KAAK;AAAA,YACL,IAAI,GAAG;AAAA,YACP,aAAa,MAAM,eAAe,QAAQ;AAAA,YAC1C,kBAAkB,MAAM,oBAAoB,QAAQ;AAAA,YACpD,SAAS,MAAM;AAAA,YACf,kBAAkB,MAAM;AAAA,YACxB,QAAQ,MAAM;AAAA,UAAA;AAEhB,cAAI,CAAC,MAAM,QAAQ;AAUjB,4BAAgB,MAAM,MAAM,OAAO;AAAA,UACrC;AACA,iBAAO;AAAA,YACL,iBAAiB,YAAY;AAAA,YAC7B;AAAA,YACA,MAAM;AAAA,UAAA;AAAA,QAEV;AACA,cAAM,SAAS,MAAM,UAAU;AAE/B,cAAM,MAAM;AAAA;AAAA,UAEV,MAAM,QAAQ,KAAK,MAAM;AAAA,UACzB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,UAKR,cAAc,SAAS,UAAU,QAAQ,wBAAwB;AAAA,QAAA,KAC9D;AACL,YAAI,MAAM,QAAQ;AAChB,cAAI,CAAC,MAAM,SAAS;AAClB,mBAAO;AAAA,UACT;AACA,iBAAO,MAAM,QAAQ;AAAA,YACnB,MAAM,KAAK;AAAA,YACX;AAAA,YACA;AAAA,YACA,IAAI,QAAQ;AACV,kBAAI,CAAC,KAAK,OAAO;AACf,uBAAO;AAAA,cACT;AACA,oBAAM,MAAM,IAAI,IAAI,KAAK,OAAmD,kBAAkB;AAC9F,qBAAO;AAAA,gBACL,MAAM,IAAI;AAAA,gBACV,UAAU,IAAI;AAAA,gBACd,IAAI,QAAQ;AACV,yBAAO,WAAW,IAAI,MAAM;AAAA,gBAC9B;AAAA,gBACA,MAAM,IAAI;AAAA,gBACV,QAAQ,CAAA;AAAA,gBACR,MAAM;AAAA,gBACN,SAAS,CAAA;AAAA,gBACT,gBAAgB;AAAA,gBAChB,MAAM,CAAA;AAAA,gBACN,MAAM,KAAK;AAAA,cAAA;AAAA,YAEf;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,WAAW,SAAS,UAAU;AAAA,YAC1C,UAAU;AAAA,YACV,eAAe;AAAA,UAAA,CAChB;AAAA,QACH;AACA,eAAO,EAAE,KAAK;AAAA,UACZ,KAAK;AAAA,UACL,MAAM,KAAK,SAAS;AAAA;AAAA,UAEpB;AAAA,UACA;AAAA,UACA,SAAS,OAAO,UAAU;AACxB,gBAAI,WAAW,SAAS,UAAU,OAAO;AACvC;AAAA,YACF;AACA,kBAAM,eAAA;AACN,gBAAI;AACF,oBAAM,cAAc,gBAAgB,KAAK,SAAS,EAAE;AACpD,qBAAO,OAAO,MAAM,UAAU,OAAO,QAAQ,WAAW,IAAI,OAAO,KAAK,WAAW;AAAA,YACrF,UAAA;AAAA,YAWA;AAAA,UACF;AAAA,QAAA,GACC,MAAM,WAAW;AAAA,MACtB;AAAA,IACF;AAAA,EAAA,CACD;AACH;AACA,MAAA,oDAA8C,gBAAgB;AAC9D,SAAS,2BAA2B,IAAI,eAAe;AACrD,QAAM,cAAc,kBAAkB,WAAW,oBAAoB;AACrE,QAAM,+BAA+B,YAAY,EAAE,KAAK,CAAC,GAAG,WAAW,MAAM;AAC7E,MAAI,8BAA8B;AAChC,WAAO;AAAA,EACT;AACA,SAAO,YAAY,IAAI,IAAI;AAC7B;","names":[],"sources":["../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001f\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js new file mode 100644 index 0000000..7442e98 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js @@ -0,0 +1,21 @@ +import { hasInjectionContext, inject } from "vue"; +import { useHead as useHead$1, headSymbol } from "/app/node_modules/@unhead/vue/dist/index.mjs"; +import { t as tryUseNuxtApp } from "../server.mjs"; +function injectHead(nuxtApp) { + const nuxt = nuxtApp || tryUseNuxtApp(); + return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => { + if (hasInjectionContext()) { + return inject(headSymbol); + } + }); +} +function useHead(input, options = {}) { + const head = injectHead(options.nuxt); + if (head) { + return useHead$1(input, { head, ...options }); + } +} +export { + useHead as u +}; +//# sourceMappingURL=v3-DnDMBKvA.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map new file mode 100644 index 0000000..24748fd --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map @@ -0,0 +1 @@ +{"version":3,"file":"v3-DnDMBKvA.js","sources":["../../../../node_modules/nuxt/dist/head/runtime/composables/v3.js"],"sourcesContent":["import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n"],"names":["headCore"],"mappings":";;;AAWO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,cAAa;AACrC,SAAO,MAAM,YAAY,QAAQ,MAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC7C;AACF;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json new file mode 100644 index 0000000..9f43164 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json @@ -0,0 +1 @@ +{"file":"v3-DnDMBKvA.js","mappings":";;;AAWO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,cAAa;AACrC,SAAO,MAAM,YAAY,QAAQ,MAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC7C;AACF;","names":["headCore"],"sources":["../../../../node_modules/nuxt/dist/head/runtime/composables/v3.js"],"sourcesContent":["import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/client.manifest.mjs b/frontend_admin/.nuxt/dist/server/client.manifest.mjs new file mode 100644 index 0000000..cb5585c --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/client.manifest.mjs @@ -0,0 +1 @@ +export default ({"_BoAo7BJa.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BoAo7BJa.js",name:"cookie",imports:["node_modules/nuxt/dist/app/entry.js"]},"_ByPKVH1D.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"ByPKVH1D.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"_Di-57MrI.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Di-57MrI.js",name:"v3",imports:["node_modules/nuxt/dist/app/entry.js"]},"_QKJPEFuj.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"QKJPEFuj.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BW9w-mbE.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"middleware/auth.ts":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BFfxzM5G.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Oih3kTQ2.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:!0,preload:!0},"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"usmOON9X.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:!0,preload:!0},"node_modules/nuxt/dist/app/entry.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C3Ck-LNv.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["middleware/auth.ts","layouts/default.vue","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:!0,preload:!0},"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Drr7KP9v.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"pages/login.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"XMkMKtwS.js",name:"login",src:"pages/login.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"pages/permissions/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CyOWWS80.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]}}) \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/client.precomputed.mjs b/frontend_admin/.nuxt/dist/server/client.precomputed.mjs new file mode 100644 index 0000000..e9d6604 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/client.precomputed.mjs @@ -0,0 +1 @@ +export default ((h,j,k,m,o)=>({dependencies:{"node_modules/nuxt/dist/app/entry.js":{scripts:{"node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C3Ck-LNv.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["middleware/auth.ts","layouts/default.vue","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]}},styles:{},preload:{"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_BoAo7BJa.js":{scripts:{},styles:{},preload:{"_BoAo7BJa.js":j={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BoAo7BJa.js",name:"cookie",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_ByPKVH1D.js":{scripts:{},styles:{},preload:{"_ByPKVH1D.js":k={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"ByPKVH1D.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_BoAo7BJa.js":j},prefetch:{}},"_Di-57MrI.js":{scripts:{},styles:{},preload:{"_Di-57MrI.js":m={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Di-57MrI.js",name:"v3",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_QKJPEFuj.js":{scripts:{},styles:{},preload:{"_QKJPEFuj.js":o={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"QKJPEFuj.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BW9w-mbE.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_ByPKVH1D.js":k,"_BoAo7BJa.js":j},prefetch:{}},"middleware/auth.ts":{scripts:{},styles:{},preload:{"middleware/auth.ts":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BFfxzM5G.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_BoAo7BJa.js":j},prefetch:{}},"node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Oih3kTQ2.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_Di-57MrI.js":m},prefetch:{}},"error-404.DL_4WIao.css":{scripts:{},styles:{},preload:{"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"usmOON9X.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"node_modules/nuxt/dist/app/entry.js":h,"_Di-57MrI.js":m},prefetch:{}},"error-500.I1Dtv2V5.css":{scripts:{},styles:{},preload:{"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"entry.KrfumMBl.css":{scripts:{},styles:{},preload:{"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/index.vue":{scripts:{},styles:{},preload:{"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Drr7KP9v.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/login.vue":{scripts:{},styles:{},preload:{"pages/login.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"XMkMKtwS.js",name:"login",src:"pages/login.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_ByPKVH1D.js":k,"_BoAo7BJa.js":j},prefetch:{}},"pages/permissions/index.vue":{scripts:{},styles:{},preload:{"pages/permissions/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CyOWWS80.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}}},entrypoints:["node_modules/nuxt/dist/app/entry.js"],modules:{"_BoAo7BJa.js":{file:"BoAo7BJa.js",resourceType:"script",mimeType:void 0,module:!0},"_ByPKVH1D.js":{file:"ByPKVH1D.js",resourceType:"script",mimeType:void 0,module:!0},"_Di-57MrI.js":{file:"Di-57MrI.js",resourceType:"script",mimeType:void 0,module:!0},"_QKJPEFuj.js":{file:"QKJPEFuj.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/default.vue":{file:"BW9w-mbE.js",resourceType:"script",mimeType:void 0,module:!0},"middleware/auth.ts":{file:"BFfxzM5G.js",resourceType:"script",mimeType:void 0,module:!0},"node_modules/nuxt/dist/app/components/error-404.vue":{file:"Oih3kTQ2.js",resourceType:"script",mimeType:void 0,module:!0},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/components/error-500.vue":{file:"usmOON9X.js",resourceType:"script",mimeType:void 0,module:!0},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/entry.js":{file:"C3Ck-LNv.js",resourceType:"script",mimeType:void 0,module:!0},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/index.vue":{file:"Drr7KP9v.js",resourceType:"script",mimeType:void 0,module:!0},"pages/login.vue":{file:"XMkMKtwS.js",resourceType:"script",mimeType:void 0,module:!0},"pages/permissions/index.vue":{file:"CyOWWS80.js",resourceType:"script",mimeType:void 0,module:!0}}}))() \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/server.mjs b/frontend_admin/.nuxt/dist/server/server.mjs new file mode 100644 index 0000000..7f1ca2b --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/server.mjs @@ -0,0 +1,1298 @@ +import { shallowReactive, reactive, effectScope, getCurrentScope, hasInjectionContext, getCurrentInstance, inject, toRef, shallowRef, isReadonly, isRef, isShallow, isReactive, toRaw, defineComponent, createElementBlock, provide, cloneVNode, h, defineAsyncComponent, computed, unref, Suspense, nextTick, mergeProps, ref, Fragment, withCtx, createVNode, useSSRContext, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, createApp } from "vue"; +import { $fetch as $fetch$1 } from "/app/node_modules/ofetch/dist/node.mjs"; +import { baseURL } from "#internal/nuxt/paths"; +import { createHooks } from "/app/node_modules/hookable/dist/index.mjs"; +import { getContext, executeAsync } from "/app/node_modules/unctx/dist/index.mjs"; +import { sanitizeStatusCode, createError as createError$1 } from "/app/node_modules/h3/dist/index.mjs"; +import { shouldHydrate, setActivePinia, createPinia } from "pinia"; +import { defu } from "/app/node_modules/defu/dist/defu.mjs"; +import { START_LOCATION, createMemoryHistory, createRouter, useRoute as useRoute$1, RouterView } from "vue-router"; +import { hasProtocol, joinURL, parseURL, encodePath, decodePath, withQuery, isScriptProtocol } from "/app/node_modules/ufo/dist/index.mjs"; +import "/app/node_modules/klona/dist/index.mjs"; +import { ssrRenderComponent, ssrRenderSuspense, ssrRenderVNode } from "vue/server-renderer"; +if (!globalThis.$fetch) { + globalThis.$fetch = $fetch$1.create({ + baseURL: baseURL() + }); +} +if (!("global" in globalThis)) { + globalThis.global = globalThis; +} +const appLayoutTransition = false; +const nuxtLinkDefaults = { "componentName": "NuxtLink" }; +const appId = "nuxt-app"; +function getNuxtAppCtx(id = appId) { + return getContext(id, { + asyncContext: false + }); +} +const NuxtPluginIndicator = "__nuxt_plugin"; +function createNuxtApp(options) { + let hydratingCount = 0; + const nuxtApp = { + _id: options.id || appId || "nuxt-app", + _scope: effectScope(), + provide: void 0, + globalName: "nuxt", + versions: { + get nuxt() { + return "3.21.8"; + }, + get vue() { + return nuxtApp.vueApp.version; + } + }, + payload: shallowReactive({ + ...options.ssrContext?.payload || {}, + data: shallowReactive({}), + state: reactive({}), + once: /* @__PURE__ */ new Set(), + _errors: shallowReactive({}) + }), + static: { + data: {} + }, + runWithContext(fn) { + if (nuxtApp._scope.active && !getCurrentScope()) { + return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn)); + } + return callWithNuxt(nuxtApp, fn); + }, + isHydrating: false, + deferHydration() { + if (!nuxtApp.isHydrating) { + return () => { + }; + } + hydratingCount++; + let called = false; + return () => { + if (called) { + return; + } + called = true; + hydratingCount--; + if (hydratingCount === 0) { + nuxtApp.isHydrating = false; + return nuxtApp.callHook("app:suspense:resolve"); + } + }; + }, + _asyncDataPromises: {}, + _asyncData: shallowReactive({}), + _payloadRevivers: {}, + ...options + }; + { + nuxtApp.payload.serverRendered = true; + } + if (nuxtApp.ssrContext) { + nuxtApp.payload.path = nuxtApp.ssrContext.url; + nuxtApp.ssrContext.nuxt = nuxtApp; + nuxtApp.ssrContext.payload = nuxtApp.payload; + nuxtApp.ssrContext.config = { + public: nuxtApp.ssrContext.runtimeConfig.public, + app: nuxtApp.ssrContext.runtimeConfig.app + }; + } + nuxtApp.hooks = createHooks(); + nuxtApp.hook = nuxtApp.hooks.hook; + { + const contextCaller = async function(hooks, args) { + for (const hook of hooks) { + await nuxtApp.runWithContext(() => hook(...args)); + } + }; + nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args); + } + nuxtApp.callHook = nuxtApp.hooks.callHook; + nuxtApp.provide = (name, value) => { + const $name = "$" + name; + defineGetter(nuxtApp, $name, value); + defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value); + }; + defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp); + defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp); + const runtimeConfig = options.ssrContext.runtimeConfig; + nuxtApp.provide("config", runtimeConfig); + return nuxtApp; +} +function registerPluginHooks(nuxtApp, plugin2) { + if (plugin2.hooks) { + nuxtApp.hooks.addHooks(plugin2.hooks); + } +} +async function applyPlugin(nuxtApp, plugin2) { + if (typeof plugin2 === "function") { + const { provide: provide2 } = await nuxtApp.runWithContext(() => plugin2(nuxtApp)) || {}; + if (provide2 && typeof provide2 === "object") { + for (const key in provide2) { + nuxtApp.provide(key, provide2[key]); + } + } + } +} +async function applyPlugins(nuxtApp, plugins2) { + const resolvedPlugins = /* @__PURE__ */ new Set(); + const unresolvedPlugins = []; + const parallels = []; + let error = void 0; + let promiseDepth = 0; + async function executePlugin(plugin2) { + const unresolvedPluginsForThisPlugin = plugin2.dependsOn?.filter((name) => plugins2.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? []; + if (unresolvedPluginsForThisPlugin.length > 0) { + unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin2]); + } else { + const promise = applyPlugin(nuxtApp, plugin2).then(async () => { + if (plugin2._name) { + resolvedPlugins.add(plugin2._name); + await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => { + if (dependsOn.has(plugin2._name)) { + dependsOn.delete(plugin2._name); + if (dependsOn.size === 0) { + promiseDepth++; + await executePlugin(unexecutedPlugin); + } + } + })); + } + }).catch((e) => { + if (!plugin2.parallel && !nuxtApp.payload.error) { + throw e; + } + error ||= e; + }); + if (plugin2.parallel) { + parallels.push(promise); + } else { + await promise; + } + } + } + for (const plugin2 of plugins2) { + if (nuxtApp.ssrContext?.islandContext && plugin2.env?.islands === false) { + continue; + } + registerPluginHooks(nuxtApp, plugin2); + } + for (const plugin2 of plugins2) { + if (nuxtApp.ssrContext?.islandContext && plugin2.env?.islands === false) { + continue; + } + await executePlugin(plugin2); + } + await Promise.all(parallels); + if (promiseDepth) { + for (let i = 0; i < promiseDepth; i++) { + await Promise.all(parallels); + } + } + if (error) { + throw nuxtApp.payload.error || error; + } +} +// @__NO_SIDE_EFFECTS__ +function defineNuxtPlugin(plugin2) { + if (typeof plugin2 === "function") { + return plugin2; + } + const _name = plugin2._name || plugin2.name; + delete plugin2.name; + return Object.assign(plugin2.setup || (() => { + }), plugin2, { [NuxtPluginIndicator]: true, _name }); +} +const definePayloadPlugin = defineNuxtPlugin; +function callWithNuxt(nuxt, setup, args) { + const fn = () => setup(); + const nuxtAppCtx = getNuxtAppCtx(nuxt._id); + { + return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn)); + } +} +function tryUseNuxtApp(id) { + let nuxtAppInstance; + if (hasInjectionContext()) { + nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt; + } + nuxtAppInstance ||= getNuxtAppCtx(id).tryUse(); + return nuxtAppInstance || null; +} +function useNuxtApp(id) { + const nuxtAppInstance = tryUseNuxtApp(id); + if (!nuxtAppInstance) { + { + throw new Error("[nuxt] instance unavailable"); + } + } + return nuxtAppInstance; +} +// @__NO_SIDE_EFFECTS__ +function useRuntimeConfig(_event) { + return useNuxtApp().$config; +} +function defineGetter(obj, key, val) { + Object.defineProperty(obj, key, { get: () => val }); +} +const LayoutMetaSymbol = /* @__PURE__ */ Symbol("layout-meta"); +const PageRouteSymbol = /* @__PURE__ */ Symbol("route"); +import.meta.url.replace(/\/app\/.*$/, "/"); +const useRouter = () => { + return useNuxtApp()?.$router; +}; +const useRoute = () => { + if (hasInjectionContext()) { + return inject(PageRouteSymbol, useNuxtApp()._route); + } + return useNuxtApp()._route; +}; +// @__NO_SIDE_EFFECTS__ +function defineNuxtRouteMiddleware(middleware) { + return middleware; +} +const isProcessingMiddleware = () => { + try { + if (useNuxtApp()._processingMiddleware) { + return true; + } + } catch { + return false; + } + return false; +}; +const HTML_ATTR_UNSAFE_RE = /[&"'<>]/g; +const HTML_ATTR_ENCODE_MAP = { + "&": "%26", + '"': "%22", + "'": "%27", + "<": "%3C", + ">": "%3E" +}; +function encodeForHtmlAttr(value) { + return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]); +} +const navigateTo = (to, options) => { + to ||= "/"; + const toPath = typeof to === "string" ? to : "path" in to ? resolveRouteObject(to) : useRouter().resolve(to).href; + const isExternalHost = hasProtocol(toPath, { acceptRelative: true }); + const isExternal = options?.external || isExternalHost; + if (isExternal) { + if (!options?.external) { + throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`."); + } + const { protocol } = new URL(toPath, "http://localhost"); + if (protocol && isScriptProtocol(protocol)) { + throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`); + } + } + const inMiddleware = isProcessingMiddleware(); + const router = useRouter(); + const nuxtApp = useNuxtApp(); + { + if (nuxtApp.ssrContext) { + const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/"; + const location2 = isExternal ? toPath : joinURL((/* @__PURE__ */ useRuntimeConfig()).app.baseURL, fullPath); + const redirect = async function(response) { + await nuxtApp.callHook("app:redirected"); + const encodedHeader = encodeURL(location2, isExternalHost); + const encodedLoc = encodeForHtmlAttr(encodedHeader); + nuxtApp.ssrContext["~renderResponse"] = { + statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302), + body: ``, + headers: { location: encodedHeader } + }; + return response; + }; + if (!isExternal && inMiddleware) { + router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0); + return to; + } + return redirect(!inMiddleware ? void 0 : ( + /* abort route navigation */ + false + )); + } + } + if (isExternal) { + nuxtApp._scope.stop(); + if (options?.replace) { + (void 0).replace(toPath); + } else { + (void 0).href = toPath; + } + if (inMiddleware) { + if (!nuxtApp.isHydrating) { + return false; + } + return new Promise(() => { + }); + } + return Promise.resolve(); + } + const encodedTo = typeof to === "string" ? encodeRoutePath(to) : to; + return options?.replace ? router.replace(encodedTo) : router.push(encodedTo); +}; +function resolveRouteObject(to) { + return withQuery(to.path || "", to.query || {}) + (to.hash || ""); +} +function encodeURL(location2, isExternalHost = false) { + const url = new URL(location2, "http://localhost"); + if (!isExternalHost) { + const pathname = url.pathname.replace(/^\/{2,}/, "/"); + return pathname + url.search + url.hash; + } + if (location2.startsWith("//")) { + return url.toString().replace(url.protocol, ""); + } + return url.toString(); +} +function encodeRoutePath(url) { + const parsed = parseURL(url); + return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash; +} +const NUXT_ERROR_SIGNATURE = "__nuxt_error"; +const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, "error"); +const showError = (error) => { + const nuxtError = createError(error); + try { + const error2 = /* @__PURE__ */ useError(); + if (false) ; + error2.value ||= nuxtError; + } catch { + throw nuxtError; + } + return nuxtError; +}; +const isNuxtError = (error) => !!error && typeof error === "object" && NUXT_ERROR_SIGNATURE in error; +const createError = (error) => { + if (typeof error !== "string" && error.statusText) { + error.message ??= error.statusText; + } + const nuxtError = createError$1(error); + Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, { + value: true, + configurable: false, + writable: false + }); + Object.defineProperty(nuxtError, "status", { + // eslint-disable-next-line @typescript-eslint/no-deprecated + get: () => nuxtError.statusCode, + configurable: true + }); + Object.defineProperty(nuxtError, "statusText", { + // eslint-disable-next-line @typescript-eslint/no-deprecated + get: () => nuxtError.statusMessage, + configurable: true + }); + return nuxtError; +}; +const matcher = (m, p) => { + return []; +}; +const _routeRulesMatcher = (path) => defu({}, ...matcher("", typeof path === "string" ? path.toLowerCase() : path).map((r) => r.data).reverse()); +const routeRulesMatcher$1 = _routeRulesMatcher; +function getRouteRules(arg) { + const path = typeof arg === "string" ? arg : arg.path; + try { + return routeRulesMatcher$1(path.toLowerCase()); + } catch (e) { + console.error("[nuxt] Error matching route rules.", e); + return {}; + } +} +function definePayloadReducer(name, reduce) { + { + useNuxtApp().ssrContext["~payloadReducers"][name] = reduce; + } +} +const payloadPlugin = definePayloadPlugin(() => { + definePayloadReducer( + "skipHydrate", + // We need to return something truthy to be treated as a match + (data) => !shouldHydrate(data) && 1 + ); +}); +function freezeHead(head) { + const realPush = head.push; + head.push = () => ({ dispose: () => { + }, patch: () => { + }, _poll: () => { + } }); + return () => { + head.push = realPush; + }; +} +const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defineNuxtPlugin({ + name: "nuxt:head", + enforce: "pre", + setup(nuxtApp) { + const head = nuxtApp.ssrContext.head; + if (nuxtApp.ssrContext.islandContext) { + const unfreeze = freezeHead(head); + nuxtApp.hooks.hookOnce("app:created", unfreeze); + } + nuxtApp.vueApp.use(head); + } +}); +function toArray$1(value) { + return Array.isArray(value) ? value : [value]; +} +const _routes = [ + { + name: "index", + path: "/", + meta: { "middleware": "auth" }, + component: () => import("./_nuxt/index-92TOgIUU.js") + }, + { + name: "login", + path: "/login", + component: () => import("./_nuxt/login-CLIOTi6c.js") + }, + { + name: "permissions", + path: "/permissions", + meta: { "middleware": "auth" }, + component: () => import("./_nuxt/index-nGH29Vk2.js") + } +]; +const _wrapInTransition = (props, children) => { + return { default: () => children.default?.() }; +}; +const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g; +const ROUTE_KEY_SYMBOLS_RE = /(:\w+)[?+*]/g; +const ROUTE_KEY_NORMAL_RE = /:\w+/g; +function generateRouteKey(route) { + const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, "$1").replace(ROUTE_KEY_SYMBOLS_RE, "$1").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || ""); + return typeof source === "function" ? source(route) : source; +} +function isChangingPage(to, from) { + if (to === from || from === START_LOCATION) { + return false; + } + if (generateRouteKey(to) !== generateRouteKey(from)) { + return true; + } + const areComponentsSame = to.matched.every( + (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default + ); + if (areComponentsSame) { + return false; + } + return true; +} +function toArray(value) { + return Array.isArray(value) ? value : [value]; +} +function _mergeTransitionProps(routeProps) { + const _props = []; + for (const prop of routeProps) { + if (!prop) { + continue; + } + _props.push({ + ...prop, + onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0, + onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0 + }); + } + return defu(..._props); +} +const routerOptions0 = { + scrollBehavior(to, from, savedPosition) { + const nuxtApp = useNuxtApp(); + const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? "auto"; + if (to.path.replace(/\/$/, "") === from.path.replace(/\/$/, "")) { + if (from.hash && !to.hash) { + return { left: 0, top: 0 }; + } + if (to.hash) { + return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour }; + } + return false; + } + const routeAllowsScrollToTop = typeof to.meta.scrollToTop === "function" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop; + if (routeAllowsScrollToTop === false) { + return false; + } + if (from === START_LOCATION) { + return _calculatePosition(to, from, savedPosition, hashScrollBehaviour); + } + return new Promise((resolve) => { + const doScroll = () => { + requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour))); + }; + nuxtApp.hooks.hookOnce("page:loading:end", () => { + const transitionPromise = nuxtApp["~transitionPromise"]; + if (transitionPromise) { + transitionPromise.then(doScroll); + } else { + doScroll(); + } + }); + }); + } +}; +function _getHashElementScrollMarginTop(selector) { + try { + const elem = (void 0).querySelector(selector); + if (elem) { + return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle((void 0).documentElement).scrollPaddingTop) || 0); + } + } catch { + } + return 0; +} +function _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) { + if (savedPosition) { + return savedPosition; + } + if (to.hash) { + return { + el: to.hash, + top: _getHashElementScrollMarginTop(to.hash), + behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : "instant" + }; + } + return { + left: 0, + top: 0 + }; +} +const configRouterOptions = { + hashMode: false, + scrollBehaviorType: "auto" +}; +const routerOptions = { + ...configRouterOptions, + ...routerOptions0 +}; +const validate = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to, from) => { + let __temp, __restore; + if (!to.meta?.validate) { + return; + } + const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp); + if (result === true) { + return; + } + const error = createError({ + fatal: false, + // eslint-disable-next-line @typescript-eslint/no-deprecated + status: result && (result.status || result.statusCode) || 404, + // eslint-disable-next-line @typescript-eslint/no-deprecated + statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`, + data: { + path: to.fullPath + } + }); + return error; +}); +const manifest_45route_45rule = /* @__PURE__ */ defineNuxtRouteMiddleware((to) => { + { + return; + } +}); +const globalMiddleware = [ + validate, + manifest_45route_45rule +]; +const namedMiddleware = { + auth: () => import("./_nuxt/auth-D_CY0lMs.js") +}; +Object.assign(/* @__PURE__ */ Object.create(null), {}); +const pageIslandRoutes = Object.assign(/* @__PURE__ */ Object.create(null), {}); +const plugin$1 = /* @__PURE__ */ defineNuxtPlugin({ + name: "nuxt:router", + enforce: "pre", + async setup(nuxtApp) { + let __temp, __restore; + let routerBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL; + const history = routerOptions.history?.(routerBase) ?? createMemoryHistory(routerBase); + const routes = routerOptions.routes ? ([__temp, __restore] = executeAsync(() => routerOptions.routes(_routes)), __temp = await __temp, __restore(), __temp) ?? _routes : _routes; + let startPosition; + const router = createRouter({ + ...routerOptions, + scrollBehavior: (to, from, savedPosition) => { + if (from === START_LOCATION) { + startPosition = savedPosition; + return; + } + if (routerOptions.scrollBehavior) { + router.options.scrollBehavior = routerOptions.scrollBehavior; + if ("scrollRestoration" in (void 0).history) { + const unsub = router.beforeEach(() => { + unsub(); + (void 0).history.scrollRestoration = "manual"; + }); + } + return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition); + } + }, + history, + routes + }); + nuxtApp.vueApp.use(router); + const previousRoute = shallowRef(router.currentRoute.value); + router.afterEach((_to, from) => { + previousRoute.value = from; + }); + Object.defineProperty(nuxtApp.vueApp.config.globalProperties, "previousRoute", { + get: () => previousRoute.value + }); + const initialURL = nuxtApp.ssrContext.url; + const _route = shallowRef(router.currentRoute.value); + const syncCurrentRoute = () => { + _route.value = router.currentRoute.value; + }; + router.afterEach((to, from) => { + const lastTo = to.matched.at(-1)?.components?.default; + const lastFrom = from.matched.at(-1)?.components?.default; + if (lastTo === lastFrom) { + syncCurrentRoute(); + return; + } + if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) { + syncCurrentRoute(); + } + }); + const route = { sync: syncCurrentRoute }; + for (const key in _route.value) { + Object.defineProperty(route, key, { + get: () => _route.value[key], + enumerable: true + }); + } + nuxtApp._route = shallowReactive(route); + nuxtApp._middleware ||= { + global: [], + named: {} + }; + const error = /* @__PURE__ */ useError(); + const isServerPage = nuxtApp.ssrContext?.islandContext?.name?.startsWith("page_"); + if (!nuxtApp.ssrContext?.islandContext || isServerPage) { + router.afterEach(async (to, _from, failure) => { + delete nuxtApp._processingMiddleware; + if (failure) { + await nuxtApp.callHook("page:loading:end"); + } + if (failure?.type === 4) { + return; + } + if (to.redirectedFrom && to.fullPath !== initialURL) { + await nuxtApp.runWithContext(() => navigateTo(to.fullPath || "/")); + } + }); + } + try { + if (true) { + ; + [__temp, __restore] = executeAsync(() => router.push(initialURL)), await __temp, __restore(); + ; + } + ; + [__temp, __restore] = executeAsync(() => router.isReady()), await __temp, __restore(); + ; + } catch (error2) { + [__temp, __restore] = executeAsync(() => nuxtApp.runWithContext(() => showError(error2))), await __temp, __restore(); + } + const resolvedInitialRoute = router.currentRoute.value; + const hasDeferredRoute = false; + syncCurrentRoute(); + if (nuxtApp.ssrContext?.islandContext && !isServerPage) { + return { provide: { router } }; + } + const initialLayout = nuxtApp.payload.state._layout; + router.beforeEach(async (to, from) => { + await nuxtApp.callHook("page:loading:start"); + to.meta = reactive(to.meta); + if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) { + to.meta.layout = initialLayout; + } + nuxtApp._processingMiddleware = true; + if (!nuxtApp.ssrContext?.islandContext || isServerPage) { + const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]); + for (const component of to.matched) { + const componentMiddleware = component.meta.middleware; + if (!componentMiddleware) { + continue; + } + for (const entry2 of toArray$1(componentMiddleware)) { + middlewareEntries.add(entry2); + } + } + const routeRules = getRouteRules({ path: to.path }); + if (routeRules.appMiddleware) { + for (const key in routeRules.appMiddleware) { + if (routeRules.appMiddleware[key]) { + middlewareEntries.add(key); + } else { + middlewareEntries.delete(key); + } + } + } + for (const entry2 of middlewareEntries) { + const middleware = typeof entry2 === "string" ? nuxtApp._middleware.named[entry2] || await namedMiddleware[entry2]?.().then((r) => r.default || r) : entry2; + if (!middleware) { + throw new Error(`Unknown route middleware: '${entry2}'.`); + } + try { + if (false) ; + const result = await nuxtApp.runWithContext(() => middleware(to, from)); + if (true) { + if (result === false || result instanceof Error) { + const error2 = result || createError({ + status: 404, + statusText: `Page Not Found: ${initialURL}` + }); + await nuxtApp.runWithContext(() => showError(error2)); + return false; + } + } + if (result === true) { + continue; + } + if (result === false) { + return result; + } + if (result) { + if (isNuxtError(result) && result.fatal) { + await nuxtApp.runWithContext(() => showError(result)); + } + return result; + } + } catch (err) { + const error2 = createError(err); + if (error2.fatal) { + await nuxtApp.runWithContext(() => showError(error2)); + } + return error2; + } + } + } + }); + if (isServerPage) { + router.beforeResolve((to) => { + const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name]; + const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default; + if (!expected || expected !== actual?.__nuxt_island) { + nuxtApp.ssrContext["~renderResponse"] = { + statusCode: 400, + statusMessage: "Invalid island request path" + }; + return false; + } + }); + } + router.onError(async () => { + delete nuxtApp._processingMiddleware; + await nuxtApp.callHook("page:loading:end"); + }); + router.afterEach((to) => { + if (to.matched.length === 0 && !error.value) { + return nuxtApp.runWithContext(() => showError(createError({ + status: 404, + fatal: false, + statusText: `Page not found: ${to.fullPath}`, + data: { + path: to.fullPath + } + }))); + } + }); + nuxtApp.hooks.hookOnce("app:created", async () => { + try { + if ("name" in resolvedInitialRoute) { + resolvedInitialRoute.name = void 0; + } + if (hasDeferredRoute) ; + else { + await router.replace({ + ...resolvedInitialRoute, + force: true + }); + } + router.options.scrollBehavior = routerOptions.scrollBehavior; + } catch (error2) { + await nuxtApp.runWithContext(() => showError(error2)); + } + }); + return { provide: { router } }; + } +}); +const reducers = [ + ["NuxtError", (data) => isNuxtError(data) && data.toJSON()], + ["EmptyShallowRef", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")], + ["EmptyRef", (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")], + ["ShallowRef", (data) => isRef(data) && isShallow(data) && data.value], + ["ShallowReactive", (data) => isReactive(data) && isShallow(data) && toRaw(data)], + ["Ref", (data) => isRef(data) && data.value], + ["Reactive", (data) => isReactive(data) && toRaw(data)] +]; +const revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms = /* @__PURE__ */ defineNuxtPlugin({ + name: "nuxt:revive-payload:server", + setup() { + for (const [reducer, fn] of reducers) { + definePayloadReducer(reducer, fn); + } + } +}); +defineComponent({ + name: "ServerPlaceholder", + render() { + return createElementBlock("div"); + } +}); +const clientOnlySymbol = /* @__PURE__ */ Symbol.for("nuxt:client-only"); +defineComponent({ + name: "ClientOnly", + inheritAttrs: false, + props: ["fallback", "placeholder", "placeholderTag", "fallbackTag"], + ...false, + setup(props, { slots, attrs }) { + const mounted = shallowRef(false); + const vm = getCurrentInstance(); + if (vm) { + vm._nuxtClientOnly = true; + } + provide(clientOnlySymbol, true); + return () => { + if (mounted.value) { + const vnodes = slots.default?.(); + if (vnodes && vnodes.length === 1) { + return [cloneVNode(vnodes[0], attrs)]; + } + return vnodes; + } + const slot = slots.fallback || slots.placeholder; + if (slot) { + return h(slot); + } + const fallbackStr = props.fallback || props.placeholder || ""; + const fallbackTag = props.fallbackTag || props.placeholderTag || "span"; + return createElementBlock(fallbackTag, attrs, fallbackStr); + }; + } +}); +const plugin = /* @__PURE__ */ defineNuxtPlugin({ + name: "pinia", + setup(nuxtApp) { + const pinia = createPinia(); + nuxtApp.vueApp.use(pinia); + setActivePinia(pinia); + if (nuxtApp.payload && nuxtApp.payload.pinia) { + pinia.state.value = nuxtApp.payload.pinia; + } + return { + provide: { + pinia + } + }; + }, + hooks: { + "app:rendered"() { + const nuxtApp = useNuxtApp(); + nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value; + setActivePinia(void 0); + } + } +}); +const components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 = /* @__PURE__ */ defineNuxtPlugin({ + name: "nuxt:global-components" +}); +const plugins = [ + payloadPlugin, + unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU, + plugin$1, + revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms, + plugin, + components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 +]; +const layouts = { + default: defineAsyncComponent(() => import("./_nuxt/default-DbJQlxCD.js").then((m) => m.default || m)) +}; +const routeRulesMatcher = _routeRulesMatcher; +const LayoutLoader = defineComponent({ + name: "LayoutLoader", + inheritAttrs: false, + props: { + name: String, + layoutProps: Object + }, + setup(props, context) { + return () => h(layouts[props.name], props.layoutProps, context.slots); + } +}); +const nuxtLayoutProps = { + name: { + type: [String, Boolean, Object], + default: null + }, + fallback: { + type: [String, Object], + default: null + } +}; +const __nuxt_component_0 = defineComponent({ + name: "NuxtLayout", + inheritAttrs: false, + props: nuxtLayoutProps, + setup(props, context) { + const nuxtApp = useNuxtApp(); + const injectedRoute = inject(PageRouteSymbol); + const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute(); + const route = shouldUseEagerRoute ? useRoute$1() : injectedRoute; + const layout = computed(() => { + let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? "default"; + if (layout2 && !(layout2 in layouts)) { + if (props.fallback) { + layout2 = unref(props.fallback); + } + } + return layout2; + }); + const layoutRef = shallowRef(); + context.expose({ layoutRef }); + const done = nuxtApp.deferHydration(); + let lastLayout; + return () => { + const hasLayout = !!layout.value && layout.value in layouts; + const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? appLayoutTransition); + const transitionProps = hasTransition && _mergeTransitionProps([ + route?.meta.layoutTransition, + appLayoutTransition, + { + onBeforeLeave() { + nuxtApp["~transitionPromise"] = new Promise((resolve) => { + nuxtApp["~transitionFinish"] = resolve; + }); + }, + onAfterLeave() { + nuxtApp["~transitionFinish"]?.(); + delete nuxtApp["~transitionFinish"]; + delete nuxtApp["~transitionPromise"]; + } + } + ]); + const previouslyRenderedLayout = lastLayout; + lastLayout = layout.value; + return _wrapInTransition(transitionProps, { + default: () => h( + Suspense, + { + suspensible: true, + onResolve: async () => { + await nextTick(done); + } + }, + { + default: () => h( + LayoutProvider, + { + layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }), + key: layout.value || void 0, + name: layout.value, + shouldProvide: !props.name, + isRenderingNewLayout: (name) => { + return name !== previouslyRenderedLayout && name === layout.value; + }, + hasTransition + }, + context.slots + ) + } + ) + }).default(); + }; + } +}); +const LayoutProvider = defineComponent({ + name: "NuxtLayoutProvider", + inheritAttrs: false, + props: { + name: { + type: [String, Boolean] + }, + layoutProps: { + type: Object + }, + hasTransition: { + type: Boolean + }, + shouldProvide: { + type: Boolean + }, + isRenderingNewLayout: { + type: Function, + required: true + } + }, + setup(props, context) { + const name = props.name; + if (props.shouldProvide) { + provide(LayoutMetaSymbol, { + // When name=false, always return true so NuxtPage doesn't skip rendering + isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? "default") + }); + } + const injectedRoute = inject(PageRouteSymbol); + const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute(); + if (isNotWithinNuxtPage) { + const vueRouterRoute = useRoute$1(); + const reactiveChildRoute = {}; + for (const _key in vueRouterRoute) { + const key = _key; + Object.defineProperty(reactiveChildRoute, key, { + enumerable: true, + get: () => { + return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key]; + } + }); + } + provide(PageRouteSymbol, shallowReactive(reactiveChildRoute)); + } + return () => { + if (!name || typeof name === "string" && !(name in layouts)) { + return context.slots.default?.(); + } + return h( + LayoutLoader, + { key: name, layoutProps: props.layoutProps, name }, + context.slots + ); + }; + } +}); +const defineRouteProvider = (name = "RouteProvider") => defineComponent({ + name, + props: { + route: { + type: Object, + required: true + }, + vnode: Object, + vnodeRef: Object, + renderKey: String, + trackRootNodes: Boolean + }, + setup(props) { + const previousKey = props.renderKey; + const previousRoute = props.route; + const route = {}; + for (const key in props.route) { + Object.defineProperty(route, key, { + get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key], + enumerable: true + }); + } + provide(PageRouteSymbol, shallowReactive(route)); + return () => { + if (!props.vnode) { + return props.vnode; + } + return h(props.vnode, { ref: props.vnodeRef }); + }; + } +}); +const RouteProvider = defineRouteProvider(); +const __nuxt_component_1 = defineComponent({ + name: "NuxtPage", + inheritAttrs: false, + props: { + name: { + type: String + }, + transition: { + type: [Boolean, Object], + default: void 0 + }, + keepalive: { + type: [Boolean, Object], + default: void 0 + }, + route: { + type: Object + }, + pageKey: { + type: [Function, String], + default: null + } + }, + setup(props, { attrs, slots, expose }) { + const nuxtApp = useNuxtApp(); + const pageRef = ref(); + inject(PageRouteSymbol, null); + expose({ pageRef }); + inject(LayoutMetaSymbol, null); + nuxtApp.deferHydration(); + return () => { + return h(RouterView, { name: props.name, route: props.route, ...attrs }, { + default: (routeProps) => { + return h(Suspense, { suspensible: true }, { + default() { + return h(RouteProvider, { + vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component, + route: routeProps.route, + vnodeRef: pageRef + }); + } + }); + } + }); + }; + } +}); +function normalizeSlot(slot, data) { + const slotContent = slot(data); + return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent); +} +const _export_sfc = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; +const _sfc_main$2 = {}; +function _sfc_ssrRender(_ctx, _push, _parent, _attrs) { + const _component_NuxtLayout = __nuxt_component_0; + const _component_NuxtPage = __nuxt_component_1; + _push(ssrRenderComponent(_component_NuxtLayout, _attrs, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(ssrRenderComponent(_component_NuxtPage, null, null, _parent2, _scopeId)); + } else { + return [ + createVNode(_component_NuxtPage) + ]; + } + }), + _: 1 + }, _parent)); +} +const _sfc_setup$2 = _sfc_main$2.setup; +_sfc_main$2.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue"); + return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0; +}; +const AppComponent = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender]]); +const _sfc_main$1 = { + __name: "nuxt-error-page", + __ssrInlineRender: true, + props: { + error: Object + }, + setup(__props) { + const props = __props; + const _error = props.error; + const status = Number(_error.statusCode || 500); + const is404 = status === 404; + const statusText = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error"); + const description = _error.message || _error.toString(); + const stack = void 0; + const _Error404 = defineAsyncComponent(() => import("./_nuxt/error-404-BDmq62MM.js")); + const _Error = defineAsyncComponent(() => import("./_nuxt/error-500-gzzPk_-U.js")); + const ErrorTemplate = is404 ? _Error404 : _Error; + return (_ctx, _push, _parent, _attrs) => { + _push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({ status: unref(status), statusText: unref(statusText), statusCode: unref(status), statusMessage: unref(statusText), description: unref(description), stack: unref(stack) }, _attrs), null, _parent)); + }; + } +}; +const _sfc_setup$1 = _sfc_main$1.setup; +_sfc_main$1.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-error-page.vue"); + return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; +}; +const _sfc_main = { + __name: "nuxt-root", + __ssrInlineRender: true, + setup(__props) { + const IslandRenderer = () => null; + const nuxtApp = useNuxtApp(); + nuxtApp.deferHydration(); + nuxtApp.ssrContext.url; + const SingleRenderer = false; + provide(PageRouteSymbol, useRoute()); + nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup", []); + const error = /* @__PURE__ */ useError(); + const abortRender = error.value && !nuxtApp.ssrContext.error; + function invokeAppErrorHandler(err, target, info) { + const errorHandler = nuxtApp.vueApp.config.errorHandler; + if (errorHandler && !errorHandler.__nuxt_default) { + try { + errorHandler(err, target, info); + } catch (handlerError) { + console.error("[nuxt] Error in `app.config.errorHandler`", handlerError); + } + } + } + onErrorCaptured((err, target, info) => { + nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError)); + { + const p = nuxtApp.runWithContext(() => showError(err)); + onServerPrefetch(() => p); + invokeAppErrorHandler(err, target, info); + return false; + } + }); + const islandContext = nuxtApp.ssrContext.islandContext; + return (_ctx, _push, _parent, _attrs) => { + ssrRenderSuspense(_push, { + default: () => { + if (unref(abortRender)) { + _push(`
`); + } else if (unref(error)) { + _push(ssrRenderComponent(unref(_sfc_main$1), { error: unref(error) }, null, _parent)); + } else if (unref(islandContext)) { + _push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent)); + } else if (unref(SingleRenderer)) { + ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent); + } else { + _push(ssrRenderComponent(unref(AppComponent), null, null, _parent)); + } + }, + _: 1 + }); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-root.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +let entry; +{ + entry = async function createNuxtAppServer(ssrContext) { + const vueApp = createApp(_sfc_main); + const nuxt = createNuxtApp({ vueApp, ssrContext }); + try { + await applyPlugins(nuxt, plugins); + await nuxt.hooks.callHook("app:created", vueApp); + } catch (error) { + await nuxt.hooks.callHook("app:error", error); + nuxt.payload.error ||= createError(error); + } + if (ssrContext && (ssrContext["~renderResponse"] || ssrContext._renderResponse)) { + throw new Error("skipping render"); + } + return vueApp; + }; +} +const entry_default = ((ssrContext) => entry(ssrContext)); +export { + _export_sfc as _, + useNuxtApp as a, + useRuntimeConfig as b, + nuxtLinkDefaults as c, + defineNuxtRouteMiddleware as d, + entry_default as default, + encodeRoutePath as e, + navigateTo as n, + resolveRouteObject as r, + tryUseNuxtApp as t, + useRouter as u +}; +//# sourceMappingURL=server.mjs.map diff --git a/frontend_admin/.nuxt/dist/server/server.mjs.map b/frontend_admin/.nuxt/dist/server/server.mjs.map new file mode 100644 index 0000000..b06de1e --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/server.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"server.mjs","sources":["../../../virtual:nuxt:%2Fapp%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fmiddleware.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.islands.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../node_modules/nuxt/dist/app/components/client-only.js","../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.plugin.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fplugins.server.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Flayouts.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[]}\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as indexndqPXFtP262szLmLJV4PriPTgAg5k_457f05QyTfosBXQMeta } from \"/app/pages/index.vue?macro=true\";\nimport { default as loginKGJhNRZhH4FU_45RnHfId5ZCGRhKzPnQPbdAbdNd47TwsMeta } from \"/app/pages/login.vue?macro=true\";\nimport { default as indexmFHuXm1TRDyTx4rDob8_G9bfnp43YCs_HCFMFiG56X4Meta } from \"/app/pages/permissions/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/index.vue\")\n },\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(\"/app/pages/login.vue\")\n },\n {\n name: \"permissions\",\n path: \"/permissions\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/permissions/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/app/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/app/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/app/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {\n auth: () => import(\"/app/middleware/auth.ts\")\n}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createElementBlock, defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(ctx._.vnode.el, STATIC_DIV);\n };\n } else {\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M from \"/app/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/app/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/app/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/app/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs from \"/app/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/app/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M,\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n default: defineAsyncComponent(() => import(\"/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n\n\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"names":["$fetch","plugin","provide","plugins","createH3Error","routeRulesMatcher","toArray","__executeAsync","entry","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,9,10,11,12,13,14,16,17,19,20,23,24,25,26,27,31,32,33,35,36,37]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/server.mjs.map.json b/frontend_admin/.nuxt/dist/server/server.mjs.map.json new file mode 100644 index 0000000..1c67766 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/server.mjs.map.json @@ -0,0 +1 @@ +{"file":"server.mjs","mappings":"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","names":["$fetch","plugin","provide","plugins","createH3Error","routeRulesMatcher","toArray","__executeAsync","entry","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../virtual:nuxt:%2Fapp%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fmiddleware.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.islands.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../node_modules/nuxt/dist/app/components/client-only.js","../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.plugin.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fplugins.server.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Flayouts.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[]}\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as indexndqPXFtP262szLmLJV4PriPTgAg5k_457f05QyTfosBXQMeta } from \"/app/pages/index.vue?macro=true\";\nimport { default as loginKGJhNRZhH4FU_45RnHfId5ZCGRhKzPnQPbdAbdNd47TwsMeta } from \"/app/pages/login.vue?macro=true\";\nimport { default as indexmFHuXm1TRDyTx4rDob8_G9bfnp43YCs_HCFMFiG56X4Meta } from \"/app/pages/permissions/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/index.vue\")\n },\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(\"/app/pages/login.vue\")\n },\n {\n name: \"permissions\",\n path: \"/permissions\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/permissions/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/app/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/app/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/app/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {\n auth: () => import(\"/app/middleware/auth.ts\")\n}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createElementBlock, defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(ctx._.vnode.el, STATIC_DIV);\n };\n } else {\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M from \"/app/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/app/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/app/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/app/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs from \"/app/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/app/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M,\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n default: defineAsyncComponent(() => import(\"/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n\n\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/styles.mjs b/frontend_admin/.nuxt/dist/server/styles.mjs new file mode 100644 index 0000000..dd14e3c --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/styles.mjs @@ -0,0 +1,7 @@ +const interopDefault = r => r.default || r || [] +export default { + "node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.BhrIOCGw.mjs').then(interopDefault), + "app.vue": () => import('./_nuxt/app-styles.BKebClGy.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/components/error-404.vue": () => import('./_nuxt/error-404-styles.CiJjK6WX.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/components/error-500.vue": () => import('./_nuxt/error-500-styles.ulHNpcF1.mjs').then(interopDefault) +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/imports.d.ts b/frontend_admin/.nuxt/imports.d.ts new file mode 100644 index 0000000..6d9f407 --- /dev/null +++ b/frontend_admin/.nuxt/imports.d.ts @@ -0,0 +1,35 @@ +export { useScriptTriggerConsent, useScriptEventPage, useScriptTriggerElement, useScript, useScriptGoogleAnalytics, useScriptPlausibleAnalytics, useScriptCrisp, useScriptClarity, useScriptCloudflareWebAnalytics, useScriptVercelAnalytics, useScriptPostHog, useScriptFathomAnalytics, useScriptMatomoAnalytics, useScriptMixpanelAnalytics, useScriptBingUet, useScriptGoogleTagManager, useScriptGoogleAdsense, useScriptGoogleRecaptcha, useScriptGoogleSignIn, useScriptSegment, useScriptMetaPixel, useScriptXPixel, useScriptTikTokPixel, useScriptIntercom, useScriptHotjar, useScriptStripe, useScriptLemonSqueezy, useScriptVimeoPlayer, useScriptYouTubePlayer, useScriptGoogleMaps, useScriptNpm, useScriptUmamiAnalytics, useScriptSnapchatPixel, useScriptRybbitAnalytics, useScriptDatabuddyAnalytics, useScriptRedditPixel, useScriptPayPal, useScriptGravatar, useScriptAhrefsAnalytics, useScriptCalendly, useScriptLinkedInInsight, useScriptUsercentrics, useScriptSpeedCurve } from '#app/composables/script-stubs'; +export { isVue2, isVue3 } from 'vue-demi'; +export { defineNuxtLink } from '#app/components/nuxt-link'; +export { useNuxtApp, tryUseNuxtApp, defineNuxtPlugin, definePayloadPlugin, useRuntimeConfig, defineAppConfig } from '#app/nuxt'; +export { useAppConfig, updateAppConfig } from '#app/config'; +export { defineNuxtComponent } from '#app/composables/component'; +export { useAsyncData, useLazyAsyncData, useNuxtData, refreshNuxtData, clearNuxtData } from '#app/composables/asyncData'; +export { useHydration } from '#app/composables/hydrate'; +export { callOnce } from '#app/composables/once'; +export { useState, clearNuxtState } from '#app/composables/state'; +export { clearError, createError, isNuxtError, showError, useError } from '#app/composables/error'; +export { useFetch, useLazyFetch } from '#app/composables/fetch'; +export { useCookie, refreshCookie } from '#app/composables/cookie'; +export { onPrehydrate, prerenderRoutes, useRequestHeader, useRequestHeaders, useResponseHeader, useRequestEvent, useRequestFetch, setResponseStatus } from '#app/composables/ssr'; +export { onNuxtReady } from '#app/composables/ready'; +export { preloadComponents, prefetchComponents, preloadRouteComponents } from '#app/composables/preload'; +export { abortNavigation, addRouteMiddleware, defineNuxtRouteMiddleware, setPageLayout, navigateTo, useRoute, useRouter } from '#app/composables/router'; +export { isPrerendered, loadPayload, preloadPayload, definePayloadReducer, definePayloadReviver } from '#app/composables/payload'; +export { useLoadingIndicator } from '#app/composables/loading-indicator'; +export { getAppManifest, getRouteRules } from '#app/composables/manifest'; +export { reloadNuxtApp } from '#app/composables/chunk'; +export { useRequestURL } from '#app/composables/url'; +export { usePreviewMode } from '#app/composables/preview'; +export { useRouteAnnouncer } from '#app/composables/route-announcer'; +export { useRuntimeHook } from '#app/composables/runtime-hook'; +export { useHead, useHeadSafe, useServerHeadSafe, useServerHead, useSeoMeta, useServerSeoMeta, injectHead } from '#app/composables/head'; +export { onBeforeRouteLeave, onBeforeRouteUpdate, useLink } from 'vue-router'; +export { withCtx, withDirectives, withKeys, withMemo, withModifiers, withScopeId, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, computed, customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref, watch, watchEffect, watchPostEffect, watchSyncEffect, onWatcherCleanup, isShallow, effect, effectScope, getCurrentScope, onScopeDispose, defineComponent, defineAsyncComponent, resolveComponent, getCurrentInstance, h, inject, hasInjectionContext, nextTick, provide, toValue, useModel, useAttrs, useCssModule, useSlots, useTransitionState, useId, useTemplateRef, useShadowRoot, useCssVars, Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'; +export { requestIdleCallback, cancelIdleCallback } from '#app/compat/idle-callback'; +export { setInterval } from '#app/compat/interval'; +export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables'; +export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration'; +export { useAuthStore, UserProfile } from '../stores/auth'; +export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../node_modules/@pinia/nuxt/dist/runtime/composables'; +export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools'; \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/latest.json b/frontend_admin/.nuxt/manifest/latest.json new file mode 100644 index 0000000..9c58b77 --- /dev/null +++ b/frontend_admin/.nuxt/manifest/latest.json @@ -0,0 +1 @@ +{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021} \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json b/frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json new file mode 100644 index 0000000..baae62d --- /dev/null +++ b/frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json @@ -0,0 +1 @@ +{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/meta/dev.json b/frontend_admin/.nuxt/manifest/meta/dev.json new file mode 100644 index 0000000..f5503bc --- /dev/null +++ b/frontend_admin/.nuxt/manifest/meta/dev.json @@ -0,0 +1 @@ +{"id":"dev","timestamp":1782300411347,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/nitro.json b/frontend_admin/.nuxt/nitro.json new file mode 100644 index 0000000..ef7702f --- /dev/null +++ b/frontend_admin/.nuxt/nitro.json @@ -0,0 +1,17 @@ +{ + "date": "2026-06-24T11:26:57.278Z", + "preset": "nitro-dev", + "framework": { + "name": "nuxt", + "version": "3.21.8" + }, + "versions": { + "nitro": "2.13.4" + }, + "dev": { + "pid": 19, + "workerAddress": { + "socketPath": "\u0000nitro-worker-19-7-7-7587.sock" + } + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/nuxt.d.ts b/frontend_admin/.nuxt/nuxt.d.ts new file mode 100644 index 0000000..746c708 --- /dev/null +++ b/frontend_admin/.nuxt/nuxt.d.ts @@ -0,0 +1,26 @@ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + +export {} diff --git a/frontend_admin/.nuxt/nuxt.json b/frontend_admin/.nuxt/nuxt.json new file mode 100644 index 0000000..2234676 --- /dev/null +++ b/frontend_admin/.nuxt/nuxt.json @@ -0,0 +1,9 @@ +{ + "_hash": "Z3mImYPYu-OBz_fuutJJXhshqPqsB4yMhWVOVftaxzc", + "project": { + "rootDir": "/app" + }, + "versions": { + "nuxt": "3.21.8" + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/schema/nuxt.schema.d.ts b/frontend_admin/.nuxt/schema/nuxt.schema.d.ts new file mode 100644 index 0000000..d9d266c --- /dev/null +++ b/frontend_admin/.nuxt/schema/nuxt.schema.d.ts @@ -0,0 +1,17 @@ +export interface NuxtCustomSchema { + +} +export type CustomAppConfig = Exclude +type _CustomAppConfig = CustomAppConfig + +declare module '@nuxt/schema' { + interface NuxtConfig extends Omit {} + interface NuxtOptions extends Omit {} + interface CustomAppConfig extends _CustomAppConfig {} +} + +declare module 'nuxt/schema' { + interface NuxtConfig extends Omit {} + interface NuxtOptions extends Omit {} + interface CustomAppConfig extends _CustomAppConfig {} +} diff --git a/frontend_admin/.nuxt/schema/nuxt.schema.json b/frontend_admin/.nuxt/schema/nuxt.schema.json new file mode 100644 index 0000000..034ff69 --- /dev/null +++ b/frontend_admin/.nuxt/schema/nuxt.schema.json @@ -0,0 +1,3 @@ +{ + "id": "#" +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/tailwind/postcss.mjs b/frontend_admin/.nuxt/tailwind/postcss.mjs new file mode 100644 index 0000000..92d07e8 --- /dev/null +++ b/frontend_admin/.nuxt/tailwind/postcss.mjs @@ -0,0 +1,13 @@ +// generated by the @nuxtjs/tailwindcss module at 6/24/2026, 11:26:52 AM +import "@nuxtjs/tailwindcss/config-ctx" +import configMerger from "@nuxtjs/tailwindcss/merger"; + +; +const config = [ +{"content":{"files":["/app/components/**/*.{vue,js,jsx,mjs,ts,tsx}","/app/components/global/**/*.{vue,js,jsx,mjs,ts,tsx}","/app/components/**/*.{vue,js,jsx,mjs,ts,tsx}","/app/layouts/**/*.{vue,js,jsx,mjs,ts,tsx}","/app/plugins/**/*.{js,ts,mjs}","/app/composables/**/*.{js,ts,mjs}","/app/utils/**/*.{js,ts,mjs}","/app/pages/**/*.{vue,js,jsx,mjs,ts,tsx}","/app/{A,a}pp.{vue,js,jsx,mjs,ts,tsx}","/app/{E,e}rror.{vue,js,jsx,mjs,ts,tsx}","/app/app.config.{js,ts,mjs}"]}}, +{"content":["./components/**/*.{vue,js,ts}","./layouts/**/*.{vue,js,ts}","./pages/**/*.{vue,js,ts}","./middleware/**/*.{js,ts}","./app.vue"],"theme":{"extend":{}}} +].reduce((acc, curr) => configMerger(acc, curr), {}); + +const resolvedConfig = config; + +export default resolvedConfig; \ No newline at end of file diff --git a/frontend_admin/.nuxt/tsconfig.json b/frontend_admin/.nuxt/tsconfig.json new file mode 100644 index 0000000..7d16e88 --- /dev/null +++ b/frontend_admin/.nuxt/tsconfig.json @@ -0,0 +1,175 @@ +{ + "compilerOptions": { + "paths": { + "@unhead/vue": [ + "../node_modules/@unhead/vue" + ], + "@nuxt/devtools": [ + "../node_modules/@nuxt/devtools" + ], + "@vue/runtime-core": [ + "../node_modules/@vue/runtime-core" + ], + "@vue/compiler-sfc": [ + "../node_modules/@vue/compiler-sfc" + ], + "@nuxt/schema": [ + "../node_modules/@nuxt/schema" + ], + "nuxt": [ + "../node_modules/nuxt" + ], + "nitropack": [ + "../node_modules/nitropack" + ], + "defu": [ + "../node_modules/defu" + ], + "h3": [ + "../node_modules/h3" + ], + "consola": [ + "../node_modules/consola" + ], + "ofetch": [ + "../node_modules/ofetch" + ], + "crossws": [ + "../node_modules/crossws" + ], + "unplugin-vue-router/client": [ + "../node_modules/unplugin-vue-router/client" + ], + "vite/client": [ + "../node_modules/vite/client" + ], + "nitropack/types": [ + "../node_modules/nitropack/types" + ], + "nitropack/runtime": [ + "../node_modules/nitropack/runtime" + ], + "~": [ + ".." + ], + "~/*": [ + "../*" + ], + "@": [ + ".." + ], + "@/*": [ + "../*" + ], + "~~": [ + ".." + ], + "~~/*": [ + "../*" + ], + "@@": [ + ".." + ], + "@@/*": [ + "../*" + ], + "#shared": [ + "../shared" + ], + "#shared/*": [ + "../shared/*" + ], + "assets": [ + "../assets" + ], + "assets/*": [ + "../assets/*" + ], + "public": [ + "../public" + ], + "public/*": [ + "../public/*" + ], + "#server": [ + "../server" + ], + "#server/*": [ + "../server/*" + ], + "#app": [ + "../node_modules/nuxt/dist/app" + ], + "#app/*": [ + "../node_modules/nuxt/dist/app/*" + ], + "vue-demi": [ + "../node_modules/nuxt/dist/app/compat/vue-demi" + ], + "#vue-router": [ + "../node_modules/vue-router" + ], + "#unhead/composables": [ + "../node_modules/nuxt/dist/head/runtime/composables/v3" + ], + "#imports": [ + "./imports" + ], + "#app-manifest": [ + "./manifest/meta/dev.json" + ], + "#components": [ + "./components" + ], + "#build": [ + "." + ], + "#build/*": [ + "./*" + ] + }, + "esModuleInterop": true, + "skipLibCheck": true, + "target": "ESNext", + "allowJs": true, + "resolveJsonModule": true, + "moduleDetection": "force", + "isolatedModules": true, + "verbatimModuleSyntax": true, + "allowArbitraryExtensions": true, + "strict": true, + "noUncheckedIndexedAccess": false, + "forceConsistentCasingInFileNames": true, + "noImplicitOverride": true, + "module": "ESNext", + "noEmit": true, + "lib": [ + "ESNext", + "dom", + "dom.iterable", + "webworker" + ], + "jsx": "preserve", + "jsxImportSource": "vue", + "types": [], + "moduleResolution": "Bundler", + "useDefineForClassFields": true, + "noImplicitThis": true, + "allowSyntheticDefaultImports": true + }, + "include": [ + "../**/*", + "../.config/nuxt.*", + "./nuxt.d.ts", + "../node_modules/runtime", + "../node_modules/dist/runtime", + ".." + ], + "exclude": [ + "../dist", + "../.data", + "../node_modules/runtime/server", + "../node_modules/dist/runtime/server", + "dev" + ] +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/tsconfig.server.json b/frontend_admin/.nuxt/tsconfig.server.json new file mode 100644 index 0000000..004d117 --- /dev/null +++ b/frontend_admin/.nuxt/tsconfig.server.json @@ -0,0 +1,143 @@ +{ + "compilerOptions": { + "forceConsistentCasingInFileNames": true, + "strict": true, + "noEmit": true, + "skipLibCheck": true, + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Bundler", + "allowJs": true, + "resolveJsonModule": true, + "jsx": "preserve", + "allowSyntheticDefaultImports": true, + "jsxFactory": "h", + "jsxFragmentFactory": "Fragment", + "paths": { + "#imports": [ + "./types/nitro-imports" + ], + "~/*": [ + "../*" + ], + "@/*": [ + "../*" + ], + "~~/*": [ + "../*" + ], + "@@/*": [ + "../*" + ], + "@unhead/vue": [ + "../node_modules/@unhead/vue" + ], + "@nuxt/devtools": [ + "../node_modules/@nuxt/devtools" + ], + "@vue/runtime-core": [ + "../node_modules/@vue/runtime-core" + ], + "@vue/compiler-sfc": [ + "../node_modules/@vue/compiler-sfc" + ], + "@nuxt/schema": [ + "../node_modules/@nuxt/schema" + ], + "nuxt": [ + "../node_modules/nuxt" + ], + "nitropack": [ + "../node_modules/nitropack" + ], + "defu": [ + "../node_modules/defu" + ], + "h3": [ + "../node_modules/h3" + ], + "consola": [ + "../node_modules/consola" + ], + "ofetch": [ + "../node_modules/ofetch" + ], + "crossws": [ + "../node_modules/crossws" + ], + "unplugin-vue-router/client": [ + "../node_modules/unplugin-vue-router/client" + ], + "vite/client": [ + "../node_modules/vite/client" + ], + "nitropack/types": [ + "../node_modules/nitropack/types" + ], + "nitropack/runtime": [ + "../node_modules/nitropack/runtime" + ], + "#shared": [ + "../shared" + ], + "#shared/*": [ + "../shared/*" + ], + "assets": [ + "../assets" + ], + "assets/*": [ + "../assets/*" + ], + "public": [ + "../public" + ], + "public/*": [ + "../public/*" + ], + "#server": [ + "../server" + ], + "#server/*": [ + "../server/*" + ], + "#build": [ + "./" + ], + "#build/*": [ + "./*" + ], + "#internal/nuxt/paths": [ + "../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths" + ], + "#unhead/composables": [ + "../node_modules/nuxt/dist/head/runtime/composables/v3" + ] + }, + "lib": [ + "esnext", + "webworker", + "dom.iterable" + ], + "noUncheckedIndexedAccess": true, + "allowArbitraryExtensions": true + }, + "include": [ + "./types/nitro-nuxt.d.ts", + "../node_modules/runtime/server", + "../node_modules/dist/runtime/server", + "../server/**/*", + "../shared/**/*.d.ts", + "./types/nitro.d.ts", + "../**/*" + ], + "exclude": [ + "../node_modules", + "../node_modules/nuxt/node_modules", + "../node_modules/@nuxtjs/tailwindcss/node_modules", + "../node_modules/@pinia/nuxt/node_modules", + "../node_modules/@nuxt/devtools/node_modules", + "../node_modules/@nuxt/telemetry/node_modules", + "../dist" + ] +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/app-defaults.d.ts b/frontend_admin/.nuxt/types/app-defaults.d.ts new file mode 100644 index 0000000..7a36d00 --- /dev/null +++ b/frontend_admin/.nuxt/types/app-defaults.d.ts @@ -0,0 +1,7 @@ + +declare module 'nuxt/app/defaults' { + type DefaultAsyncDataErrorValue = null + type DefaultAsyncDataValue = null + type DefaultErrorValue = null + type DedupeOption = boolean | 'cancel' | 'defer' +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/app.config.d.ts b/frontend_admin/.nuxt/types/app.config.d.ts new file mode 100644 index 0000000..23d972d --- /dev/null +++ b/frontend_admin/.nuxt/types/app.config.d.ts @@ -0,0 +1,31 @@ + +import type { CustomAppConfig } from 'nuxt/schema' +import type { Defu } from 'defu' + + +declare const inlineConfig = { + "nuxt": {} +} +type ResolvedAppConfig = Defu +type IsAny = 0 extends 1 & T ? true : false + +type MergedAppConfig, Custom extends Record> = { + [K in keyof (Resolved & Custom)]: K extends keyof Custom + ? unknown extends Custom[K] + ? Resolved[K] + : IsAny extends true + ? Resolved[K] + : Custom[K] extends Record + ? Resolved[K] extends Record + ? MergedAppConfig + : Exclude + : Exclude + : Resolved[K] +} + +declare module 'nuxt/schema' { + interface AppConfig extends MergedAppConfig { } +} +declare module '@nuxt/schema' { + interface AppConfig extends MergedAppConfig { } +} diff --git a/frontend_admin/.nuxt/types/build.d.ts b/frontend_admin/.nuxt/types/build.d.ts new file mode 100644 index 0000000..a1cdae5 --- /dev/null +++ b/frontend_admin/.nuxt/types/build.d.ts @@ -0,0 +1,26 @@ +declare module "#build/app-component.mjs"; +declare module "#build/nitro.client.mjs"; +declare module "#build/plugins.client.mjs"; +declare module "#build/css.mjs"; +declare module "#build/fetch.mjs"; +declare module "#build/error-component.mjs"; +declare module "#build/global-polyfills.mjs"; +declare module "#build/layouts.mjs"; +declare module "#build/middleware.mjs"; +declare module "#build/nuxt.config.mjs"; +declare module "#build/paths.mjs"; +declare module "#build/root-component.mjs"; +declare module "#build/plugins.server.mjs"; +declare module "#build/test-component-wrapper.mjs"; +declare module "#build/devtools/settings.mjs"; +declare module "#build/runtime.vue-devtools-client.mO0jQZn70aHSC8aSferkiM7YJfzA1Me1TLPRySMCbq4.js"; +declare module "#build/routes.mjs"; +declare module "#build/pages.mjs"; +declare module "#build/router.options.mjs"; +declare module "#build/unhead-options.mjs"; +declare module "#build/unhead.config.mjs"; +declare module "#build/components.plugin.mjs"; +declare module "#build/component-names.mjs"; +declare module "#build/components.islands.mjs"; +declare module "#build/component-chunk.mjs"; +declare module "#build/route-rules.mjs"; diff --git a/frontend_admin/.nuxt/types/builder-env.d.ts b/frontend_admin/.nuxt/types/builder-env.d.ts new file mode 100644 index 0000000..0eb1329 --- /dev/null +++ b/frontend_admin/.nuxt/types/builder-env.d.ts @@ -0,0 +1 @@ +import "vite/client"; \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/components.d.ts b/frontend_admin/.nuxt/types/components.d.ts new file mode 100644 index 0000000..bdded17 --- /dev/null +++ b/frontend_admin/.nuxt/types/components.d.ts @@ -0,0 +1,69 @@ + +import type { DefineComponent, SlotsType } from 'vue' +type IslandComponent = DefineComponent<{}, {refresh: () => Promise}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>> & T + +type HydrationStrategies = { + hydrateOnVisible?: IntersectionObserverInit | true + hydrateOnIdle?: number | true + hydrateOnInteraction?: keyof HTMLElementEventMap | Array | true + hydrateOnMediaQuery?: string + hydrateAfter?: number + hydrateWhen?: boolean + hydrateNever?: true +} +type LazyComponent = DefineComponent void }> & T + +interface _GlobalComponents { + NuxtWelcome: typeof import("../../node_modules/nuxt/dist/app/components/welcome.vue")['default'] + NuxtLayout: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-layout")['default'] + NuxtErrorBoundary: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default'] + ClientOnly: typeof import("../../node_modules/nuxt/dist/app/components/client-only")['default'] + DevOnly: typeof import("../../node_modules/nuxt/dist/app/components/dev-only")['default'] + ServerPlaceholder: typeof import("../../node_modules/nuxt/dist/app/components/server-placeholder")['default'] + NuxtLink: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-link")['default'] + NuxtLoadingIndicator: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default'] + NuxtTime: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-time.vue")['default'] + NuxtRouteAnnouncer: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default'] + NuxtImg: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg'] + NuxtPicture: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture'] + NuxtPage: typeof import("../../node_modules/nuxt/dist/pages/runtime/page")['default'] + NoScript: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['NoScript'] + Link: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Link'] + Base: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Base'] + Title: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Title'] + Meta: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Meta'] + Style: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Style'] + Head: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Head'] + Html: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Html'] + Body: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Body'] + NuxtIsland: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-island")['default'] + LazyNuxtWelcome: LazyComponent + LazyNuxtLayout: LazyComponent + LazyNuxtErrorBoundary: LazyComponent + LazyClientOnly: LazyComponent + LazyDevOnly: LazyComponent + LazyServerPlaceholder: LazyComponent + LazyNuxtLink: LazyComponent + LazyNuxtLoadingIndicator: LazyComponent + LazyNuxtTime: LazyComponent + LazyNuxtRouteAnnouncer: LazyComponent + LazyNuxtImg: LazyComponent + LazyNuxtPicture: LazyComponent + LazyNuxtPage: LazyComponent + LazyNoScript: LazyComponent + LazyLink: LazyComponent + LazyBase: LazyComponent + LazyTitle: LazyComponent + LazyMeta: LazyComponent + LazyStyle: LazyComponent + LazyHead: LazyComponent + LazyHtml: LazyComponent + LazyBody: LazyComponent + LazyNuxtIsland: LazyComponent +} + +declare module 'vue' { + export interface GlobalComponents extends _GlobalComponents { } +} + +export {} diff --git a/frontend_admin/.nuxt/types/imports.d.ts b/frontend_admin/.nuxt/types/imports.d.ts new file mode 100644 index 0000000..11477d9 --- /dev/null +++ b/frontend_admin/.nuxt/types/imports.d.ts @@ -0,0 +1,403 @@ +// Generated by auto imports +export {} +declare global { + const abortNavigation: typeof import('../../node_modules/nuxt/dist/app/composables/router').abortNavigation + const acceptHMRUpdate: typeof import('../../node_modules/@pinia/nuxt/dist/runtime/composables').acceptHMRUpdate + const addRouteMiddleware: typeof import('../../node_modules/nuxt/dist/app/composables/router').addRouteMiddleware + const callOnce: typeof import('../../node_modules/nuxt/dist/app/composables/once').callOnce + const cancelIdleCallback: typeof import('../../node_modules/nuxt/dist/app/compat/idle-callback').cancelIdleCallback + const clearError: typeof import('../../node_modules/nuxt/dist/app/composables/error').clearError + const clearNuxtData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').clearNuxtData + const clearNuxtState: typeof import('../../node_modules/nuxt/dist/app/composables/state').clearNuxtState + const computed: typeof import('vue').computed + const createError: typeof import('../../node_modules/nuxt/dist/app/composables/error').createError + const customRef: typeof import('vue').customRef + const defineAppConfig: typeof import('../../node_modules/nuxt/dist/app/nuxt').defineAppConfig + const defineAsyncComponent: typeof import('vue').defineAsyncComponent + const defineComponent: typeof import('vue').defineComponent + const defineLazyHydrationComponent: typeof import('../../node_modules/nuxt/dist/app/composables/lazy-hydration').defineLazyHydrationComponent + const defineNuxtComponent: typeof import('../../node_modules/nuxt/dist/app/composables/component').defineNuxtComponent + const defineNuxtLink: typeof import('../../node_modules/nuxt/dist/app/components/nuxt-link').defineNuxtLink + const defineNuxtPlugin: typeof import('../../node_modules/nuxt/dist/app/nuxt').defineNuxtPlugin + const defineNuxtRouteMiddleware: typeof import('../../node_modules/nuxt/dist/app/composables/router').defineNuxtRouteMiddleware + const definePageMeta: typeof import('../../node_modules/nuxt/dist/pages/runtime/composables').definePageMeta + const definePayloadPlugin: typeof import('../../node_modules/nuxt/dist/app/nuxt').definePayloadPlugin + const definePayloadReducer: typeof import('../../node_modules/nuxt/dist/app/composables/payload').definePayloadReducer + const definePayloadReviver: typeof import('../../node_modules/nuxt/dist/app/composables/payload').definePayloadReviver + const defineStore: typeof import('../../node_modules/@pinia/nuxt/dist/runtime/composables').defineStore + const effect: typeof import('vue').effect + const effectScope: typeof import('vue').effectScope + const getAppManifest: typeof import('../../node_modules/nuxt/dist/app/composables/manifest').getAppManifest + const getCurrentInstance: typeof import('vue').getCurrentInstance + const getCurrentScope: typeof import('vue').getCurrentScope + const getRouteRules: typeof import('../../node_modules/nuxt/dist/app/composables/manifest').getRouteRules + const h: typeof import('vue').h + const hasInjectionContext: typeof import('vue').hasInjectionContext + const inject: typeof import('vue').inject + const injectHead: typeof import('../../node_modules/nuxt/dist/app/composables/head').injectHead + const isNuxtError: typeof import('../../node_modules/nuxt/dist/app/composables/error').isNuxtError + const isPrerendered: typeof import('../../node_modules/nuxt/dist/app/composables/payload').isPrerendered + const isProxy: typeof import('vue').isProxy + const isReactive: typeof import('vue').isReactive + const isReadonly: typeof import('vue').isReadonly + const isRef: typeof import('vue').isRef + const isShallow: typeof import('vue').isShallow + const isVue2: typeof import('../../node_modules/nuxt/dist/app/compat/vue-demi').isVue2 + const isVue3: typeof import('../../node_modules/nuxt/dist/app/compat/vue-demi').isVue3 + const loadPayload: typeof import('../../node_modules/nuxt/dist/app/composables/payload').loadPayload + const markRaw: typeof import('vue').markRaw + const navigateTo: typeof import('../../node_modules/nuxt/dist/app/composables/router').navigateTo + const nextTick: typeof import('vue').nextTick + const onActivated: typeof import('vue').onActivated + const onBeforeMount: typeof import('vue').onBeforeMount + const onBeforeRouteLeave: typeof import('vue-router').onBeforeRouteLeave + const onBeforeRouteUpdate: typeof import('vue-router').onBeforeRouteUpdate + const onBeforeUnmount: typeof import('vue').onBeforeUnmount + const onBeforeUpdate: typeof import('vue').onBeforeUpdate + const onDeactivated: typeof import('vue').onDeactivated + const onErrorCaptured: typeof import('vue').onErrorCaptured + const onMounted: typeof import('vue').onMounted + const onNuxtReady: typeof import('../../node_modules/nuxt/dist/app/composables/ready').onNuxtReady + const onPrehydrate: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').onPrehydrate + const onRenderTracked: typeof import('vue').onRenderTracked + const onRenderTriggered: typeof import('vue').onRenderTriggered + const onScopeDispose: typeof import('vue').onScopeDispose + const onServerPrefetch: typeof import('vue').onServerPrefetch + const onUnmounted: typeof import('vue').onUnmounted + const onUpdated: typeof import('vue').onUpdated + const onWatcherCleanup: typeof import('vue').onWatcherCleanup + const prefetchComponents: typeof import('../../node_modules/nuxt/dist/app/composables/preload').prefetchComponents + const preloadComponents: typeof import('../../node_modules/nuxt/dist/app/composables/preload').preloadComponents + const preloadPayload: typeof import('../../node_modules/nuxt/dist/app/composables/payload').preloadPayload + const preloadRouteComponents: typeof import('../../node_modules/nuxt/dist/app/composables/preload').preloadRouteComponents + const prerenderRoutes: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').prerenderRoutes + const provide: typeof import('vue').provide + const proxyRefs: typeof import('vue').proxyRefs + const reactive: typeof import('vue').reactive + const readonly: typeof import('vue').readonly + const ref: typeof import('vue').ref + const refreshCookie: typeof import('../../node_modules/nuxt/dist/app/composables/cookie').refreshCookie + const refreshNuxtData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').refreshNuxtData + const reloadNuxtApp: typeof import('../../node_modules/nuxt/dist/app/composables/chunk').reloadNuxtApp + const requestIdleCallback: typeof import('../../node_modules/nuxt/dist/app/compat/idle-callback').requestIdleCallback + const resolveComponent: typeof import('vue').resolveComponent + const setInterval: typeof import('../../node_modules/nuxt/dist/app/compat/interval').setInterval + const setPageLayout: typeof import('../../node_modules/nuxt/dist/app/composables/router').setPageLayout + const setResponseStatus: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').setResponseStatus + const shallowReactive: typeof import('vue').shallowReactive + const shallowReadonly: typeof import('vue').shallowReadonly + const shallowRef: typeof import('vue').shallowRef + const showError: typeof import('../../node_modules/nuxt/dist/app/composables/error').showError + const storeToRefs: typeof import('../../node_modules/@pinia/nuxt/dist/runtime/composables').storeToRefs + const toRaw: typeof import('vue').toRaw + const toRef: typeof import('vue').toRef + const toRefs: typeof import('vue').toRefs + const toValue: typeof import('vue').toValue + const triggerRef: typeof import('vue').triggerRef + const tryUseNuxtApp: typeof import('../../node_modules/nuxt/dist/app/nuxt').tryUseNuxtApp + const unref: typeof import('vue').unref + const updateAppConfig: typeof import('../../node_modules/nuxt/dist/app/config').updateAppConfig + const useAppConfig: typeof import('../../node_modules/nuxt/dist/app/config').useAppConfig + const useAsyncData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useAsyncData + const useAttrs: typeof import('vue').useAttrs + const useAuthStore: typeof import('../../stores/auth').useAuthStore + const useCookie: typeof import('../../node_modules/nuxt/dist/app/composables/cookie').useCookie + const useCssModule: typeof import('vue').useCssModule + const useCssVars: typeof import('vue').useCssVars + const useError: typeof import('../../node_modules/nuxt/dist/app/composables/error').useError + const useFetch: typeof import('../../node_modules/nuxt/dist/app/composables/fetch').useFetch + const useHead: typeof import('../../node_modules/nuxt/dist/app/composables/head').useHead + const useHeadSafe: typeof import('../../node_modules/nuxt/dist/app/composables/head').useHeadSafe + const useHydration: typeof import('../../node_modules/nuxt/dist/app/composables/hydrate').useHydration + const useId: typeof import('vue').useId + const useLazyAsyncData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useLazyAsyncData + const useLazyFetch: typeof import('../../node_modules/nuxt/dist/app/composables/fetch').useLazyFetch + const useLink: typeof import('vue-router').useLink + const useLoadingIndicator: typeof import('../../node_modules/nuxt/dist/app/composables/loading-indicator').useLoadingIndicator + const useModel: typeof import('vue').useModel + const useNuxtApp: typeof import('../../node_modules/nuxt/dist/app/nuxt').useNuxtApp + const useNuxtData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useNuxtData + const useNuxtDevTools: typeof import('../../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools').useNuxtDevTools + const usePinia: typeof import('../../node_modules/@pinia/nuxt/dist/runtime/composables').usePinia + const usePreviewMode: typeof import('../../node_modules/nuxt/dist/app/composables/preview').usePreviewMode + const useRequestEvent: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestEvent + const useRequestFetch: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestFetch + const useRequestHeader: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestHeader + const useRequestHeaders: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestHeaders + const useRequestURL: typeof import('../../node_modules/nuxt/dist/app/composables/url').useRequestURL + const useResponseHeader: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useResponseHeader + const useRoute: typeof import('../../node_modules/nuxt/dist/app/composables/router').useRoute + const useRouteAnnouncer: typeof import('../../node_modules/nuxt/dist/app/composables/route-announcer').useRouteAnnouncer + const useRouter: typeof import('../../node_modules/nuxt/dist/app/composables/router').useRouter + const useRuntimeConfig: typeof import('../../node_modules/nuxt/dist/app/nuxt').useRuntimeConfig + const useRuntimeHook: typeof import('../../node_modules/nuxt/dist/app/composables/runtime-hook').useRuntimeHook + const useScript: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScript + const useScriptAhrefsAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptAhrefsAnalytics + const useScriptBingUet: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptBingUet + const useScriptCalendly: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptCalendly + const useScriptClarity: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptClarity + const useScriptCloudflareWebAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptCloudflareWebAnalytics + const useScriptCrisp: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptCrisp + const useScriptDatabuddyAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptDatabuddyAnalytics + const useScriptEventPage: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptEventPage + const useScriptFathomAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptFathomAnalytics + const useScriptGoogleAdsense: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGoogleAdsense + const useScriptGoogleAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGoogleAnalytics + const useScriptGoogleMaps: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGoogleMaps + const useScriptGoogleRecaptcha: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGoogleRecaptcha + const useScriptGoogleSignIn: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGoogleSignIn + const useScriptGoogleTagManager: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGoogleTagManager + const useScriptGravatar: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptGravatar + const useScriptHotjar: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptHotjar + const useScriptIntercom: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptIntercom + const useScriptLemonSqueezy: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptLemonSqueezy + const useScriptLinkedInInsight: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptLinkedInInsight + const useScriptMatomoAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptMatomoAnalytics + const useScriptMetaPixel: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptMetaPixel + const useScriptMixpanelAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptMixpanelAnalytics + const useScriptNpm: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptNpm + const useScriptPayPal: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptPayPal + const useScriptPlausibleAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptPlausibleAnalytics + const useScriptPostHog: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptPostHog + const useScriptRedditPixel: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptRedditPixel + const useScriptRybbitAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptRybbitAnalytics + const useScriptSegment: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptSegment + const useScriptSnapchatPixel: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptSnapchatPixel + const useScriptSpeedCurve: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptSpeedCurve + const useScriptStripe: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptStripe + const useScriptTikTokPixel: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptTikTokPixel + const useScriptTriggerConsent: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptTriggerConsent + const useScriptTriggerElement: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptTriggerElement + const useScriptUmamiAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptUmamiAnalytics + const useScriptUsercentrics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptUsercentrics + const useScriptVercelAnalytics: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptVercelAnalytics + const useScriptVimeoPlayer: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptVimeoPlayer + const useScriptXPixel: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptXPixel + const useScriptYouTubePlayer: typeof import('../../node_modules/nuxt/dist/app/composables/script-stubs').useScriptYouTubePlayer + const useSeoMeta: typeof import('../../node_modules/nuxt/dist/app/composables/head').useSeoMeta + const useServerHead: typeof import('../../node_modules/nuxt/dist/app/composables/head').useServerHead + const useServerHeadSafe: typeof import('../../node_modules/nuxt/dist/app/composables/head').useServerHeadSafe + const useServerSeoMeta: typeof import('../../node_modules/nuxt/dist/app/composables/head').useServerSeoMeta + const useShadowRoot: typeof import('vue').useShadowRoot + const useSlots: typeof import('vue').useSlots + const useState: typeof import('../../node_modules/nuxt/dist/app/composables/state').useState + const useTemplateRef: typeof import('vue').useTemplateRef + const useTransitionState: typeof import('vue').useTransitionState + const watch: typeof import('vue').watch + const watchEffect: typeof import('vue').watchEffect + const watchPostEffect: typeof import('vue').watchPostEffect + const watchSyncEffect: typeof import('vue').watchSyncEffect + const withCtx: typeof import('vue').withCtx + const withDirectives: typeof import('vue').withDirectives + const withKeys: typeof import('vue').withKeys + const withMemo: typeof import('vue').withMemo + const withModifiers: typeof import('vue').withModifiers + const withScopeId: typeof import('vue').withScopeId +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + import('vue') + // @ts-ignore + export type { UserProfile } from '../../stores/auth' + import('../../stores/auth') +} +// for vue template auto import +import { UnwrapRef } from 'vue' +declare module 'vue' { + interface ComponentCustomProperties { + readonly abortNavigation: UnwrapRef + readonly acceptHMRUpdate: UnwrapRef + readonly addRouteMiddleware: UnwrapRef + readonly callOnce: UnwrapRef + readonly cancelIdleCallback: UnwrapRef + readonly clearError: UnwrapRef + readonly clearNuxtData: UnwrapRef + readonly clearNuxtState: UnwrapRef + readonly computed: UnwrapRef + readonly createError: UnwrapRef + readonly customRef: UnwrapRef + readonly defineAppConfig: UnwrapRef + readonly defineAsyncComponent: UnwrapRef + readonly defineComponent: UnwrapRef + readonly defineLazyHydrationComponent: UnwrapRef + readonly defineNuxtComponent: UnwrapRef + readonly defineNuxtLink: UnwrapRef + readonly defineNuxtPlugin: UnwrapRef + readonly defineNuxtRouteMiddleware: UnwrapRef + readonly definePageMeta: UnwrapRef + readonly definePayloadPlugin: UnwrapRef + readonly definePayloadReducer: UnwrapRef + readonly definePayloadReviver: UnwrapRef + readonly defineStore: UnwrapRef + readonly effect: UnwrapRef + readonly effectScope: UnwrapRef + readonly getAppManifest: UnwrapRef + readonly getCurrentInstance: UnwrapRef + readonly getCurrentScope: UnwrapRef + readonly getRouteRules: UnwrapRef + readonly h: UnwrapRef + readonly hasInjectionContext: UnwrapRef + readonly inject: UnwrapRef + readonly injectHead: UnwrapRef + readonly isNuxtError: UnwrapRef + readonly isPrerendered: UnwrapRef + readonly isProxy: UnwrapRef + readonly isReactive: UnwrapRef + readonly isReadonly: UnwrapRef + readonly isRef: UnwrapRef + readonly isShallow: UnwrapRef + readonly isVue2: UnwrapRef + readonly isVue3: UnwrapRef + readonly loadPayload: UnwrapRef + readonly markRaw: UnwrapRef + readonly navigateTo: UnwrapRef + readonly nextTick: UnwrapRef + readonly onActivated: UnwrapRef + readonly onBeforeMount: UnwrapRef + readonly onBeforeRouteLeave: UnwrapRef + readonly onBeforeRouteUpdate: UnwrapRef + readonly onBeforeUnmount: UnwrapRef + readonly onBeforeUpdate: UnwrapRef + readonly onDeactivated: UnwrapRef + readonly onErrorCaptured: UnwrapRef + readonly onMounted: UnwrapRef + readonly onNuxtReady: UnwrapRef + readonly onPrehydrate: UnwrapRef + readonly onRenderTracked: UnwrapRef + readonly onRenderTriggered: UnwrapRef + readonly onScopeDispose: UnwrapRef + readonly onServerPrefetch: UnwrapRef + readonly onUnmounted: UnwrapRef + readonly onUpdated: UnwrapRef + readonly onWatcherCleanup: UnwrapRef + readonly prefetchComponents: UnwrapRef + readonly preloadComponents: UnwrapRef + readonly preloadPayload: UnwrapRef + readonly preloadRouteComponents: UnwrapRef + readonly prerenderRoutes: UnwrapRef + readonly provide: UnwrapRef + readonly proxyRefs: UnwrapRef + readonly reactive: UnwrapRef + readonly readonly: UnwrapRef + readonly ref: UnwrapRef + readonly refreshCookie: UnwrapRef + readonly refreshNuxtData: UnwrapRef + readonly reloadNuxtApp: UnwrapRef + readonly requestIdleCallback: UnwrapRef + readonly resolveComponent: UnwrapRef + readonly setInterval: UnwrapRef + readonly setPageLayout: UnwrapRef + readonly setResponseStatus: UnwrapRef + readonly shallowReactive: UnwrapRef + readonly shallowReadonly: UnwrapRef + readonly shallowRef: UnwrapRef + readonly showError: UnwrapRef + readonly storeToRefs: UnwrapRef + readonly toRaw: UnwrapRef + readonly toRef: UnwrapRef + readonly toRefs: UnwrapRef + readonly toValue: UnwrapRef + readonly triggerRef: UnwrapRef + readonly tryUseNuxtApp: UnwrapRef + readonly unref: UnwrapRef + readonly updateAppConfig: UnwrapRef + readonly useAppConfig: UnwrapRef + readonly useAsyncData: UnwrapRef + readonly useAttrs: UnwrapRef + readonly useAuthStore: UnwrapRef + readonly useCookie: UnwrapRef + readonly useCssModule: UnwrapRef + readonly useCssVars: UnwrapRef + readonly useError: UnwrapRef + readonly useFetch: UnwrapRef + readonly useHead: UnwrapRef + readonly useHeadSafe: UnwrapRef + readonly useHydration: UnwrapRef + readonly useId: UnwrapRef + readonly useLazyAsyncData: UnwrapRef + readonly useLazyFetch: UnwrapRef + readonly useLink: UnwrapRef + readonly useLoadingIndicator: UnwrapRef + readonly useModel: UnwrapRef + readonly useNuxtApp: UnwrapRef + readonly useNuxtData: UnwrapRef + readonly useNuxtDevTools: UnwrapRef + readonly usePinia: UnwrapRef + readonly usePreviewMode: UnwrapRef + readonly useRequestEvent: UnwrapRef + readonly useRequestFetch: UnwrapRef + readonly useRequestHeader: UnwrapRef + readonly useRequestHeaders: UnwrapRef + readonly useRequestURL: UnwrapRef + readonly useResponseHeader: UnwrapRef + readonly useRoute: UnwrapRef + readonly useRouteAnnouncer: UnwrapRef + readonly useRouter: UnwrapRef + readonly useRuntimeConfig: UnwrapRef + readonly useRuntimeHook: UnwrapRef + readonly useScript: UnwrapRef + readonly useScriptAhrefsAnalytics: UnwrapRef + readonly useScriptBingUet: UnwrapRef + readonly useScriptCalendly: UnwrapRef + readonly useScriptClarity: UnwrapRef + readonly useScriptCloudflareWebAnalytics: UnwrapRef + readonly useScriptCrisp: UnwrapRef + readonly useScriptDatabuddyAnalytics: UnwrapRef + readonly useScriptEventPage: UnwrapRef + readonly useScriptFathomAnalytics: UnwrapRef + readonly useScriptGoogleAdsense: UnwrapRef + readonly useScriptGoogleAnalytics: UnwrapRef + readonly useScriptGoogleMaps: UnwrapRef + readonly useScriptGoogleRecaptcha: UnwrapRef + readonly useScriptGoogleSignIn: UnwrapRef + readonly useScriptGoogleTagManager: UnwrapRef + readonly useScriptGravatar: UnwrapRef + readonly useScriptHotjar: UnwrapRef + readonly useScriptIntercom: UnwrapRef + readonly useScriptLemonSqueezy: UnwrapRef + readonly useScriptLinkedInInsight: UnwrapRef + readonly useScriptMatomoAnalytics: UnwrapRef + readonly useScriptMetaPixel: UnwrapRef + readonly useScriptMixpanelAnalytics: UnwrapRef + readonly useScriptNpm: UnwrapRef + readonly useScriptPayPal: UnwrapRef + readonly useScriptPlausibleAnalytics: UnwrapRef + readonly useScriptPostHog: UnwrapRef + readonly useScriptRedditPixel: UnwrapRef + readonly useScriptRybbitAnalytics: UnwrapRef + readonly useScriptSegment: UnwrapRef + readonly useScriptSnapchatPixel: UnwrapRef + readonly useScriptSpeedCurve: UnwrapRef + readonly useScriptStripe: UnwrapRef + readonly useScriptTikTokPixel: UnwrapRef + readonly useScriptTriggerConsent: UnwrapRef + readonly useScriptTriggerElement: UnwrapRef + readonly useScriptUmamiAnalytics: UnwrapRef + readonly useScriptUsercentrics: UnwrapRef + readonly useScriptVercelAnalytics: UnwrapRef + readonly useScriptVimeoPlayer: UnwrapRef + readonly useScriptXPixel: UnwrapRef + readonly useScriptYouTubePlayer: UnwrapRef + readonly useSeoMeta: UnwrapRef + readonly useServerHead: UnwrapRef + readonly useServerHeadSafe: UnwrapRef + readonly useServerSeoMeta: UnwrapRef + readonly useShadowRoot: UnwrapRef + readonly useSlots: UnwrapRef + readonly useState: UnwrapRef + readonly useTemplateRef: UnwrapRef + readonly useTransitionState: UnwrapRef + readonly watch: UnwrapRef + readonly watchEffect: UnwrapRef + readonly watchPostEffect: UnwrapRef + readonly watchSyncEffect: UnwrapRef + readonly withCtx: UnwrapRef + readonly withDirectives: UnwrapRef + readonly withKeys: UnwrapRef + readonly withMemo: UnwrapRef + readonly withModifiers: UnwrapRef + readonly withScopeId: UnwrapRef + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/layouts.d.ts b/frontend_admin/.nuxt/types/layouts.d.ts new file mode 100644 index 0000000..e0087ca --- /dev/null +++ b/frontend_admin/.nuxt/types/layouts.d.ts @@ -0,0 +1,15 @@ +import type { ComputedRef, MaybeRef } from 'vue' + +type ComponentProps = T extends new(...args: any) => { $props: infer P } ? NonNullable

+ : T extends (props: infer P, ...args: any) => any ? P + : {} + +declare module 'nuxt/app' { + interface NuxtLayouts { + default: ComponentProps, +} + export type LayoutKey = keyof NuxtLayouts extends never ? string : keyof NuxtLayouts + interface PageMeta { + layout?: MaybeRef | ComputedRef + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/middleware.d.ts b/frontend_admin/.nuxt/types/middleware.d.ts new file mode 100644 index 0000000..f46132e --- /dev/null +++ b/frontend_admin/.nuxt/types/middleware.d.ts @@ -0,0 +1,7 @@ +import type { NavigationGuard } from 'vue-router' +export type MiddlewareKey = "auth" +declare module 'nuxt/app' { + interface PageMeta { + middleware?: MiddlewareKey | NavigationGuard | Array + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro-config.d.ts b/frontend_admin/.nuxt/types/nitro-config.d.ts new file mode 100644 index 0000000..94df18a --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro-config.d.ts @@ -0,0 +1,14 @@ +// Generated by nitro + +// App Config +import type { Defu } from 'defu' + + + +type UserAppConfig = Defu<{}, []> + +declare module "nitropack/types" { + interface AppConfig extends UserAppConfig {} + +} +export {} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro-imports.d.ts b/frontend_admin/.nuxt/types/nitro-imports.d.ts new file mode 100644 index 0000000..5ab5195 --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro-imports.d.ts @@ -0,0 +1,149 @@ +declare global { + const H3Error: typeof import('../../node_modules/h3').H3Error + const H3Event: typeof import('../../node_modules/h3').H3Event + const __buildAssetsURL: typeof import('../../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths').buildAssetsURL + const __publicAssetsURL: typeof import('../../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths').publicAssetsURL + const appendCorsHeaders: typeof import('../../node_modules/h3').appendCorsHeaders + const appendCorsPreflightHeaders: typeof import('../../node_modules/h3').appendCorsPreflightHeaders + const appendHeader: typeof import('../../node_modules/h3').appendHeader + const appendHeaders: typeof import('../../node_modules/h3').appendHeaders + const appendResponseHeader: typeof import('../../node_modules/h3').appendResponseHeader + const appendResponseHeaders: typeof import('../../node_modules/h3').appendResponseHeaders + const assertMethod: typeof import('../../node_modules/h3').assertMethod + const cachedEventHandler: typeof import('../../node_modules/nitropack/dist/runtime/internal/cache').cachedEventHandler + const cachedFunction: typeof import('../../node_modules/nitropack/dist/runtime/internal/cache').cachedFunction + const callNodeListener: typeof import('../../node_modules/h3').callNodeListener + const clearResponseHeaders: typeof import('../../node_modules/h3').clearResponseHeaders + const clearSession: typeof import('../../node_modules/h3').clearSession + const createApp: typeof import('../../node_modules/h3').createApp + const createAppEventHandler: typeof import('../../node_modules/h3').createAppEventHandler + const createError: typeof import('../../node_modules/h3').createError + const createEvent: typeof import('../../node_modules/h3').createEvent + const createEventStream: typeof import('../../node_modules/h3').createEventStream + const createRouter: typeof import('../../node_modules/h3').createRouter + const defaultContentType: typeof import('../../node_modules/h3').defaultContentType + const defineAppConfig: typeof import('../../node_modules/@nuxt/nitro-server/dist/runtime/utils/config').defineAppConfig + const defineCachedEventHandler: typeof import('../../node_modules/nitropack/dist/runtime/internal/cache').defineCachedEventHandler + const defineCachedFunction: typeof import('../../node_modules/nitropack/dist/runtime/internal/cache').defineCachedFunction + const defineEventHandler: typeof import('../../node_modules/h3').defineEventHandler + const defineLazyEventHandler: typeof import('../../node_modules/h3').defineLazyEventHandler + const defineNitroErrorHandler: typeof import('../../node_modules/nitropack/dist/runtime/internal/error/utils').defineNitroErrorHandler + const defineNitroPlugin: typeof import('../../node_modules/nitropack/dist/runtime/internal/plugin').defineNitroPlugin + const defineNodeListener: typeof import('../../node_modules/h3').defineNodeListener + const defineNodeMiddleware: typeof import('../../node_modules/h3').defineNodeMiddleware + const defineRenderHandler: typeof import('../../node_modules/nitropack/dist/runtime/internal/renderer').defineRenderHandler + const defineRequestMiddleware: typeof import('../../node_modules/h3').defineRequestMiddleware + const defineResponseMiddleware: typeof import('../../node_modules/h3').defineResponseMiddleware + const defineRouteMeta: typeof import('../../node_modules/nitropack/dist/runtime/internal/meta').defineRouteMeta + const defineTask: typeof import('../../node_modules/nitropack/dist/runtime/internal/task').defineTask + const defineWebSocket: typeof import('../../node_modules/h3').defineWebSocket + const defineWebSocketHandler: typeof import('../../node_modules/h3').defineWebSocketHandler + const deleteCookie: typeof import('../../node_modules/h3').deleteCookie + const dynamicEventHandler: typeof import('../../node_modules/h3').dynamicEventHandler + const eventHandler: typeof import('../../node_modules/h3').eventHandler + const fetchWithEvent: typeof import('../../node_modules/h3').fetchWithEvent + const fromNodeMiddleware: typeof import('../../node_modules/h3').fromNodeMiddleware + const fromPlainHandler: typeof import('../../node_modules/h3').fromPlainHandler + const fromWebHandler: typeof import('../../node_modules/h3').fromWebHandler + const getCookie: typeof import('../../node_modules/h3').getCookie + const getHeader: typeof import('../../node_modules/h3').getHeader + const getHeaders: typeof import('../../node_modules/h3').getHeaders + const getMethod: typeof import('../../node_modules/h3').getMethod + const getProxyRequestHeaders: typeof import('../../node_modules/h3').getProxyRequestHeaders + const getQuery: typeof import('../../node_modules/h3').getQuery + const getRequestFingerprint: typeof import('../../node_modules/h3').getRequestFingerprint + const getRequestHeader: typeof import('../../node_modules/h3').getRequestHeader + const getRequestHeaders: typeof import('../../node_modules/h3').getRequestHeaders + const getRequestHost: typeof import('../../node_modules/h3').getRequestHost + const getRequestIP: typeof import('../../node_modules/h3').getRequestIP + const getRequestPath: typeof import('../../node_modules/h3').getRequestPath + const getRequestProtocol: typeof import('../../node_modules/h3').getRequestProtocol + const getRequestURL: typeof import('../../node_modules/h3').getRequestURL + const getRequestWebStream: typeof import('../../node_modules/h3').getRequestWebStream + const getResponseHeader: typeof import('../../node_modules/h3').getResponseHeader + const getResponseHeaders: typeof import('../../node_modules/h3').getResponseHeaders + const getResponseStatus: typeof import('../../node_modules/h3').getResponseStatus + const getResponseStatusText: typeof import('../../node_modules/h3').getResponseStatusText + const getRouteRules: typeof import('../../node_modules/nitropack/dist/runtime/internal/route-rules').getRouteRules + const getRouterParam: typeof import('../../node_modules/h3').getRouterParam + const getRouterParams: typeof import('../../node_modules/h3').getRouterParams + const getSession: typeof import('../../node_modules/h3').getSession + const getValidatedQuery: typeof import('../../node_modules/h3').getValidatedQuery + const getValidatedRouterParams: typeof import('../../node_modules/h3').getValidatedRouterParams + const handleCacheHeaders: typeof import('../../node_modules/h3').handleCacheHeaders + const handleCors: typeof import('../../node_modules/h3').handleCors + const isCorsOriginAllowed: typeof import('../../node_modules/h3').isCorsOriginAllowed + const isError: typeof import('../../node_modules/h3').isError + const isEvent: typeof import('../../node_modules/h3').isEvent + const isEventHandler: typeof import('../../node_modules/h3').isEventHandler + const isMethod: typeof import('../../node_modules/h3').isMethod + const isPreflightRequest: typeof import('../../node_modules/h3').isPreflightRequest + const isStream: typeof import('../../node_modules/h3').isStream + const isWebResponse: typeof import('../../node_modules/h3').isWebResponse + const lazyEventHandler: typeof import('../../node_modules/h3').lazyEventHandler + const nitroPlugin: typeof import('../../node_modules/nitropack/dist/runtime/internal/plugin').nitroPlugin + const parseCookies: typeof import('../../node_modules/h3').parseCookies + const promisifyNodeListener: typeof import('../../node_modules/h3').promisifyNodeListener + const proxyRequest: typeof import('../../node_modules/h3').proxyRequest + const readBody: typeof import('../../node_modules/h3').readBody + const readFormData: typeof import('../../node_modules/h3').readFormData + const readMultipartFormData: typeof import('../../node_modules/h3').readMultipartFormData + const readRawBody: typeof import('../../node_modules/h3').readRawBody + const readValidatedBody: typeof import('../../node_modules/h3').readValidatedBody + const removeResponseHeader: typeof import('../../node_modules/h3').removeResponseHeader + const runTask: typeof import('../../node_modules/nitropack/dist/runtime/internal/task').runTask + const sanitizeStatusCode: typeof import('../../node_modules/h3').sanitizeStatusCode + const sanitizeStatusMessage: typeof import('../../node_modules/h3').sanitizeStatusMessage + const sealSession: typeof import('../../node_modules/h3').sealSession + const send: typeof import('../../node_modules/h3').send + const sendError: typeof import('../../node_modules/h3').sendError + const sendIterable: typeof import('../../node_modules/h3').sendIterable + const sendNoContent: typeof import('../../node_modules/h3').sendNoContent + const sendProxy: typeof import('../../node_modules/h3').sendProxy + const sendRedirect: typeof import('../../node_modules/h3').sendRedirect + const sendStream: typeof import('../../node_modules/h3').sendStream + const sendWebResponse: typeof import('../../node_modules/h3').sendWebResponse + const serveStatic: typeof import('../../node_modules/h3').serveStatic + const setCookie: typeof import('../../node_modules/h3').setCookie + const setHeader: typeof import('../../node_modules/h3').setHeader + const setHeaders: typeof import('../../node_modules/h3').setHeaders + const setResponseHeader: typeof import('../../node_modules/h3').setResponseHeader + const setResponseHeaders: typeof import('../../node_modules/h3').setResponseHeaders + const setResponseStatus: typeof import('../../node_modules/h3').setResponseStatus + const splitCookiesString: typeof import('../../node_modules/h3').splitCookiesString + const toEventHandler: typeof import('../../node_modules/h3').toEventHandler + const toNodeListener: typeof import('../../node_modules/h3').toNodeListener + const toPlainHandler: typeof import('../../node_modules/h3').toPlainHandler + const toWebHandler: typeof import('../../node_modules/h3').toWebHandler + const toWebRequest: typeof import('../../node_modules/h3').toWebRequest + const unsealSession: typeof import('../../node_modules/h3').unsealSession + const updateSession: typeof import('../../node_modules/h3').updateSession + const useAppConfig: typeof import('../../node_modules/nitropack/dist/runtime/internal/config').useAppConfig + const useBase: typeof import('../../node_modules/h3').useBase + const useEvent: typeof import('../../node_modules/nitropack/dist/runtime/internal/context').useEvent + const useNitroApp: typeof import('../../node_modules/nitropack/dist/runtime/internal/app').useNitroApp + const useRuntimeConfig: typeof import('../../node_modules/nitropack/dist/runtime/internal/config').useRuntimeConfig + const useSession: typeof import('../../node_modules/h3').useSession + const useStorage: typeof import('../../node_modules/nitropack/dist/runtime/internal/storage').useStorage + const writeEarlyHints: typeof import('../../node_modules/h3').writeEarlyHints +} +// for type re-export +declare global { + // @ts-ignore + export type { EventHandler, EventHandlerRequest, EventHandlerResponse, EventHandlerObject, H3EventContext } from '../../node_modules/h3' + import('../../node_modules/h3') +} +export { H3Event, H3Error, appendCorsHeaders, appendCorsPreflightHeaders, appendHeader, appendHeaders, appendResponseHeader, appendResponseHeaders, assertMethod, callNodeListener, clearResponseHeaders, clearSession, createApp, createAppEventHandler, createError, createEvent, createEventStream, createRouter, defaultContentType, defineEventHandler, defineLazyEventHandler, defineNodeListener, defineNodeMiddleware, defineRequestMiddleware, defineResponseMiddleware, defineWebSocket, defineWebSocketHandler, deleteCookie, dynamicEventHandler, eventHandler, fetchWithEvent, fromNodeMiddleware, fromPlainHandler, fromWebHandler, getCookie, getHeader, getHeaders, getMethod, getProxyRequestHeaders, getQuery, getRequestFingerprint, getRequestHeader, getRequestHeaders, getRequestHost, getRequestIP, getRequestPath, getRequestProtocol, getRequestURL, getRequestWebStream, getResponseHeader, getResponseHeaders, getResponseStatus, getResponseStatusText, getRouterParam, getRouterParams, getSession, getValidatedQuery, getValidatedRouterParams, handleCacheHeaders, handleCors, isCorsOriginAllowed, isError, isEvent, isEventHandler, isMethod, isPreflightRequest, isStream, isWebResponse, lazyEventHandler, parseCookies, promisifyNodeListener, proxyRequest, readBody, readFormData, readMultipartFormData, readRawBody, readValidatedBody, removeResponseHeader, sanitizeStatusCode, sanitizeStatusMessage, sealSession, send, sendError, sendIterable, sendNoContent, sendProxy, sendRedirect, sendStream, sendWebResponse, serveStatic, setCookie, setHeader, setHeaders, setResponseHeader, setResponseHeaders, setResponseStatus, splitCookiesString, toEventHandler, toNodeListener, toPlainHandler, toWebHandler, toWebRequest, unsealSession, updateSession, useBase, useSession, writeEarlyHints } from 'h3'; +export { useNitroApp } from 'nitropack/runtime/internal/app'; +export { useRuntimeConfig, useAppConfig } from 'nitropack/runtime/internal/config'; +export { defineNitroPlugin, nitroPlugin } from 'nitropack/runtime/internal/plugin'; +export { defineCachedFunction, defineCachedEventHandler, cachedFunction, cachedEventHandler } from 'nitropack/runtime/internal/cache'; +export { useStorage } from 'nitropack/runtime/internal/storage'; +export { defineRenderHandler } from 'nitropack/runtime/internal/renderer'; +export { defineRouteMeta } from 'nitropack/runtime/internal/meta'; +export { getRouteRules } from 'nitropack/runtime/internal/route-rules'; +export { useEvent } from 'nitropack/runtime/internal/context'; +export { defineTask, runTask } from 'nitropack/runtime/internal/task'; +export { defineNitroErrorHandler } from 'nitropack/runtime/internal/error/utils'; +export { buildAssetsURL as __buildAssetsURL, publicAssetsURL as __publicAssetsURL } from '/app/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths'; +export { defineAppConfig } from '/app/node_modules/@nuxt/nitro-server/dist/runtime/utils/config'; \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro-layouts.d.ts b/frontend_admin/.nuxt/types/nitro-layouts.d.ts new file mode 100644 index 0000000..80f48fe --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro-layouts.d.ts @@ -0,0 +1,17 @@ +export type LayoutKey = "default" +declare module 'nitropack' { + interface NitroRouteConfig { + appLayout?: LayoutKey | false + } + interface NitroRouteRules { + appLayout?: LayoutKey | false + } +} +declare module 'nitropack/types' { + interface NitroRouteConfig { + appLayout?: LayoutKey | false + } + interface NitroRouteRules { + appLayout?: LayoutKey | false + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro-middleware.d.ts b/frontend_admin/.nuxt/types/nitro-middleware.d.ts new file mode 100644 index 0000000..188ab12 --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro-middleware.d.ts @@ -0,0 +1,17 @@ +export type MiddlewareKey = "auth" +declare module 'nitropack' { + interface NitroRouteConfig { + appMiddleware?: MiddlewareKey | MiddlewareKey[] | Record + } + interface NitroRouteRules { + appMiddleware?: MiddlewareKey | MiddlewareKey[] | Record + } +} +declare module 'nitropack/types' { + interface NitroRouteConfig { + appMiddleware?: MiddlewareKey | MiddlewareKey[] | Record + } + interface NitroRouteRules { + appMiddleware?: MiddlewareKey | MiddlewareKey[] | Record + } +} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro-nuxt.d.ts b/frontend_admin/.nuxt/types/nitro-nuxt.d.ts new file mode 100644 index 0000000..902caa8 --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro-nuxt.d.ts @@ -0,0 +1,39 @@ + +/// +/// +/// +/// +/// +/// + +import type { RuntimeConfig } from 'nuxt/schema' +import type { H3Event } from 'h3' +import type { LogObject } from 'consola' +import type { NuxtIslandContext, NuxtIslandResponse, NuxtRenderHTMLContext } from 'nuxt/app' + +declare module 'nitropack' { + interface NitroRuntimeConfigApp { + buildAssetsDir: string + cdnURL: string + } + interface NitroRuntimeConfig extends RuntimeConfig {} + interface NitroRouteConfig { + ssr?: boolean + noScripts?: boolean + /** @deprecated Use `noScripts` instead */ + experimentalNoScripts?: boolean + } + interface NitroRouteRules { + ssr?: boolean + noScripts?: boolean + /** @deprecated Use `noScripts` instead */ + experimentalNoScripts?: boolean + appMiddleware?: Record + appLayout?: string | false + } + interface NitroRuntimeHooks { + 'dev:ssr-logs': (ctx: { logs: LogObject[], path: string }) => void | Promise + 'render:html': (htmlContext: NuxtRenderHTMLContext, context: { event: H3Event }) => void | Promise + 'render:island': (islandResponse: NuxtIslandResponse, context: { event: H3Event, islandContext: NuxtIslandContext }) => void | Promise + } +} diff --git a/frontend_admin/.nuxt/types/nitro-routes.d.ts b/frontend_admin/.nuxt/types/nitro-routes.d.ts new file mode 100644 index 0000000..e49e74c --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro-routes.d.ts @@ -0,0 +1,14 @@ +// Generated by nitro +import type { Serialize, Simplify } from "nitropack/types"; +declare module "nitropack/types" { + type Awaited = T extends PromiseLike ? Awaited : T + interface InternalApi { + '/__nuxt_error': { + 'default': Simplify>>> + } + '/__nuxt_island/**': { + 'default': Simplify>>> + } + } +} +export {} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro.d.ts b/frontend_admin/.nuxt/types/nitro.d.ts new file mode 100644 index 0000000..bf09bd4 --- /dev/null +++ b/frontend_admin/.nuxt/types/nitro.d.ts @@ -0,0 +1,3 @@ +/// +/// +/// \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/plugins.d.ts b/frontend_admin/.nuxt/types/plugins.d.ts new file mode 100644 index 0000000..f431c4b --- /dev/null +++ b/frontend_admin/.nuxt/types/plugins.d.ts @@ -0,0 +1,40 @@ +// Generated by Nuxt' +import type { Plugin } from '#app' + +type Decorate> = { [K in keyof T as K extends string ? `$${K}` : never]: T[K] } + +type InjectionType = A extends {default: Plugin} ? Decorate : unknown + +type NuxtAppInjections = + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType + +declare module '#app' { + interface NuxtApp extends NuxtAppInjections { } + + interface NuxtAppLiterals { + pluginName: 'vue-devtools-client' | 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed' + } +} + +declare module 'vue' { + interface ComponentCustomProperties extends NuxtAppInjections { } +} + +export { } diff --git a/frontend_admin/.nuxt/types/schema.d.ts b/frontend_admin/.nuxt/types/schema.d.ts new file mode 100644 index 0000000..044612a --- /dev/null +++ b/frontend_admin/.nuxt/types/schema.d.ts @@ -0,0 +1,127 @@ +import { RuntimeConfig as UserRuntimeConfig, PublicRuntimeConfig as UserPublicRuntimeConfig } from 'nuxt/schema' +import { NuxtModule, ModuleDependencyMeta } from '@nuxt/schema' + interface SharedRuntimeConfig { + app: { + buildId: string, + + baseURL: string, + + buildAssetsDir: string, + + cdnURL: string, + }, + + nitro: { + envPrefix: string, + }, + } + interface SharedPublicRuntimeConfig { + + } +declare module '@nuxt/schema' { + interface ModuleDependencies { + ["@nuxtjs/tailwindcss"]?: ModuleDependencyMeta ? O | false : Record> | false + ["pinia"]?: ModuleDependencyMeta ? O | false : Record> | false + ["@nuxt/devtools"]?: ModuleDependencyMeta ? O | false : Record> | false + ["@nuxt/telemetry"]?: ModuleDependencyMeta ? O | false : Record> | false + } + interface NuxtOptions { + /** + * Configuration for `@nuxtjs/tailwindcss` + */ + ["tailwindcss"]: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@pinia/nuxt` + */ + ["pinia"]: typeof import("@pinia/nuxt").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@nuxt/devtools` + */ + ["devtools"]: typeof import("@nuxt/devtools").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@nuxt/telemetry` + */ + ["telemetry"]: typeof import("@nuxt/telemetry").default extends NuxtModule ? O | false : Record | false + } + interface NuxtConfig { + /** + * Configuration for `@nuxtjs/tailwindcss` + */ + ["tailwindcss"]?: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@pinia/nuxt` + */ + ["pinia"]?: typeof import("@pinia/nuxt").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@nuxt/devtools` + */ + ["devtools"]?: typeof import("@nuxt/devtools").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@nuxt/telemetry` + */ + ["telemetry"]?: typeof import("@nuxt/telemetry").default extends NuxtModule ? Partial | false : Record | false + modules?: (undefined | null | false | NuxtModule | string | [NuxtModule | string, Record] | ["@nuxtjs/tailwindcss", Exclude] | ["@pinia/nuxt", Exclude] | ["@nuxt/devtools", Exclude] | ["@nuxt/telemetry", Exclude])[], + } + interface RuntimeConfig extends UserRuntimeConfig {} + interface PublicRuntimeConfig extends UserPublicRuntimeConfig {} +} +declare module 'nuxt/schema' { + interface ModuleDependencies { + ["@nuxtjs/tailwindcss"]?: ModuleDependencyMeta ? O | false : Record> | false + ["pinia"]?: ModuleDependencyMeta ? O | false : Record> | false + ["@nuxt/devtools"]?: ModuleDependencyMeta ? O | false : Record> | false + ["@nuxt/telemetry"]?: ModuleDependencyMeta ? O | false : Record> | false + } + interface NuxtOptions { + /** + * Configuration for `@nuxtjs/tailwindcss` + * @see https://www.npmjs.com/package/@nuxtjs/tailwindcss + */ + ["tailwindcss"]: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@pinia/nuxt` + * @see https://www.npmjs.com/package/@pinia/nuxt + */ + ["pinia"]: typeof import("@pinia/nuxt").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@nuxt/devtools` + * @see https://www.npmjs.com/package/@nuxt/devtools + */ + ["devtools"]: typeof import("@nuxt/devtools").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@nuxt/telemetry` + * @see https://www.npmjs.com/package/@nuxt/telemetry + */ + ["telemetry"]: typeof import("@nuxt/telemetry").default extends NuxtModule ? O | false : Record | false + } + interface NuxtConfig { + /** + * Configuration for `@nuxtjs/tailwindcss` + * @see https://www.npmjs.com/package/@nuxtjs/tailwindcss + */ + ["tailwindcss"]?: typeof import("@nuxtjs/tailwindcss").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@pinia/nuxt` + * @see https://www.npmjs.com/package/@pinia/nuxt + */ + ["pinia"]?: typeof import("@pinia/nuxt").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@nuxt/devtools` + * @see https://www.npmjs.com/package/@nuxt/devtools + */ + ["devtools"]?: typeof import("@nuxt/devtools").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@nuxt/telemetry` + * @see https://www.npmjs.com/package/@nuxt/telemetry + */ + ["telemetry"]?: typeof import("@nuxt/telemetry").default extends NuxtModule ? Partial | false : Record | false + modules?: (undefined | null | false | NuxtModule | string | [NuxtModule | string, Record] | ["@nuxtjs/tailwindcss", Exclude] | ["@pinia/nuxt", Exclude] | ["@nuxt/devtools", Exclude] | ["@nuxt/telemetry", Exclude])[], + } + interface RuntimeConfig extends SharedRuntimeConfig {} + interface PublicRuntimeConfig extends SharedPublicRuntimeConfig {} +} +declare module 'vue' { + interface ComponentCustomProperties { + $config: UserRuntimeConfig + } + } \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/vue-shim.d.ts b/frontend_admin/.nuxt/types/vue-shim.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/frontend_admin/.output/nitro.json b/frontend_admin/.output/nitro.json new file mode 100644 index 0000000..7c2b1a7 --- /dev/null +++ b/frontend_admin/.output/nitro.json @@ -0,0 +1,15 @@ +{ + "date": "2026-06-24T11:26:59.414Z", + "preset": "node-server", + "framework": { + "name": "nuxt", + "version": "3.21.8" + }, + "versions": { + "nitro": "2.13.4" + }, + "commands": { + "preview": "node server/index.mjs" + }, + "config": {} +} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/BFfxzM5G.js b/frontend_admin/.output/public/_nuxt/BFfxzM5G.js new file mode 100644 index 0000000..df223de --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/BFfxzM5G.js @@ -0,0 +1 @@ +import{y as e,z as t}from"./C3Ck-LNv.js";import{u as a}from"./BoAo7BJa.js";const u=e((o,i)=>{if(o.path==="/login")return;if(!a("access_token").value)return t("/login")});export{u as default}; diff --git a/frontend_admin/.output/public/_nuxt/BW9w-mbE.js b/frontend_admin/.output/public/_nuxt/BW9w-mbE.js new file mode 100644 index 0000000..f8b9901 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/BW9w-mbE.js @@ -0,0 +1 @@ +import{_ as E}from"./QKJPEFuj.js";import{g as D,A as N,k as W,B as O,C as P,o as s,c as l,m as k,a as e,n as v,F as x,r as y,t as d,q as m,D as g,E as H,w as M,b as K,d as L,G as J,x as f,H as z}from"./C3Ck-LNv.js";import{u as U,_ as S}from"./ByPKVH1D.js";import"./BoAo7BJa.js";const q={class:"min-h-screen bg-slate-900 text-white flex"},I={class:"flex items-center h-16 px-4 border-b border-slate-700"},Q={key:0,class:"flex items-center gap-3"},X={key:1,class:"mx-auto"},Y={class:"flex-1 px-2 py-4 space-y-2 overflow-y-auto"},Z={key:0,class:"px-3 py-1 text-xs font-semibold uppercase tracking-wider text-slate-500"},ee={key:0},te=["onClick"],se=["innerHTML"],oe={class:"ml-2 mt-1 space-y-1 overflow-hidden transition-all duration-200"},le=["innerHTML"],ne={class:"whitespace-nowrap"},ae=["innerHTML"],re={class:"p-4 border-t border-slate-700"},ie={key:0,class:"text-xs text-slate-500"},de={class:"flex-1 flex flex-col min-w-0"},ue={class:"sticky top-0 z-10 bg-slate-800/95 backdrop-blur-sm border-b border-slate-700"},he={class:"flex items-center justify-between h-16 px-4 lg:px-6"},ce={class:"flex items-center gap-3"},ve={class:"text-lg font-semibold text-white truncate"},pe={class:"w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold text-white"},xe={class:"hidden sm:block text-sm text-slate-300"},fe={key:0,class:"absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"},ke={class:"px-4 py-3 border-b border-slate-700"},me={class:"text-sm font-medium text-white"},ge={class:"flex-1 p-4 lg:p-6 overflow-auto"},ze=D({__name:"default",setup(we){const u=N(),V=W(),w=U(),n=f(!1),r=f(!1),c=f(!1),b=f(null),p=f(new Set(["Központ"])),j=z(()=>w.userEmail||"admin@servicefinder.hu"),F=z(()=>{const o=w.userEmail;return o?o.split("@")[0].split(".").map(t=>t[0]).join("").toUpperCase().slice(0,2):"AD"}),$=[{title:"Központ",items:[{path:"/",label:"Dashboard",icon:''}]},{title:"Felhasználók & Partnerek",items:[{label:"Garázsok",icon:'',children:[{path:"/garages",label:"Garázsok listája",icon:''}]},{label:"Felhasználók",icon:'',children:[{path:"/users",label:"Felhasználók listája",icon:''}]}]},{title:"Rendszer",items:[{path:"/permissions",label:"Jogosultságok",icon:''},{label:"Rendszernaplók",icon:'',children:[{path:"/logs",label:"Rendszernaplók",icon:''}]}]}],A=z(()=>u.path==="/"?"Dashboard":u.path.startsWith("/permissions")?"Jogosultság Kezelés":u.path.startsWith("/garages")?"Garázsok":u.path.startsWith("/users")?"Felhasználók":u.path.startsWith("/logs")?"Rendszernaplók":"Admin Panel");function _(o){return o==="/"?u.path==="/":u.path.startsWith(o)}function G(o){return o.children?o.children.some(t=>_(t.path)):!1}function R(o){p.value.has(o.label)?p.value.delete(o.label):p.value.add(o.label)}function T(){w.logout(),c.value=!1,V.push("/login")}function B(o){b.value&&!b.value.contains(o.target)&&(c.value=!1)}return O(()=>{document.addEventListener("click",B)}),P(()=>{document.removeEventListener("click",B)}),(o,t)=>{const C=E;return s(),l("div",q,[n.value?(s(),l("div",{key:0,class:"fixed inset-0 bg-black/50 z-20 lg:hidden",onClick:t[0]||(t[0]=i=>n.value=!1)})):k("",!0),e("aside",{class:v(["fixed lg:static inset-y-0 left-0 z-30 flex flex-col bg-slate-800 border-r border-slate-700 transition-all duration-300",n.value?"w-64 translate-x-0":"-translate-x-full lg:translate-x-0 lg:w-20"])},[e("div",I,[n.value||!r.value?(s(),l("div",Q,[...t[7]||(t[7]=[e("img",{src:S,class:"h-8 w-auto",alt:"SF Logo"},null,-1),e("span",{class:"text-lg font-bold text-white whitespace-nowrap"},"Admin Panel",-1)])])):(s(),l("div",X,[...t[8]||(t[8]=[e("img",{src:S,class:"h-8 w-auto",alt:"SF Logo"},null,-1)])]))]),e("button",{class:"hidden lg:flex items-center justify-center h-10 mx-2 mt-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",onClick:t[1]||(t[1]=i=>r.value=!r.value)},[(s(),l("svg",{class:v(["w-5 h-5 transition-transform duration-300",{"rotate-180":r.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[9]||(t[9]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"},null,-1)])],2))]),e("nav",Y,[(s(),l(x,null,y($,i=>(s(),l(x,{key:i.title},[!r.value||n.value?(s(),l("div",Z,d(i.title),1)):k("",!0),(s(!0),l(x,null,y(i.items,a=>(s(),l(x,{key:a.label},[a.children?(s(),l("div",ee,[e("button",{class:v(["flex items-center w-full gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition",G(a)?"bg-indigo-600/20 text-indigo-300":"text-slate-300 hover:bg-slate-700 hover:text-white"]),onClick:h=>R(a)},[e("span",{class:"flex-shrink-0 w-5 h-5",innerHTML:a.icon},null,8,se),m(e("span",{class:"flex-1 text-left whitespace-nowrap"},d(a.label),513),[[g,!r.value||n.value]]),m((s(),l("svg",{class:v(["w-4 h-4 transition-transform duration-200",{"rotate-90":p.value.has(a.label)}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[10]||(t[10]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)),[[g,!r.value||n.value]])],10,te),m(e("div",oe,[(s(!0),l(x,null,y(a.children,h=>(s(),H(C,{key:h.path,to:h.path,class:v(["flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition",_(h.path)?"bg-indigo-600 text-white":"text-slate-400 hover:bg-slate-700 hover:text-white"]),onClick:t[2]||(t[2]=be=>n.value=!1)},{default:M(()=>[e("span",{class:"flex-shrink-0 w-4 h-4",innerHTML:h.icon},null,8,le),e("span",ne,d(h.label),1)]),_:2},1032,["to","class"]))),128))],512),[[g,p.value.has(a.label)&&(!r.value||n.value)]])])):(s(),H(C,{key:1,to:a.path,class:v(["flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition",_(a.path)?"bg-indigo-600 text-white":"text-slate-300 hover:bg-slate-700 hover:text-white"]),onClick:t[3]||(t[3]=h=>n.value=!1)},{default:M(()=>[e("span",{class:"flex-shrink-0 w-5 h-5",innerHTML:a.icon},null,8,ae),m(e("span",{class:"whitespace-nowrap"},d(a.label),513),[[g,!r.value||n.value]])]),_:2},1032,["to","class"]))],64))),128))],64))),64))]),e("div",re,[!r.value||n.value?(s(),l("div",ie," ServiceFinder v2.0 ")):k("",!0)])],2),e("div",de,[e("header",ue,[e("div",he,[e("div",ce,[e("button",{class:"lg:hidden p-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",onClick:t[4]||(t[4]=i=>n.value=!0)},[...t[11]||(t[11]=[e("svg",{class:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])]),e("h1",ve,d(A.value),1)]),e("div",{class:"relative",ref_key:"dropdownRef",ref:b},[e("button",{class:"flex items-center gap-2 p-1.5 rounded-lg hover:bg-slate-700 transition",onClick:t[5]||(t[5]=i=>c.value=!c.value)},[e("div",pe,d(F.value),1),e("span",xe,d(j.value),1),t[12]||(t[12]=e("svg",{class:"w-4 h-4 text-slate-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1))]),c.value?(s(),l("div",fe,[e("div",ke,[e("p",me,d(j.value),1),t[13]||(t[13]=e("p",{class:"text-xs text-slate-400 mt-0.5"},"Administrator",-1))]),K(C,{to:"/profile",class:"flex items-center gap-3 px-4 py-2.5 text-sm text-slate-300 hover:bg-slate-700 hover:text-white transition",onClick:t[6]||(t[6]=i=>c.value=!1)},{default:M(()=>[...t[14]||(t[14]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})],-1),L(" Profile Settings ",-1)])]),_:1}),e("button",{class:"flex items-center gap-3 w-full px-4 py-2.5 text-sm text-red-400 hover:bg-slate-700 hover:text-red-300 transition",onClick:T},[...t[15]||(t[15]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})],-1),L(" Sign Out ",-1)])])])):k("",!0)],512)])]),e("main",ge,[J(o.$slots,"default")])])])}}});export{ze as default}; diff --git a/frontend_admin/.output/public/_nuxt/BoAo7BJa.js b/frontend_admin/.output/public/_nuxt/BoAo7BJa.js new file mode 100644 index 0000000..044eed0 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/BoAo7BJa.js @@ -0,0 +1 @@ +import{x as k,a2 as O,a3 as z,a4 as C,a5 as w,a6 as I,a7 as D}from"./C3Ck-LNv.js";function v(t){return typeof t=="string"?`'${t}'`:new R().serialize(t)}const R=(function(){class t{#e=new Map;compare(e,r){const o=typeof e,a=typeof r;return o==="string"&&a==="string"?e.localeCompare(r):o==="number"&&a==="number"?e-r:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(r,!0))}serialize(e,r){if(e===null)return"null";switch(typeof e){case"string":return r?e:`'${e}'`;case"bigint":return`${e}n`;case"object":return this.$object(e);case"function":return this.$function(e)}return String(e)}serializeObject(e){const r=Object.prototype.toString.call(e);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),e);const o=e.constructor,a=o===Object||o===void 0?"":o.name;if(a!==""&&globalThis[a]===o)return this.serializeBuiltInType(a,e);if(typeof e.toJSON=="function"){const n=e.toJSON();return a+(n!==null&&typeof n=="object"?this.$object(n):`(${this.serialize(n)})`)}return this.serializeObjectEntries(a,Object.entries(e))}serializeBuiltInType(e,r){const o=this["$"+e];if(o)return o.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(e,r.entries());throw new Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,r){const o=Array.from(r).sort((n,s)=>this.compare(n[0],s[0]));let a=`${e}{`;for(let n=0;nthis.compare(r,o)))}`}$Map(e){return this.serializeObjectEntries("Map",e.entries())}}for(const i of["Error","RegExp","URL"])t.prototype["$"+i]=function(e){return`${i}(${e})`};for(const i of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])t.prototype["$"+i]=function(e){return`${i}[${e.join(",")}]`};for(const i of["BigInt64Array","BigUint64Array"])t.prototype["$"+i]=function(e){return`${i}[${e.join("n,")}${e.length>0?"n":""}]`};return t})();function N(t,i){return t===i||v(t)===v(i)}const U=(()=>{const t=function(){};return t.prototype=Object.create(null),t})();function x(t,i){if(typeof t!="string")throw new TypeError("argument str must be a string");const e=new U,r=i||{},o=r.decode||M;let a=0;for(;a{const i=decodeURIComponent(t),e=z(i);return typeof e=="number"&&(!Number.isFinite(e)||String(e)!==i)?i:e},encode:t=>encodeURIComponent(typeof t=="string"?t:JSON.stringify(t))},m=globalThis.cookieStore;function V(t,i){const e={...P,...i};e.filter??=u=>u===t;const r=A(e)||{};let o;e.maxAge!==void 0?o=e.maxAge*1e3:e.expires&&(o=e.expires.getTime()-Date.now());const a=o!==void 0&&o<=0,n=a||r[t]===void 0||r[t]===null,s=l(a?void 0:r[t]??e.default?.()),c=o&&!a?H(s,o,e.watch&&e.watch!=="shallow"):k(s);{let u=null;try{!m&&typeof BroadcastChannel<"u"&&(u=new BroadcastChannel(`nuxt:cookies:${t}`))}catch{}const h=(f=!1)=>{!f&&(e.readonly||N(c.value,r[t]))||(_(t,c.value,e),r[t]=l(c.value),u?.postMessage({value:e.encode(c.value)}))},p=f=>{const y=f.refresh?A(e)?.[t]:e.decode(f.value);d=!0,c.value=y,r[t]=l(y),D(()=>{d=!1})};let d=!1;const $=!!C();if($&&w(()=>{d=!0,h(),u?.close()}),m){const f=y=>{const S=y.changed.find(b=>b.name===t),T=y.deleted.find(b=>b.name===t);S&&p({value:S.value}),T&&p({value:null})};m.addEventListener("change",f),$&&w(()=>m.removeEventListener("change",f))}else u&&(u.onmessage=({data:f})=>p(f));e.watch&&O(c,()=>{d||h()},{deep:e.watch!=="shallow"}),n&&h(n)}return c}function A(t={}){return x(document.cookie,t)}function F(t,i,e={}){return i==null?j(t,i,{...e,maxAge:-1}):j(t,i,e)}function _(t,i,e={}){document.cookie=F(t,i,e)}const E=2147483647;function H(t,i,e){let r,o,a=0;const n=e?k(t):{value:t};return C()&&w(()=>{o?.(),clearTimeout(r)}),I((s,c)=>{e&&(o=O(n,c));function u(){const p=i-a,d=p{if(a+=d,a{const a=u(null),n=u(null),c=u(!1),s=u(null),v=u(!1),p=l(()=>!!n.value&&!!a.value),d=l(()=>{const e=a.value?.role;return e?["SUPERADMIN","ADMIN","MODERATOR","SALES_REP","SERVICE_MGR"].includes(e.toUpperCase()):!1}),h=l(()=>{if(!a.value)return"";const{first_name:e,last_name:o}=a.value;return e&&o?`${e} ${o}`:e||o||a.value.email}),k=l(()=>a.value?.email??""),_=l(()=>a.value?.role??"guest");async function w(e,o){c.value=!0,s.value=null;try{const t=new URLSearchParams;t.append("username",e),t.append("password",o);const m=await $fetch("/api/v1/auth/login",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t}),A=r("access_token",{maxAge:3600*24*7,path:"/",sameSite:"lax",secure:!0});A.value=m.access_token,n.value=m.access_token,await i()}catch(t){throw s.value=t?.data?.detail||t?.message||"Login failed",t}finally{c.value=!1}}async function i(){const o=r("access_token").value||n.value;if(o)try{const t=await $fetch("/api/v1/auth/me",{headers:{Authorization:`Bearer ${o}`}});a.value=t}catch(t){throw t?.response?.status===401&&f(),t}}function f(){n.value=null,a.value=null,s.value=null;const e=r("access_token");e.value=null}async function R(){const e=r("access_token");if(e.value){n.value=e.value;try{await i()}catch{f()}}v.value=!0}function g(){s.value=null}return{user:a,token:n,isLoading:c,error:s,isInitialized:v,isAuthenticated:p,isAdmin:d,userName:h,userEmail:k,userRole:_,login:w,fetchUser:i,logout:f,init:R,clearError:g}});export{x as _,I as u}; diff --git a/frontend_admin/.output/public/_nuxt/C3Ck-LNv.js b/frontend_admin/.output/public/_nuxt/C3Ck-LNv.js new file mode 100644 index 0000000..5cd84da --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/C3Ck-LNv.js @@ -0,0 +1,4 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./XMkMKtwS.js","./QKJPEFuj.js","./ByPKVH1D.js","./BoAo7BJa.js","./BFfxzM5G.js","./BW9w-mbE.js","./Oih3kTQ2.js","./Di-57MrI.js","./error-404.DL_4WIao.css","./usmOON9X.js","./error-500.I1Dtv2V5.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function fo(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const fe={},hn=[],dt=()=>{},_l=()=>!1,rr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Dr=e=>e.startsWith("onUpdate:"),Te=Object.assign,ho=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Jc=Object.prototype.hasOwnProperty,ie=(e,t)=>Jc.call(e,t),Y=Array.isArray,pn=e=>An(e)==="[object Map]",bl=e=>An(e)==="[object Set]",qo=e=>An(e)==="[object Date]",Yc=e=>An(e)==="[object RegExp]",Q=e=>typeof e=="function",he=e=>typeof e=="string",We=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",vl=e=>(se(e)||Q(e))&&Q(e.then)&&Q(e.catch),wl=Object.prototype.toString,An=e=>wl.call(e),zc=e=>An(e).slice(8,-1),El=e=>An(e)==="[object Object]",jr=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Gt=fo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Fr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Qc=/-\w/g,Le=Fr(e=>e.replace(Qc,t=>t.slice(1).toUpperCase())),Xc=/\B([A-Z])/g,nn=Fr(e=>e.replace(Xc,"-$1").toLowerCase()),Br=Fr(e=>e.charAt(0).toUpperCase()+e.slice(1)),ts=Fr(e=>e?`on${Br(e)}`:""),ct=(e,t)=>!Object.is(e,t),gn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},po=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Tl=e=>{const t=he(e)?Number(e):NaN;return isNaN(t)?e:t};let Jo;const Ur=()=>Jo||(Jo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function $r(e){if(Y(e)){const t={};for(let n=0;n{if(n){const r=n.split(eu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Vr(e){let t="";if(he(e))t=e;else if(Y(e))for(let n=0;n!!(e&&e.__v_isRef===!0),lu=e=>he(e)?e:e==null?"":Y(e)||se(e)&&(e.toString===wl||!Q(e.toString))?Cl(e)?lu(e.value):JSON.stringify(e,Al,2):String(e),Al=(e,t)=>Cl(t)?Al(e,t.value):pn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[ns(r,o)+" =>"]=s,n),{})}:bl(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ns(n))}:We(t)?ns(t):se(t)&&!Y(t)&&!El(t)?String(t):t,ns=(e,t="")=>{var n;return We(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ee;class Pl{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Ee===this)Ee=this.prevScope;else{let t=Ee;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if($n){let t=$n;for($n=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Un;){let t=Un;for(Un=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Nl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Il(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),vo(r),cu(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function As(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ml(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ml(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===zn)||(e.globalVersion=zn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!As(e))))return;e.flags|=2;const t=e.dep,n=de,r=et;de=e,et=!0;try{Nl(e);const s=e.fn(e._value);(t.version===0||ct(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{de=n,et=r,Il(e),e.flags&=-3}}function vo(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)vo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function cu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let et=!0;const Ll=[];function Tt(){Ll.push(et),et=!1}function St(){const e=Ll.pop();et=e===void 0?!0:e}function Yo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=de;de=void 0;try{t()}finally{de=n}}}let zn=0;class uu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Wr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!de||!et||de===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==de)n=this.activeLink=new uu(de,this),de.deps?(n.prevDep=de.depsTail,de.depsTail.nextDep=n,de.depsTail=n):de.deps=de.depsTail=n,Hl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=de.depsTail,n.nextDep=void 0,de.depsTail.nextDep=n,de.depsTail=n,de.deps===n&&(de.deps=r)}return n}trigger(t){this.version++,zn++,this.notify(t)}notify(t){_o();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{bo()}}}function Hl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Hl(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vr=new WeakMap,qt=Symbol(""),Ps=Symbol(""),Qn=Symbol("");function ke(e,t,n){if(et&&de){let r=vr.get(e);r||vr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Wr),s.map=r,s.key=n),s.track()}}function wt(e,t,n,r,s,o){const i=vr.get(e);if(!i){zn++;return}const l=a=>{a&&a.trigger()};if(_o(),t==="clear")i.forEach(l);else{const a=Y(e),f=a&&jr(n);if(a&&n==="length"){const c=Number(r);i.forEach((u,h)=>{(h==="length"||h===Qn||!We(h)&&h>=c)&&l(u)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),f&&l(i.get(Qn)),t){case"add":a?f&&l(i.get("length")):(l(i.get(qt)),pn(e)&&l(i.get(Ps)));break;case"delete":a||(l(i.get(qt)),pn(e)&&l(i.get(Ps)));break;case"set":pn(e)&&l(i.get(qt));break}}bo()}function fu(e,t){const n=vr.get(e);return n&&n.get(t)}function on(e){const t=te(e);return t===e?t:(ke(t,"iterate",Qn),Ve(e)?t:t.map(tt))}function Kr(e){return ke(e=te(e),"iterate",Qn),e}function at(e,t){return gt(e)?bn(ht(e)?tt(t):t):tt(t)}const du={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,e=>at(this,e))},concat(...e){return on(this).concat(...e.map(t=>Y(t)?on(t):t))},entries(){return ss(this,"entries",e=>(e[1]=at(this,e[1]),e))},every(e,t){return mt(this,"every",e,t,void 0,arguments)},filter(e,t){return mt(this,"filter",e,t,n=>n.map(r=>at(this,r)),arguments)},find(e,t){return mt(this,"find",e,t,n=>at(this,n),arguments)},findIndex(e,t){return mt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return mt(this,"findLast",e,t,n=>at(this,n),arguments)},findLastIndex(e,t){return mt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return mt(this,"forEach",e,t,void 0,arguments)},includes(...e){return os(this,"includes",e)},indexOf(...e){return os(this,"indexOf",e)},join(e){return on(this).join(e)},lastIndexOf(...e){return os(this,"lastIndexOf",e)},map(e,t){return mt(this,"map",e,t,void 0,arguments)},pop(){return Nn(this,"pop")},push(...e){return Nn(this,"push",e)},reduce(e,...t){return zo(this,"reduce",e,t)},reduceRight(e,...t){return zo(this,"reduceRight",e,t)},shift(){return Nn(this,"shift")},some(e,t){return mt(this,"some",e,t,void 0,arguments)},splice(...e){return Nn(this,"splice",e)},toReversed(){return on(this).toReversed()},toSorted(e){return on(this).toSorted(e)},toSpliced(...e){return on(this).toSpliced(...e)},unshift(...e){return Nn(this,"unshift",e)},values(){return ss(this,"values",e=>at(this,e))}};function ss(e,t,n){const r=Kr(e),s=r[t]();return r!==e&&!Ve(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const hu=Array.prototype;function mt(e,t,n,r,s,o){const i=Kr(e),l=i!==e&&!Ve(e),a=i[t];if(a!==hu[t]){const u=a.apply(e,o);return l?tt(u):u}let f=n;i!==e&&(l?f=function(u,h){return n.call(this,at(e,u),h,e)}:n.length>2&&(f=function(u,h){return n.call(this,u,h,e)}));const c=a.call(i,f,r);return l&&s?s(c):c}function zo(e,t,n,r){const s=Kr(e),o=s!==e&&!Ve(e);let i=n,l=!1;s!==e&&(o?(l=r.length===0,i=function(f,c,u){return l&&(l=!1,f=at(e,f)),n.call(this,f,at(e,c),u,e)}):n.length>3&&(i=function(f,c,u){return n.call(this,f,c,u,e)}));const a=s[t](i,...r);return l?at(e,a):a}function os(e,t,n){const r=te(e);ke(r,"iterate",Qn);const s=r[t](...n);return(s===-1||s===!1)&&Gr(n[0])?(n[0]=te(n[0]),r[t](...n)):s}function Nn(e,t,n=[]){Tt(),_o();const r=te(e)[t].apply(e,n);return bo(),St(),r}const pu=fo("__proto__,__v_isRef,__isVue"),Dl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(We));function gu(e){We(e)||(e=String(e));const t=te(this);return ke(t,"has",e),t.hasOwnProperty(e)}class jl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Su:$l:o?Ul:Bl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=Y(t);if(!s){let a;if(i&&(a=du[n]))return a;if(n==="hasOwnProperty")return gu}const l=Reflect.get(t,n,ge(t)?t:r);if((We(n)?Dl.has(n):pu(n))||(s||ke(t,"get",n),o))return l;if(ge(l)){const a=i&&jr(n)?l:l.value;return s&&se(a)?xs(a):a}return se(l)?s?xs(l):At(l):l}}class Fl extends jl{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=Y(t)&&jr(n);if(!this._isShallow){const f=gt(o);if(!Ve(r)&&!gt(r)&&(o=te(o),r=te(r)),!i&&ge(o)&&!ge(r))return f||(o.value=r),!0}const l=i?Number(n)e,ar=e=>Reflect.getPrototypeOf(e);function vu(e,t,n){return function(...r){const s=this.__v_raw,o=te(s),i=pn(o),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,f=s[e](...r),c=n?ks:t?bn:tt;return!t&&ke(o,"iterate",a?Ps:qt),Te(Object.create(f),{next(){const{value:u,done:h}=f.next();return h?{value:u,done:h}:{value:l?[c(u[0]),c(u[1])]:c(u),done:h}}})}}function cr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function wu(e,t){const n={get(s){const o=this.__v_raw,i=te(o),l=te(s);e||(ct(s,l)&&ke(i,"get",s),ke(i,"get",l));const{has:a}=ar(i),f=t?ks:e?bn:tt;if(a.call(i,s))return f(o.get(s));if(a.call(i,l))return f(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&ke(te(s),"iterate",qt),s.size},has(s){const o=this.__v_raw,i=te(o),l=te(s);return e||(ct(s,l)&&ke(i,"has",s),ke(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,a=te(l),f=t?ks:e?bn:tt;return!e&&ke(a,"iterate",qt),l.forEach((c,u)=>s.call(o,f(c),f(u),i))}};return Te(n,e?{add:cr("add"),set:cr("set"),delete:cr("delete"),clear:cr("clear")}:{add(s){const o=te(this),i=ar(o),l=te(s),a=!t&&!Ve(s)&&!gt(s)?l:s;return i.has.call(o,a)||ct(s,a)&&i.has.call(o,s)||ct(l,a)&&i.has.call(o,l)||(o.add(a),wt(o,"add",a,a)),this},set(s,o){!t&&!Ve(o)&&!gt(o)&&(o=te(o));const i=te(this),{has:l,get:a}=ar(i);let f=l.call(i,s);f||(s=te(s),f=l.call(i,s));const c=a.call(i,s);return i.set(s,o),f?ct(o,c)&&wt(i,"set",s,o):wt(i,"add",s,o),this},delete(s){const o=te(this),{has:i,get:l}=ar(o);let a=i.call(o,s);a||(s=te(s),a=i.call(o,s)),l&&l.call(o,s);const f=o.delete(s);return a&&wt(o,"delete",s,void 0),f},clear(){const s=te(this),o=s.size!==0,i=s.clear();return o&&wt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=vu(s,e,t)}),n}function wo(e,t){const n=wu(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ie(n,s)&&s in r?n:r,s,o)}const Eu={get:wo(!1,!1)},Ru={get:wo(!1,!0)},Tu={get:wo(!0,!1)};const Bl=new WeakMap,Ul=new WeakMap,$l=new WeakMap,Su=new WeakMap;function Cu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function At(e){return gt(e)?e:Eo(e,!1,yu,Eu,Bl)}function ft(e){return Eo(e,!1,bu,Ru,Ul)}function xs(e){return Eo(e,!0,_u,Tu,$l)}function Eo(e,t,n,r,s){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Cu(zc(e));if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function ht(e){return gt(e)?ht(e.__v_raw):!!(e&&e.__v_isReactive)}function gt(e){return!!(e&&e.__v_isReadonly)}function Ve(e){return!!(e&&e.__v_isShallow)}function Gr(e){return e?!!e.__v_raw:!1}function te(e){const t=e&&e.__v_raw;return t?te(t):e}function Ro(e){return!ie(e,"__v_skip")&&Object.isExtensible(e)&&Rl(e,"__v_skip",!0),e}const tt=e=>se(e)?At(e):e,bn=e=>se(e)?xs(e):e;function ge(e){return e?e.__v_isRef===!0:!1}function pt(e){return Vl(e,!1)}function vn(e){return Vl(e,!0)}function Vl(e,t){return ge(e)?e:new Au(e,t)}class Au{constructor(t,n){this.dep=new Wr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:te(t),this._value=n?t:tt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Ve(t)||gt(t);t=r?t:te(t),ct(t,n)&&(this._rawValue=t,this._value=r?t:tt(t),this.dep.trigger())}}function ce(e){return ge(e)?e.value:e}function Pu(e){return Q(e)?e():ce(e)}const ku={get:(e,t,n)=>t==="__v_raw"?e:ce(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ge(s)&&!ge(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Wl(e){return ht(e)?e:new Proxy(e,ku)}class xu{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Wr,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function uy(e){return new xu(e)}function Ou(e){const t=Y(e)?new Array(e.length):{};for(const n in e)t[n]=Kl(e,n);return t}class Nu{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=We(n)?n:String(n),this._raw=te(t);let s=!0,o=t;if(!Y(t)||We(this._key)||!jr(this._key))do s=!Gr(o)||Ve(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ce(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ge(this._raw[this._key])){const n=this._object[this._key];if(ge(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return fu(this._raw,this._key)}}class Iu{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Mu(e,t,n){return ge(e)?e:Q(e)?new Iu(e):se(e)&&arguments.length>1?Kl(e,t,n):pt(e)}function Kl(e,t,n){return new Nu(e,t,n)}class Lu{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Wr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=zn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&de!==this)return Ol(this,!0),!0}get value(){const t=this.dep.track();return Ml(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hu(e,t,n=!1){let r,s;return Q(e)?r=e:(r=e.get,s=e.set),new Lu(r,s,n)}const ur={},wr=new WeakMap;let Vt;function Du(e,t=!1,n=Vt){if(n){let r=wr.get(n);r||wr.set(n,r=[]),r.push(e)}}function ju(e,t,n=fe){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:a}=n,f=b=>s?b:Ve(b)||s===!1||s===0?Et(b,1):Et(b);let c,u,h,d,g=!1,y=!1;if(ge(e)?(u=()=>e.value,g=Ve(e)):ht(e)?(u=()=>f(e),g=!0):Y(e)?(y=!0,g=e.some(b=>ht(b)||Ve(b)),u=()=>e.map(b=>{if(ge(b))return b.value;if(ht(b))return f(b);if(Q(b))return a?a(b,2):b()})):Q(e)?t?u=a?()=>a(e,2):e:u=()=>{if(h){Tt();try{h()}finally{St()}}const b=Vt;Vt=c;try{return a?a(e,3,[d]):e(d)}finally{Vt=b}}:u=dt,t&&s){const b=u,v=s===!0?1/0:s;u=()=>Et(b(),v)}const P=yo(),R=()=>{c.stop(),P&&P.active&&ho(P.effects,c)};if(o&&t){const b=t;t=(...v)=>{const x=b(...v);return R(),x}}let w=y?new Array(e.length).fill(ur):ur;const m=b=>{if(!(!(c.flags&1)||!c.dirty&&!b))if(t){const v=c.run();if(b||s||g||(y?v.some((x,A)=>ct(x,w[A])):ct(v,w))){h&&h();const x=Vt;Vt=c;try{const A=[v,w===ur?void 0:y&&w[0]===ur?[]:w,d];w=v,a?a(t,3,A):t(...A)}finally{Vt=x}}}else c.run()};return l&&l(m),c=new kl(u),c.scheduler=i?()=>i(m,!1):m,d=b=>Du(b,!1,c),h=c.onStop=()=>{const b=wr.get(c);if(b){if(a)a(b,4);else for(const v of b)v();wr.delete(c)}},t?r?m(!0):w=c.run():i?i(m.bind(null,!0),!0):c.run(),R.pause=c.pause.bind(c),R.resume=c.resume.bind(c),R.stop=R,R}function Et(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ge(e))Et(e.value,t,n);else if(Y(e))for(let r=0;r{Et(r,t,n)});else if(El(e)){for(const r in e)Et(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Et(e[r],t,n)}return e}function sr(e,t,n,r){try{return r?e(...r):e()}catch(s){Pn(s,t,n)}}function Qe(e,t,n,r){if(Q(e)){const s=sr(e,t,n,r);return s&&vl(s)&&s.catch(o=>{Pn(o,t,n)}),s}if(Y(e)){const s=[];for(let o=0;o>>1,s=Me[r],o=Xn(s);o=Xn(n)?Me.push(e):Me.splice(Bu(t),0,e),e.flags|=1,ql()}}function ql(){Er||(Er=Gl.then(Jl))}function Os(e){Y(e)?mn.push(...e):It&&e.id===-1?It.splice(cn+1,0,e):e.flags&1||(mn.push(e),e.flags|=1),ql()}function Qo(e,t,n=it+1){for(;nXn(n)-Xn(r));if(mn.length=0,It){It.push(...t);return}for(It=t,cn=0;cne.id==null?e.flags&2?-1:1/0:e.id;function Jl(e){try{for(it=0;it{r._d&&kr(-1);const o=Tr(t);let i;try{i=e(...s)}finally{Tr(o),r._d&&kr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function fy(e,t){if(Ae===null)return e;const n=Qr(Ae),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&Q(t)?t.call(r&&r.proxy):t}}function qr(){return!!(kn()||Yt)}const Uu=Symbol.for("v-scx"),$u=()=>Pe(Uu);function Vu(e,t){return Co(e,null,t)}function Jt(e,t,n){return Co(e,t,n)}function Co(e,t,n=fe){const{immediate:r,deep:s,flush:o,once:i}=n,l=Te({},n),a=t&&r||!t&&o!=="post";let f;if(Rn){if(o==="sync"){const d=$u();f=d.__watcherHandles||(d.__watcherHandles=[])}else if(!a){const d=()=>{};return d.stop=dt,d.resume=dt,d.pause=dt,d}}const c=Ce;l.call=(d,g,y)=>Qe(d,c,g,y);let u=!1;o==="post"?l.scheduler=d=>{Re(d,c&&c.suspense)}:o!=="sync"&&(u=!0,l.scheduler=(d,g)=>{g?d():To(d)}),l.augmentJob=d=>{t&&(d.flags|=4),u&&(d.flags|=2,c&&(d.id=c.uid,d.i=c))};const h=ju(e,t,l);return Rn&&(f?f.push(h):a&&h()),h}function Wu(e,t,n){const r=this.proxy,s=he(e)?e.includes(".")?zl(r,e):()=>r[e]:e.bind(r,r);let o;Q(t)?o=t:(o=t.handler,n=t);const i=lr(this),l=Co(s,o.bind(r),n);return i(),l}function zl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,Ye=Symbol("_leaveCb"),In=Symbol("_enterCb");function Gu(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Po(()=>{e.isMounted=!0}),ir(()=>{e.isUnmounting=!0}),e}const qe=[Function,Array],Xl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:qe,onEnter:qe,onAfterEnter:qe,onEnterCancelled:qe,onBeforeLeave:qe,onLeave:qe,onAfterLeave:qe,onLeaveCancelled:qe,onBeforeAppear:qe,onAppear:qe,onAfterAppear:qe,onAppearCancelled:qe},Zl=e=>{const t=e.subTree;return t.component?Zl(t.component):t},qu={name:"BaseTransition",props:Xl,setup(e,{slots:t}){const n=kn(),r=Gu();return()=>{const s=t.default&&na(t.default(),!0),o=s&&s.length?ea(s):n.subTree?$f():void 0;if(!o)return;const i=te(e),{mode:l}=i;if(r.isLeaving)return is(o);const a=Xo(o);if(!a)return is(o);let f=Ns(a,i,r,n,u=>f=u);a.type!==be&&wn(a,f);let c=n.subTree&&Xo(n.subTree);if(c&&c.type!==be&&!Ze(c,a)&&Zl(n).type!==be){let u=Ns(c,i,r,n);if(wn(c,u),l==="out-in"&&a.type!==be)return r.isLeaving=!0,u.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete u.afterLeave,c=void 0},is(o);l==="in-out"&&a.type!==be?u.delayLeave=(h,d,g)=>{const y=ta(r,c);y[String(c.key)]=c,h[Ye]=()=>{d(),h[Ye]=void 0,delete f.delayedLeave,c=void 0},f.delayedLeave=()=>{g(),delete f.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function ea(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==be){t=n;break}}return t}const Ju=qu;function ta(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ns(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:f,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:h,onLeave:d,onAfterLeave:g,onLeaveCancelled:y,onBeforeAppear:P,onAppear:R,onAfterAppear:w,onAppearCancelled:m}=t,b=String(e.key),v=ta(n,e),x=(S,k)=>{S&&Qe(S,r,9,k)},A=(S,k)=>{const W=k[1];x(S,k),Y(S)?S.every(M=>M.length<=1)&&W():S.length<=1&&W()},L={mode:i,persisted:l,beforeEnter(S){let k=a;if(!n.isMounted)if(o)k=P||a;else return;S[Ye]&&S[Ye](!0);const W=v[b];W&&Ze(e,W)&&W.el[Ye]&&W.el[Ye](),x(k,[S])},enter(S){if(v[b]===e)return;let k=f,W=c,M=u;if(!n.isMounted)if(o)k=R||f,W=w||c,M=m||u;else return;let K=!1;S[In]=ne=>{K||(K=!0,ne?x(M,[S]):x(W,[S]),L.delayedLeave&&L.delayedLeave(),S[In]=void 0)};const Z=S[In].bind(null,!1);k?A(k,[S,Z]):Z()},leave(S,k){const W=String(e.key);if(S[In]&&S[In](!0),n.isUnmounting)return k();x(h,[S]);let M=!1;S[Ye]=Z=>{M||(M=!0,k(),Z?x(y,[S]):x(g,[S]),S[Ye]=void 0,v[W]===e&&delete v[W])};const K=S[Ye].bind(null,!1);v[W]=e,d?A(d,[S,K]):K()},clone(S){const k=Ns(S,t,n,r,s);return s&&s(k),k}};return L}function is(e){if(or(e))return e=Ct(e),e.children=null,e}function Xo(e){if(!or(e))return Ql(e.type)&&e.children?ea(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Q(n.default))return n.default()}}function wn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,wn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function na(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oyn(y,t&&(Y(t)?t[P]:t),n,r,s));return}if(Rt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&yn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Qr(r.component):r.el,i=s?null:o,{i:l,r:a}=e,f=t&&t.r,c=l.refs===fe?l.refs={}:l.refs,u=l.setupState,h=te(u),d=u===fe?_l:y=>Zo(c,y)?!1:ie(h,y),g=(y,P)=>!(P&&Zo(c,P));if(f!=null&&f!==a){if(ei(t),he(f))c[f]=null,d(f)&&(u[f]=null);else if(ge(f)){const y=t;g(f,y.k)&&(f.value=null),y.k&&(c[y.k]=null)}}if(Q(a))sr(a,l,12,[i,c]);else{const y=he(a),P=ge(a);if(y||P){const R=()=>{if(e.f){const w=y?d(a)?u[a]:c[a]:g()||!e.k?a.value:c[e.k];if(s)Y(w)&&ho(w,o);else if(Y(w))w.includes(o)||w.push(o);else if(y)c[a]=[o],d(a)&&(u[a]=c[a]);else{const m=[o];g(a,e.k)&&(a.value=m),e.k&&(c[e.k]=m)}}else y?(c[a]=i,d(a)&&(u[a]=i)):P&&(g(a,e.k)&&(a.value=i),e.k&&(c[e.k]=i))};if(i){const w=()=>{R(),Sr.delete(e)};w.id=-1,Sr.set(e,w),Re(w,n)}else ei(e),R()}}}function ei(e){const t=Sr.get(e);t&&(t.flags|=8,Sr.delete(e))}let ti=!1;const ln=()=>{ti||(console.error("Hydration completed but contains mismatches."),ti=!0)},Yu=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",zu=e=>e.namespaceURI.includes("MathML"),fr=e=>{if(e.nodeType===1){if(Yu(e))return"svg";if(zu(e))return"mathml"}},dn=e=>e.nodeType===8;function Qu(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:a,createComment:f}}=e,c=(m,b)=>{if(!b.hasChildNodes()){n(null,m,b),Rr(),b._vnode=m;return}u(b.firstChild,m,null,null,null),Rr(),b._vnode=m},u=(m,b,v,x,A,L=!1)=>{L=L||!!b.dynamicChildren;const S=dn(m)&&m.data==="[",k=()=>y(m,b,v,x,A,S),{type:W,ref:M,shapeFlag:K,patchFlag:Z}=b;let ne=m.nodeType;b.el=m,Z===-2&&(L=!1,b.dynamicChildren=null);let U=null;switch(W){case zt:ne!==3?b.children===""?(a(b.el=s(""),i(m),m),U=m):U=k():(m.data!==b.children&&(ln(),m.data=b.children),U=o(m));break;case be:w(m)?(U=o(m),R(b.el=m.content.firstChild,m,v)):ne!==8||S?U=k():U=o(m);break;case Wn:if(S&&(m=o(m),ne=m.nodeType),ne===1||ne===3){U=m;const G=!b.children.length;for(let $=0;${L=L||!!b.dynamicChildren;const{type:S,props:k,patchFlag:W,shapeFlag:M,dirs:K,transition:Z}=b,ne=S==="input"||S==="option";if(ne||W!==-1){K&<(b,null,v,"created");let U=!1;if(w(m)){U=Ca(null,Z)&&v&&v.vnode.props&&v.vnode.props.appear;const $=m.content.firstChild;if(U){const le=$.getAttribute("class");le&&($.$cls=le),Z.beforeEnter($)}R($,m,v),b.el=m=$}if(M&16&&!(k&&(k.innerHTML||k.textContent))){let $=d(m.firstChild,b,m,v,x,A,L);for($&&!dr(m,1)&&ln();$;){const le=$;$=$.nextSibling,l(le)}}else if(M&8){let $=b.children;$[0]===` +`&&(m.tagName==="PRE"||m.tagName==="TEXTAREA")&&($=$.slice(1));const{textContent:le}=m;le!==$&&le!==$.replace(/\r\n|\r/g,` +`)&&(dr(m,0)||ln(),m.textContent=b.children)}if(k){if(ne||!L||W&48){const $=m.tagName.includes("-");for(const le in k)(ne&&(le.endsWith("value")||le==="indeterminate")||rr(le)&&!Gt(le)||le[0]==="."||$&&!Gt(le))&&r(m,le,null,k[le],void 0,v)}else if(k.onClick)r(m,"onClick",null,k.onClick,void 0,v);else if(W&4&&ht(k.style))for(const $ in k.style)k.style[$]}let G;(G=k&&k.onVnodeBeforeMount)&&De(G,v,b),K&<(b,null,v,"beforeMount"),((G=k&&k.onVnodeMounted)||K||U)&&Oa(()=>{G&&De(G,v,b),U&&Z.enter(m),K&<(b,null,v,"mounted")},x)}return m.nextSibling},d=(m,b,v,x,A,L,S)=>{S=S||!!b.dynamicChildren;const k=b.children,W=k.length;let M=!1;for(let K=0;K{const{slotScopeIds:S}=b;S&&(A=A?A.concat(S):S);const k=i(m),W=d(o(m),b,k,v,x,A,L);return W&&dn(W)&&W.data==="]"?o(b.anchor=W):(ln(),a(b.anchor=f("]"),k,W),W)},y=(m,b,v,x,A,L)=>{if(dr(m.parentElement,1)||ln(),b.el=null,L){const W=P(m);for(;;){const M=o(m);if(M&&M!==W)l(M);else break}}const S=o(m),k=i(m);return l(m),n(null,b,k,S,v,x,fr(k),A),v&&(v.vnode.el=b.el,zr(v,b.el)),S},P=(m,b="[",v="]")=>{let x=0;for(;m;)if(m=o(m),m&&dn(m)&&(m.data===b&&x++,m.data===v)){if(x===0)return o(m);x--}return m},R=(m,b,v)=>{const x=b.parentNode;x&&x.replaceChild(m,b);let A=v;for(;A;)A.vnode.el===b&&(A.vnode.el=A.subTree.el=m),A=A.parent},w=m=>m.nodeType===1&&m.tagName==="TEMPLATE";return[c,u]}const ni="data-allow-mismatch",Xu={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function dr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ni);)e=e.parentElement;const n=e&&e.getAttribute(ni);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:r.includes(Xu[t])}}Ur().requestIdleCallback;Ur().cancelIdleCallback;function Zu(e,t){if(dn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(dn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Rt=e=>!!e.type.__asyncLoader;function Is(e){Q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:o,timeout:i,suspensible:l=!0,onError:a}=e;let f=null,c,u=0;const h=()=>(u++,f=null,d()),d=()=>{let g;return f||(g=f=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),a)return new Promise((P,R)=>{a(y,()=>P(h()),()=>R(y),u+1)});throw y}).then(y=>g!==f&&f?f:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return Dt({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(g,y,P){let R=!1;(y.bu||(y.bu=[])).push(()=>R=!0);const w=()=>{R||P()},m=o?()=>{const b=o(w,v=>Zu(g,v));b&&(y.bum||(y.bum=[])).push(b)}:w;c?m():d().then(()=>!y.isUnmounted&&m())},get __asyncResolved(){return c},setup(){const g=Ce;if(Ao(g),c)return()=>hr(c,g);const y=v=>{f=null,Pn(v,g,13,!r)};if(l&&g.suspense||Rn)return d().then(v=>()=>hr(v,g)).catch(v=>(y(v),()=>r?ye(r,{error:v}):null));const P=pt(!1),R=pt(),w=pt(!!s);let m,b;return ko(()=>{m!=null&&clearTimeout(m),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{g.isUnmounted||(w.value=!1)},s)),i!=null&&(m=setTimeout(()=>{if(!g.isUnmounted&&!P.value&&!R.value){const v=new Error(`Async component timed out after ${i}ms.`);y(v),R.value=v}},i)),d().then(()=>{g.isUnmounted||(P.value=!0,g.parent&&or(g.parent.vnode)&&g.parent.update())}).catch(v=>{if(g.isUnmounted){f=null;return}y(v),R.value=v}),()=>{if(P.value&&c)return hr(c,g);if(R.value&&r)return ye(r,{error:R.value});if(n&&!w.value)return hr(n,g)}}})}function hr(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ye(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const or=e=>e.type.__isKeepAlive,ef={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=kn(),r=n.ctx;if(!r.renderer)return()=>{const w=t.default&&t.default();return w&&w.length===1?w[0]:w};const s=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:a,m:f,um:c,o:{createElement:u}}}=r,h=u("div");r.activate=(w,m,b,v,x)=>{const A=w.component;f(w,m,b,0,l),a(A.vnode,w,m,b,A,l,v,w.slotScopeIds,x),Re(()=>{A.isDeactivated=!1,A.a&&gn(A.a);const L=w.props&&w.props.onVnodeMounted;L&&De(L,A.parent,w)},l)},r.deactivate=w=>{const m=w.component;Ar(m.m),Ar(m.a),f(w,h,null,1,l),Re(()=>{m.da&&gn(m.da);const b=w.props&&w.props.onVnodeUnmounted;b&&De(b,m.parent,w),m.isDeactivated=!0},l)};function d(w){ls(w),c(w,n,l,!0)}function g(w){s.forEach((m,b)=>{const v=$s(Rt(m)?m.type.__asyncResolved||{}:m.type);v&&!w(v)&&y(b)})}function y(w){const m=s.get(w);m&&(!i||!Ze(m,i))?d(m):i&&ls(i),s.delete(w),o.delete(w)}Jt(()=>[e.include,e.exclude],([w,m])=>{w&&g(b=>jn(w,b)),m&&g(b=>!jn(m,b))},{flush:"post",deep:!0});let P=null;const R=()=>{P!=null&&(Pr(n.subTree.type)?Re(()=>{s.set(P,pr(n.subTree))},n.subTree.suspense):s.set(P,pr(n.subTree)))};return Po(R),ia(R),ir(()=>{s.forEach(w=>{const{subTree:m,suspense:b}=n,v=pr(m);if(w.type===v.type&&w.key===v.key){ls(v);const x=v.component.da;x&&Re(x,b);return}d(w)})}),()=>{if(P=null,!t.default)return i=null;const w=t.default(),m=w[0];if(w.length>1)return i=null,w;if(!en(m)||!(m.shapeFlag&4)&&!(m.shapeFlag&128))return i=null,m;let b=pr(m);if(b.type===be)return i=null,b;const v=b.type,x=$s(Rt(b)?b.type.__asyncResolved||{}:v),{include:A,exclude:L,max:S}=e;if(A&&(!x||!jn(A,x))||L&&x&&jn(L,x))return b.shapeFlag&=-257,i=b,m;const k=b.key==null?v:b.key,W=s.get(k);return b.el&&(b=Ct(b),m.shapeFlag&128&&(m.ssContent=b)),P=k,W?(b.el=W.el,b.component=W.component,b.transition&&wn(b,b.transition),b.shapeFlag|=512,o.delete(k),o.add(k)):(o.add(k),S&&o.size>parseInt(S,10)&&y(o.values().next().value)),b.shapeFlag|=256,i=b,Pr(m.type)?m:b}}},tf=ef;function jn(e,t){return Y(e)?e.some(n=>jn(n,t)):he(e)?e.split(",").includes(t):Yc(e)?(e.lastIndex=0,e.test(t)):!1}function ra(e,t){oa(e,"a",t)}function sa(e,t){oa(e,"da",t)}function oa(e,t,n=Ce){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Jr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)or(s.parent.vnode)&&nf(r,t,n,s),s=s.parent}}function nf(e,t,n,r){const s=Jr(t,e,r,!0);ko(()=>{ho(r[t],s)},n)}function ls(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function pr(e){return e.shapeFlag&128?e.ssContent:e}function Jr(e,t,n=Ce,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Tt();const l=lr(n),a=Qe(t,n,e,i);return l(),St(),a});return r?s.unshift(o):s.push(o),o}}const Pt=e=>(t,n=Ce)=>{(!Rn||e==="sp")&&Jr(e,(...r)=>t(...r),n)},rf=Pt("bm"),Po=Pt("m"),sf=Pt("bu"),ia=Pt("u"),ir=Pt("bum"),ko=Pt("um"),of=Pt("sp"),lf=Pt("rtg"),af=Pt("rtc");function la(e,t=Ce){Jr("ec",e,t)}const aa="components";function dy(e,t){return ua(aa,e,!0,t)||e}const ca=Symbol.for("v-ndc");function cf(e){return he(e)?ua(aa,e,!1)||e:e||ca}function ua(e,t,n=!0,r=!1){const s=Ae||Ce;if(s){const o=s.type;{const l=$s(o,!1);if(l&&(l===t||l===Le(t)||l===Br(Le(t))))return o}const i=ri(s[e]||o[e],t)||ri(s.appContext[e],t);return!i&&r?o:i}}function ri(e,t){return e&&(e[t]||e[Le(t)]||e[Br(Le(t))])}function hy(e,t,n,r){let s;const o=n,i=Y(e);if(i||he(e)){const l=i&&ht(e);let a=!1,f=!1;l&&(a=!Ve(e),f=gt(e),e=Kr(e)),s=new Array(e.length);for(let c=0,u=e.length;ct(l,a,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let a=0,f=l.length;a0;return ze(),ut(xe,null,[ye("slot",n,r)],f?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ze();const i=o&&fa(o(n)),l=n.key||i&&i.key,a=ut(xe,{key:(l&&!We(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function fa(e){return e.some(t=>en(t)?!(t.type===be||t.type===xe&&!fa(t.children)):!0)?e:null}const Ms=e=>e?Fa(e)?Qr(e):Ms(e.parent):null,Vn=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ms(e.parent),$root:e=>Ms(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ha(e),$forceUpdate:e=>e.f||(e.f=()=>{To(e.update)}),$nextTick:e=>e.n||(e.n=Zt.bind(e.proxy)),$watch:e=>Wu.bind(e)}),as=(e,t)=>e!==fe&&!e.__isScriptSetup&&ie(e,t),uf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(as(r,t))return i[t]=1,r[t];if(s!==fe&&ie(s,t))return i[t]=2,s[t];if(ie(o,t))return i[t]=3,o[t];if(n!==fe&&ie(n,t))return i[t]=4,n[t];Ls&&(i[t]=0)}}const f=Vn[t];let c,u;if(f)return t==="$attrs"&&ke(e.attrs,"get",""),f(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==fe&&ie(n,t))return i[t]=4,n[t];if(u=a.config.globalProperties,ie(u,t))return u[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return as(s,t)?(s[t]=n,!0):r!==fe&&ie(r,t)?(r[t]=n,!0):ie(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let a;return!!(n[l]||e!==fe&&l[0]!=="$"&&ie(e,l)||as(t,l)||ie(o,l)||ie(r,l)||ie(Vn,l)||ie(s.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function si(e){return Y(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ls=!0;function ff(e){const t=ha(e),n=e.proxy,r=e.ctx;Ls=!1,t.beforeCreate&&oi(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:a,inject:f,created:c,beforeMount:u,mounted:h,beforeUpdate:d,updated:g,activated:y,deactivated:P,beforeDestroy:R,beforeUnmount:w,destroyed:m,unmounted:b,render:v,renderTracked:x,renderTriggered:A,errorCaptured:L,serverPrefetch:S,expose:k,inheritAttrs:W,components:M,directives:K,filters:Z}=t;if(f&&df(f,r,null),i)for(const G in i){const $=i[G];Q($)&&(r[G]=$.bind(n))}if(s){const G=s.call(n,n);se(G)&&(e.data=At(G))}if(Ls=!0,o)for(const G in o){const $=o[G],le=Q($)?$.bind(n,n):Q($.get)?$.get.bind(n,n):dt,kt=!Q($)&&Q($.set)?$.set.bind(n):dt,st=$e({get:le,set:kt});Object.defineProperty(r,G,{enumerable:!0,configurable:!0,get:()=>st.value,set:He=>st.value=He})}if(l)for(const G in l)da(l[G],r,n,G);if(a){const G=Q(a)?a.call(n):a;Reflect.ownKeys(G).forEach($=>{Ht($,G[$])})}c&&oi(c,e,"c");function U(G,$){Y($)?$.forEach(le=>G(le.bind(n))):$&&G($.bind(n))}if(U(rf,u),U(Po,h),U(sf,d),U(ia,g),U(ra,y),U(sa,P),U(la,L),U(af,x),U(lf,A),U(ir,w),U(ko,b),U(of,S),Y(k))if(k.length){const G=e.exposed||(e.exposed={});k.forEach($=>{Object.defineProperty(G,$,{get:()=>n[$],set:le=>n[$]=le,enumerable:!0})})}else e.exposed||(e.exposed={});v&&e.render===dt&&(e.render=v),W!=null&&(e.inheritAttrs=W),M&&(e.components=M),K&&(e.directives=K),S&&Ao(e)}function df(e,t,n=dt){Y(e)&&(e=Hs(e));for(const r in e){const s=e[r];let o;se(s)?"default"in s?o=Pe(s.from||r,s.default,!0):o=Pe(s.from||r):o=Pe(s),ge(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function oi(e,t,n){Qe(Y(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function da(e,t,n,r){let s=r.includes(".")?zl(n,r):()=>n[r];if(he(e)){const o=t[e];Q(o)&&Jt(s,o)}else if(Q(e))Jt(s,e.bind(n));else if(se(e))if(Y(e))e.forEach(o=>da(o,t,n,r));else{const o=Q(e.handler)?e.handler.bind(n):t[e.handler];Q(o)&&Jt(s,o,e)}}function ha(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let a;return l?a=l:!s.length&&!n&&!r?a=t:(a={},s.length&&s.forEach(f=>Cr(a,f,i,!0)),Cr(a,t,i)),se(t)&&o.set(t,a),a}function Cr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Cr(e,o,n,!0),s&&s.forEach(i=>Cr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=hf[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const hf={data:ii,props:li,emits:li,methods:Fn,computed:Fn,beforeCreate:Ne,created:Ne,beforeMount:Ne,mounted:Ne,beforeUpdate:Ne,updated:Ne,beforeDestroy:Ne,beforeUnmount:Ne,destroyed:Ne,unmounted:Ne,activated:Ne,deactivated:Ne,errorCaptured:Ne,serverPrefetch:Ne,components:Fn,directives:Fn,watch:gf,provide:ii,inject:pf};function ii(e,t){return t?e?function(){return Te(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function pf(e,t){return Fn(Hs(e),Hs(t))}function Hs(e){if(Y(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${nn(t)}Modifiers`];function bf(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||fe;let s=n;const o=t.startsWith("update:"),i=o&&_f(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>he(c)?c.trim():c)),i.number&&(s=n.map(po)));let l,a=r[l=ts(t)]||r[l=ts(Le(t))];!a&&o&&(a=r[l=ts(nn(t))]),a&&Qe(a,e,6,s);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Qe(f,e,6,s)}}const vf=new WeakMap;function ga(e,t,n=!1){const r=n?vf:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!Q(e)){const a=f=>{const c=ga(f,t,!0);c&&(l=!0,Te(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!l?(se(e)&&r.set(e,null),null):(Y(o)?o.forEach(a=>i[a]=null):Te(i,o),se(e)&&r.set(e,i),i)}function Yr(e,t){return!e||!rr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,nn(t))||ie(e,t))}function cs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:a,render:f,renderCache:c,props:u,data:h,setupState:d,ctx:g,inheritAttrs:y}=e,P=Tr(e);let R,w;try{if(n.shapeFlag&4){const b=s||r,v=b;R=Ue(f.call(v,b,c,u,d,h,g)),w=l}else{const b=t;R=Ue(b.length>1?b(u,{attrs:l,slots:i,emit:a}):b(u,null)),w=t.props?l:Ef(l)}}catch(b){Kn.length=0,Pn(b,e,1),R=ye(be)}let m=R;if(w&&y!==!1){const b=Object.keys(w),{shapeFlag:v}=m;b.length&&v&7&&(o&&b.some(Dr)&&(w=Rf(w,o)),m=Ct(m,w,!1,!0))}return n.dirs&&(m=Ct(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(n.dirs):n.dirs),n.transition&&wn(m,n.transition),R=m,Tr(P),R}function wf(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||rr(n))&&((t||(t={}))[n]=e[n]);return t},Rf=(e,t)=>{const n={};for(const r in e)(!Dr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Tf(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:a}=t,f=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?ai(r,i,f):!!i;if(a&8){const c=t.dynamicProps;for(let u=0;uObject.create(ya),ba=e=>Object.getPrototypeOf(e)===ya;function Sf(e,t,n,r=!1){const s={},o=_a();e.propsDefaults=Object.create(null),va(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ft(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Cf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=te(s),[a]=e.propsOptions;let f=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let u=0;u{a=!0;const[h,d]=wa(u,t,!0);Te(i,h),d&&l.push(...d)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!a)return se(e)&&r.set(e,hn),hn;if(Y(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Oo=e=>Y(e)?e.map(Ue):[Ue(e)],Pf=(e,t,n)=>{if(t._n)return t;const r=So((...s)=>Oo(t(...s)),n);return r._c=!1,r},Ea=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xo(s))continue;const o=e[s];if(Q(o))t[s]=Pf(s,o,r);else if(o!=null){const i=Oo(o);t[s]=()=>i}}},Ra=(e,t)=>{const n=Oo(t);e.slots.default=()=>n},Ta=(e,t,n)=>{for(const r in t)(n||!xo(r))&&(e[r]=t[r])},kf=(e,t,n)=>{const r=e.slots=_a();if(e.vnode.shapeFlag&32){const s=t._;s?(Ta(r,t,n),n&&Rl(r,"_",s,!0)):Ea(t,r)}else t&&Ra(e,t)},xf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=fe;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ta(s,t,n):(o=!t.$stable,Ea(t,s)),i=t}else t&&(Ra(e,t),i={default:1});if(o)for(const l in s)!xo(l)&&i[l]==null&&delete s[l]},Re=Oa;function Of(e){return Sa(e)}function Nf(e){return Sa(e,Qu)}function Sa(e,t){const n=Ur();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:a,setText:f,setElementText:c,parentNode:u,nextSibling:h,setScopeId:d=dt,insertStaticContent:g}=e,y=(p,_,E,N=null,T=null,O=null,j=void 0,D=null,H=!!_.dynamicChildren)=>{if(p===_)return;p&&!Ze(p,_)&&(N=C(p),He(p,T,O,!0),p=null),_.patchFlag===-2&&(H=!1,_.dynamicChildren=null);const{type:I,ref:z,shapeFlag:B}=_;switch(I){case zt:P(p,_,E,N);break;case be:R(p,_,E,N);break;case Wn:p==null&&w(_,E,N,j);break;case xe:M(p,_,E,N,T,O,j,D,H);break;default:B&1?v(p,_,E,N,T,O,j,D,H):B&6?K(p,_,E,N,T,O,j,D,H):(B&64||B&128)&&I.process(p,_,E,N,T,O,j,D,H,J)}z!=null&&T?yn(z,p&&p.ref,O,_||p,!_):z==null&&p&&p.ref!=null&&yn(p.ref,null,O,p,!0)},P=(p,_,E,N)=>{if(p==null)r(_.el=l(_.children),E,N);else{const T=_.el=p.el;_.children!==p.children&&f(T,_.children)}},R=(p,_,E,N)=>{p==null?r(_.el=a(_.children||""),E,N):_.el=p.el},w=(p,_,E,N)=>{[p.el,p.anchor]=g(p.children,_,E,N,p.el,p.anchor)},m=({el:p,anchor:_},E,N)=>{let T;for(;p&&p!==_;)T=h(p),r(p,E,N),p=T;r(_,E,N)},b=({el:p,anchor:_})=>{let E;for(;p&&p!==_;)E=h(p),s(p),p=E;s(_)},v=(p,_,E,N,T,O,j,D,H)=>{if(_.type==="svg"?j="svg":_.type==="math"&&(j="mathml"),p==null)x(_,E,N,T,O,j,D,H);else{const I=p.el&&p.el._isVueCE?p.el:null;try{I&&I._beginPatch(),S(p,_,T,O,j,D,H)}finally{I&&I._endPatch()}}},x=(p,_,E,N,T,O,j,D)=>{let H,I;const{props:z,shapeFlag:B,transition:q,dirs:X}=p;if(H=p.el=i(p.type,O,z&&z.is,z),B&8?c(H,p.children):B&16&&L(p.children,H,null,N,T,us(p,O),j,D),X&<(p,null,N,"created"),A(H,p,p.scopeId,j,N),z){for(const ue in z)ue!=="value"&&!Gt(ue)&&o(H,ue,null,z[ue],O,N);"value"in z&&o(H,"value",null,z.value,O),(I=z.onVnodeBeforeMount)&&De(I,N,p)}X&<(p,null,N,"beforeMount");const re=Ca(T,q);re&&q.beforeEnter(H),r(H,_,E),((I=z&&z.onVnodeMounted)||re||X)&&Re(()=>{I&&De(I,N,p),re&&q.enter(H),X&<(p,null,N,"mounted")},T)},A=(p,_,E,N,T)=>{if(E&&d(p,E),N)for(let O=0;O{for(let I=H;I{const D=_.el=p.el;let{patchFlag:H,dynamicChildren:I,dirs:z}=_;H|=p.patchFlag&16;const B=p.props||fe,q=_.props||fe;let X;if(E&&Ft(E,!1),(X=q.onVnodeBeforeUpdate)&&De(X,E,_,p),z&<(_,p,E,"beforeUpdate"),E&&Ft(E,!0),(B.innerHTML&&q.innerHTML==null||B.textContent&&q.textContent==null)&&c(D,""),I?k(p.dynamicChildren,I,D,E,N,us(_,T),O):j||$(p,_,D,null,E,N,us(_,T),O,!1),H>0){if(H&16)W(D,B,q,E,T);else if(H&2&&B.class!==q.class&&o(D,"class",null,q.class,T),H&4&&o(D,"style",B.style,q.style,T),H&8){const re=_.dynamicProps;for(let ue=0;ue{X&&De(X,E,_,p),z&<(_,p,E,"updated")},N)},k=(p,_,E,N,T,O,j)=>{for(let D=0;D<_.length;D++){const H=p[D],I=_[D],z=H.el&&(H.type===xe||!Ze(H,I)||H.shapeFlag&198)?u(H.el):E;y(H,I,z,null,N,T,O,j,!0)}},W=(p,_,E,N,T)=>{if(_!==E){if(_!==fe)for(const O in _)!Gt(O)&&!(O in E)&&o(p,O,_[O],null,T,N);for(const O in E){if(Gt(O))continue;const j=E[O],D=_[O];j!==D&&O!=="value"&&o(p,O,D,j,T,N)}"value"in E&&o(p,"value",_.value,E.value,T)}},M=(p,_,E,N,T,O,j,D,H)=>{const I=_.el=p?p.el:l(""),z=_.anchor=p?p.anchor:l("");let{patchFlag:B,dynamicChildren:q,slotScopeIds:X}=_;X&&(D=D?D.concat(X):X),p==null?(r(I,E,N),r(z,E,N),L(_.children||[],E,z,T,O,j,D,H)):B>0&&B&64&&q&&p.dynamicChildren&&p.dynamicChildren.length===q.length?(k(p.dynamicChildren,q,E,T,O,j,D),(_.key!=null||T&&_===T.subTree)&&Aa(p,_,!0)):$(p,_,E,z,T,O,j,D,H)},K=(p,_,E,N,T,O,j,D,H)=>{_.slotScopeIds=D,p==null?_.shapeFlag&512?T.ctx.activate(_,E,N,j,H):Z(_,E,N,T,O,j,H):ne(p,_,H)},Z=(p,_,E,N,T,O,j)=>{const D=p.component=Kf(p,N,T);if(or(p)&&(D.ctx.renderer=J),Gf(D,!1,j),D.asyncDep){if(T&&T.registerDep(D,U,j),!p.el){const H=D.subTree=ye(be);R(null,H,_,E),p.placeholder=H.el}}else U(D,p,_,E,T,O,j)},ne=(p,_,E)=>{const N=_.component=p.component;if(Tf(p,_,E))if(N.asyncDep&&!N.asyncResolved){G(N,_,E);return}else N.next=_,N.update();else _.el=p.el,N.vnode=_},U=(p,_,E,N,T,O,j)=>{const D=()=>{if(p.isMounted){let{next:B,bu:q,u:X,parent:re,vnode:ue}=p;{const Fe=Pa(p);if(Fe){B&&(B.el=ue.el,G(p,B,j)),Fe.asyncDep.then(()=>{Re(()=>{p.isUnmounted||I()},T)});return}}let ae=B,_e;Ft(p,!1),B?(B.el=ue.el,G(p,B,j)):B=ue,q&&gn(q),(_e=B.props&&B.props.onVnodeBeforeUpdate)&&De(_e,re,B,ue),Ft(p,!0);const ve=cs(p),Xe=p.subTree;p.subTree=ve,y(Xe,ve,u(Xe.el),C(Xe),p,T,O),B.el=ve.el,ae===null&&zr(p,ve.el),X&&Re(X,T),(_e=B.props&&B.props.onVnodeUpdated)&&Re(()=>De(_e,re,B,ue),T)}else{let B;const{el:q,props:X}=_,{bm:re,m:ue,parent:ae,root:_e,type:ve}=p,Xe=Rt(_);if(Ft(p,!1),re&&gn(re),!Xe&&(B=X&&X.onVnodeBeforeMount)&&De(B,ae,_),Ft(p,!0),q&&pe){const Fe=()=>{p.subTree=cs(p),pe(q,p.subTree,p,T,null)};Xe&&ve.__asyncHydrate?ve.__asyncHydrate(q,p,Fe):Fe()}else{_e.ce&&_e.ce._hasShadowRoot()&&_e.ce._injectChildStyle(ve,p.parent?p.parent.type:void 0);const Fe=p.subTree=cs(p);y(null,Fe,E,N,p,T,O),_.el=Fe.el}if(ue&&Re(ue,T),!Xe&&(B=X&&X.onVnodeMounted)){const Fe=_;Re(()=>De(B,ae,Fe),T)}(_.shapeFlag&256||ae&&Rt(ae.vnode)&&ae.vnode.shapeFlag&256)&&p.a&&Re(p.a,T),p.isMounted=!0,_=E=N=null}};p.scope.on();const H=p.effect=new kl(D);p.scope.off();const I=p.update=H.run.bind(H),z=p.job=H.runIfDirty.bind(H);z.i=p,z.id=p.uid,H.scheduler=()=>To(z),Ft(p,!0),I()},G=(p,_,E)=>{_.component=p;const N=p.vnode.props;p.vnode=_,p.next=null,Cf(p,_.props,N,E),xf(p,_.children,E),Tt(),Qo(p),St()},$=(p,_,E,N,T,O,j,D,H=!1)=>{const I=p&&p.children,z=p?p.shapeFlag:0,B=_.children,{patchFlag:q,shapeFlag:X}=_;if(q>0){if(q&128){kt(I,B,E,N,T,O,j,D,H);return}else if(q&256){le(I,B,E,N,T,O,j,D,H);return}}X&8?(z&16&&Ge(I,T,O),B!==I&&c(E,B)):z&16?X&16?kt(I,B,E,N,T,O,j,D,H):Ge(I,T,O,!0):(z&8&&c(E,""),X&16&&L(B,E,N,T,O,j,D,H))},le=(p,_,E,N,T,O,j,D,H)=>{p=p||hn,_=_||hn;const I=p.length,z=_.length,B=Math.min(I,z);let q;for(q=0;qz?Ge(p,T,O,!0,!1,B):L(_,E,N,T,O,j,D,H,B)},kt=(p,_,E,N,T,O,j,D,H)=>{let I=0;const z=_.length;let B=p.length-1,q=z-1;for(;I<=B&&I<=q;){const X=p[I],re=_[I]=H?vt(_[I]):Ue(_[I]);if(Ze(X,re))y(X,re,E,null,T,O,j,D,H);else break;I++}for(;I<=B&&I<=q;){const X=p[B],re=_[q]=H?vt(_[q]):Ue(_[q]);if(Ze(X,re))y(X,re,E,null,T,O,j,D,H);else break;B--,q--}if(I>B){if(I<=q){const X=q+1,re=Xq)for(;I<=B;)He(p[I],T,O,!0),I++;else{const X=I,re=I,ue=new Map;for(I=re;I<=q;I++){const Be=_[I]=H?vt(_[I]):Ue(_[I]);Be.key!=null&&ue.set(Be.key,I)}let ae,_e=0;const ve=q-re+1;let Xe=!1,Fe=0;const On=new Array(ve);for(I=0;I=ve){He(Be,T,O,!0);continue}let ot;if(Be.key!=null)ot=ue.get(Be.key);else for(ae=re;ae<=q;ae++)if(On[ae-re]===0&&Ze(Be,_[ae])){ot=ae;break}ot===void 0?He(Be,T,O,!0):(On[ot-re]=I+1,ot>=Fe?Fe=ot:Xe=!0,y(Be,_[ot],E,null,T,O,j,D,H),_e++)}const Wo=Xe?If(On):hn;for(ae=Wo.length-1,I=ve-1;I>=0;I--){const Be=re+I,ot=_[Be],Ko=_[Be+1],Go=Be+1{const{el:O,type:j,transition:D,children:H,shapeFlag:I}=p;if(I&6){st(p.component.subTree,_,E,N);return}if(I&128){p.suspense.move(_,E,N);return}if(I&64){j.move(p,_,E,J);return}if(j===xe){r(O,_,E);for(let B=0;BD.enter(O),T));else{const{leave:B,delayLeave:q,afterLeave:X}=D,re=()=>{p.ctx.isUnmounted?s(O):r(O,_,E)},ue=()=>{const ae=O._isLeaving||!!O[Ye];O._isLeaving&&O[Ye](!0),D.persisted&&!ae?re():B(O,()=>{re(),X&&X()})};q?q(O,re,ue):ue()}else r(O,_,E)},He=(p,_,E,N=!1,T=!1)=>{const{type:O,props:j,ref:D,children:H,dynamicChildren:I,shapeFlag:z,patchFlag:B,dirs:q,cacheIndex:X,memo:re}=p;if(B===-2&&(T=!1),D!=null&&(Tt(),yn(D,null,E,p,!0),St()),X!=null&&(_.renderCache[X]=void 0),z&256){_.ctx.deactivate(p);return}const ue=z&1&&q,ae=!Rt(p);let _e;if(ae&&(_e=j&&j.onVnodeBeforeUnmount)&&De(_e,_,p),z&6)jt(p.component,E,N);else{if(z&128){p.suspense.unmount(E,N);return}ue&<(p,null,_,"beforeUnmount"),z&64?p.type.remove(p,_,E,J,N):I&&!I.hasOnce&&(O!==xe||B>0&&B&64)?Ge(I,_,E,!1,!0):(O===xe&&B&384||!T&&z&16)&&Ge(H,_,E),N&&rn(p)}const ve=re!=null&&X==null;(ae&&(_e=j&&j.onVnodeUnmounted)||ue||ve)&&Re(()=>{_e&&De(_e,_,p),ue&<(p,null,_,"unmounted"),ve&&(p.el=null)},E)},rn=p=>{const{type:_,el:E,anchor:N,transition:T}=p;if(_===xe){sn(E,N);return}if(_===Wn){b(p);return}const O=()=>{s(E),T&&!T.persisted&&T.afterLeave&&T.afterLeave()};if(p.shapeFlag&1&&T&&!T.persisted){const{leave:j,delayLeave:D}=T,H=()=>j(E,O);D?D(p.el,O,H):H()}else O()},sn=(p,_)=>{let E;for(;p!==_;)E=h(p),s(p),p=E;s(_)},jt=(p,_,E)=>{const{bum:N,scope:T,job:O,subTree:j,um:D,m:H,a:I}=p;Ar(H),Ar(I),N&&gn(N),T.stop(),O&&(O.flags|=8,He(j,p,_,E)),D&&Re(D,_),Re(()=>{p.isUnmounted=!0},_)},Ge=(p,_,E,N=!1,T=!1,O=0)=>{for(let j=O;j{if(p.shapeFlag&6)return C(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const _=h(p.anchor||p.el),E=_&&_[Ku];return E?h(E):_};let V=!1;const F=(p,_,E)=>{let N;p==null?_._vnode&&(He(_._vnode,null,null,!0),N=_._vnode.component):y(_._vnode||null,p,_,null,null,null,E),_._vnode=p,V||(V=!0,Qo(N),Rr(),V=!1)},J={p:y,um:He,m:st,r:rn,mt:Z,mc:L,pc:$,pbc:k,n:C,o:e};let ee,pe;return t&&([ee,pe]=t(J)),{render:F,hydrate:ee,createApp:yf(F,ee)}}function us({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ft({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ca(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Aa(e,t,n=!1){const r=e.children,s=t.children;if(Y(r)&&Y(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Pa(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Pa(t)}function Ar(e){if(e)for(let t=0;te.__isSuspense;let js=0;const Mf={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,l,a,f){if(e==null)Lf(t,n,r,s,o,i,l,a,f);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Hf(e,t,n,r,s,i,l,a,f)}},hydrate:Df,normalize:jf},No=Mf;function Zn(e,t){const n=e.props&&e.props[t];Q(n)&&n()}function Lf(e,t,n,r,s,o,i,l,a){const{p:f,o:{createElement:c}}=a,u=c("div"),h=e.suspense=xa(e,s,r,t,u,n,o,i,l,a);f(null,h.pendingBranch=e.ssContent,u,null,r,h,o,i),h.deps>0?(Zn(e,"onPending"),Zn(e,"onFallback"),f(null,e.ssFallback,t,n,r,null,o,i),_n(h,e.ssFallback)):h.resolve(!1,!0)}function Hf(e,t,n,r,s,o,i,l,{p:a,um:f,o:{createElement:c}}){const u=t.suspense=e.suspense;u.vnode=t,t.el=e.el;const h=t.ssContent,d=t.ssFallback,{activeBranch:g,pendingBranch:y,isInFallback:P,isHydrating:R}=u;if(y)u.pendingBranch=h,Ze(y,h)?(a(y,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0?u.resolve():P&&(R||(a(g,d,n,r,s,null,o,i,l),_n(u,d)))):(u.pendingId=js++,R?(u.isHydrating=!1,u.activeBranch=y):f(y,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=c("div"),P?(a(null,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0?u.resolve():(a(g,d,n,r,s,null,o,i,l),_n(u,d))):g&&Ze(g,h)?(a(g,h,n,r,s,u,o,i,l),u.resolve(!0)):(a(null,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0&&u.resolve()));else if(g&&Ze(g,h))a(g,h,n,r,s,u,o,i,l),_n(u,h);else if(Zn(t,"onPending"),u.pendingBranch=h,h.shapeFlag&512?u.pendingId=h.component.suspenseId:u.pendingId=js++,a(null,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0)u.resolve();else{const{timeout:w,pendingId:m}=u;w>0?setTimeout(()=>{u.pendingId===m&&u.fallback(d)},w):w===0&&u.fallback(d)}}function xa(e,t,n,r,s,o,i,l,a,f,c=!1){const{p:u,m:h,um:d,n:g,o:{parentNode:y,remove:P}}=f;let R;const w=Ff(e);w&&t&&t.pendingBranch&&(R=t.pendingId,t.deps++);const m=e.props?Tl(e.props.timeout):void 0,b=o,v={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:js++,timeout:typeof m=="number"?m:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(x=!1,A=!1){const{vnode:L,activeBranch:S,pendingBranch:k,pendingId:W,effects:M,parentComponent:K,container:Z,isInFallback:ne}=v;let U=!1;if(v.isHydrating)v.isHydrating=!1;else if(!x){U=S&&k.transition&&k.transition.mode==="out-in";let le=!1;U&&(S.transition.afterLeave=()=>{W===v.pendingId&&(h(k,Z,o===b&&!le?g(S):o,0),Os(M),ne&&L.ssFallback&&(L.ssFallback.el=null))}),S&&!v.isFallbackMountPending&&(y(S.el)===Z&&(o=g(S),le=!0),d(S,K,v,!0),!U&&ne&&L.ssFallback&&Re(()=>L.ssFallback.el=null,v)),U||h(k,Z,o,0)}v.isFallbackMountPending=!1,_n(v,k),v.pendingBranch=null,v.isInFallback=!1;let G=v.parent,$=!1;for(;G;){if(G.pendingBranch){G.effects.push(...M),$=!0;break}G=G.parent}!$&&!U&&Os(M),v.effects=[],w&&t&&t.pendingBranch&&R===t.pendingId&&(t.deps--,t.deps===0&&!A&&t.resolve()),Zn(L,"onResolve")},fallback(x){if(!v.pendingBranch)return;const{vnode:A,activeBranch:L,parentComponent:S,container:k,namespace:W}=v;Zn(A,"onFallback");const M=g(L),K=()=>{v.isFallbackMountPending=!1,v.isInFallback&&(u(null,x,k,M,S,null,W,l,a),_n(v,x))},Z=x.transition&&x.transition.mode==="out-in";Z&&(v.isFallbackMountPending=!0,L.transition.afterLeave=K),v.isInFallback=!0,d(L,S,null,!0),Z||K()},move(x,A,L){v.activeBranch&&h(v.activeBranch,x,A,L),v.container=x},next(){return v.activeBranch&&g(v.activeBranch)},registerDep(x,A,L){const S=!!v.pendingBranch;S&&v.deps++;const k=x.vnode.el;x.asyncDep.catch(W=>{Pn(W,x,0)}).then(W=>{if(x.isUnmounted||v.isUnmounted||v.pendingId!==x.suspenseId)return;Bs(),x.asyncResolved=!0;const{vnode:M}=x;Us(x,W),k&&(M.el=k);const K=!k&&x.subTree.el;A(x,M,y(k||x.subTree.el),k?null:g(x.subTree),v,i,L),K&&(M.placeholder=null,P(K)),zr(x,M.el),S&&--v.deps===0&&v.resolve()})},unmount(x,A){v.isUnmounted=!0,v.activeBranch&&d(v.activeBranch,n,x,A),v.pendingBranch&&d(v.pendingBranch,n,x,A)}};return v}function Df(e,t,n,r,s,o,i,l,a){const f=t.suspense=xa(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,l,!0),c=a(e,f.pendingBranch=t.ssContent,n,f,o,i);return f.deps===0&&f.resolve(!1,!0),c}function jf(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=ui(r?n.default:n),e.ssFallback=r?ui(n.fallback):ye(be)}function ui(e){let t;if(Q(e)){const n=En&&e._c;n&&(e._d=!1,ze()),e=e(),n&&(e._d=!0,t=je,Na())}return Y(e)&&(e=wf(e)),e=Ue(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Oa(e,t){t&&t.pendingBranch?Y(e)?t.effects.push(...e):t.effects.push(e):Os(e)}function _n(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let s=t.el;for(;!s&&t.component;)t=t.component.subTree,s=t.el;n.el=s,r&&r.subTree===n&&(r.vnode.el=s,zr(r,s))}function Ff(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const xe=Symbol.for("v-fgt"),zt=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),Wn=Symbol.for("v-stc"),Kn=[];let je=null;function ze(e=!1){Kn.push(je=e?null:[])}function Na(){Kn.pop(),je=Kn[Kn.length-1]||null}let En=1;function kr(e,t=!1){En+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Ia(e){return e.dynamicChildren=En>0?je||hn:null,Na(),En>0&&je&&je.push(e),e}function Bf(e,t,n,r,s,o){return Ia(La(e,t,n,r,s,o,!0))}function ut(e,t,n,r,s){return Ia(ye(e,t,n,r,s,!0))}function en(e){return e?e.__v_isVNode===!0:!1}function Ze(e,t){return e.type===t.type&&e.key===t.key}const Ma=({key:e})=>e??null,_r=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?he(e)||ge(e)||Q(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function La(e,t=null,n=null,r=0,s=null,o=e===xe?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ma(t),ref:t&&_r(t),scopeId:Yl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ae};return l?(Io(a,n),o&128&&e.normalize(a)):n&&(a.shapeFlag|=he(n)?8:16),En>0&&!i&&je&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&je.push(a),a}const ye=Uf;function Uf(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ca)&&(e=be),en(e)){const l=Ct(e,t,!0);return n&&Io(l,n),En>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(zf(e)&&(e=e.__vccOpts),t){t=Ha(t);let{class:l,style:a}=t;l&&!he(l)&&(t.class=Vr(l)),se(a)&&(Gr(a)&&!Y(a)&&(a=Te({},a)),t.style=$r(a))}const i=he(e)?1:Pr(e)?128:Ql(e)?64:se(e)?4:Q(e)?2:0;return La(e,t,n,r,s,i,o,!0)}function Ha(e){return e?Gr(e)||ba(e)?Te({},e):e:null}function Ct(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:a}=e,f=t?ja(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Ma(f),ref:t&&t.ref?n&&o?Y(o)?o.concat(_r(t)):[o,_r(t)]:_r(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ct(e.ssContent),ssFallback:e.ssFallback&&Ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&wn(c,a.clone(c)),c}function Da(e=" ",t=0){return ye(zt,null,e,t)}function gy(e,t){const n=ye(Wn,null,e);return n.staticCount=t,n}function $f(e="",t=!1){return t?(ze(),ut(be,null,e)):ye(be,null,e)}function Ue(e){return e==null||typeof e=="boolean"?ye(be):Y(e)?ye(xe,null,e.slice()):en(e)?vt(e):ye(zt,null,String(e))}function vt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ct(e)}function Io(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Y(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Io(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!ba(t)?t._ctx=Ae:s===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Q(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),r&64?(n=16,t=[Da(t)]):n=8);e.children=t,e.shapeFlag|=n}function ja(...e){const t={};for(let n=0;nCe||Ae;let xr,Fs;{const e=Ur(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};xr=t("__VUE_INSTANCE_SETTERS__",n=>Ce=n),Fs=t("__VUE_SSR_SETTERS__",n=>Rn=n)}const lr=e=>{const t=Ce;return xr(e),e.scope.on(),()=>{e.scope.off(),xr(t)}},Bs=()=>{Ce&&Ce.scope.off(),xr(null)};function Fa(e){return e.vnode.shapeFlag&4}let Rn=!1;function Gf(e,t=!1,n=!1){t&&Fs(t);const{props:r,children:s}=e.vnode,o=Fa(e);Sf(e,r,o,t),kf(e,s,n||t);const i=o?qf(e,t):void 0;return t&&Fs(!1),i}function qf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,uf);const{setup:r}=n;if(r){Tt();const s=e.setupContext=r.length>1?Yf(e):null,o=lr(e),i=sr(r,e,0,[e.props,s]),l=vl(i);if(St(),o(),(l||e.sp)&&!Rt(e)&&Ao(e),l){if(i.then(Bs,Bs),t)return i.then(a=>{Us(e,a)}).catch(a=>{Pn(a,e,0)});e.asyncDep=i}else Us(e,i)}else Ba(e)}function Us(e,t,n){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=Wl(t)),Ba(e)}function Ba(e,t,n){const r=e.type;e.render||(e.render=r.render||dt);{const s=lr(e);Tt();try{ff(e)}finally{St(),s()}}}const Jf={get(e,t){return ke(e,"get",""),e[t]}};function Yf(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Jf),slots:e.slots,emit:e.emit,expose:t}}function Qr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Wl(Ro(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vn)return Vn[n](e)},has(t,n){return n in t||n in Vn}})):e.proxy}function $s(e,t=!0){return Q(e)?e.displayName||e.name:e.name||t&&e.__name}function zf(e){return Q(e)&&"__vccOpts"in e}const $e=(e,t)=>Hu(e,t,Rn);function Oe(e,t,n){try{kr(-1);const r=arguments.length;return r===2?se(t)&&!Y(t)?en(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&en(n)&&(n=[n]),ye(e,t,n))}finally{kr(1)}}const Qf="3.5.38";let Vs;const fi=typeof window<"u"&&window.trustedTypes;if(fi)try{Vs=fi.createPolicy("vue",{createHTML:e=>e})}catch{}const Ua=Vs?e=>Vs.createHTML(e):e=>e,Xf="http://www.w3.org/2000/svg",Zf="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,di=bt&&bt.createElement("template"),ed={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?bt.createElementNS(Xf,e):t==="mathml"?bt.createElementNS(Zf,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{di.innerHTML=Ua(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=di.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xt="transition",Mn="animation",er=Symbol("_vtc"),$a={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},td=Te({},Xl,$a),nd=e=>(e.displayName="Transition",e.props=td,e),rd=nd((e,{slots:t})=>Oe(Ju,sd(e),t)),Bt=(e,t=[])=>{Y(e)?e.forEach(n=>n(...t)):e&&e(...t)},hi=e=>e?Y(e)?e.some(t=>t.length>1):e.length>1:!1;function sd(e){const t={};for(const M in e)M in $a||(t[M]=e[M]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:f=i,appearToClass:c=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,g=od(s),y=g&&g[0],P=g&&g[1],{onBeforeEnter:R,onEnter:w,onEnterCancelled:m,onLeave:b,onLeaveCancelled:v,onBeforeAppear:x=R,onAppear:A=w,onAppearCancelled:L=m}=t,S=(M,K,Z,ne)=>{M._enterCancelled=ne,Ut(M,K?c:l),Ut(M,K?f:i),Z&&Z()},k=(M,K)=>{M._isLeaving=!1,Ut(M,u),Ut(M,d),Ut(M,h),K&&K()},W=M=>(K,Z)=>{const ne=M?A:w,U=()=>S(K,M,Z);Bt(ne,[K,U]),pi(()=>{Ut(K,M?a:o),yt(K,M?c:l),hi(ne)||gi(K,r,y,U)})};return Te(t,{onBeforeEnter(M){Bt(R,[M]),yt(M,o),yt(M,i)},onBeforeAppear(M){Bt(x,[M]),yt(M,a),yt(M,f)},onEnter:W(!1),onAppear:W(!0),onLeave(M,K){M._isLeaving=!0;const Z=()=>k(M,K);yt(M,u),M._enterCancelled?(yt(M,h),_i(M)):(_i(M),yt(M,h)),pi(()=>{M._isLeaving&&(Ut(M,u),yt(M,d),hi(b)||gi(M,r,P,Z))}),Bt(b,[M,Z])},onEnterCancelled(M){S(M,!1,void 0,!0),Bt(m,[M])},onAppearCancelled(M){S(M,!0,void 0,!0),Bt(L,[M])},onLeaveCancelled(M){k(M),Bt(v,[M])}})}function od(e){if(e==null)return null;if(se(e))return[fs(e.enter),fs(e.leave)];{const t=fs(e);return[t,t]}}function fs(e){return Tl(e)}function yt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[er]||(e[er]=new Set)).add(t)}function Ut(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[er];n&&(n.delete(t),n.size||(e[er]=void 0))}function pi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let id=0;function gi(e,t,n,r){const s=e._endId=++id,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:a}=ld(e,t);if(!i)return r();const f=i+"end";let c=0;const u=()=>{e.removeEventListener(f,h),o()},h=d=>{d.target===e&&++c>=a&&u()};setTimeout(()=>{c(n[g]||"").split(", "),s=r(`${xt}Delay`),o=r(`${xt}Duration`),i=mi(s,o),l=r(`${Mn}Delay`),a=r(`${Mn}Duration`),f=mi(l,a);let c=null,u=0,h=0;t===xt?i>0&&(c=xt,u=i,h=o.length):t===Mn?f>0&&(c=Mn,u=f,h=a.length):(u=Math.max(i,f),c=u>0?i>f?xt:Mn:null,h=c?c===xt?o.length:a.length:0);const d=c===xt&&/\b(?:transform|all)(?:,|$)/.test(r(`${xt}Property`).toString());return{type:c,timeout:u,propCount:h,hasTransform:d}}function mi(e,t){for(;e.lengthyi(n)+yi(e[r])))}function yi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function _i(e){return(e?e.ownerDocument:document).body.offsetHeight}function ad(e,t,n){const r=e[er];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Or=Symbol("_vod"),Va=Symbol("_vsh"),my={name:"show",beforeMount(e,{value:t},{transition:n}){e[Or]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Ln(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Ln(e,!0),r.enter(e)):r.leave(e,()=>{Ln(e,!1)}):Ln(e,t))},beforeUnmount(e,{value:t}){Ln(e,t)}};function Ln(e,t){e.style.display=t?e[Or]:"none",e[Va]=!t}const cd=Symbol(""),ud=/(?:^|;)\s*display\s*:/;function fd(e,t,n){const r=e.style,s=he(n);let o=!1;if(n&&!s){if(t)if(he(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Bn(r,l,"")}else for(const i in t)n[i]==null&&Bn(r,i,"");for(const i in n){i==="display"&&(o=!0);const l=n[i];l!=null?hd(e,i,!he(t)&&t?t[i]:void 0,l)||Bn(r,i,l):Bn(r,i,"")}}else if(s){if(t!==n){const i=r[cd];i&&(n+=";"+i),r.cssText=n,o=ud.test(n)}}else t&&e.removeAttribute("style");Or in e&&(e[Or]=o?r.display:"",e[Va]&&(r.display="none"))}const bi=/\s*!important$/;function Bn(e,t,n){if(Y(n))n.forEach(r=>Bn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=dd(e,t);bi.test(n)?e.setProperty(nn(r),n.replace(bi,""),"important"):e[r]=n}}const vi=["Webkit","Moz","ms"],ds={};function dd(e,t){const n=ds[t];if(n)return n;let r=Le(t);if(r!=="filter"&&r in e)return ds[t]=r;r=Br(r);for(let s=0;shs||(yd.then(()=>hs=0),hs=Date.now());function bd(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(Y(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),l=[r];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,vd=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?ad(e,r,i):t==="style"?fd(e,n,r):rr(t)?Dr(t)||gd(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wd(e,t,r,i))?(Ri(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ei(e,t,r,i,o,t!=="value")):e._isVueCE&&(Ed(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!he(r)))?Ri(e,Le(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ei(e,t,r,i))};function wd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ci(t)&&Q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Ci(t)&&he(n)?!1:t in e}function Ed(e,t){const n=e._def.props;if(!n)return!1;const r=Le(t);return Array.isArray(n)?n.some(s=>Le(s)===r):Object.keys(n).some(s=>Le(s)===r)}const Ai=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Y(t)?n=>gn(t,n):t};function Rd(e){e.target.composing=!0}function Pi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ps=Symbol("_assign");function ki(e,t,n){return t&&(e=e.trim()),n&&(e=po(e)),e}const yy={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[ps]=Ai(s);const o=r||s.props&&s.props.type==="number";un(e,t?"change":"input",i=>{i.target.composing||e[ps](ki(e.value,n,o))}),(n||o)&&un(e,"change",()=>{e.value=ki(e.value,n,o)}),t||(un(e,"compositionstart",Rd),un(e,"compositionend",Pi),un(e,"change",Pi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[ps]=Ai(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?po(e.value):e.value,a=t??"";if(l===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===a)||(e.value=a)}},Td=["ctrl","shift","alt","meta"],Sd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Td.some(n=>e[`${n}Key`]&&!t.includes(n))},_y=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Cd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ga(r);if(!s)return;const o=t._component;!Q(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Ka(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t}),kd=((...e)=>{const t=Ad().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ga(r);if(s)return n(s,!0,Ka(s))},t});function Ka(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ga(e){return he(e)?document.querySelector(e):e}const xd=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Od=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Nd=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Id(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){Md(e);return}return t}function Md(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Nr(e,t={}){if(typeof e!="string")return e;if(e[0]==='"'&&e[e.length-1]==='"'&&e.indexOf("\\")===-1)return e.slice(1,-1);const n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!Nd.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(xd.test(e)||Od.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,Id)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const qa=/#/g,Ja=/&/g,Ld=/\//g,Hd=/=/g,Dd=/\?/g,Xr=/\+/g,jd=/%5e/gi,Fd=/%60/gi,Bd=/%7c/gi,Ud=/%20/gi,$d=/%2f/gi,Vd=/%252f/gi;function Ya(e){return encodeURI(""+e).replace(Bd,"|")}function Ws(e){return Ya(typeof e=="string"?e:JSON.stringify(e)).replace(Xr,"%2B").replace(Ud,"+").replace(qa,"%23").replace(Ja,"%26").replace(Fd,"`").replace(jd,"^").replace(Ld,"%2F")}function gs(e){return Ws(e).replace(Hd,"%3D")}function Wd(e){return Ya(e).replace(qa,"%23").replace(Dd,"%3F").replace(Vd,"%2F").replace(Ja,"%26").replace(Xr,"%2B")}function tr(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function Kd(e){return tr(e.replace($d,"%252F"))}function Gd(e){return tr(e.replace(Xr," "))}function qd(e){return tr(e.replace(Xr," "))}function za(e=""){const t=Object.create(null);e[0]==="?"&&(e=e.slice(1));for(const n of e.split("&")){const r=n.match(/([^=]+)=?(.*)/)||[];if(r.length<2)continue;const s=Gd(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=qd(r[2]||"");t[s]===void 0?t[s]=o:Array.isArray(t[s])?t[s].push(o):t[s]=[t[s],o]}return t}function Jd(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${gs(e)}=${Ws(n)}`).join("&"):`${gs(e)}=${Ws(t)}`:gs(e)}function Yd(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>Jd(t,e[t])).filter(Boolean).join("&")}const zd=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Qd=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,Xd=/^([/\\]\s*){2,}[^/\\]/,Zd=/^[\s\0]*(blob|data|javascript|vbscript):$/i,eh=/\/$|\/\?|\/#/,th=/^\.?\//;function xn(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?zd.test(e):Qd.test(e)||(t.acceptRelative?Xd.test(e):!1)}function Ks(e){return!!e&&Zd.test(e)}function Gs(e="",t){return t?eh.test(e):e.endsWith("/")}function Ir(e="",t){if(!t)return(Gs(e)?e.slice(0,-1):e)||"/";if(!Gs(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");s!==-1&&(n=e.slice(0,s),r=e.slice(s));const[o,...i]=n.split("?");return((o.endsWith("/")?o.slice(0,-1):o)||"/")+(i.length>0?`?${i.join("?")}`:"")+r}function nh(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(Gs(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");if(s!==-1&&(n=e.slice(0,s),r=e.slice(s),!n))return r;const[o,...i]=n.split("?");return o+"/"+(i.length>0?`?${i.join("?")}`:"")+r}function rh(e,t){if(Xa(t)||xn(e))return e;const n=Ir(t);if(e.startsWith(n)){const r=e[n.length];if(!r||r==="/"||r==="?")return e}return Za(n,e)}function Oi(e,t){if(Xa(t))return e;const n=Ir(t);if(!e.startsWith(n))return e;const r=e[n.length];return r&&r!=="/"&&r!=="?"?e:"/"+e.slice(n.length).replace(/^\/+/,"")}function Qa(e,t){const n=Mo(e),r={...za(n.search),...t};return n.search=Yd(r),oh(n)}function Xa(e){return!e||e==="/"}function sh(e){return e&&e!=="/"}function Za(e,...t){let n=e||"";for(const r of t.filter(s=>sh(s)))if(n){const s=r.replace(th,"");n=nh(n)+s}else n=r;return n}function ec(...e){const t=/\/(?!\/)/,n=e.filter(Boolean),r=[];let s=0;for(const i of n)if(!(!i||i==="/")){for(const[l,a]of i.split(t).entries())if(!(!a||a===".")){if(a===".."){if(r.length===1&&xn(r[0]))continue;r.pop(),s--;continue}if(l===1&&r[r.length-1]?.endsWith(":/")){r[r.length-1]+="/"+a;continue}r.push(a),s++}}let o=r.join("/");return s>=0?n[0]?.startsWith("/")&&!o.startsWith("/")?o="/"+o:n[0]?.startsWith("./")&&!o.startsWith("./")&&(o="./"+o):o="../".repeat(-1*s)+o,n[n.length-1]?.endsWith("/")&&!o.endsWith("/")&&(o+="/"),o}function tc(e,t){return tr(Ir(e))===tr(Ir(t))}const nc=Symbol.for("ufo:protocolRelative");function Mo(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,u,h=""]=n;return{protocol:u.toLowerCase(),pathname:h,href:u+h,auth:"",host:"",search:"",hash:""}}if(!xn(e,{acceptRelative:!0}))return Ni(e);const[,r="",s,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,i="",l=""]=o.match(/([^#/?]*)(.*)?/)||[];r==="file:"&&(l=l.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:a,search:f,hash:c}=Ni(l);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:a,search:f,hash:c,[nc]:!r}}function Ni(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function oh(e){const t=e.pathname||"",n=e.search?(e.search.startsWith("?")?"":"?")+e.search:"",r=e.hash||"",s=e.auth?e.auth+"@":"",o=e.host||"";return(e.protocol||e[nc]?(e.protocol||"")+"//":"")+s+o+t+n+r}class ih extends Error{constructor(t,n){super(t,n),this.name="FetchError",n?.cause&&!this.cause&&(this.cause=n.cause)}}function lh(e){const t=e.error?.message||e.error?.toString()||"",n=e.request?.method||e.options?.method||"GET",r=e.request?.url||String(e.request)||"/",s=`[${n}] ${JSON.stringify(r)}`,o=e.response?`${e.response.status} ${e.response.statusText}`:"",i=`${s}: ${o}${t?` ${t}`:""}`,l=new ih(i,e.error?{cause:e.error}:void 0);for(const a of["request","options","response"])Object.defineProperty(l,a,{get(){return e[a]}});for(const[a,f]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(l,a,{get(){return e.response&&e.response[f]}});return l}const ah=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function Ii(e="GET"){return ah.has(e.toUpperCase())}function ch(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}const uh=new Set(["image/svg","application/xml","application/xhtml","application/html"]),fh=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function dh(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return fh.test(t)?"json":t==="text/event-stream"?"stream":uh.has(t)||t.startsWith("text/")?"text":"blob"}function hh(e,t,n,r){const s=ph(t?.headers??e?.headers,n?.headers,r);let o;return(n?.query||n?.params||t?.params||t?.query)&&(o={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:o,params:o,headers:s}}function ph(e,t,n){if(!t)return new n(e);const r=new n(t);if(e)for(const[s,o]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(s,o);return r}async function gr(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const gh=new Set([408,409,425,429,500,502,503,504]),mh=new Set([101,204,205,304]);function rc(e={}){const{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function s(l){const a=l.error&&l.error.name==="AbortError"&&!l.options.timeout||!1;if(l.options.retry!==!1&&!a){let c;typeof l.options.retry=="number"?c=l.options.retry:c=Ii(l.options.method)?0:1;const u=l.response&&l.response.status||500;if(c>0&&(Array.isArray(l.options.retryStatusCodes)?l.options.retryStatusCodes.includes(u):gh.has(u))){const h=typeof l.options.retryDelay=="function"?l.options.retryDelay(l):l.options.retryDelay||0;return h>0&&await new Promise(d=>setTimeout(d,h)),o(l.request,{...l.options,retry:c-1})}}const f=lh(l);throw Error.captureStackTrace&&Error.captureStackTrace(f,o),f}const o=async function(a,f={}){const c={request:a,options:hh(a,f,e.defaults,n),response:void 0,error:void 0};if(c.options.method&&(c.options.method=c.options.method.toUpperCase()),c.options.onRequest&&(await gr(c,c.options.onRequest),c.options.headers instanceof n||(c.options.headers=new n(c.options.headers||{}))),typeof c.request=="string"&&(c.options.baseURL&&(c.request=rh(c.request,c.options.baseURL)),c.options.query&&(c.request=Qa(c.request,c.options.query),delete c.options.query),"query"in c.options&&delete c.options.query,"params"in c.options&&delete c.options.params),c.options.body&&Ii(c.options.method))if(ch(c.options.body)){const d=c.options.headers.get("content-type");typeof c.options.body!="string"&&(c.options.body=d==="application/x-www-form-urlencoded"?new URLSearchParams(c.options.body).toString():JSON.stringify(c.options.body)),d||c.options.headers.set("content-type","application/json"),c.options.headers.has("accept")||c.options.headers.set("accept","application/json")}else("pipeTo"in c.options.body&&typeof c.options.body.pipeTo=="function"||typeof c.options.body.pipe=="function")&&("duplex"in c.options||(c.options.duplex="half"));let u;if(!c.options.signal&&c.options.timeout){const d=new r;u=setTimeout(()=>{const g=new Error("[TimeoutError]: The operation was aborted due to timeout");g.name="TimeoutError",g.code=23,d.abort(g)},c.options.timeout),c.options.signal=d.signal}try{c.response=await t(c.request,c.options)}catch(d){return c.error=d,c.options.onRequestError&&await gr(c,c.options.onRequestError),await s(c)}finally{u&&clearTimeout(u)}if((c.response.body||c.response._bodyInit)&&!mh.has(c.response.status)&&c.options.method!=="HEAD"){const d=(c.options.parseResponse?"json":c.options.responseType)||dh(c.response.headers.get("content-type")||"");switch(d){case"json":{const g=await c.response.text(),y=c.options.parseResponse||Nr;c.response._data=y(g);break}case"stream":{c.response._data=c.response.body||c.response._bodyInit;break}default:c.response._data=await c.response[d]()}}return c.options.onResponse&&await gr(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await gr(c,c.options.onResponseError),await s(c)):c.response},i=async function(a,f){return(await o(a,f))._data};return i.raw=o,i.native=(...l)=>t(...l),i.create=(l={},a={})=>rc({...e,...a,defaults:{...e.defaults,...a.defaults,...l}}),i}const Mr=(function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")})(),yh=Mr.fetch?(...e)=>Mr.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),_h=Mr.Headers,bh=Mr.AbortController,vh=rc({fetch:yh,Headers:_h,AbortController:bh}),wh=vh,Eh=()=>window?.__NUXT__?.config||{},Lo=()=>Eh().app,Rh=()=>Lo().baseURL,Th=()=>Lo().buildAssetsDir,Ho=(...e)=>ec(sc(),Th(),...e),sc=(...e)=>{const t=Lo(),n=t.cdnURL||t.baseURL;return e.length?ec(n,...e):n};globalThis.__buildAssetsURL=Ho,globalThis.__publicAssetsURL=sc;globalThis.$fetch||(globalThis.$fetch=wh.create({baseURL:Rh()}));"global"in globalThis||(globalThis.global=globalThis);function qs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?qs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const Sh={run:e=>e()},Ch=()=>Sh,oc=typeof console.createTask<"u"?console.createTask:Ch;function Ah(e,t){const n=t.shift(),r=oc(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function Ph(e,t){const n=t.shift(),r=oc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function ms(e,t){for(const n of[...e])n(t)}let kh=class{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const s=t;let o;for(;this._deprecatedHooks[t];)o=this._deprecatedHooks[t],t=o.to;if(o&&!r.allowDeprecated){let i=o.message;i||(i=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,s=(...o)=>(typeof r=="function"&&r(),r=void 0,s=void 0,n(...o));return r=this.hook(t,s),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const s of r)this.hook(t,s)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=qs(t),r=Object.keys(n).map(s=>this.hook(s,n[s]));return()=>{for(const s of r.splice(0,r.length))s()}}removeHooks(t){const n=qs(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(Ah,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(Ph,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&ms(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&ms(this._after,s)}):(this._after&&s&&ms(this._after,s),o)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}};function xh(){return new kh}function Oh(e={}){let t,n=!1;const r=i=>{if(t&&t!==i)throw new Error("Context conflict")};let s;if(e.asyncContext){const i=e.AsyncLocalStorage||globalThis.AsyncLocalStorage;i?s=new i:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}const o=()=>{if(s){const i=s.getStore();if(i!==void 0)return i}return t};return{use:()=>{const i=o();if(i===void 0)throw new Error("Context is not available");return i},tryUse:()=>o(),set:(i,l)=>{l||r(i),t=i,n=!0},unset:()=>{t=void 0,n=!1},call:(i,l)=>{r(i),t=i;try{return s?s.run(i,l):l()}finally{n||(t=void 0)}},async callAsync(i,l){t=i;const a=()=>{t=i},f=()=>t===i?a:void 0;Js.add(f);try{const c=s?s.run(i,l):l();return n||(t=void 0),await c}finally{Js.delete(f)}}}}function Nh(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=Oh({...e,...r})),t[n]}}}const Lr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},Mi="__unctx__",Ih=Lr[Mi]||(Lr[Mi]=Nh()),Mh=(e,t={})=>Ih.get(e,t),Li="__unctx_async_handlers__",Js=Lr[Li]||(Lr[Li]=new Set);function qn(e){const t=[];for(const s of Js){const o=s();o&&t.push(o)}const n=()=>{for(const s of t)s()};let r=e();return r&&typeof r=="object"&&"catch"in r&&(r=r.catch(s=>{throw n(),s})),[r,n]}const Hi=!1,Di=!1,Lh=!1,vy={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},Hh=null,Dh="#__nuxt",ic="nuxt-app",ji=36e5,jh="vite:preloadError";function lc(e=ic){return Mh(e,{asyncContext:!1})}const Fh="__nuxt_plugin";function Bh(e){let t=0;const n={_id:e.id||ic||"nuxt-app",_scope:mo(),provide:void 0,globalName:"nuxt",versions:{get nuxt(){return"3.21.8"},get vue(){return n.vueApp.version}},payload:ft({...e.ssrContext?.payload||{},data:ft({}),state:At({}),once:new Set,_errors:ft({})}),static:{data:{}},runWithContext(s){return n._scope.active&&!yo()?n._scope.run(()=>Fi(n,s)):Fi(n,s)},isHydrating:!0,deferHydration(){if(!n.isHydrating)return()=>{};t++;let s=!1;return()=>{if(!s&&(s=!0,t--,t===0))return n.isHydrating=!1,n.callHook("app:suspense:resolve")}},_asyncDataPromises:{},_asyncData:ft({}),_payloadRevivers:{},...e};{const s=window.__NUXT__;if(s)for(const o in s)switch(o){case"data":case"state":case"_errors":Object.assign(n.payload[o],s[o]);break;default:n.payload[o]=s[o]}}n.hooks=xh(),n.hook=n.hooks.hook,n.callHook=n.hooks.callHook,n.provide=(s,o)=>{const i="$"+s;mr(n,i,o),mr(n.vueApp.config.globalProperties,i,o)},mr(n.vueApp,"$nuxt",n),mr(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(jh,o=>{n.callHook("app:chunkError",{error:o.payload}),o.payload?.message?.includes("Unable to preload CSS")&&o.preventDefault()}),window.useNuxtApp||=Se;const s=n.hook("app:error",(...o)=>{console.error("[nuxt] error caught during app initialization",...o)});n.hook("app:mounted",s)}const r=n.payload.config;return n.provide("config",r),n}function Uh(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function $h(e,t){if(typeof t=="function"){const{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n=="object")for(const r in n)e.provide(r,n[r])}}async function Vh(e,t){const n=new Set,r=[],s=[];let o,i=0;async function l(a){const f=a.dependsOn?.filter(c=>t.some(u=>u._name===c)&&!n.has(c))??[];if(f.length>0)r.push([new Set(f),a]);else{const c=$h(e,a).then(async()=>{a._name&&(n.add(a._name),await Promise.all(r.map(async([u,h])=>{u.has(a._name)&&(u.delete(a._name),u.size===0&&(i++,await l(h)))})))}).catch(u=>{if(!a.parallel&&!e.payload.error)throw u;o||=u});a.parallel?s.push(c):await c}}for(const a of t)Uh(e,a);for(const a of t)await l(a);if(await Promise.all(s),i)for(let a=0;a{}),e,{[Fh]:!0,_name:t})}const Wh=rt;function Fi(e,t,n){const r=()=>t();return lc(e._id).set(e),e.vueApp.runWithContext(r)}function Kh(e){let t;return qr()&&(t=kn()?.appContext.app.$nuxt),t||=lc(e).tryUse(),t||null}function Se(e){const t=Kh(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function Do(e){return Se().$config}function mr(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function ys(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Ys(e,t,n=".",r){if(!ys(t))return Ys(e,{},n,r);const s={...t};for(const o of Object.keys(e)){if(o==="__proto__"||o==="constructor")continue;const i=e[o];i!=null&&(r&&r(s,o,i,n)||(Array.isArray(i)&&Array.isArray(s[o])?s[o]=[...i,...s[o]]:ys(i)&&ys(s[o])?s[o]=Ys(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function Gh(e){return(...t)=>t.reduce((n,r)=>Ys(n,r,"",e),{})}const ac=Gh();function qh(e,t){try{return t in e}catch{return!1}}class Bi extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(t,n={}){super(t,n),n.cause&&!this.cause&&(this.cause=n.cause)}toJSON(){const t={message:this.message,statusCode:zs(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=cc(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}function Jh(e){if(typeof e=="string")return new Bi(e);if(Yh(e))return e;const t=new Bi(e.message??e.statusMessage??"",{cause:e.cause||e});if(qh(e,"stack"))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=zs(e.statusCode,t.statusCode):e.status&&(t.statusCode=zs(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;cc(t.statusMessage)!==n&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function Yh(e){return e?.constructor?.__h3_error__===!0}const zh=/[^\u0009\u0020-\u007E]/g;function cc(e=""){return e.replace(zh,"")}function zs(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const uc=Symbol("layout-meta"),tn=Symbol("route");import.meta.url.replace(/\/app\/.*$/,"/");const Ke=()=>Se()?.$router,jo=()=>qr()?Pe(tn,Se()._route):Se()._route;function wy(e){return e}const Qh=()=>{try{if(Se()._processingMiddleware)return!0}catch{return!1}return!1},Ey=(e,t)=>{e||="/";const n=typeof e=="string"?e:"path"in e?Xh(e):Ke().resolve(e).href;if(t?.open){const{protocol:f}=new URL(n,window.location.href);if(f&&Ks(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`);const{target:c="_blank",windowFeatures:u={}}=t.open,h=[];for(const[d,g]of Object.entries(u))g!==void 0&&h.push(`${d.toLowerCase()}=${g}`);return open(n,c,h.join(", ")),Promise.resolve()}const r=xn(n,{acceptRelative:!0}),s=t?.external||r;if(s){if(!t?.external)throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");const{protocol:f}=new URL(n,window.location.href);if(f&&Ks(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`)}const o=Qh();if(!s&&o){if(t?.replace){if(typeof e=="string"){const{pathname:f,search:c,hash:u}=Mo(e);return{path:f,...c&&{query:za(c)},...u&&{hash:u},replace:!0}}return{...e,replace:!0}}return e}const i=Ke(),l=Se();if(s)return l._scope.stop(),t?.replace?location.replace(n):location.href=n,o?l.isHydrating?new Promise(()=>{}):!1:Promise.resolve();const a=typeof e=="string"?Zh(e):e;return t?.replace?i.replace(a):i.push(a)};function Xh(e){return Qa(e.path||"",e.query||{})+(e.hash||"")}function Zh(e){const t=Mo(e);return Wd(Kd(t.pathname))+t.search+t.hash}const fc="__nuxt_error",Zr=()=>Mu(Se().payload,"error"),Wt=e=>{const t=Qt(e);try{const n=Zr();Se().hooks.callHook("app:error",t),n.value||=t}catch{throw t}return t},ep=async(e={})=>{const t=Se(),n=Zr();t.callHook("app:error:cleared",e),e.redirect&&await Ke().replace(e.redirect),n.value=Hh},dc=e=>!!e&&typeof e=="object"&&fc in e,Qt=e=>{typeof e!="string"&&e.statusText&&(e.message??=e.statusText);const t=Jh(e);return Object.defineProperty(t,fc,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t};let hc;const Tn=e=>hc=e,pc=Symbol();function Qs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Jn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Jn||(Jn={}));function tp(){const e=mo(!0),t=e.run(()=>pt({}));let n=[],r=[];const s=Ro({install(o){Tn(s),s._a=o,o.provide(pc,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const gc=()=>{};function Ui(e,t,n,r=gc){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&yo()&&au(s),s}function an(e,...t){e.forEach(n=>{n(...t)})}const np=e=>e(),$i=Symbol(),_s=Symbol();function Xs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];Qs(s)&&Qs(r)&&e.hasOwnProperty(n)&&!ge(r)&&!ht(r)?e[n]=Xs(s,r):e[n]=r}return e}const rp=Symbol();function sp(e){return!Qs(e)||!Object.prototype.hasOwnProperty.call(e,rp)}const{assign:Nt}=Object;function op(e){return!!(ge(e)&&e.effect)}function ip(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let a;function f(){l||(n.state.value[e]=s?s():{});const c=Ou(n.state.value[e]);return Nt(c,o,Object.keys(i||{}).reduce((u,h)=>(u[h]=Ro($e(()=>{Tn(n);const d=n._s.get(e);return i[h].call(d,d)})),u),{}))}return a=mc(e,f,t,n,r,!0),a}function mc(e,t,n={},r,s,o){let i;const l=Nt({actions:{}},n),a={deep:!0};let f,c,u=new Set,h=new Set,d;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={});let y;function P(L){let S;f=c=!1,typeof L=="function"?(L(r.state.value[e]),S={type:Jn.patchFunction,storeId:e,events:d}):(Xs(r.state.value[e],L),S={type:Jn.patchObject,payload:L,storeId:e,events:d});const k=y=Symbol();Zt().then(()=>{y===k&&(f=!0)}),c=!0,an(u,S,r.state.value[e])}const R=o?function(){const{state:S}=n,k=S?S():{};this.$patch(W=>{Nt(W,k)})}:gc;function w(){i.stop(),u.clear(),h.clear(),r._s.delete(e)}const m=(L,S="")=>{if($i in L)return L[_s]=S,L;const k=function(){Tn(r);const W=Array.from(arguments),M=new Set,K=new Set;function Z(G){M.add(G)}function ne(G){K.add(G)}an(h,{args:W,name:k[_s],store:v,after:Z,onError:ne});let U;try{U=L.apply(this&&this.$id===e?this:v,W)}catch(G){throw an(K,G),G}return U instanceof Promise?U.then(G=>(an(M,G),G)).catch(G=>(an(K,G),Promise.reject(G))):(an(M,U),U)};return k[$i]=!0,k[_s]=S,k},b={_p:r,$id:e,$onAction:Ui.bind(null,h),$patch:P,$reset:R,$subscribe(L,S={}){const k=Ui(u,L,S.detached,()=>W()),W=i.run(()=>Jt(()=>r.state.value[e],M=>{(S.flush==="sync"?c:f)&&L({storeId:e,type:Jn.direct,events:d},M)},Nt({},a,S)));return k},$dispose:w},v=At(b);r._s.set(e,v);const A=(r._a&&r._a.runWithContext||np)(()=>r._e.run(()=>(i=mo()).run(()=>t({action:m}))));for(const L in A){const S=A[L];if(ge(S)&&!op(S)||ht(S))o||(g&&sp(S)&&(ge(S)?S.value=g[L]:Xs(S,g[L])),r.state.value[e][L]=S);else if(typeof S=="function"){const k=m(S,L);A[L]=k,l.actions[L]=S}}return Nt(v,A),Nt(te(v),A),Object.defineProperty(v,"$state",{get:()=>r.state.value[e],set:L=>{P(S=>{Nt(S,L)})}}),r._p.forEach(L=>{Nt(v,i.run(()=>L({store:v,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(v.$state,g),f=!0,c=!0,v}function Ry(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const a=qr();return i=i||(a?Pe(pc,null):null),i&&Tn(i),i=hc,i._s.has(e)||(s?mc(e,t,r,i):ip(e,r,i)),i._s.get(e)}return o.$id=e,o}const lp=-1,ap=-2,cp=-3,up=-4,fp=-5,dp=-6,hp=-7,yc=2**32-1,Zs=yc-1;function pp(e){return!(!Number.isInteger(e)||e<0||e>Zs)}function gp(e){return!(!Number.isInteger(e)||e<0||e>yc)}function mp(e){return Uint8Array.fromBase64(e).buffer}function yp(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function _p(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s=f)throw new Error("Invalid input");c[h]=o(a[u+1])}c.length=f}else{const f=new Array(a.length);r[i]=f;for(let c=0;c{if(console.createTask)return console.createTask;const e={run:t=>t()};return()=>e})();function bc(e,t,n,r){for(let s=n;se[s](...t)):e[s](...t);if(o&&typeof o.then=="function")return Promise.resolve(o).then(()=>bc(e,t,s+1,r))}catch(o){return Promise.reject(o)}}function Op(e,t,n){if(e.length>0)return bc(e,t,0,_c(n))}function Np(e,t,n){if(e.length>0){const r=_c(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}}function bs(e,t){for(const n of[...e])n(t)}var Ip=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!="function")return()=>{};const r=e;let s;for(;this._deprecatedHooks[e];)s=this._deprecatedHooks[e],e=s.to;if(s&&!n.allowDeprecated){let o=s.message;o||(o=`${r} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(o)||(console.warn(o),this._deprecatedMessages.add(o))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>"_"+e.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let n,r=(...s)=>(typeof n=="function"&&n(),n=void 0,r=void 0,t(...s));return n=this.hook(e,r),n}removeHook(e,t){const n=this._hooks[e];if(n){const r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t=="string"?{to:t}:t;const n=this._hooks[e]||[];this._hooks[e]=void 0;for(const r of n)this.hook(e,r)}deprecateHooks(e){for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=to(e),n=Object.keys(t).map(r=>this.hook(r,t[r]));return()=>{for(const r of n)r();n.length=0}}removeHooks(e){const t=to(e);for(const n in t)this.removeHook(n,t[n])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(Op,e,t)}callHookParallel(e,...t){return this.callHookWith(Np,e,t)}callHookWith(e,t,n){const r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&bs(this._before,r);const s=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return s instanceof Promise?s.finally(()=>{this._after&&r&&bs(this._after,r)}):(this._after&&r&&bs(this._after,r),s)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){const t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){const t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function Mp(){return new Ip}const Lp=["name","property","http-equiv"],Hp=new Set(["viewport","description","keywords","robots"]);function vc(e){const t=e.split(":");return t.length?xp.has(t[1]):!1}function no(e){const{props:t,tag:n}=e;if(Ap.has(n))return n;if(n==="link"&&t.rel==="canonical")return"canonical";if(n==="link"&&t.rel==="alternate"){if(t.hreflang)return`alternate:${t.hreflang}`;if(t.type)return`alternate:${t.type}:${t.href||""}`}if(t.charset)return"charset";if(e.tag==="meta"){for(const r of Lp)if(t[r]!==void 0){const s=t[r],o=s&&typeof s=="string"&&s.includes(":"),i=s&&Hp.has(s),a=!(o||i)&&e.key?`:key:${e.key}`:"";return`${n}:${s}${a}`}}if(e.key)return`${n}:key:${e.key}`;if(t.id)return`${n}:id:${t.id}`;if(n==="link"&&t.rel==="alternate")return`alternate:${t.href||""}`;if(Sp.has(n)){const r=e.textContent||e.innerHTML;if(r)return`${n}:content:${r}`}}function wc(e){const t=e._h||e._d;if(t)return t;const n=e.textContent||e.innerHTML;return n||`${e.tag}:${Object.entries(e.props).map(([r,s])=>`${r}:${String(s)}`).join(",")}`}function Hr(e,t,n){typeof e==="function"&&(!n||n!=="titleTemplate"&&!(n[0]==="o"&&n[1]==="n"))&&(e=e());const s=t?t(n,e):e;if(Array.isArray(s))return s.map(o=>Hr(o,t));if(s?.constructor===Object){const o={};for(const i of Object.keys(s))o[i]=Hr(s[i],t,i);return o}return s}function Dp(e,t){const n=e==="style"?new Map:new Set;function r(s){if(s==null||s===void 0)return;const o=String(s).trim();if(o)if(e==="style"){const[i,...l]=o.split(":").map(a=>a?a.trim():"");i&&l.length&&n.set(i,l.join(":"))}else o.split(" ").filter(Boolean).forEach(i=>n.add(i))}return typeof t=="string"?e==="style"?t.split(";").forEach(r):r(t):Array.isArray(t)?t.forEach(s=>r(s)):t&&typeof t=="object"&&Object.entries(t).forEach(([s,o])=>{o&&o!=="false"&&(e==="style"?n.set(String(s).trim(),String(o)):r(s))}),n}function Ec(e,t){if(e.props=e.props||{},!t)return e;if(e.tag==="templateParams")return e.props=t,e;const n=eo.has(e.tag)||e.tag==="htmlAttrs"||e.tag==="bodyAttrs";return Object.entries(t).forEach(([r,s])=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;if(s===null){e.props[r]=null;return}if(r==="class"||r==="style"){e.props[r]=Dp(r,s);return}if(Pp.has(r)){if((r==="textContent"||r==="innerHTML")&&typeof s=="object"){let f=t.type;if(t.type||(f="application/json"),!f?.endsWith("json")&&f!=="speculationrules")return;t.type=f,e.props.type=f,e[r]=JSON.stringify(s)}else e[r]=s;return}const o=r.startsWith("data-"),i=n&&!o?r.toLowerCase():r,l=String(s),a=e.tag==="meta"&&i==="content";l==="true"||l===""?e.props[i]=o||a?l:!0:!s&&o&&l==="false"?e.props[i]="false":s!==void 0&&(e.props[i]=s)}),e}function jp(e,t){const n=typeof t=="object"&&typeof t!="function"?t:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},r=Ec({tag:e,props:{}},n);return r.key&&Tp.has(r.tag)&&(r.props["data-hid"]=r._h=r.key),r.tag==="script"&&typeof r.innerHTML=="object"&&(r.innerHTML=JSON.stringify(r.innerHTML),r.props.type=r.props.type||"application/json"),Array.isArray(r.props.content)?r.props.content.map(s=>({...r,props:{...r.props,content:s}})):r}function Fp(e,t){if(!e)return[];typeof e=="function"&&(e=e());const n=(s,o)=>{for(let i=0;i{if(o!==void 0)for(const i of Array.isArray(o)?o:[o])r.push(jp(s,i))}),r.flat()}const ro=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Vi={base:-10,title:10},Bp={critical:-8,high:-1,low:2},Wi={meta:{"content-security-policy":-30,charset:-20,viewport:-15},link:{preconnect:20,stylesheet:60,preload:70,modulepreload:70,prefetch:90,"dns-prefetch":90,prerender:90},script:{async:30,defer:80,sync:50},style:{imported:40,sync:60}},Up=/@import/,Hn=e=>e===""||e===!0;function $p(e,t){if(typeof t.tagPriority=="number")return t.tagPriority;let n=100;const r=Bp[t.tagPriority]||0,s=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:Wi;if(t.tag in Vi)n=Vi[t.tag];else if(t.tag==="meta"){const o=t.props["http-equiv"]==="content-security-policy"?"content-security-policy":t.props.charset?"charset":t.props.name==="viewport"?"viewport":null;o&&(n=Wi.meta[o])}else if(t.tag==="link"&&t.props.rel)n=s.link[t.props.rel];else if(t.tag==="script"){const o=String(t.props.type);Hn(t.props.async)?n=s.script.async:t.props.src&&!Hn(t.props.defer)&&!Hn(t.props.async)&&o!=="module"&&!o.endsWith("json")||t.innerHTML&&!o.endsWith("json")?n=s.script.sync:(Hn(t.props.defer)&&t.props.src&&!Hn(t.props.async)||o==="module")&&(n=s.script.defer)}else t.tag==="style"&&(n=t.innerHTML&&Up.test(t.innerHTML)?s.style.imported:s.style.sync);return(n||100)+r}function Ki(e,t){const n=typeof t=="function"?t(e):t,r=n.key||String(e.plugins.size+1);e.plugins.get(r)||(e.plugins.set(r,n),e.hooks.addHooks(n.hooks||{}))}function Vp(e={}){const t=Mp();t.addHooks(e.hooks||{});const n=!e.document,r=new Map,s=new Map,o=new Set,i={_entryCount:1,plugins:s,dirty:!1,resolvedOptions:e,hooks:t,ssr:n,entries:r,headEntries(){return[...r.values()]},use:l=>Ki(i,l),push(l,a){const f={...a||{}};delete f.head;const c=f._index??i._entryCount++,u={_i:c,input:l,options:f},h={_poll(d=!1){i.dirty=!0,!d&&o.add(c),t.callHook("entries:updated",i)},dispose(){r.delete(c)&&i.invalidate()},patch(d){(!f.mode||f.mode==="server"&&n||f.mode==="client"&&!n)&&(u.input=d,r.set(c,u),h._poll())}};return h.patch(l),h},async resolveTags(){const l={tagMap:new Map,tags:[],entries:[...i.entries.values()]};for(await t.callHook("entries:resolve",l);o.size;){const h=o.values().next().value;o.delete(h);const d=r.get(h);if(d){const g={tags:Fp(d.input,e.propResolvers||[]).map(y=>Object.assign(y,d.options)),entry:d};await t.callHook("entries:normalize",g),d._tags=g.tags.map((y,P)=>(y._w=$p(i,y),y._p=(d._i<<10)+P,y._d=no(y),y._d||(y._h=wc(y)),y))}}let a=!1;l.entries.flatMap(h=>(h._tags||[]).map(d=>({...d,props:{...d.props}}))).sort(ro).reduce((h,d)=>{const g=d._d||d._h;if(!h.has(g))return h.set(g,d);const y=h.get(g);if((d?.tagDuplicateStrategy||(kp.has(d.tag)?"merge":null)||(d.key&&d.key===y.key?"merge":null))==="merge"){const R={...y.props};Object.entries(d.props).forEach(([w,m])=>R[w]=w==="style"?new Map([...y.props.style||new Map,...m]):w==="class"?new Set([...y.props.class||new Set,...m]):m),h.set(g,{...d,props:R})}else d._p>>10===y._p>>10&&d.tag==="meta"&&vc(g)?(h.set(g,Object.assign([...Array.isArray(y)?y:[y],d],d)),a=!0):(d._w===y._w?d._p>y._p:d?._wKi(i,l)),i.hooks.callHook("init",i),e.init?.forEach(l=>l&&i.push(l)),i}const vs="%separator";function Wp(e,t,n=!1){let r;if(t==="s"||t==="pageTitle")r=e.pageTitle;else if(t.includes(".")){const s=t.indexOf(".");r=e[t.substring(0,s)]?.[t.substring(s+1)]}else r=e[t];if(r!==void 0)return n?(r||"").replace(/\\/g,"\\\\").replace(/{if(l===vs||!o.includes(l))return l;const a=Wp(t,l.slice(1),r);return a!==void 0?a:l}).trim(),i&&(e=e.split(vs).map(l=>l.trim()).filter(l=>l!=="").join(n?` ${n} `:" ")),e}const Gi=e=>e.includes(":key")?e:e.split(":").join(":key:"),Kp={key:"aliasSorting",hooks:{"tags:resolve":e=>{let t=!1;for(const n of e.tags){const r=n.tagPriority;if(!r)continue;const s=String(r);if(s.startsWith("before:")){const o=Gi(s.slice(7)),i=e.tagMap.get(o);i&&(typeof i.tagPriority=="number"&&(n.tagPriority=i.tagPriority),n._p=i._p-1,t=!0)}else if(s.startsWith("after:")){const o=Gi(s.slice(6)),i=e.tagMap.get(o);i&&(typeof i.tagPriority=="number"&&(n.tagPriority=i.tagPriority),n._p=i._p+1,t=!0)}}t&&(e.tags=e.tags.sort(ro))}}},Gp={key:"deprecations",hooks:{"entries:normalize":({tags:e})=>{for(const t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),t.props.body&&(t.tagPosition="bodyClose",delete t.props.body)}}};async function so(e){if(typeof e==="function")return e;if(e instanceof Promise)return await e;if(Array.isArray(e))return await Promise.all(e.map(n=>so(n)));if(e?.constructor===Object){const n={};for(const r of Object.keys(e))n[r]=await so(e[r]);return n}return e}const qp={key:"promises",hooks:{"entries:resolve":async e=>{const t=[];for(const n in e.entries)e.entries[n]._promisesProcessed||t.push(so(e.entries[n].input).then(r=>{e.entries[n].input=r,e.entries[n]._promisesProcessed=!0}));await Promise.all(t)}}},Jp={meta:"content",link:"href",htmlAttrs:"lang"},Yp=["innerHTML","textContent"],zp=e=>({key:"template-params",hooks:{"entries:normalize":t=>{const n=t.tags.filter(r=>r.tag==="templateParams"&&r.mode==="server")?.[0]?.props||{};Object.keys(n).length&&(e._ssrPayload={templateParams:{...e._ssrPayload?.templateParams||{},...n}})},"tags:resolve":({tagMap:t,tags:n})=>{const r=t.get("templateParams")?.props||{},s=r.separator||"|";delete r.separator,r.pageTitle=yr(r.pageTitle||e._title||"",r,s);for(const o of n){if(o.processTemplateParams===!1)continue;const i=Jp[o.tag];if(i&&typeof o.props[i]=="string")o.props[i]=yr(o.props[i],r,s);else if(o.processTemplateParams||o.tag==="titleTemplate"||o.tag==="title")for(const l of Yp)typeof o[l]=="string"&&(o[l]=yr(o[l],r,s,o.tag==="script"&&o.props.type.endsWith("json")))}e._templateParams=r,e._separator=s},"tags:afterResolve":({tagMap:t})=>{const n=t.get("title");n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=yr(n.textContent,e._templateParams,e._separator))}}}),Qp=(e,t)=>ge(t)?Pu(t):t,Rc="usehead";function Xp(e){return{install(n){n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(Rc,e)}}.install}function Zp(){if(qr()){const e=Pe(Rc);if(e)return e}throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.")}function Ty(e,t={}){const n=t.head||Zp();return n.ssr?n.push(e||{},t):eg(n,e,t)}function eg(e,t,n={}){const r=pt(!1);let s;return Vu(()=>{const i=r.value?{}:Hr(t,Qp);s?s.patch(i):s=e.push(i,n)}),kn()&&(ir(()=>{s.dispose()}),sa(()=>{r.value=!0}),ra(()=>{r.value=!1})),s}const tg=(e,t)=>[],Tc=e=>ac({},...tg("",typeof e=="string"?e.toLowerCase():e).map(t=>t.data).reverse()),ng=Tc;let br;function rg(){let e;return e=$fetch(Ho(`builds/meta/${Do().app.buildId}.json`),{responseType:"json"}).then(t=>{if(!t||typeof t!="object"||!Array.isArray(t.prerendered))throw new Error("[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.");return t}),br=e,e.catch(t=>{br===e&&(br=void 0),console.error("[nuxt] Error fetching app manifest.",t)}),e}function Sc(){return br||rg()}function Cc(e){const t=typeof e=="string"?e:e.path;try{return ng(t.toLowerCase())}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function qi(e,t={}){return null}async function sg(e){return null}let $t=null;async function og(){if($t)return $t;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await ig(e.textContent||""),n=e.dataset.src?await sg(e.dataset.src):void 0;return $t={...t,...n,...window.__NUXT__},$t.config?.public&&($t.config.public=At($t.config.public)),$t}async function ig(e){return await Ep(e,Se()._payloadRevivers)}function Ac(e,t){Se()._payloadRevivers[e]=t}const lg=Wh(()=>{Ac("skipHydrate",e=>{})}),ag=[["NuxtError",e=>Qt(e)],["EmptyShallowRef",e=>vn(e==="_"?void 0:e==="0n"?BigInt(0):Nr(e))],["EmptyRef",e=>pt(e==="_"?void 0:e==="0n"?BigInt(0):Nr(e))],["ShallowRef",e=>vn(e)],["ShallowReactive",e=>ft(e)],["Ref",e=>pt(e)],["Reactive",e=>At(e)]],cg=rt({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of ag)Ac(r,s);Object.assign(e.payload,([t,n]=qn(()=>e.runWithContext(og)),t=await t,n(),t)),window.__NUXT__=e.payload}});async function Fo(e,t={}){const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!!r.shouldRender)return e._domUpdatePromise||(e._domUpdatePromise=new Promise(async s=>{const o=new Map,i=new Promise(d=>{e.resolveTags().then(g=>{d(g.map(y=>{const P=o.get(y._d)||0,R={tag:y,id:(P?`${y._d}:${P}`:y._d)||y._h,shouldRender:!0};return y._d&&vc(y._d)&&o.set(y._d,P+1),R}))})});let l=e._dom;if(!l){l={title:n.title,elMap:new Map().set("htmlAttrs",n.documentElement).set("bodyAttrs",n.body)};for(const d of["body","head"]){const g=n[d]?.children;for(const y of g){const P=y.tagName.toLowerCase();if(!eo.has(P))continue;const R=Ec({tag:P,props:{}},{innerHTML:y.innerHTML,...y.getAttributeNames().reduce((w,m)=>(w[m]=y.getAttribute(m),w),{})||{}});if(R.key=y.getAttribute("data-hid")||void 0,R._d=no(R)||wc(R),l.elMap.has(R._d)){let w=1,m=R._d;for(;l.elMap.has(m);)m=`${R._d}:${w++}`;l.elMap.set(m,y)}else l.elMap.set(R._d,y)}}}l.pendingSideEffects={...l.sideEffects},l.sideEffects={};function a(d,g,y){const P=`${d}:${g}`;l.sideEffects[P]=y,delete l.pendingSideEffects[P]}function f({id:d,$el:g,tag:y}){const P=y.tag.endsWith("Attrs");l.elMap.set(d,g),P||(y.textContent&&y.textContent!==g.textContent&&(g.textContent=y.textContent),y.innerHTML&&y.innerHTML!==g.innerHTML&&(g.innerHTML=y.innerHTML),a(d,"el",()=>{g?.remove(),l.elMap.delete(d)}));for(const R in y.props){if(!Object.prototype.hasOwnProperty.call(y.props,R))continue;const w=y.props[R];if(R.startsWith("on")&&typeof w=="function"){const b=g?.dataset;if(b&&b[`${R}fired`]){const v=R.slice(0,-5);w.call(g,new Event(v.substring(2)))}g.getAttribute(`data-${R}`)!==""&&((y.tag==="bodyAttrs"?n.defaultView:g).addEventListener(R.substring(2),w.bind(g)),g.setAttribute(`data-${R}`,""));continue}const m=`attr:${R}`;if(R==="class"){if(!w)continue;for(const b of w)P&&a(d,`${m}:${b}`,()=>g.classList.remove(b)),!g.classList.contains(b)&&g.classList.add(b)}else if(R==="style"){if(!w)continue;for(const[b,v]of w)a(d,`${m}:${b}`,()=>{g.style.removeProperty(b)}),g.style.setProperty(b,v)}else w!==!1&&w!==null&&(g.getAttribute(R)!==w&&g.setAttribute(R,w===!0?"":String(w)),P&&a(d,m,()=>g.removeAttribute(R)))}}const c=[],u={bodyClose:void 0,bodyOpen:void 0,head:void 0},h=await i;for(const d of h){const{tag:g,shouldRender:y,id:P}=d;if(y){if(g.tag==="title"){n.title=g.textContent,a("title","",()=>n.title=l.title);continue}d.$el=d.$el||l.elMap.get(P),d.$el?f(d):eo.has(g.tag)&&c.push(d)}}for(const d of c){const g=d.tag.tagPosition||"head";d.$el=n.createElement(d.tag.tag),f(d),u[g]=u[g]||n.createDocumentFragment(),u[g].appendChild(d.$el)}for(const d of h)await e.hooks.callHook("dom:renderTag",d,n,a);u.head&&n.head.appendChild(u.head),u.bodyOpen&&n.body.insertBefore(u.bodyOpen,n.body.firstChild),u.bodyClose&&n.body.appendChild(u.bodyClose);for(const d in l.pendingSideEffects)l.pendingSideEffects[d]();e._dom=l,await e.hooks.callHook("dom:rendered",{renders:h}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function ug(e={}){const t=e.domOptions?.render||Fo;e.document=e.document||(typeof window<"u"?document:void 0);const n=e.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML||!1;return Vp({...e,plugins:[...e.plugins||[],{key:"client",hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function fg(e,t){let n=0;return()=>{const r=++n;t(()=>{n===r&&e()})}}function dg(e={}){const t=ug({domOptions:{render:fg(()=>Fo(t),n=>setTimeout(n,0))},...e});return t.install=Xp(t),t}const hg={disableDefaults:!0,disableCapoSorting:!1,plugins:[Gp,qp,zp,Kp]},pg=rt({name:"nuxt:head",enforce:"pre",setup(e){const t=dg(hg);e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await Fo(t)};t.hooks.hook("dom:beforeRender",o=>{o.shouldRender=!n}),e.hooks.hook("page:start",()=>{n=!0}),e.hooks.hook("page:finish",()=>{e.isHydrating||r()}),e.hooks.hook("app:error",r),e.hooks.hook("app:suspense:resolve",r);const s=t.push.bind(t);t.push=((o,i)=>{const l=s(o,i),a=l.dispose.bind(l);return l.dispose=()=>{const f=e["~transitionPromise"];f?f.then(a):a()},l})}}});const fn=typeof document<"u";function Pc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function gg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Pc(e.default)}const oe=Object.assign;function ws(e,t){const n={};for(const r in t){const s=t[r];n[r]=nt(s)?s.map(e):e(s)}return n}const Yn=()=>{},nt=Array.isArray;function Ji(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const kc=/#/g,mg=/&/g,yg=/\//g,_g=/=/g,bg=/\?/g,xc=/\+/g,vg=/%5B/g,wg=/%5D/g,Oc=/%5E/g,Eg=/%60/g,Nc=/%7B/g,Rg=/%7C/g,Ic=/%7D/g,Tg=/%20/g;function Bo(e){return e==null?"":encodeURI(""+e).replace(Rg,"|").replace(vg,"[").replace(wg,"]")}function Sg(e){return Bo(e).replace(Nc,"{").replace(Ic,"}").replace(Oc,"^")}function oo(e){return Bo(e).replace(xc,"%2B").replace(Tg,"+").replace(kc,"%23").replace(mg,"%26").replace(Eg,"`").replace(Nc,"{").replace(Ic,"}").replace(Oc,"^")}function Cg(e){return oo(e).replace(_g,"%3D")}function Ag(e){return Bo(e).replace(kc,"%23").replace(bg,"%3F")}function Pg(e){return Ag(e).replace(yg,"%2F")}function nr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const kg=/\/$/,xg=e=>e.replace(kg,"");function Es(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(r=t.slice(0,a),o=t.slice(a,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Mg(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:nr(i)}}function Og(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Yi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ng(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Sn(t.matched[r],n.matched[s])&&Mc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Sn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Mc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ig(e[n],t[n]))return!1;return!0}function Ig(e,t){return nt(e)?zi(e,t):nt(t)?zi(t,e):e?.valueOf()===t?.valueOf()}function zi(e,t){return nt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Mg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Je={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let io=(function(e){return e.pop="pop",e.push="push",e})({}),Rs=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Lg(e){if(!e)if(fn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),xg(e)}const Hg=/^[^#]+#/;function Dg(e,t){return e.replace(Hg,"#")+t}function jg(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const es=()=>({left:window.scrollX,top:window.scrollY});function Fg(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=jg(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Qi(e,t){return(history.state?history.state.position-t:-1)+e}const lo=new Map;function Bg(e,t){lo.set(e,t)}function Ug(e){const t=lo.get(e);return lo.delete(e),t}function $g(e){return typeof e=="string"||e&&typeof e=="object"}function Lc(e){return typeof e=="string"||typeof e=="symbol"}let me=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Hc=Symbol("");me.MATCHER_NOT_FOUND+"",me.NAVIGATION_GUARD_REDIRECT+"",me.NAVIGATION_ABORTED+"",me.NAVIGATION_CANCELLED+"",me.NAVIGATION_DUPLICATED+"";function Cn(e,t){return oe(new Error,{type:e,[Hc]:!0},t)}function _t(e,t){return e instanceof Error&&Hc in e&&(t==null||!!(e.type&t))}const Vg=["params","query","hash"];function Wg(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Vg)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Kg(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&oo(s)):[r&&oo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Gg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=nt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const qg=Symbol(""),Zi=Symbol(""),Uo=Symbol(""),$o=Symbol(""),ao=Symbol("");function Dn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Mt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const f=h=>{h===!1?a(Cn(me.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?a(h):$g(h)?a(Cn(me.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},c=o(()=>e.call(r&&r.instances[s],t,n,f));let u=Promise.resolve(c);e.length<3&&(u=u.then(f)),u.catch(h=>a(h))})}function Ts(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(Pc(a)){const f=(a.__vccOpts||a)[t];f&&o.push(Mt(f,n,r,i,l,s))}else{let f=a();o.push(()=>f.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const u=gg(c)?c.default:c;i.mods[l]=c,i.components[l]=u;const h=(u.__vccOpts||u)[t];return h&&Mt(h,n,r,i,l,s)()}))}}return o}function Jg(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iSn(f,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(f=>Sn(f,a))||s.push(a))}return[n,r,s]}let Yg=()=>location.protocol+"//"+location.host;function Dc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Yi(l,"")}return Yi(n,e)+r+s}function zg(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const d=Dc(e,location),g=n.value,y=t.value;let P=0;if(h){if(n.value=d,t.value=h,i&&i===g){i=null;return}P=y?h.position-y.position:0}else r(d);s.forEach(R=>{R(n.value,g,{delta:P,type:io.pop,direction:P?P>0?Rs.forward:Rs.back:Rs.unknown})})};function a(){i=n.value}function f(h){s.push(h);const d=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(d),d}function c(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(oe({},h.state,{scroll:es()}),"")}}function u(){for(const h of o)h();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:a,listen:f,destroy:u}}function el(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?es():null}}function Qg(e){const{history:t,location:n}=window,r={value:Dc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,f,c){const u=e.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+a:Yg()+e+a;try{t[c?"replaceState":"pushState"](f,"",h),s.value=f}catch(d){console.error(d),n[c?"replace":"assign"](h)}}function i(a,f){o(a,oe({},t.state,el(s.value.back,a,s.value.forward,!0),f,{position:s.value.position}),!0),r.value=a}function l(a,f){const c=oe({},s.value,t.state,{forward:a,scroll:es()});o(c.current,c,!0),o(a,oe({},el(r.value,a,null),{position:c.position+1},f),!1),r.value=a}return{location:r,state:s,push:l,replace:i}}function Xg(e){e=Lg(e);const t=Qg(e),n=zg(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=oe({location:"",base:e,go:r,createHref:Dg.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}let Kt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var we=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(we||{});const Zg={type:Kt.Static,value:""},em=/[a-zA-Z0-9_]/;function tm(e){if(!e)return[[]];if(e==="/")return[[Zg]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${n})/"${f}": ${d}`)}let n=we.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,a,f="",c="";function u(){f&&(n===we.Static?o.push({type:Kt.Static,value:f}):n===we.Param||n===we.ParamRegExp||n===we.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Kt.Param,value:f,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),f="")}function h(){f+=a}for(;lt.length?t.length===1&&t[0]===Ie.Static+Ie.Segment?1:-1:0}function jc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const im={strict:!1,end:!0,sensitive:!1};function lm(e,t,n){const r=sm(tm(e.path),n),s=oe(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function am(e,t){const n=[],r=new Map;t=Ji(im,t);function s(u){return r.get(u)}function o(u,h,d){const g=!d,y=sl(u);y.aliasOf=d&&d.record;const P=Ji(t,u),R=[y];if("alias"in u){const b=typeof u.alias=="string"?[u.alias]:u.alias;for(const v of b)R.push(sl(oe({},y,{components:d?d.record.components:y.components,path:v,aliasOf:d?d.record:y})))}let w,m;for(const b of R){const{path:v}=b;if(h&&v[0]!=="/"){const x=h.record.path,A=x[x.length-1]==="/"?"":"/";b.path=h.record.path+(v&&A+v)}if(w=lm(b,h,P),d?d.alias.push(w):(m=m||w,m!==w&&m.alias.push(w),g&&u.name&&!ol(w)&&i(u.name)),Fc(w)&&a(w),y.children){const x=y.children;for(let A=0;A{i(m)}:Yn}function i(u){if(Lc(u)){const h=r.get(u);h&&(r.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function a(u){const h=fm(u,n);n.splice(h,0,u),u.record.name&&!ol(u)&&r.set(u.record.name,u)}function f(u,h){let d,g={},y,P;if("name"in u&&u.name){if(d=r.get(u.name),!d)throw Cn(me.MATCHER_NOT_FOUND,{location:u});P=d.record.name,g=oe(rl(h.params,d.keys.filter(m=>!m.optional).concat(d.parent?d.parent.keys.filter(m=>m.optional):[]).map(m=>m.name)),u.params&&rl(u.params,d.keys.map(m=>m.name))),y=d.stringify(g)}else if(u.path!=null)y=u.path,d=n.find(m=>m.re.test(y)),d&&(g=d.parse(y),P=d.record.name);else{if(d=h.name?r.get(h.name):n.find(m=>m.re.test(h.path)),!d)throw Cn(me.MATCHER_NOT_FOUND,{location:u,currentLocation:h});P=d.record.name,g=oe({},h.params,u.params),y=d.stringify(g)}const R=[];let w=d;for(;w;)R.unshift(w.record),w=w.parent;return{name:P,path:y,params:g,matched:R,meta:um(R)}}e.forEach(u=>o(u));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:f,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function rl(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function sl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:cm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function cm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ol(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function um(e){return e.reduce((t,n)=>oe(t,n.meta),{})}function fm(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;jc(e,t[o])<0?r=o:n=o+1}const s=dm(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function dm(e){let t=e;for(;t=t.parent;)if(Fc(t)&&jc(e,t)===0)return t}function Fc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function il(e){const t=Pe(Uo),n=Pe($o),r=$e(()=>{const a=ce(e.to);return t.resolve(a)}),s=$e(()=>{const{matched:a}=r.value,{length:f}=a,c=a[f-1],u=n.matched;if(!c||!u.length)return-1;const h=u.findIndex(Sn.bind(null,c));if(h>-1)return h;const d=ll(a[f-2]);return f>1&&ll(c)===d&&u[u.length-1].path!==d?u.findIndex(Sn.bind(null,a[f-2])):h}),o=$e(()=>s.value>-1&&ym(n.params,r.value.params)),i=$e(()=>s.value>-1&&s.value===n.matched.length-1&&Mc(n.params,r.value.params));function l(a={}){if(mm(a)){const f=t[ce(e.replace)?"replace":"push"](ce(e.to)).catch(Yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:r,href:$e(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function hm(e){return e.length===1?e[0]:e}const pm=Dt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:il,setup(e,{slots:t}){const n=At(il(e)),{options:r}=Pe(Uo),s=$e(()=>({[al(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[al(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&hm(t.default(n));return e.custom?o:Oe("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),gm=pm;function mm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ym(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!nt(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ll(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const al=(e,t,n)=>e??t??n,_m=Dt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Pe(ao),s=$e(()=>e.route||r.value),o=Pe(Zi,0),i=$e(()=>{let f=ce(o);const{matched:c}=s.value;let u;for(;(u=c[f])&&!u.components;)f++;return f}),l=$e(()=>s.value.matched[i.value]);Ht(Zi,$e(()=>i.value+1)),Ht(qg,l),Ht(ao,s);const a=pt();return Jt(()=>[a.value,l.value,e.name],([f,c,u],[h,d,g])=>{c&&(c.instances[u]=f,d&&d!==c&&f&&f===h&&(c.leaveGuards.size||(c.leaveGuards=d.leaveGuards),c.updateGuards.size||(c.updateGuards=d.updateGuards))),f&&c&&(!d||!Sn(c,d)||!h)&&(c.enterCallbacks[u]||[]).forEach(y=>y(f))},{flush:"post"}),()=>{const f=s.value,c=e.name,u=l.value,h=u&&u.components[c];if(!h)return cl(n.default,{Component:h,route:f});const d=u.props[c],g=d?d===!0?f.params:typeof d=="function"?d(f):d:null,P=Oe(h,oe({},g,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(u.instances[c]=null)},ref:a}));return cl(n.default,{Component:P,route:f})||P}}});function cl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Bc=_m;function bm(e){const t=am(e.routes,e),n=e.parseQuery||Kg,r=e.stringifyQuery||Xi,s=e.history,o=Dn(),i=Dn(),l=Dn(),a=vn(Je);let f=Je;fn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=ws.bind(null,C=>""+C),u=ws.bind(null,Pg),h=ws.bind(null,nr);function d(C,V){let F,J;return Lc(C)?(F=t.getRecordMatcher(C),J=V):J=C,t.addRoute(J,F)}function g(C){const V=t.getRecordMatcher(C);V&&t.removeRoute(V)}function y(){return t.getRoutes().map(C=>C.record)}function P(C){return!!t.getRecordMatcher(C)}function R(C,V){if(V=oe({},V||a.value),typeof C=="string"){const _=Es(n,C,V.path),E=t.resolve({path:_.path},V),N=s.createHref(_.fullPath);return oe(_,E,{params:h(E.params),hash:nr(_.hash),redirectedFrom:void 0,href:N})}let F;if(C.path!=null)F=oe({},C,{path:Es(n,C.path,V.path).path});else{const _=oe({},C.params);for(const E in _)_[E]==null&&delete _[E];F=oe({},C,{params:u(_)}),V.params=u(V.params)}const J=t.resolve(F,V),ee=C.hash||"";J.params=c(h(J.params));const pe=Og(r,oe({},C,{hash:Sg(ee),path:J.path})),p=s.createHref(pe);return oe({fullPath:pe,hash:ee,query:r===Xi?Gg(C.query):C.query||{}},J,{redirectedFrom:void 0,href:p})}function w(C){return typeof C=="string"?Es(n,C,a.value.path):oe({},C)}function m(C,V){if(f!==C)return Cn(me.NAVIGATION_CANCELLED,{from:V,to:C})}function b(C){return A(C)}function v(C){return b(oe(w(C),{replace:!0}))}function x(C,V){const F=C.matched[C.matched.length-1];if(F&&F.redirect){const{redirect:J}=F;let ee=typeof J=="function"?J(C,V):J;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=w(ee):{path:ee},ee.params={}),oe({query:C.query,hash:C.hash,params:ee.path!=null?{}:C.params},ee)}}function A(C,V){const F=f=R(C),J=a.value,ee=C.state,pe=C.force,p=C.replace===!0,_=x(F,J);if(_)return A(oe(w(_),{state:typeof _=="object"?oe({},ee,_.state):ee,force:pe,replace:p}),V||F);const E=F;E.redirectedFrom=V;let N;return!pe&&Ng(r,J,F)&&(N=Cn(me.NAVIGATION_DUPLICATED,{to:E,from:J}),st(J,J,!0,!1)),(N?Promise.resolve(N):k(E,J)).catch(T=>_t(T)?_t(T,me.NAVIGATION_GUARD_REDIRECT)?T:kt(T):$(T,E,J)).then(T=>{if(T){if(_t(T,me.NAVIGATION_GUARD_REDIRECT))return A(oe({replace:p},w(T.to),{state:typeof T.to=="object"?oe({},ee,T.to.state):ee,force:pe}),V||E)}else T=M(E,J,!0,p,ee);return W(E,J,T),T})}function L(C,V){const F=m(C,V);return F?Promise.reject(F):Promise.resolve()}function S(C){const V=sn.values().next().value;return V&&typeof V.runWithContext=="function"?V.runWithContext(C):C()}function k(C,V){let F;const[J,ee,pe]=Jg(C,V);F=Ts(J.reverse(),"beforeRouteLeave",C,V);for(const _ of J)_.leaveGuards.forEach(E=>{F.push(Mt(E,C,V))});const p=L.bind(null,C,V);return F.push(p),Ge(F).then(()=>{F=[];for(const _ of o.list())F.push(Mt(_,C,V));return F.push(p),Ge(F)}).then(()=>{F=Ts(ee,"beforeRouteUpdate",C,V);for(const _ of ee)_.updateGuards.forEach(E=>{F.push(Mt(E,C,V))});return F.push(p),Ge(F)}).then(()=>{F=[];for(const _ of pe)if(_.beforeEnter)if(nt(_.beforeEnter))for(const E of _.beforeEnter)F.push(Mt(E,C,V));else F.push(Mt(_.beforeEnter,C,V));return F.push(p),Ge(F)}).then(()=>(C.matched.forEach(_=>_.enterCallbacks={}),F=Ts(pe,"beforeRouteEnter",C,V,S),F.push(p),Ge(F))).then(()=>{F=[];for(const _ of i.list())F.push(Mt(_,C,V));return F.push(p),Ge(F)}).catch(_=>_t(_,me.NAVIGATION_CANCELLED)?_:Promise.reject(_))}function W(C,V,F){l.list().forEach(J=>S(()=>J(C,V,F)))}function M(C,V,F,J,ee){const pe=m(C,V);if(pe)return pe;const p=V===Je,_=fn?history.state:{};F&&(J||p?s.replace(C.fullPath,oe({scroll:p&&_&&_.scroll},ee)):s.push(C.fullPath,ee)),a.value=C,st(C,V,F,p),kt()}let K;function Z(){K||(K=s.listen((C,V,F)=>{if(!jt.listening)return;const J=R(C),ee=x(J,jt.currentRoute.value);if(ee){A(oe(ee,{replace:!0,force:!0}),J).catch(Yn);return}f=J;const pe=a.value;fn&&Bg(Qi(pe.fullPath,F.delta),es()),k(J,pe).catch(p=>_t(p,me.NAVIGATION_ABORTED|me.NAVIGATION_CANCELLED)?p:_t(p,me.NAVIGATION_GUARD_REDIRECT)?(A(oe(w(p.to),{force:!0}),J).then(_=>{_t(_,me.NAVIGATION_ABORTED|me.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===io.pop&&s.go(-1,!1)}).catch(Yn),Promise.reject()):(F.delta&&s.go(-F.delta,!1),$(p,J,pe))).then(p=>{p=p||M(J,pe,!1),p&&(F.delta&&!_t(p,me.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===io.pop&&_t(p,me.NAVIGATION_ABORTED|me.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),W(J,pe,p)}).catch(Yn)}))}let ne=Dn(),U=Dn(),G;function $(C,V,F){kt(C);const J=U.list();return J.length?J.forEach(ee=>ee(C,V,F)):console.error(C),Promise.reject(C)}function le(){return G&&a.value!==Je?Promise.resolve():new Promise((C,V)=>{ne.add([C,V])})}function kt(C){return G||(G=!C,Z(),ne.list().forEach(([V,F])=>C?F(C):V()),ne.reset()),C}function st(C,V,F,J){const{scrollBehavior:ee}=e;if(!fn||!ee)return Promise.resolve();const pe=!F&&Ug(Qi(C.fullPath,0))||(J||!F)&&history.state&&history.state.scroll||null;return Zt().then(()=>ee(C,V,pe)).then(p=>p&&Fg(p)).catch(p=>$(p,C,V))}const He=C=>s.go(C);let rn;const sn=new Set,jt={currentRoute:a,listening:!0,addRoute:d,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:P,getRoutes:y,resolve:R,options:e,push:b,replace:v,go:He,back:()=>He(-1),forward:()=>He(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:U.add,isReady:le,install(C){C.component("RouterLink",gm),C.component("RouterView",Bc),C.config.globalProperties.$router=jt,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>ce(a)}),fn&&!rn&&a.value===Je&&(rn=!0,b(s.location).catch(J=>{}));const V={};for(const J in Je)Object.defineProperty(V,J,{get:()=>a.value[J],enumerable:!0});C.provide(Uo,jt),C.provide($o,ft(V)),C.provide(ao,a);const F=C.unmount;sn.add(C),C.unmount=function(){sn.delete(C),sn.size<1&&(f=Je,K&&K(),K=null,a.value=Je,rn=!1,G=!1),F()}}};function Ge(C){return C.reduce((V,F)=>V.then(()=>S(F)),Promise.resolve())}return jt}function Uc(e){return Pe($o)}const vm=/(:\w+)\([^)]+\)/g,wm=/(:\w+)[?+*]/g,Em=/:\w+/g,Rm=(e,t)=>t.path.replace(vm,"$1").replace(wm,"$1").replace(Em,n=>e.params[n.slice(1)]?.toString()||""),co=(e,t)=>{const n=e.route.matched.find(s=>s.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Rm(e.route,n));return typeof r=="function"?r(e.route):r},Tm=(e,t)=>({default:()=>e?Oe(tf,e===!0?{}:e,t):t});function $c(e){return Array.isArray(e)?e:[e]}const Sm="modulepreload",Cm=function(e,t){return new URL(e,t).href},ul={},Xt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let f=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),a=l?.nonce||l?.getAttribute("nonce");s=f(n.map(c=>{if(c=Cm(c,r),c in ul)return;ul[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(r)for(let g=i.length-1;g>=0;g--){const y=i[g];if(y.href===c&&(!u||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${h}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Sm,u||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),u)return new Promise((g,y)=>{d.addEventListener("load",g),d.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},Ss=[{name:"index",path:"/",meta:{middleware:"auth"},component:()=>Xt(()=>import("./Drr7KP9v.js"),[],import.meta.url)},{name:"login",path:"/login",component:()=>Xt(()=>import("./XMkMKtwS.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)},{name:"permissions",path:"/permissions",meta:{middleware:"auth"},component:()=>Xt(()=>import("./CyOWWS80.js"),[],import.meta.url)}],Vc=(e,t)=>({default:()=>e?Oe(rd,e===!0?{}:e,t):t.default?.()}),Am=/(:\w+)\([^)]+\)/g,Pm=/(:\w+)[?+*]/g,km=/:\w+/g;function fl(e){const t=e?.meta.key??e.path.replace(Am,"$1").replace(Pm,"$1").replace(km,n=>e.params[n.slice(1)]?.toString()||"");return typeof t=="function"?t(e):t}function xm(e,t){return e===t||t===Je?!1:fl(e)!==fl(t)?!0:!e.matched.every((r,s)=>r.components&&r.components.default===t.matched[s]?.components?.default)}function dl(e){return Array.isArray(e)?e:[e]}function Wc(e){const t=[];for(const n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?dl(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?dl(n.onBeforeLeave):void 0});return ac(...t)}const Om={scrollBehavior(e,t,n){const r=Se(),s=Ke().options?.scrollBehaviorType??"auto";return e.path.replace(/\/$/,"")===t.path.replace(/\/$/,"")?t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:Kc(e.hash),behavior:s}:!1:(typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===Je?hl(e,t,n,s):new Promise(i=>{const l=()=>{requestAnimationFrame(()=>i(hl(e,t,n,s)))};r.hooks.hookOnce("page:loading:end",()=>{const a=r["~transitionPromise"];a?a.then(l):l()})})}};function Kc(e){try{const t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}function hl(e,t,n,r){return n||(e.hash?{el:e.hash,top:Kc(e.hash),behavior:xm(e,t)?r:"instant"}:{left:0,top:0})}const Nm={hashMode:!1,scrollBehaviorType:"auto"},Ot={...Nm,...Om},Im=async(e,t)=>{let n,r;if(!e.meta?.validate)return;const s=([n,r]=qn(()=>Promise.resolve(e.meta.validate(e))),n=await n,r(),n);if(s===!0)return;const o=Qt({fatal:!0,status:s&&(s.status||s.statusCode)||404,statusText:s&&(s.statusText||s.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}});return typeof window<"u"&&window.history.pushState({},"",t.fullPath),o},Mm=e=>{const t=Cc({path:e.path});if(t.redirect){const n=t.redirect.includes("#")?t.redirect:t.redirect+e.hash;return xn(n,{acceptRelative:!0})?(window.location.href=n,!1):n}},Lm=[Im,Mm],uo={auth:()=>Xt(()=>import("./BFfxzM5G.js"),__vite__mapDeps([4,3]),import.meta.url)};function Hm(e,t,n){const{pathname:r,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){const f=o.includes(e.slice(i))?e.slice(i).length:1;let c=o.slice(f);return c[0]!=="/"&&(c="/"+c),Oi(c,"")}const l=Oi(r,e),a=!n||tc(l,n)?l:n;return a+(a.includes("?")?"":s)+o}const Dm=rt({name:"nuxt:router",enforce:"pre",async setup(e){let t,n,r=Do().app.baseURL;const s=Ot.history?.(r)??Xg(r),o=Ot.routes?([t,n]=qn(()=>Ot.routes(Ss)),t=await t,n(),t??Ss):Ss;let i;const l=bm({...Ot,scrollBehavior:(R,w,m)=>{if(w===Je){i=m;return}if(Ot.scrollBehavior){if(l.options.scrollBehavior=Ot.scrollBehavior,"scrollRestoration"in window.history){const b=l.beforeEach(()=>{b(),window.history.scrollRestoration="manual"})}return Ot.scrollBehavior(R,Je,i||m)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(l);const a=vn(l.currentRoute.value);l.afterEach((R,w)=>{a.value=w}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>a.value});const f=Hm(r,window.location,e.payload.path),c=vn(l.currentRoute.value),u=()=>{c.value=l.currentRoute.value};l.afterEach((R,w)=>{const m=R.matched.at(-1)?.components?.default,b=w.matched.at(-1)?.components?.default;if(m===b){u();return}R.matched.lengthv.components?.default===w.matched[x]?.components?.default)&&u()});const h={sync:u};for(const R in c.value)Object.defineProperty(h,R,{get:()=>c.value[R],enumerable:!0});e._route=ft(h),e._middleware||={global:[],named:{}};const d=Zr();l.afterEach(async(R,w,m)=>{delete e._processingMiddleware,!e.isHydrating&&d.value&&await e.runWithContext(ep),m&&await e.callHook("page:loading:end")});try{[t,n]=qn(()=>l.isReady()),await t,n()}catch(R){[t,n]=qn(()=>e.runWithContext(()=>Wt(R))),await t,n()}const g=f!==l.currentRoute.value.fullPath?l.resolve(f):l.currentRoute.value,y=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&f!==e.payload.path&&tc(l.currentRoute.value.path,e.payload.path);u();const P=e.payload.state._layout;return l.beforeEach(async(R,w)=>{await e.callHook("page:loading:start"),R.meta=At(R.meta),e.isHydrating&&P&&!gt(R.meta.layout)&&(R.meta.layout=P),e._processingMiddleware=!0;{const m=new Set([...Lm,...e._middleware.global]);for(const v of R.matched){const x=v.meta.middleware;if(x)for(const A of $c(x))m.add(A)}const b=Cc({path:R.path});if(b.appMiddleware)for(const v in b.appMiddleware)b.appMiddleware[v]?m.add(v):m.delete(v);for(const v of m){const x=typeof v=="string"?e._middleware.named[v]||await uo[v]?.().then(A=>A.default||A):v;if(!x)throw new Error(`Unknown route middleware: '${v}'.`);try{const A=await e.runWithContext(()=>x(R,w));if(!e.payload.serverRendered&&e.isHydrating&&(A===!1||A instanceof Error)){const L=A||Qt({status:404,statusText:`Page Not Found: ${f}`});return await e.runWithContext(()=>Wt(L)),!1}if(A===!0)continue;if(A===!1)return A;if(A)return dc(A)&&A.fatal&&await e.runWithContext(()=>Wt(A)),A}catch(A){const L=Qt(A);return L.fatal&&await e.runWithContext(()=>Wt(L)),L}}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),l.afterEach(R=>{if(R.matched.length===0&&!d.value)return e.runWithContext(()=>Wt(Qt({status:404,fatal:!1,statusText:`Page not found: ${R.fullPath}`,data:{path:R.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{if("name"in g&&(g.name=void 0),y){const R=l.resolve(e.payload.path);"name"in R&&(R.name=void 0),await l.replace({...R,force:!0}),e.hooks.hookOnce("app:suspense:resolve",async()=>{await l.replace({...g,force:!0})})}else await l.replace({...g,force:!0});l.options.scrollBehavior=Ot.scrollBehavior}catch(R){await e.runWithContext(()=>Wt(R))}}),{provide:{router:l}}}}),pl=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),Sy=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),Vo=e=>{const t=Se();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{pl(()=>e())}):pl(()=>e())},jm=rt({name:"nuxt:payload",setup(e){const t=new Set;Ke().beforeResolve(async(n,r)=>{if(n.path===r.path)return;const s=await qi(n.path);if(s){for(const o of t)delete e.static.data[o];for(const o in s.data)o in e.static.data||t.add(o),e.static.data[o]=s.data[o]}}),Vo(()=>{e.hooks.hook("link:prefetch",async n=>{const{hostname:r}=new URL(n,window.location.href);r===window.location.hostname&&await qi().catch(()=>{console.warn("[nuxt] Error preloading payload for",n)})}),navigator.connection?.effectiveType!=="slow-2g"&&setTimeout(Sc,1e3)})}}),Fm=rt(()=>{const e=Ke();Vo(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),Bm=rt(e=>{let t;async function n(){let r;try{r=await Sc()}catch(s){const o=s;if(!("status"in o&&(o.status===404||o.status===403)))throw o}t&&clearTimeout(t),t=setTimeout(n,ji);try{const s=await $fetch(Ho("builds/latest.json")+`?${Date.now()}`);s.id!==r?.id&&(e.hooks.callHook("app:manifest:update",s),t&&clearTimeout(t))}catch{}}Vo(()=>{t=setTimeout(n,ji)})});function Um(e={}){const t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw new Error(`Cannot navigate to a URL with a different host: '${t}'.`);if(n.protocol&&Ks(n.protocol))throw new Error(`Cannot navigate to a URL with '${n.protocol}' protocol.`);let r={};try{r=Nr(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||r?.path!==t||r?.expires{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const i=Za(n.app.baseURL,o.fullPath);Um({path:i,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}});function Vm(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}async function Wm(e,t=Ke()){const{path:n,matched:r}=t.resolve(e);if(!r.length||(t._routePreloaded||=new Set,t._routePreloaded.has(n)))return;const s=t._preloadPromises||=[];if(s.length>4)return Promise.all(s).then(()=>Wm(e,t));t._routePreloaded.add(n);for(const o of r){const i=o.components?.default;if(typeof i!="function")continue;const l=Promise.resolve(i()).catch(()=>{}).finally(()=>s.splice(s.indexOf(l),1));s.push(l)}await Promise.all(s)}const Km=rt({name:"pinia",setup(e){const t=tp();return e.vueApp.use(t),Tn(t),e.payload&&e.payload.pinia&&(t.state.value=e.payload.pinia),{provide:{pinia:t}}},hooks:{"app:rendered"(){const e=Se();e.payload.pinia=te(e.$pinia).state.value,Tn(void 0)}}}),Gm=rt({name:"nuxt:global-components"}),Lt={default:Is(()=>Xt(()=>import("./BW9w-mbE.js"),__vite__mapDeps([5,1,2,3]),import.meta.url).then(e=>e.default||e))},qm=rt({name:"nuxt:prefetch",setup(e){const t=Ke();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{const r=n?.meta?.layout;r&&typeof Lt[r]=="function"&&await Lt[r]()})}),e.hooks.hook("link:prefetch",n=>{if(xn(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=$c(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof uo[i]=="function"&&uo[i]();typeof s=="string"&&s in Lt&&Vm(Lt[s])})}}),Jm=[lg,cg,pg,Dm,jm,Fm,Bm,$m,Km,Gm,qm],Gc=(e="RouteProvider")=>Dt({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean},setup(t){const n=t.renderKey,r=t.route,s={};for(const o in t.route)Object.defineProperty(s,o,{get:()=>n===t.renderKey?t.route[o]:r[o],enumerable:!0});return Ht(tn,ft(s)),()=>t.vnode?Oe(t.vnode,{ref:t.vnodeRef}):t.vnode}}),Ym=Gc(),gl=new WeakMap,zm=Dt({name:"NuxtPage",inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){const s=Se(),o=pt(),i=Pe(tn,null);let l;r({pageRef:o});const a=Pe(uc,null);let f;const c=s.deferHydration();let u=!1,h=!1,d=0;if(s.isHydrating){const y=s.hooks.hookOnce("app:error",c),P=Ke().beforeEach(()=>{y(),P()})}e.pageKey&&Jt(()=>e.pageKey,(y,P)=>{y!==P&&s.callHook("page:loading:start")});let g=!1;{const y=Ke().beforeResolve(()=>{g=!1});ir(()=>{y(),c()})}return()=>Oe(Bc,{name:e.name,route:e.route,...t},{default:y=>{const P=Qm(i,y.route,y.Component),R=i&&i.matched.length===y.route.matched.length;if(!y.Component){if(f&&!R&&!Cs(f))return f;c();return}if(f&&a&&!Cs(f)&&!a.isCurrent(y.route))return f;if(P&&i&&(!a||a?.isCurrent(i)))return(R||f)&&!Cs(f)?f:null;const w=co(y,e.pageKey),m=Xm(i,y.route,y.Component);!s.isHydrating&&l===w&&!m&&Zt(()=>{g||(g=!0,s.callHook("page:loading:end"))}),u&&l!==w&&h&&d++,l=w;const b=!!(e.transition??y.route.meta.pageTransition??Di),v=b&&Wc([e.transition,y.route.meta.pageTransition,Di,{onAfterLeave(){s["~transitionFinish"]?.(),delete s["~transitionFinish"],delete s["~transitionPromise"],s.callHook("page:transition:finish",y.Component)}}]),x=e.keepalive??y.route.meta.keepalive??Lh;return f=Vc(b&&v,Tm(x,Oe(No,{key:d,suspensible:!0,onPending:()=>{u=!0,b&&!s["~transitionPromise"]&&(s["~transitionPromise"]=new Promise(A=>{s["~transitionFinish"]=A})),s.callHook("page:start",y.Component)},onResolve:async()=>{u=!1,h=!0;try{await Zt(),s._route.sync?.(),await s.callHook("page:finish",y.Component),!g&&!m&&(g=!0,await s.callHook("page:loading:end"))}finally{c()}}},{default:()=>{const A={key:w||void 0,vnode:n.default?Zm(n.default,y):y.Component,route:y.route,renderKey:w||void 0,trackRootNodes:b,vnodeRef:o};if(!x)return Oe(Ym,A);const L=y.Component.type,S=L;let k=gl.get(S);return k||(k=Gc(L.name||L.__name),gl.set(S,k)),Oe(k,A)}}))).default(),f}})}});function Qm(e,t,n){if(!e)return!1;const r=t.matched.findIndex(i=>i.components?.default===n?.type);if(r===-1)return!1;const s=t.matched.slice(0,r).filter(i=>i.components?.default);if(!s.length)return!1;const o=e.matched.filter(i=>i.components?.default);return s.some((i,l)=>i.components?.default!==o[l]?.components?.default)||n&&co({route:t,Component:n})!==co({route:e,Component:n})}function Xm(e,t,n){return e?t.matched.findIndex(s=>s.components?.default===n?.type)Oe(Lt[e.name],e.layoutProps,t.slots)}}),ty={name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},ny=Dt({name:"NuxtLayout",inheritAttrs:!1,props:ty,setup(e,t){const n=Se(),r=Pe(tn),o=!r||r===jo()?Uc():r,i=$e(()=>{let c=ce(e.name)??o?.meta.layout??qc(o?.path).appLayout??"default";return c&&!(c in Lt)&&e.fallback&&(c=ce(e.fallback)),c}),l=vn();t.expose({layoutRef:l});const a=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",a),u=Ke().beforeEach(()=>{c(),u()})}let f;return()=>{const u=!!i.value&&i.value in Lt&&!!(o?.meta.layoutTransition??Hi),h=u&&Wc([o?.meta.layoutTransition,Hi,{onBeforeLeave(){n["~transitionPromise"]=new Promise(g=>{n["~transitionFinish"]=g})},onAfterLeave(){n["~transitionFinish"]?.(),delete n["~transitionFinish"],delete n["~transitionPromise"]}}]),d=f;return f=i.value,Vc(h,{default:()=>Oe(No,{suspensible:!0,onResolve:async()=>{await Zt(a)}},{default:()=>Oe(ry,{layoutProps:ja(t.attrs,o.meta.layoutProps??{},{ref:l}),key:i.value||void 0,name:i.value,shouldProvide:!e.name,isRenderingNewLayout:g=>g!==d&&g===i.value,hasTransition:u},t.slots)})}).default()}}}),ry=Dt({name:"NuxtLayoutProvider",inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean},isRenderingNewLayout:{type:Function,required:!0}},setup(e,t){const n=e.name;e.shouldProvide&&Ht(uc,{isCurrent:o=>n===!1||n===(o.meta.layout??qc(o.path).appLayout??"default")});const r=Pe(tn);if(r&&r===jo()){const o=Uc(),i={};for(const l in o){const a=l;Object.defineProperty(i,a,{enumerable:!0,get:()=>e.isRenderingNewLayout(e.name)?o[a]:r[a]})}Ht(tn,ft(i))}return()=>!n||typeof n=="string"&&!(n in Lt)?t.slots.default?.():Oe(ey,{key:n,layoutProps:e.layoutProps,name:n},t.slots)}}),sy=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},oy={};function iy(e,t){const n=zm,r=ny;return ze(),ut(r,null,{default:So(()=>[ye(n)]),_:1})}const ly=sy(oy,[["render",iy]]),ay={__name:"nuxt-error-page",props:{error:Object},setup(e){const n=e.error,r=Number(n.statusCode||500),s=r===404,o=n.statusMessage??(s?"Page Not Found":"Internal Server Error"),i=n.message||n.toString(),l=void 0,c=s?Is(()=>Xt(()=>import("./Oih3kTQ2.js"),__vite__mapDeps([6,1,7,8]),import.meta.url)):Is(()=>Xt(()=>import("./usmOON9X.js"),__vite__mapDeps([9,7,10]),import.meta.url));return(u,h)=>(ze(),ut(ce(c),ru(Ha({status:ce(r),statusText:ce(o),statusCode:ce(r),statusMessage:ce(o),description:ce(i),stack:ce(l)})),null,16))}},cy={key:0},ml={__name:"nuxt-root",setup(e){const t=()=>null,n=Se(),r=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",r),u=Ke().beforeEach(()=>{c(),u()})}const s=!1;Ht(tn,jo()),n.hooks.callHookWith(c=>c.map(u=>u()),"vue:setup",[]);const o=Zr(),i=!1,l=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function a(c,u,h){const d=n.vueApp.config.errorHandler;if(d&&!d.__nuxt_default)try{d(c,u,h)}catch(g){console.error("[nuxt] Error in `app.config.errorHandler`",g)}}la((c,u,h)=>{if(n.hooks.callHook("vue:error",c,u,h).catch(d=>console.error("[nuxt] Error in `vue:error` hook",d)),l.test(navigator.userAgent))return n.hooks.callHook("app:error",c),console.error(`[nuxt] Not rendering error page for bot with user agent \`${navigator.userAgent}\`:`,c),!1;if(dc(c)&&(c.fatal||c.unhandled))return n.runWithContext(()=>Wt(c)),a(c,u,h),!1});const f=!1;return(c,u)=>(ze(),ut(No,{onResolve:ce(r)},{default:So(()=>[ce(i)?(ze(),Bf("div",cy)):ce(o)?(ze(),ut(ce(ay),{key:1,error:ce(o)},null,8,["error"])):ce(f)?(ze(),ut(ce(t),{key:2,context:ce(f)},null,8,["context"])):ce(s)?(ze(),ut(cf(ce(s)),{key:3})):(ze(),ut(ce(ly),{key:4}))]),_:1},8,["onResolve"]))}};let yl;{let e;yl=async function(){if(e)return e;const r=!!(window.__NUXT__?.serverRendered??document.getElementById("__NUXT_DATA__")?.dataset.ssr==="true")?kd(ml):Pd(ml),s=Bh({vueApp:r});async function o(i){await s.callHook("app:error",i),s.payload.error||=Qt(i)}o.__nuxt_default=!0,r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)});try{await Vh(s,Jm)}catch(i){o(i)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(Dh),await s.hooks.callHook("app:mounted",r),await Zt()}catch(i){o(i)}return r},e=yl().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{nh as $,Uc as A,Po as B,ko as C,my as D,ut as E,xe as F,py as G,$e as H,sc as I,Ry as J,Se as K,Vo as L,pl as M,ir as N,Sy as O,Oe as P,dy as Q,za as R,vn as S,Xh as T,Wm as U,xn as V,Za as W,Zh as X,vy as Y,Ks as Z,sy as _,La as a,Ir as a0,Do as a1,Jt as a2,Nr as a3,yo as a4,au as a5,uy as a6,Zt as a7,ye as b,Bf as c,Da as d,Kh as e,Rc as f,Dt as g,qr as h,Pe as i,gy as j,Ke as k,ce as l,$f as m,Vr as n,ze as o,_y as p,fy as q,hy as r,ge as s,lu as t,Ty as u,yy as v,So as w,pt as x,wy as y,Ey as z}; diff --git a/frontend_admin/.output/public/_nuxt/CyOWWS80.js b/frontend_admin/.output/public/_nuxt/CyOWWS80.js new file mode 100644 index 0000000..cfef663 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/CyOWWS80.js @@ -0,0 +1 @@ +import{g as p,c as r,j as l,a as e,F as o,r as i,o as n,t as a,n as d}from"./C3Ck-LNv.js";const g={class:"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"},u={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},x={class:"space-y-3"},v={class:"text-sm text-slate-300"},h={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},k={class:"space-y-3"},y={class:"text-sm text-slate-300"},f={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},w={class:"space-y-3"},_={class:"text-sm text-slate-300"},B=p({__name:"index",setup(C){const b=[{key:"user_mgmt",label:"User Management",enabled:!0},{key:"billing_admin",label:"Billing Administration",enabled:!0},{key:"robot_config",label:"Robot Configuration",enabled:!0},{key:"system_logs",label:"System Logs Access",enabled:!0},{key:"api_keys",label:"API Key Management",enabled:!1}],m=[{key:"vehicle_crud",label:"Vehicle CRUD",enabled:!0},{key:"service_booking",label:"Service Booking",enabled:!0},{key:"customer_view",label:"Customer Data View",enabled:!0},{key:"report_export",label:"Report Export",enabled:!1},{key:"bulk_import",label:"Bulk Import",enabled:!1}],c=[{key:"premium_features",label:"Premium Features",enabled:!0},{key:"analytics",label:"Analytics Dashboard",enabled:!0},{key:"multi_garage",label:"Multi-Garage Support",enabled:!1},{key:"white_label",label:"White Label Branding",enabled:!1},{key:"api_access",label:"API Access",enabled:!0}];return(M,t)=>(n(),r("div",null,[t[6]||(t[6]=l('

',2)),e("div",g,[e("div",u,[t[0]||(t[0]=l('

Superadmin

Full system access — user management, billing, robots, and system configuration.

',2)),e("div",x,[(n(),r(o,null,i(b,s=>e("div",{key:s.key,class:"flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"},[e("span",v,a(s.label),1),e("span",{class:d(["text-xs px-2 py-0.5 rounded-full",s.enabled?"bg-emerald-400/10 text-emerald-400":"bg-slate-700 text-slate-500"])},a(s.enabled?"Enabled":"Disabled"),3)])),64))]),t[1]||(t[1]=e("div",{class:"mt-4 pt-4 border-t border-slate-700"},[e("button",{class:"w-full px-4 py-2 text-sm bg-purple-600 hover:bg-purple-500 text-white rounded-lg transition"}," Configure Superadmin ")],-1))]),e("div",h,[t[2]||(t[2]=l('

Garages

Garage-level access — vehicle management, service booking, customer data.

',2)),e("div",k,[(n(),r(o,null,i(m,s=>e("div",{key:s.key,class:"flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"},[e("span",y,a(s.label),1),e("span",{class:d(["text-xs px-2 py-0.5 rounded-full",s.enabled?"bg-emerald-400/10 text-emerald-400":"bg-slate-700 text-slate-500"])},a(s.enabled?"Enabled":"Disabled"),3)])),64))]),t[3]||(t[3]=e("div",{class:"mt-4 pt-4 border-t border-slate-700"},[e("button",{class:"w-full px-4 py-2 text-sm bg-cyan-600 hover:bg-cyan-500 text-white rounded-lg transition"}," Configure Garages ")],-1))]),e("div",f,[t[4]||(t[4]=l('

Packages

Subscription package permissions — feature toggles per plan tier.

',2)),e("div",w,[(n(),r(o,null,i(c,s=>e("div",{key:s.key,class:"flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"},[e("span",_,a(s.label),1),e("span",{class:d(["text-xs px-2 py-0.5 rounded-full",s.enabled?"bg-emerald-400/10 text-emerald-400":"bg-slate-700 text-slate-500"])},a(s.enabled?"Enabled":"Disabled"),3)])),64))]),t[5]||(t[5]=e("div",{class:"mt-4 pt-4 border-t border-slate-700"},[e("button",{class:"w-full px-4 py-2 text-sm bg-amber-600 hover:bg-amber-500 text-white rounded-lg transition"}," Configure Packages ")],-1))])]),t[7]||(t[7]=l('

3D Capability Matrix

The interactive permission matrix UI with toggles for Superadmin, Garages, and Packages will be rendered here in the next development phase.

',1))]))}});export{B as default}; diff --git a/frontend_admin/.output/public/_nuxt/Di-57MrI.js b/frontend_admin/.output/public/_nuxt/Di-57MrI.js new file mode 100644 index 0000000..463fbe6 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/Di-57MrI.js @@ -0,0 +1 @@ +import{u as a,e as s,h as u,i as r,f as o}from"./C3Ck-LNv.js";function i(e){const t=e||s();return t?.ssrContext?.head||t?.runWithContext(()=>{if(u())return r(o)})}function x(e,t={}){const n=i(t.nuxt);if(n)return a(e,{head:n,...t})}export{x as u}; diff --git a/frontend_admin/.output/public/_nuxt/Drr7KP9v.js b/frontend_admin/.output/public/_nuxt/Drr7KP9v.js new file mode 100644 index 0000000..f3b8666 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/Drr7KP9v.js @@ -0,0 +1 @@ +import{g as d,o,c as r,j as a,a as e,F as c,r as m,n as x,t as l}from"./C3Ck-LNv.js";const p={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},h={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},u={class:"space-y-4"},v={class:"flex-1 min-w-0"},g={class:"text-sm text-slate-300"},b={class:"text-xs text-slate-500 mt-0.5"},y=d({__name:"index",setup(f){const i=[{text:"New user registered: john.doe@example.com",time:"2 minutes ago",dotColor:"bg-emerald-400"},{text:"Vehicle #V-8842 added to catalog",time:"15 minutes ago",dotColor:"bg-cyan-400"},{text:"Payment received: €120.00 from Garage XYZ",time:"1 hour ago",dotColor:"bg-emerald-400"},{text:"System error: DVLA API timeout on request #4421",time:"2 hours ago",dotColor:"bg-rose-400"},{text:"Permission updated for user: superadmin@sf.hu",time:"3 hours ago",dotColor:"bg-indigo-400"}];return(w,t)=>(o(),r("div",null,[t[2]||(t[2]=a('

Dashboard

ServiceFinder administration overview

+12%

Active Users

2,847

1,240 new this month

+5%

Total Vehicles

12,493

342 added this month

+18%

Monthly Revenue

€48,250

€6,200 from premium

+3

Error Logs

23

3 critical today

',2)),e("div",p,[t[1]||(t[1]=a('

Quick Actions

',1)),e("div",h,[t[0]||(t[0]=e("h2",{class:"text-lg font-semibold text-white mb-4"},"Recent Activity",-1)),e("div",u,[(o(),r(c,null,m(i,(s,n)=>e("div",{key:n,class:"flex items-start gap-3"},[e("div",{class:x(["w-2 h-2 mt-2 rounded-full flex-shrink-0",s.dotColor])},null,2),e("div",v,[e("p",g,l(s.text),1),e("p",b,l(s.time),1)])])),64))])])])]))}});export{y as default}; diff --git a/frontend_admin/.output/public/_nuxt/Oih3kTQ2.js b/frontend_admin/.output/public/_nuxt/Oih3kTQ2.js new file mode 100644 index 0000000..dab4572 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/Oih3kTQ2.js @@ -0,0 +1 @@ +import{_ as a}from"./QKJPEFuj.js";import{_ as i,o as u,c,a as e,t as r,b as l,w as d,d as p}from"./C3Ck-LNv.js";import{u as f}from"./Di-57MrI.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},b=["textContent"],h=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return f({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return u(),c("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,b),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,h),e("div",x,[l(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:d(()=>[p(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{z as default}; diff --git a/frontend_admin/.output/public/_nuxt/QKJPEFuj.js b/frontend_admin/.output/public/_nuxt/QKJPEFuj.js new file mode 100644 index 0000000..6e5ff02 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/QKJPEFuj.js @@ -0,0 +1 @@ +import{g as E,k as P,K as q,B as N,L as U,M as j,N as H,O as I,P as A,Q as _,R as V,S as z,x as D,T as O,U as F,l as f,z as W,H as x,V as B,W as M,X as $,Y as Q,Z as G,$ as K,a0 as X,a1 as Y}from"./C3Ck-LNv.js";const Z=(...t)=>t.find(r=>r!==void 0);function T(t){let r=t.replace(/[\u0000-\u001f\s]+/g,"");for(;r.toLowerCase().startsWith("view-source:");)r=r.slice(12);const c=r.indexOf(":");return c>0&&G(r.slice(0,c+1))?null:t}function J(t){const r=t.componentName||"NuxtLink";function c(e){return typeof e=="string"&&e.startsWith("#")}function w(e,s,d){const a=d??t.trailingSlash;if(!e||a!=="append"&&a!=="remove")return e;if(typeof e=="string")return C(e,a);const i="path"in e&&e.path!==void 0?e.path:s(e).path;return{...e,name:void 0,path:C(i,a)}}function k(e){const s=P(),d=Y(),a=x(()=>!!f(e.target)&&f(e.target)!=="_self"),i=x(()=>{const o=f(e.to)||f(e.href)||"";return typeof o=="string"&&B(o,{acceptRelative:!0})}),R=_("RouterLink"),y=typeof R!="string"?R.useLink:void 0,v=x(()=>{if(f(e.external))return!0;const o=f(e.to)||f(e.href)||"";return typeof o=="object"?!1:o===""||i.value}),l=x(()=>{const o=f(e.to)||f(e.href)||"";return v.value?o:w(o,s.resolve,f(e.trailingSlash))}),b=v.value?void 0:y?.({...e,to:l,viewTransition:f(e.viewTransition)}),m=x(()=>{const o=f(e.trailingSlash)??t.trailingSlash;if(!l.value||i.value||c(l.value)){const h=l.value;return typeof h=="string"?T(h):h}if(v.value){const h=typeof l.value=="object"&&"path"in l.value?O(l.value):l.value,p=typeof h=="object"?s.resolve(h).href:h,u=typeof p=="string"?T(p):p;return u===null?null:C(u,o)}return typeof l.value=="object"?s.resolve(l.value)?.href??null:C(M(d.app.baseURL,l.value),o)});return{to:l,hasTarget:a,isAbsoluteUrl:i,isExternal:v,href:m,isActive:b?.isActive??x(()=>l.value===s.currentRoute.value.path),isExactActive:b?.isExactActive??x(()=>l.value===s.currentRoute.value.path),route:b?.route??x(()=>s.resolve(l.value)),async navigate(o){m.value!==null&&await W(m.value,{replace:f(e.replace),external:v.value||a.value})}}}return E({name:r,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:k,setup(e,{slots:s}){const d=P(),{to:a,href:i,navigate:R,isExternal:y,hasTarget:v,isAbsoluteUrl:l}=k(e),b=z(!1),m=D(null),o=u=>{m.value=e.custom?u?.$el?.nextElementSibling:u?.$el};function h(u){return!b.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===u:e.prefetchOn?.[u]??t.prefetchOn?.[u])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ae()}async function p(u=q()){if(b.value||i.value===null)return;b.value=!0;const g=typeof a.value=="string"?a.value:y.value?O(a.value):d.resolve(a.value).fullPath,n=y.value?new URL(g,window.location.href).href:g;await Promise.all([u.hooks.callHook("link:prefetch",n).catch(()=>{}),!y.value&&!v.value&&F(a.value,d).catch(()=>{})])}if(h("visibility")){const u=q();let g,n=null;N(()=>{const S=ee();U(()=>{g=j(()=>{m?.value?.tagName&&(n=S.observe(m.value,async()=>{n?.(),n=null,await p(u)}))})})}),H(()=>{g&&I(g),n?.(),n=null})}return()=>{if(!y.value&&!v.value&&!c(a.value)){const n={ref:o,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(h("interaction")&&(n.onPointerenter=p.bind(null,void 0),n.onFocus=p.bind(null,void 0)),b.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),A(_("RouterLink"),n,s.default)}const u=e.target||null,g=Z(e.noRel?"":e.rel,t.externalRelAttribute,l.value||v.value?"noopener noreferrer":"")||null;return e.custom?s.default?s.default({href:i.value,navigate:R,prefetch:p,get route(){if(!i.value)return;const n=new URL(i.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return V(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:g,target:u,isExternal:y.value||v.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:m,href:i.value||null,rel:g,target:u,onClick:async n=>{if(!(y.value||v.value)){n.preventDefault();try{const S=$(i.value??"");return await(e.replace?d.replace(S):d.push(S))}finally{if(c(a.value)){const S=a.value.slice(1);let L=S;try{L=decodeURIComponent(S)}catch{}document.getElementById(L)?.focus()}}}}},s.default?.())}}})}const le=J(Q);function C(t,r){const c=r==="append"?K:X;return B(t)&&!t.startsWith("http")?t:c(t,!0)}function ee(){const t=q();if(t._observer)return t._observer;let r=null;const c=new Map,w=(e,s)=>(r||=new IntersectionObserver(d=>{for(const a of d){const i=c.get(a.target);(a.isIntersecting||a.intersectionRatio>0)&&i&&i()}}),c.set(e,s),r.observe(e),()=>{c.delete(e),r?.unobserve(e),c.size===0&&(r?.disconnect(),r=null)});return t._observer={observe:w}}const te=/2g/;function ae(){const t=navigator.connection;return!!(t&&(t.saveData||te.test(t.effectiveType)))}export{le as _}; diff --git a/frontend_admin/.output/public/_nuxt/XMkMKtwS.js b/frontend_admin/.output/public/_nuxt/XMkMKtwS.js new file mode 100644 index 0000000..57e2113 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/XMkMKtwS.js @@ -0,0 +1 @@ +import{_ as v}from"./QKJPEFuj.js";import{g as y,k as h,c as n,a as t,j as _,l as s,t as c,m as u,p as k,q as p,v as m,s as x,b as S,w as V,x as f,o as i,d as C}from"./C3Ck-LNv.js";import{u as L,_ as N}from"./ByPKVH1D.js";import"./BoAo7BJa.js";const B={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},E={class:"w-full max-w-md"},j={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},R={key:0,class:"mb-6 p-3 rounded-lg bg-red-900/40 border border-red-700 text-red-300 text-sm"},q=["disabled"],A={key:0,class:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},D={class:"mt-6 text-center"},U=y({__name:"login",setup(F){const a=f(""),r=f(""),b=h(),o=L();async function g(){try{await o.login(a.value,r.value),b.push("/")}catch(d){console.error("Login failed:",d)}}return(d,e)=>{const w=v;return i(),n("div",B,[t("div",E,[e[6]||(e[6]=_('
ServiceFinder LogoSERVICEFINDER

Staff Portal

Authorised personnel only

',1)),t("div",j,[s(o).error?(i(),n("div",R,c(s(o).error),1)):u("",!0),t("form",{onSubmit:k(g,["prevent"]),class:"space-y-5"},[t("div",null,[e[2]||(e[2]=t("label",{for:"email",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Email Address ",-1)),p(t("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=l=>x(a)?a.value=l:null),type:"email",autocomplete:"email",required:"",placeholder:"admin@example.com",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(a)]])]),t("div",null,[e[3]||(e[3]=t("label",{for:"password",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Password ",-1)),p(t("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=l=>x(r)?r.value=l:null),type:"password",autocomplete:"current-password",required:"",placeholder:"••••••••",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(r)]])]),t("button",{type:"submit",disabled:s(o).isLoading,class:"w-full py-2.5 px-4 bg-cyan-600 hover:bg-cyan-500 disabled:bg-cyan-800 disabled:cursor-not-allowed text-white font-semibold rounded-lg transition duration-200 flex items-center justify-center gap-2"},[s(o).isLoading?(i(),n("svg",A,[...e[4]||(e[4]=[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):u("",!0),t("span",null,c(s(o).isLoading?"Signing in...":"Sign In"),1)],8,q)],32),t("div",D,[S(w,{to:"/",class:"text-sm text-slate-500 hover:text-cyan-400 transition"},{default:V(()=>[...e[5]||(e[5]=[C(" ← Back to ServiceFinder ",-1)])]),_:1})])])])])}}});export{U as default}; diff --git a/frontend_admin/.output/public/_nuxt/builds/latest.json b/frontend_admin/.output/public/_nuxt/builds/latest.json new file mode 100644 index 0000000..9c58b77 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/builds/latest.json @@ -0,0 +1 @@ +{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json b/frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json new file mode 100644 index 0000000..baae62d --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json @@ -0,0 +1 @@ +{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/builds/meta/dev.json b/frontend_admin/.output/public/_nuxt/builds/meta/dev.json new file mode 100644 index 0000000..f5503bc --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/builds/meta/dev.json @@ -0,0 +1 @@ +{"id":"dev","timestamp":1782300411347,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/entry.KrfumMBl.css b/frontend_admin/.output/public/_nuxt/entry.KrfumMBl.css new file mode 100644 index 0000000..fa6b546 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/entry.KrfumMBl.css @@ -0,0 +1 @@ +body{margin:0;padding:0} diff --git a/frontend_admin/.output/public/_nuxt/error-404.DL_4WIao.css b/frontend_admin/.output/public/_nuxt/error-404.DL_4WIao.css new file mode 100644 index 0000000..f27d23e --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/error-404.DL_4WIao.css @@ -0,0 +1 @@ +.spotlight[data-v-1bd9e11a]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-1bd9e11a]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media(prefers-color-scheme:light){.gradient-border[data-v-1bd9e11a]{background-color:#ffffff4d}.gradient-border[data-v-1bd9e11a]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media(prefers-color-scheme:dark){.gradient-border[data-v-1bd9e11a]{background-color:#1414144d}.gradient-border[data-v-1bd9e11a]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-1bd9e11a]:before{background-size:400% auto;border-radius:.5rem;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-1bd9e11a]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-1bd9e11a]{position:fixed}.left-0[data-v-1bd9e11a]{left:0}.right-0[data-v-1bd9e11a]{right:0}.z-10[data-v-1bd9e11a]{z-index:10}.z-20[data-v-1bd9e11a]{z-index:20}.grid[data-v-1bd9e11a]{display:grid}.mb-16[data-v-1bd9e11a]{margin-bottom:4rem}.mb-8[data-v-1bd9e11a]{margin-bottom:2rem}.max-w-520px[data-v-1bd9e11a]{max-width:520px}.min-h-screen[data-v-1bd9e11a]{min-height:100vh}.w-full[data-v-1bd9e11a]{width:100%}.flex[data-v-1bd9e11a]{display:flex}.cursor-pointer[data-v-1bd9e11a]{cursor:pointer}.place-content-center[data-v-1bd9e11a]{place-content:center}.items-center[data-v-1bd9e11a]{align-items:center}.justify-center[data-v-1bd9e11a]{justify-content:center}.overflow-hidden[data-v-1bd9e11a]{overflow:hidden}.bg-white[data-v-1bd9e11a]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-1bd9e11a]{padding-left:1rem;padding-right:1rem}.px-8[data-v-1bd9e11a]{padding-left:2rem;padding-right:2rem}.py-2[data-v-1bd9e11a]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-1bd9e11a]{text-align:center}.text-8xl[data-v-1bd9e11a]{font-size:6rem;line-height:1}.text-xl[data-v-1bd9e11a]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-1bd9e11a]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-1bd9e11a]{font-weight:300}.font-medium[data-v-1bd9e11a]{font-weight:500}.leading-tight[data-v-1bd9e11a]{line-height:1.25}.font-sans[data-v-1bd9e11a]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-1bd9e11a]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-black[data-v-1bd9e11a]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-1bd9e11a]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:px-0[data-v-1bd9e11a]{padding-left:0;padding-right:0}.sm\:px-6[data-v-1bd9e11a]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-1bd9e11a]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-1bd9e11a]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-1bd9e11a]{font-size:1.25rem;line-height:1.75rem}} diff --git a/frontend_admin/.output/public/_nuxt/error-500.I1Dtv2V5.css b/frontend_admin/.output/public/_nuxt/error-500.I1Dtv2V5.css new file mode 100644 index 0000000..494c958 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/error-500.I1Dtv2V5.css @@ -0,0 +1 @@ +.spotlight[data-v-a01dd0ba]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-a01dd0ba]{position:fixed}.-bottom-1\/2[data-v-a01dd0ba]{bottom:-50%}.left-0[data-v-a01dd0ba]{left:0}.right-0[data-v-a01dd0ba]{right:0}.grid[data-v-a01dd0ba]{display:grid}.mb-16[data-v-a01dd0ba]{margin-bottom:4rem}.mb-8[data-v-a01dd0ba]{margin-bottom:2rem}.h-1\/2[data-v-a01dd0ba]{height:50%}.max-w-520px[data-v-a01dd0ba]{max-width:520px}.min-h-screen[data-v-a01dd0ba]{min-height:100vh}.place-content-center[data-v-a01dd0ba]{place-content:center}.overflow-hidden[data-v-a01dd0ba]{overflow:hidden}.bg-white[data-v-a01dd0ba]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-a01dd0ba]{padding-left:2rem;padding-right:2rem}.text-center[data-v-a01dd0ba]{text-align:center}.text-8xl[data-v-a01dd0ba]{font-size:6rem;line-height:1}.text-xl[data-v-a01dd0ba]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-a01dd0ba]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-a01dd0ba]{font-weight:300}.font-medium[data-v-a01dd0ba]{font-weight:500}.leading-tight[data-v-a01dd0ba]{line-height:1.25}.font-sans[data-v-a01dd0ba]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-a01dd0ba]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-black[data-v-a01dd0ba]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-a01dd0ba]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:px-0[data-v-a01dd0ba]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-a01dd0ba]{font-size:2.25rem;line-height:2.5rem}} diff --git a/frontend_admin/.output/public/_nuxt/usmOON9X.js b/frontend_admin/.output/public/_nuxt/usmOON9X.js new file mode 100644 index 0000000..5552f4d --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/usmOON9X.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as i,a as e,t as o}from"./C3Ck-LNv.js";import{u}from"./Di-57MrI.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return u({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(a(),i("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},h=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{h as default}; diff --git a/frontend/public/SF_logo.png b/frontend_admin/.output/public/sf_logo.png similarity index 100% rename from frontend/public/SF_logo.png rename to frontend_admin/.output/public/sf_logo.png diff --git a/frontend_admin/.output/server/chunks/_/error-500.mjs b/frontend_admin/.output/server/chunks/_/error-500.mjs new file mode 100644 index 0000000..ef6efe1 --- /dev/null +++ b/frontend_admin/.output/server/chunks/_/error-500.mjs @@ -0,0 +1,19 @@ +import { escapeHtml } from '@vue/shared'; + +const _messages = { + "appName": "Nuxt", + "version": "", + "status": 500, + "statusText": "Server error", + "description": "This page is temporarily unavailable." +}; +const template = (messages) => { + messages = { + ..._messages, + ...messages + }; + return "" + escapeHtml(messages.status) + " - " + escapeHtml(messages.statusText) + " | " + escapeHtml(messages.appName) + " diff --git a/frontend_admin/middleware/auth.ts b/frontend_admin/middleware/auth.ts new file mode 100644 index 0000000..9e33d7d --- /dev/null +++ b/frontend_admin/middleware/auth.ts @@ -0,0 +1,16 @@ +export default defineNuxtRouteMiddleware((to, from) => { + // Skip auth check on the login page itself + if (to.path === '/login') { + return + } + + // Check for the access_token cookie + const tokenCookie = useCookie('access_token') + if (!tokenCookie.value) { + return navigateTo('/login') + } + + // If the store is already initialized, check isAuthenticated + // Otherwise, the token cookie presence is sufficient for the guard + // The store's init() will validate the token on app mount +}) diff --git a/frontend_admin/nuxt.config.ts b/frontend_admin/nuxt.config.ts new file mode 100644 index 0000000..ed2d803 --- /dev/null +++ b/frontend_admin/nuxt.config.ts @@ -0,0 +1,24 @@ +export default defineNuxtConfig({ + devtools: { enabled: true }, + modules: ['@nuxtjs/tailwindcss', '@pinia/nuxt'], + css: ['~/assets/css/main.css'], + tailwindcss: { + config: { + content: [ + './components/**/*.{vue,js,ts}', + './layouts/**/*.{vue,js,ts}', + './pages/**/*.{vue,js,ts}', + './middleware/**/*.{js,ts}', + './app.vue', + ], + theme: { + extend: {}, + }, + }, + }, + vite: { + server: { + allowedHosts: ['admin.servicefinder.hu'], + }, + }, +}) diff --git a/frontend_admin/package-lock.json b/frontend_admin/package-lock.json new file mode 100644 index 0000000..ed79ef8 --- /dev/null +++ b/frontend_admin/package-lock.json @@ -0,0 +1,9650 @@ +{ + "name": "sf-admin-frontend", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sf-admin-frontend", + "dependencies": { + "@nuxtjs/tailwindcss": "^6.14.0", + "@pinia/nuxt": "^0.11.3", + "axios": "^1.18.1", + "pinia": "^3.0.4" + }, + "devDependencies": { + "nuxt": "^3.11.0", + "vue": "^3.4.0", + "vue-router": "^4.3.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bomb.sh/tab": { + "version": "0.0.16", + "dev": true, + "license": "MIT", + "bin": { + "tab": "dist/bin/cli.mjs" + }, + "peerDependencies": { + "cac": "^6.7.14", + "citty": "^0.1.6 || ^0.2.0", + "commander": "^13.1.0" + }, + "peerDependenciesMeta": { + "cac": { + "optional": true + }, + "citty": { + "optional": true + }, + "commander": { + "optional": true + } + } + }, + "node_modules/@clack/core": { + "version": "1.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@clack/prompts": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@clack/core": "1.4.2", + "fast-string-width": "^3.0.2", + "fast-wrap-ansi": "^0.2.0", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 20.12.0" + } + }, + "node_modules/@cloudflare/kv-asset-handler": { + "version": "0.4.2", + "dev": true, + "license": "MIT OR Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@colordx/core": { + "version": "5.4.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@dxup/nuxt": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@dxup/unimport": "^0.1.2", + "@nuxt/kit": "^4.4.2", + "chokidar": "^5.0.0", + "pathe": "^2.0.3", + "tinyglobby": "^0.2.16" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@dxup/nuxt/node_modules/@nuxt/kit": { + "version": "4.4.8", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.4", + "consola": "^3.4.2", + "defu": "^6.1.7", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.7.0", + "klona": "^2.0.6", + "mlly": "^1.8.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "rc9": "^3.0.1", + "scule": "^1.3.0", + "semver": "^7.8.1", + "tinyglobby": "^0.2.17", + "ufo": "^1.6.4", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@dxup/unimport": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.1", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.10.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@koa/router": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/@koa/router/-/router-12.0.2.tgz", + "integrity": "sha512-sYcHglGKTxGF+hQ6x67xDfkE9o+NhVlRHBqq6gLywaMc6CojK/5vFZByphdonKinYlMLkEkacm+HEse9HzwgTA==", + "deprecated": "Please upgrade to v15 or higher. All reported bugs in this version are fixed in newer releases, dependencies have been updated, and security has been improved.", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "http-errors": "^2.0.0", + "koa-compose": "^4.1.0", + "methods": "^1.1.2", + "path-to-regexp": "^6.3.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "2.0.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "consola": "^3.2.3", + "detect-libc": "^2.0.0", + "https-proxy-agent": "^7.0.5", + "node-fetch": "^2.6.7", + "nopt": "^8.0.0", + "semver": "^7.5.3", + "tar": "^7.4.0" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nuxt/cli": { + "version": "3.36.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@bomb.sh/tab": "^0.0.16", + "@clack/prompts": "^1.5.1", + "c12": "^3.3.4", + "citty": "^0.2.2", + "confbox": "^0.2.4", + "consola": "^3.4.2", + "debug": "^4.4.3", + "defu": "^6.1.7", + "exsolve": "^1.0.8", + "fuse.js": "^7.4.2", + "fzf": "^0.5.2", + "giget": "^3.3.0", + "jiti": "^2.7.0", + "listhen": "^1.10.0", + "nypm": "^0.6.7", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.1", + "scule": "^1.3.0", + "semver": "^7.8.4", + "srvx": "^0.11.16", + "std-env": "^4.1.0", + "tinyclip": "^0.1.14", + "tinyexec": "^1.2.4", + "ufo": "^1.6.4", + "youch": "^4.1.1" + }, + "bin": { + "nuxi": "bin/nuxi.mjs", + "nuxi-ng": "bin/nuxi.mjs", + "nuxt": "bin/nuxi.mjs", + "nuxt-cli": "bin/nuxi.mjs" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + }, + "peerDependencies": { + "@nuxt/schema": "^4.4.6" + }, + "peerDependenciesMeta": { + "@nuxt/schema": { + "optional": true + } + } + }, + "node_modules/@nuxt/devalue": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@nuxt/devtools": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/devtools-kit": "3.2.4", + "@nuxt/devtools-wizard": "3.2.4", + "@nuxt/kit": "^4.4.2", + "@vue/devtools-core": "^8.1.0", + "@vue/devtools-kit": "^8.1.0", + "birpc": "^4.0.0", + "consola": "^3.4.2", + "destr": "^2.0.5", + "error-stack-parser-es": "^1.0.5", + "execa": "^8.0.1", + "fast-npm-meta": "^1.4.2", + "get-port-please": "^3.2.0", + "hookable": "^6.1.0", + "image-meta": "^0.2.2", + "is-installed-globally": "^1.0.0", + "launch-editor": "^2.13.1", + "local-pkg": "^1.1.2", + "magicast": "^0.5.2", + "nypm": "^0.6.5", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "semver": "^7.7.4", + "simple-git": "^3.33.0", + "sirv": "^3.0.2", + "structured-clone-es": "^2.0.0", + "tinyglobby": "^0.2.15", + "vite-plugin-inspect": "^11.3.3", + "vite-plugin-vue-tracer": "^1.3.0", + "which": "^6.0.1", + "ws": "^8.19.0" + }, + "bin": { + "devtools": "cli.mjs" + }, + "peerDependencies": { + "@vitejs/devtools": "*", + "vite": ">=6.0" + }, + "peerDependenciesMeta": { + "@vitejs/devtools": { + "optional": true + } + } + }, + "node_modules/@nuxt/devtools-kit": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.4.2", + "execa": "^8.0.1" + }, + "peerDependencies": { + "vite": ">=6.0" + } + }, + "node_modules/@nuxt/devtools-kit/node_modules/@nuxt/kit": { + "version": "4.4.8", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.4", + "consola": "^3.4.2", + "defu": "^6.1.7", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.7.0", + "klona": "^2.0.6", + "mlly": "^1.8.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "rc9": "^3.0.1", + "scule": "^1.3.0", + "semver": "^7.8.1", + "tinyglobby": "^0.2.17", + "ufo": "^1.6.4", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/devtools-wizard": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@clack/prompts": "^1.1.0", + "consola": "^3.4.2", + "diff": "^8.0.3", + "execa": "^8.0.1", + "magicast": "^0.5.2", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "semver": "^7.7.4" + }, + "bin": { + "devtools-wizard": "cli.mjs" + } + }, + "node_modules/@nuxt/devtools/node_modules/@nuxt/kit": { + "version": "4.4.8", + "dev": true, + "license": "MIT", + "dependencies": { + "c12": "^3.3.4", + "consola": "^3.4.2", + "defu": "^6.1.7", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.7.0", + "klona": "^2.0.6", + "mlly": "^1.8.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "rc9": "^3.0.1", + "scule": "^1.3.0", + "semver": "^7.8.1", + "tinyglobby": "^0.2.17", + "ufo": "^1.6.4", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/devtools/node_modules/hookable": { + "version": "6.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@nuxt/kit": { + "version": "3.21.8", + "license": "MIT", + "dependencies": { + "c12": "^3.3.4", + "consola": "^3.4.2", + "defu": "^6.1.7", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.7.0", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "mlly": "^1.8.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "rc9": "^3.0.1", + "scule": "^1.3.0", + "semver": "^7.8.0", + "tinyglobby": "^0.2.16", + "ufo": "^1.6.4", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@nuxt/nitro-server": { + "version": "3.21.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/devalue": "^2.0.2", + "@nuxt/kit": "3.21.8", + "@unhead/vue": "^2.1.15", + "@vue/shared": "^3.5.34", + "consola": "^3.4.2", + "defu": "^6.1.7", + "destr": "^2.0.5", + "devalue": "^5.8.1", + "errx": "^0.1.0", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "h3": "^1.15.11", + "impound": "^1.1.5", + "klona": "^2.0.6", + "mocked-exports": "^0.1.1", + "nitropack": "^2.13.4", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "rou3": "^0.8.1", + "std-env": "^4.1.0", + "ufo": "^1.6.4", + "unctx": "^2.5.0", + "unstorage": "^1.17.5", + "vue": "^3.5.34", + "vue-bundle-renderer": "^2.2.0", + "vue-devtools-stub": "^0.1.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "nuxt": "^3.21.8" + } + }, + "node_modules/@nuxt/schema": { + "version": "4.4.8", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@vue/shared": "^3.5.35", + "defu": "^6.1.7", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "std-env": "^4.1.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/@nuxt/telemetry": { + "version": "2.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.2.1", + "consola": "^3.4.2", + "ofetch": "^2.0.0-alpha.3", + "rc9": "^3.0.0", + "std-env": "^4.0.0" + }, + "bin": { + "nuxt-telemetry": "bin/nuxt-telemetry.mjs" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@nuxt/kit": ">=3.0.0" + } + }, + "node_modules/@nuxt/telemetry/node_modules/ofetch": { + "version": "2.0.0-alpha.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@nuxt/vite-builder": { + "version": "3.21.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "3.21.8", + "@rollup/plugin-replace": "^6.0.3", + "@vitejs/plugin-vue": "^6.0.7", + "@vitejs/plugin-vue-jsx": "^5.1.5", + "autoprefixer": "^10.5.0", + "consola": "^3.4.2", + "cssnano": "^7.1.9", + "defu": "^6.1.7", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "externality": "^1.0.2", + "get-port-please": "^3.2.0", + "jiti": "^2.7.0", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "mocked-exports": "^0.1.1", + "nypm": "^0.6.6", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.1", + "postcss": "^8.5.14", + "seroval": "^1.5.4", + "std-env": "^4.1.0", + "ufo": "^1.6.4", + "unenv": "^2.0.0-rc.24", + "vite": "^7.3.3", + "vite-node": "^5.3.0", + "vite-plugin-checker": "^0.13.0", + "vue-bundle-renderer": "^2.2.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "nuxt": "3.21.8", + "rolldown": "^1.0.0-beta.38", + "rollup-plugin-visualizer": "^6.0.0 || ^7.0.1", + "vue": "^3.3.4" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup-plugin-visualizer": { + "optional": true + } + } + }, + "node_modules/@nuxt/vite-builder/node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@nuxt/vite-builder/node_modules/esbuild": { + "version": "0.27.7", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/@nuxt/vite-builder/node_modules/vite": { + "version": "7.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/@nuxtjs/tailwindcss": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/tailwindcss/-/tailwindcss-6.14.0.tgz", + "integrity": "sha512-30RyDK++LrUVRgc2A85MktGWIZoRQgeQKjE4CjjD64OXNozyl+4ScHnnYgqVToMM6Ch2ZG2W4wV2J0EN6F0zkQ==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.16.0", + "autoprefixer": "^10.4.20", + "c12": "^3.0.2", + "consola": "^3.4.0", + "defu": "^6.1.4", + "h3": "^1.15.1", + "klona": "^2.0.6", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.1.0", + "postcss": "^8.5.3", + "postcss-nesting": "^13.0.1", + "tailwind-config-viewer": "^2.0.4", + "tailwindcss": "~3.4.17", + "ufo": "^1.5.4", + "unctx": "^2.4.1" + } + }, + "node_modules/@oxc-minify/binding-linux-x64-gnu": { + "version": "0.132.0", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-parser/binding-linux-x64-gnu": { + "version": "0.132.0", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.132.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxc-transform/binding-linux-x64-gnu": { + "version": "0.132.0", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.6", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.3", + "is-glob": "^4.0.3", + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.6", + "@parcel/watcher-darwin-arm64": "2.5.6", + "@parcel/watcher-darwin-x64": "2.5.6", + "@parcel/watcher-freebsd-x64": "2.5.6", + "@parcel/watcher-linux-arm-glibc": "2.5.6", + "@parcel/watcher-linux-arm-musl": "2.5.6", + "@parcel/watcher-linux-arm64-glibc": "2.5.6", + "@parcel/watcher-linux-arm64-musl": "2.5.6", + "@parcel/watcher-linux-x64-glibc": "2.5.6", + "@parcel/watcher-linux-x64-musl": "2.5.6", + "@parcel/watcher-win32-arm64": "2.5.6", + "@parcel/watcher-win32-ia32": "2.5.6", + "@parcel/watcher-win32-x64": "2.5.6" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.6", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm": { + "version": "2.5.6", + "bundleDependencies": [ + "napi-wasm" + ], + "dev": true, + "license": "MIT", + "dependencies": { + "is-glob": "^4.0.3", + "napi-wasm": "^1.1.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/@pinia/nuxt": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@pinia/nuxt/-/nuxt-0.11.3.tgz", + "integrity": "sha512-7WVNHpWx4qAEzOlnyrRC88kYrwnlR/PrThWT0XI1dSNyUAXu/KBv9oR37uCgYkZroqP5jn8DfzbkNF3BtKvE9w==", + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^4.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "pinia": "^3.0.4" + } + }, + "node_modules/@pinia/nuxt/node_modules/@nuxt/kit": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.4.8.tgz", + "integrity": "sha512-ZUlZ5iYfyfJFDPluhn6ZxFWcsuxWbLnZBc8w3MAROcQ4lYfZ+qFpALBLSNlpc0zhOa++33EE+5PEbOAdVIY+dw==", + "license": "MIT", + "dependencies": { + "c12": "^3.3.4", + "consola": "^3.4.2", + "defu": "^6.1.7", + "destr": "^2.0.5", + "errx": "^0.1.0", + "exsolve": "^1.0.8", + "ignore": "^7.0.5", + "jiti": "^2.7.0", + "klona": "^2.0.6", + "mlly": "^1.8.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "rc9": "^3.0.1", + "scule": "^1.3.0", + "semver": "^7.8.1", + "tinyglobby": "^0.2.17", + "ufo": "^1.6.4", + "unctx": "^2.5.0", + "untyped": "^2.0.0" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "dev": true, + "license": "MIT" + }, + "node_modules/@poppinss/colors": { + "version": "4.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^4.1.5" + } + }, + "node_modules/@poppinss/dumper": { + "version": "0.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.5", + "@sindresorhus/is": "^7.0.2", + "supports-color": "^10.0.0" + } + }, + "node_modules/@poppinss/exception": { + "version": "1.2.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.3", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/plugin-alias": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "rollup": ">=4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0 || 14 >= 14.17" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "16.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^7.0.3", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.2", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@simple-git/args-pathspec": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@simple-git/argv-parser": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@simple-git/args-pathspec": "^1.0.3" + } + }, + "node_modules/@sindresorhus/is": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@speed-highlight/core": { + "version": "1.2.17", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@unhead/vue": { + "version": "2.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "hookable": "^6.0.1", + "unhead": "2.1.15" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + }, + "peerDependencies": { + "vue": ">=3.5.18" + } + }, + "node_modules/@unhead/vue/node_modules/hookable": { + "version": "6.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@vercel/nft": { + "version": "1.10.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^2.0.0", + "@rollup/pluginutils": "^5.1.3", + "acorn": "^8.6.0", + "acorn-import-attributes": "^1.9.5", + "async-sema": "^3.1.1", + "bindings": "^1.4.0", + "estree-walker": "2.0.2", + "glob": "^13.0.0", + "graceful-fs": "^4.2.9", + "node-gyp-build": "^4.2.2", + "picomatch": "^4.0.2", + "resolve-from": "^5.0.0" + }, + "bin": { + "nft": "out/cli.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitejs/plugin-vue-jsx": { + "version": "5.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.29.0", + "@babel/plugin-syntax-typescript": "^7.28.6", + "@babel/plugin-transform-typescript": "^7.28.6", + "@rolldown/pluginutils": "^1.0.0-rc.2", + "@vue/babel-plugin-jsx": "^2.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.0.0" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue-macros/common": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-sfc": "^3.5.22", + "ast-kit": "^2.1.2", + "local-pkg": "^1.1.2", + "magic-string-ast": "^1.0.2", + "unplugin-utils": "^0.3.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/vue-macros" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.2.25" + }, + "peerDependenciesMeta": { + "vue": { + "optional": true + } + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@vue/babel-helper-vue-transform-on": "2.0.1", + "@vue/babel-plugin-resolve-type": "2.0.1", + "@vue/shared": "^3.5.22" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/parser": "^7.28.4", + "@vue/compiler-sfc": "^3.5.22" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/shared": "3.5.38", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.38", + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/compiler-core": "3.5.38", + "@vue/compiler-dom": "3.5.38", + "@vue/compiler-ssr": "3.5.38", + "@vue/shared": "3.5.38", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.15", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.38", + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/devtools-core": { + "version": "8.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.1.3", + "@vue/devtools-shared": "^8.1.3" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "8.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.1.3", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0" + } + }, + "node_modules/@vue/devtools-kit/node_modules/birpc": { + "version": "2.9.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "8.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/language-core": { + "version": "3.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.2.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.4" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.38", + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.38", + "@vue/runtime-core": "3.5.38", + "@vue/shared": "3.5.38", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.38", + "@vue/shared": "3.5.38" + }, + "peerDependencies": { + "vue": "3.5.38" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.38", + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.17.0", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/alien-signals": { + "version": "3.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansis": { + "version": "4.3.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/archiver": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/archiver-utils/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/archiver-utils/node_modules/brace-expansion": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "10.5.0", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/archiver-utils/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "license": "ISC" + }, + "node_modules/archiver-utils/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/archiver-utils/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/ast-kit": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-walker-scope": { + "version": "0.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.4", + "ast-kit": "^2.1.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/async": { + "version": "3.2.6", + "license": "MIT" + }, + "node_modules/async-sema": { + "version": "3.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.5.0", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", + "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/axios/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/axios/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/b4a": { + "version": "1.8.1", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/bare-events": { + "version": "2.9.1", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.7.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.9.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.13.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.8.1", + "streamx": "^2.25.0", + "teex": "^1.0.1" + }, + "peerDependencies": { + "bare-abort-controller": "*", + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + }, + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.4.5", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.38", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/birpc": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "5.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/c12": { + "version": "3.3.4", + "license": "MIT", + "dependencies": { + "chokidar": "^5.0.0", + "confbox": "^0.2.4", + "defu": "^6.1.6", + "dotenv": "^17.3.1", + "exsolve": "^1.0.8", + "giget": "^3.2.0", + "jiti": "^2.6.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.0", + "rc9": "^3.0.1" + }, + "peerDependencies": { + "magicast": "*" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/cac": { + "version": "6.7.14", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "license": "MIT", + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/cache-content-type/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cache-content-type/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001799", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "readdirp": "^5.0.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/citty": { + "version": "0.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/compatx": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/compress-commons/node_modules/is-stream": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.4", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie-es": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/cookies": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-4.0.5.tgz", + "integrity": "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==", + "license": "MIT", + "dependencies": { + "is-what": "^5.2.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "dev": true, + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/croner": { + "version": "10.0.1", + "dev": true, + "funding": [ + { + "type": "other", + "url": "https://paypal.me/hexagonpp" + }, + { + "type": "github", + "url": "https://github.com/sponsors/hexagon" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crossws": { + "version": "0.3.5", + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.4.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "7.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.17", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.17", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.3", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.10", + "postcss-convert-values": "^7.0.12", + "postcss-discard-comments": "^7.0.8", + "postcss-discard-duplicates": "^7.0.4", + "postcss-discard-empty": "^7.0.3", + "postcss-discard-overridden": "^7.0.3", + "postcss-merge-longhand": "^7.0.7", + "postcss-merge-rules": "^7.0.11", + "postcss-minify-font-values": "^7.0.3", + "postcss-minify-gradients": "^7.0.5", + "postcss-minify-params": "^7.0.9", + "postcss-minify-selectors": "^7.1.2", + "postcss-normalize-charset": "^7.0.3", + "postcss-normalize-display-values": "^7.0.3", + "postcss-normalize-positions": "^7.0.4", + "postcss-normalize-repeat-style": "^7.0.4", + "postcss-normalize-string": "^7.0.3", + "postcss-normalize-timing-functions": "^7.0.3", + "postcss-normalize-unicode": "^7.0.9", + "postcss-normalize-url": "^7.0.3", + "postcss-normalize-whitespace": "^7.0.3", + "postcss-ordered-values": "^7.0.4", + "postcss-reduce-initial": "^7.0.9", + "postcss-reduce-transforms": "^7.0.3", + "postcss-svgo": "^7.1.3", + "postcss-unique-selectors": "^7.0.7" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.2.3", + "license": "MIT" + }, + "node_modules/db0": { + "version": "0.3.4", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@electric-sql/pglite": "*", + "@libsql/client": "*", + "better-sqlite3": "*", + "drizzle-orm": "*", + "mysql2": "*", + "sqlite3": "*" + }, + "peerDependenciesMeta": { + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "drizzle-orm": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/debug": { + "version": "4.4.3", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/denque": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devalue": { + "version": "5.8.1", + "dev": true, + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/diff": { + "version": "8.0.4", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "10.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^5.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.376", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/errx": { + "version": "0.1.0", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.28.1", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exsolve": { + "version": "1.0.8", + "license": "MIT" + }, + "node_modules/externality": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.14.1", + "mlly": "^1.3.0", + "pathe": "^1.1.1", + "ufo": "^1.1.2" + } + }, + "node_modules/externality/node_modules/pathe": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-npm-meta": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "bin": { + "fast-npm-meta": "dist/cli.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/fast-string-truncated-width": { + "version": "3.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-string-truncated-width": "^3.0.2" + } + }, + "node_modules/fast-wrap-ansi": { + "version": "0.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-string-width": "^3.0.2" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuse.js": { + "version": "7.4.2", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/krisk" + } + }, + "node_modules/fzf": { + "version": "0.5.2", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port-please": { + "version": "3.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/giget": { + "version": "3.3.0", + "license": "MIT", + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/glob": { + "version": "13.0.6", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global-directory": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.5", + "is-path-inside": "^4.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "license": "ISC" + }, + "node_modules/gzip-size": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/h3": { + "version": "1.15.11", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + } + }, + "node_modules/h3/node_modules/cookie-es": { + "version": "1.2.3", + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "license": "MIT" + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "license": "MIT", + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-shutdown": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/httpxy": { + "version": "0.5.3", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "5.0.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "7.0.5", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-meta": { + "version": "0.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/impound": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "es-module-lexer": "^2.0.0", + "pathe": "^2.0.3", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ioredis": { + "version": "5.11.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@ioredis/commands": "1.10.0", + "cluster-key-slot": "1.1.1", + "debug": "4.4.3", + "denque": "2.1.0", + "redis-errors": "1.2.0", + "redis-parser": "3.0.0", + "standard-as-callback": "2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-installed-globally": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "global-directory": "^4.0.1", + "is-path-inside": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-reference": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-5.5.0.tgz", + "integrity": "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "4.0.0", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=20" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "license": "MIT", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/knitwork": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/koa": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.4.tgz", + "integrity": "sha512-3An0GCLDSR34tsCO4H8Tef8Pp2ngtaZDAZnsWJYelqXUK5wyiHvGItgK/xcSkmHLSTn1Jcho1mRQs2ehRzvKKw==", + "license": "MIT", + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.9.0", + "debug": "^4.3.2", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^2.0.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "license": "MIT" + }, + "node_modules/koa-convert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", + "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-send/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-send/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/koa/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/launch-editor": { + "version": "2.14.1", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "dev": true, + "license": "MPL-2.0", + "peer": true, + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/listhen": { + "version": "1.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/watcher": "^2.5.6", + "@parcel/watcher-wasm": "^2.5.6", + "citty": "^0.2.2", + "consola": "^3.4.2", + "crossws": ">=0.2.0 <0.5.0", + "defu": "^6.1.7", + "get-port-please": "^3.2.0", + "h3": "^1.15.11", + "http-shutdown": "^1.2.2", + "jiti": "^2.6.1", + "mlly": "^1.8.2", + "node-forge": "^1.4.0", + "pathe": "^2.0.3", + "std-env": "^4.1.0", + "tinyclip": "^0.1.12", + "ufo": "^1.6.4", + "untun": "^0.1.3", + "uqr": "^0.1.3" + }, + "bin": { + "listen": "bin/listhen.mjs", + "listhen": "bin/listhen.mjs" + } + }, + "node_modules/local-pkg": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-regexp": { + "version": "0.11.0", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.21", + "regexp-tree": "^0.1.27", + "type-level-regexp": "~0.1.17", + "unplugin": "^3.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magic-string-ast": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.19" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/magicast": { + "version": "0.5.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.3", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.27.1", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "4.1.0", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "license": "MIT", + "bin": { + "mime": "bin/cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.2.5", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.8.2", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mocked-exports": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/mrmime": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.14", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanotar": { + "version": "0.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nitropack": { + "version": "2.13.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@cloudflare/kv-asset-handler": "^0.4.2", + "@rollup/plugin-alias": "^6.0.0", + "@rollup/plugin-commonjs": "^29.0.2", + "@rollup/plugin-inject": "^5.0.5", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@rollup/plugin-terser": "^1.0.0", + "@vercel/nft": "^1.5.0", + "archiver": "^7.0.1", + "c12": "^3.3.4", + "chokidar": "^5.0.0", + "citty": "^0.2.2", + "compatx": "^0.2.0", + "confbox": "^0.2.4", + "consola": "^3.4.2", + "cookie-es": "^2.0.1", + "croner": "^10.0.1", + "crossws": "^0.3.5", + "db0": "^0.3.4", + "defu": "^6.1.7", + "destr": "^2.0.5", + "dot-prop": "^10.1.0", + "esbuild": "^0.28.0", + "escape-string-regexp": "^5.0.0", + "etag": "^1.8.1", + "exsolve": "^1.0.8", + "globby": "^16.2.0", + "gzip-size": "^7.0.0", + "h3": "^1.15.11", + "hookable": "^5.5.3", + "httpxy": "^0.5.1", + "ioredis": "^5.10.1", + "jiti": "^2.6.1", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "listhen": "^1.9.1", + "magic-string": "^0.30.21", + "magicast": "^0.5.2", + "mime": "^4.1.0", + "mlly": "^1.8.2", + "node-fetch-native": "^1.6.7", + "node-mock-http": "^1.0.4", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.1", + "pretty-bytes": "^7.1.0", + "radix3": "^1.1.2", + "rollup": "^4.60.2", + "rollup-plugin-visualizer": "^7.0.1", + "scule": "^1.3.0", + "semver": "^7.7.4", + "serve-placeholder": "^2.0.2", + "serve-static": "^2.2.1", + "source-map": "^0.7.6", + "std-env": "^4.1.0", + "ufo": "^1.6.4", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.5.0", + "unenv": "2.0.0-rc.24", + "unimport": "^6.2.0", + "unplugin-utils": "^0.3.1", + "unstorage": "^1.17.5", + "untyped": "^2.0.0", + "unwasm": "^0.5.3", + "youch": "^4.1.1", + "youch-core": "^0.3.3" + }, + "bin": { + "nitro": "dist/cli/index.mjs", + "nitropack": "dist/cli/index.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "xml2js": "^0.6.2" + }, + "peerDependenciesMeta": { + "xml2js": { + "optional": true + } + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "dev": true, + "license": "MIT" + }, + "node_modules/node-forge": { + "version": "1.4.0", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "dev": true, + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-mock-http": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.48", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/nopt": { + "version": "8.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^3.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nuxt": { + "version": "3.21.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@dxup/nuxt": "^0.4.1", + "@nuxt/cli": "^3.35.2", + "@nuxt/devtools": "^3.2.4", + "@nuxt/kit": "3.21.8", + "@nuxt/nitro-server": "3.21.8", + "@nuxt/schema": "3.21.8", + "@nuxt/telemetry": "^2.8.0", + "@nuxt/vite-builder": "3.21.8", + "@unhead/vue": "^2.1.15", + "@vue/shared": "^3.5.34", + "c12": "^3.3.4", + "chokidar": "^5.0.0", + "compatx": "^0.2.0", + "consola": "^3.4.2", + "cookie-es": "^2.0.1", + "defu": "^6.1.7", + "destr": "^2.0.5", + "devalue": "^5.8.1", + "errx": "^0.1.0", + "escape-string-regexp": "^5.0.0", + "exsolve": "^1.0.8", + "h3": "^1.15.11", + "hookable": "^5.5.3", + "ignore": "^7.0.5", + "impound": "^1.1.5", + "jiti": "^2.7.0", + "klona": "^2.0.6", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "nanotar": "^0.3.0", + "nypm": "^0.6.6", + "ofetch": "^1.5.1", + "ohash": "^2.0.11", + "on-change": "^6.0.2", + "oxc-minify": "^0.132.0", + "oxc-parser": "^0.132.0", + "oxc-transform": "^0.132.0", + "oxc-walker": "^1.0.0", + "pathe": "^2.0.3", + "perfect-debounce": "^2.1.0", + "pkg-types": "^2.3.1", + "rou3": "^0.8.1", + "scule": "^1.3.0", + "semver": "^7.8.0", + "std-env": "^4.1.0", + "tinyglobby": "^0.2.16", + "ufo": "^1.6.4", + "ultrahtml": "^1.6.0", + "uncrypto": "^0.1.3", + "unctx": "^2.5.0", + "unimport": "^6.3.0", + "unplugin": "^3.0.0", + "unplugin-vue-router": "^0.19.2", + "untyped": "^2.0.0", + "vue": "^3.5.34", + "vue-router": "^4.6.4" + }, + "bin": { + "nuxi": "bin/nuxt.mjs", + "nuxt": "bin/nuxt.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@parcel/watcher": "^2.1.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + }, + "@types/node": { + "optional": true + } + } + }, + "node_modules/nuxt/node_modules/@nuxt/schema": { + "version": "3.21.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "^3.5.34", + "defu": "^6.1.7", + "pathe": "^2.0.3", + "pkg-types": "^2.3.1", + "std-env": "^4.1.0" + }, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/nypm": { + "version": "0.6.7", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.2.2", + "pathe": "^2.0.3", + "tinyexec": "^1.2.4" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": ">=18" + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/obug": { + "version": "2.1.3", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/ofetch": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "license": "MIT" + }, + "node_modules/on-change": { + "version": "6.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/on-change?sponsor=1" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==" + }, + "node_modules/open": { + "version": "11.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oxc-minify": { + "version": "0.132.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-minify/binding-android-arm-eabi": "0.132.0", + "@oxc-minify/binding-android-arm64": "0.132.0", + "@oxc-minify/binding-darwin-arm64": "0.132.0", + "@oxc-minify/binding-darwin-x64": "0.132.0", + "@oxc-minify/binding-freebsd-x64": "0.132.0", + "@oxc-minify/binding-linux-arm-gnueabihf": "0.132.0", + "@oxc-minify/binding-linux-arm-musleabihf": "0.132.0", + "@oxc-minify/binding-linux-arm64-gnu": "0.132.0", + "@oxc-minify/binding-linux-arm64-musl": "0.132.0", + "@oxc-minify/binding-linux-ppc64-gnu": "0.132.0", + "@oxc-minify/binding-linux-riscv64-gnu": "0.132.0", + "@oxc-minify/binding-linux-riscv64-musl": "0.132.0", + "@oxc-minify/binding-linux-s390x-gnu": "0.132.0", + "@oxc-minify/binding-linux-x64-gnu": "0.132.0", + "@oxc-minify/binding-linux-x64-musl": "0.132.0", + "@oxc-minify/binding-openharmony-arm64": "0.132.0", + "@oxc-minify/binding-wasm32-wasi": "0.132.0", + "@oxc-minify/binding-win32-arm64-msvc": "0.132.0", + "@oxc-minify/binding-win32-ia32-msvc": "0.132.0", + "@oxc-minify/binding-win32-x64-msvc": "0.132.0" + } + }, + "node_modules/oxc-parser": { + "version": "0.132.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "^0.132.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-parser/binding-android-arm-eabi": "0.132.0", + "@oxc-parser/binding-android-arm64": "0.132.0", + "@oxc-parser/binding-darwin-arm64": "0.132.0", + "@oxc-parser/binding-darwin-x64": "0.132.0", + "@oxc-parser/binding-freebsd-x64": "0.132.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.132.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.132.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.132.0", + "@oxc-parser/binding-linux-arm64-musl": "0.132.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.132.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.132.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.132.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.132.0", + "@oxc-parser/binding-linux-x64-gnu": "0.132.0", + "@oxc-parser/binding-linux-x64-musl": "0.132.0", + "@oxc-parser/binding-openharmony-arm64": "0.132.0", + "@oxc-parser/binding-wasm32-wasi": "0.132.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.132.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.132.0", + "@oxc-parser/binding-win32-x64-msvc": "0.132.0" + } + }, + "node_modules/oxc-transform": { + "version": "0.132.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxc-transform/binding-android-arm-eabi": "0.132.0", + "@oxc-transform/binding-android-arm64": "0.132.0", + "@oxc-transform/binding-darwin-arm64": "0.132.0", + "@oxc-transform/binding-darwin-x64": "0.132.0", + "@oxc-transform/binding-freebsd-x64": "0.132.0", + "@oxc-transform/binding-linux-arm-gnueabihf": "0.132.0", + "@oxc-transform/binding-linux-arm-musleabihf": "0.132.0", + "@oxc-transform/binding-linux-arm64-gnu": "0.132.0", + "@oxc-transform/binding-linux-arm64-musl": "0.132.0", + "@oxc-transform/binding-linux-ppc64-gnu": "0.132.0", + "@oxc-transform/binding-linux-riscv64-gnu": "0.132.0", + "@oxc-transform/binding-linux-riscv64-musl": "0.132.0", + "@oxc-transform/binding-linux-s390x-gnu": "0.132.0", + "@oxc-transform/binding-linux-x64-gnu": "0.132.0", + "@oxc-transform/binding-linux-x64-musl": "0.132.0", + "@oxc-transform/binding-openharmony-arm64": "0.132.0", + "@oxc-transform/binding-wasm32-wasi": "0.132.0", + "@oxc-transform/binding-win32-arm64-msvc": "0.132.0", + "@oxc-transform/binding-win32-ia32-msvc": "0.132.0", + "@oxc-transform/binding-win32-x64-msvc": "0.132.0" + } + }, + "node_modules/oxc-walker": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-regexp": "^0.11.0" + }, + "peerDependencies": { + "oxc-parser": ">=0.98.0", + "rolldown": ">=1.0.0" + }, + "peerDependenciesMeta": { + "oxc-parser": { + "optional": true + }, + "rolldown": { + "optional": true + } + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.2", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.5.1", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinia": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz", + "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.7" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.5.0", + "vue": "^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/@vue/devtools-api": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.9.tgz", + "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.9" + } + }, + "node_modules/pinia/node_modules/@vue/devtools-kit": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz", + "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.9", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/pinia/node_modules/@vue/devtools-shared": { + "version": "7.7.9", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz", + "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/pinia/node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz", + "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/pinia/node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, + "node_modules/portfinder": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.38.tgz", + "integrity": "sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==", + "license": "MIT", + "dependencies": { + "async": "^3.2.6", + "debug": "^4.3.6" + }, + "engines": { + "node": ">= 10.12" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "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", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "10.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/postcss-colormin": { + "version": "7.0.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@colordx/core": "^5.4.3", + "browserslist": "^4.28.2", + "caniuse-api": "^3.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-convert-values": { + "version": "7.0.12", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-discard-comments": { + "version": "7.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-discard-empty": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-merge-longhand": { + "version": "7.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.11" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-merge-rules": { + "version": "7.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.3", + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "7.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@colordx/core": "^5.4.3", + "cssnano-utils": "^5.0.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-minify-params": { + "version": "7.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "cssnano-utils": "^5.0.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "7.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-api": "^3.0.0", + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-string": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "7.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-url": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-ordered-values": { + "version": "7.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "7.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.4", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "7.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^4.0.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "7.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-bytes": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process": { + "version": "0.11.10", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/proper-lockfile/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/radix3": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/rc9": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "defu": "^6.1.6", + "destr": "^2.0.5" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/replace-in-file": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-6.3.5.tgz", + "integrity": "sha512-arB9d3ENdKva2fxRnSjwBEXfK1npgyci7ZZuwysgAp7ORjHSyxz6oqIjTEv8R0Ydl4Ll7uOAZXL4vbkhGIizCg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "glob": "^7.2.0", + "yargs": "^17.2.1" + }, + "bin": { + "replace-in-file": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/replace-in-file/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/replace-in-file/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/replace-in-file/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/replace-in-file/node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/replace-in-file/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/replace-in-file/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/replace-in-file/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/replace-in-file/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/replace-in-file/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/replace-in-file/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/replace-in-file/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/replace-in-file/node_modules/yargs": { + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/replace-in-file/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.12", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "license": "MIT", + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/resolve-path/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/resolve-path/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/resolve-path/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@oxc-project/types": "=0.133.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" + } + }, + "node_modules/rolldown/node_modules/@oxc-project/types": { + "version": "0.133.0", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/rollup": { + "version": "4.62.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.62.2", + "@rollup/rollup-android-arm64": "4.62.2", + "@rollup/rollup-darwin-arm64": "4.62.2", + "@rollup/rollup-darwin-x64": "4.62.2", + "@rollup/rollup-freebsd-arm64": "4.62.2", + "@rollup/rollup-freebsd-x64": "4.62.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", + "@rollup/rollup-linux-arm-musleabihf": "4.62.2", + "@rollup/rollup-linux-arm64-gnu": "4.62.2", + "@rollup/rollup-linux-arm64-musl": "4.62.2", + "@rollup/rollup-linux-loong64-gnu": "4.62.2", + "@rollup/rollup-linux-loong64-musl": "4.62.2", + "@rollup/rollup-linux-ppc64-gnu": "4.62.2", + "@rollup/rollup-linux-ppc64-musl": "4.62.2", + "@rollup/rollup-linux-riscv64-gnu": "4.62.2", + "@rollup/rollup-linux-riscv64-musl": "4.62.2", + "@rollup/rollup-linux-s390x-gnu": "4.62.2", + "@rollup/rollup-linux-x64-gnu": "4.62.2", + "@rollup/rollup-linux-x64-musl": "4.62.2", + "@rollup/rollup-openbsd-x64": "4.62.2", + "@rollup/rollup-openharmony-arm64": "4.62.2", + "@rollup/rollup-win32-arm64-msvc": "4.62.2", + "@rollup/rollup-win32-ia32-msvc": "4.62.2", + "@rollup/rollup-win32-x64-gnu": "4.62.2", + "@rollup/rollup-win32-x64-msvc": "4.62.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^11.0.0", + "picomatch": "^4.0.2", + "source-map": "^0.7.4", + "yargs": "^18.0.0" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "rolldown": "1.x || ^1.0.0-beta || ^1.0.0-rc", + "rollup": "2.x || 3.x || 4.x" + }, + "peerDependenciesMeta": { + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/rou3": { + "version": "0.8.1", + "dev": true, + "license": "MIT" + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sax": { + "version": "1.6.0", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.8.5", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serialize-javascript": { + "version": "7.0.6", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/seroval": { + "version": "1.5.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/serve-placeholder": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "defu": "^6.1.4" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-git": { + "version": "3.36.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "@simple-git/args-pathspec": "^1.0.3", + "@simple-git/argv-parser": "^1.1.0", + "debug": "^4.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/steveukx/git-js?sponsor=1" + } + }, + "node_modules/sirv": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smob": { + "version": "1.6.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/srvx": { + "version": "0.11.17", + "dev": true, + "license": "MIT", + "bin": { + "srvx": "bin/srvx.mjs" + }, + "engines": { + "node": ">=20.16.0" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "4.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/streamx": { + "version": "2.28.0", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/structured-clone-es": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/stylehacks": { + "version": "7.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.2", + "postcss-selector-parser": "^7.1.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.5.13" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/superjson": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "10.2.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.5.0" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-config-viewer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/tailwind-config-viewer/-/tailwind-config-viewer-2.0.4.tgz", + "integrity": "sha512-icvcmdMmt9dphvas8wL40qttrHwAnW3QEN4ExJ2zICjwRsPj7gowd1cOceaWG3IfTuM/cTNGQcx+bsjMtmV+cw==", + "license": "MIT", + "dependencies": { + "@koa/router": "^12.0.1", + "commander": "^6.0.0", + "fs-extra": "^9.0.1", + "koa": "^2.14.2", + "koa-static": "^5.0.0", + "open": "^7.0.4", + "portfinder": "^1.0.26", + "replace-in-file": "^6.1.0" + }, + "bin": { + "tailwind-config-viewer": "cli/index.js", + "tailwindcss-config-viewer": "cli/index.js" + }, + "engines": { + "node": ">=13" + }, + "peerDependencies": { + "tailwindcss": "1 || 2 || 2.0.1-compat || 3" + } + }, + "node_modules/tailwind-config-viewer/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwind-config-viewer/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwind-config-viewer/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwind-config-viewer/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/tailwindcss/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tapable": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.16", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar-stream": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "bare-fs": "^4.5.5", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/teex": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/terser": { + "version": "5.48.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/text-decoder": { + "version": "1.2.7", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyclip": { + "version": "0.1.14", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >= 17.3.0" + } + }, + "node_modules/tinyexec": { + "version": "1.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/type-fest": { + "version": "5.7.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-level-regexp": { + "version": "0.1.17", + "dev": true, + "license": "MIT" + }, + "node_modules/ufo": { + "version": "1.6.4", + "license": "MIT" + }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/uncrypto": { + "version": "0.1.3", + "license": "MIT" + }, + "node_modules/unctx": { + "version": "2.5.0", + "license": "MIT", + "dependencies": { + "acorn": "^8.15.0", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21", + "unplugin": "^2.3.11" + } + }, + "node_modules/unctx/node_modules/estree-walker": { + "version": "3.0.3", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/unctx/node_modules/unplugin": { + "version": "2.3.11", + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unenv": { + "version": "2.0.0-rc.24", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3" + } + }, + "node_modules/unhead": { + "version": "2.1.15", + "dev": true, + "license": "MIT", + "dependencies": { + "hookable": "^6.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/harlan-zw" + } + }, + "node_modules/unhead/node_modules/hookable": { + "version": "6.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unimport": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "pathe": "^2.0.3", + "picomatch": "^4.0.4", + "pkg-types": "^2.3.1", + "scule": "^1.3.0", + "strip-literal": "^3.1.0", + "tinyglobby": "^0.2.16", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "oxc-parser": "*", + "rolldown": "^1.0.0" + }, + "peerDependenciesMeta": { + "oxc-parser": { + "optional": true + }, + "rolldown": { + "optional": true + } + } + }, + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unplugin": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unplugin-vue-router": { + "version": "0.19.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.28.5", + "@vue-macros/common": "^3.1.1", + "@vue/language-core": "^3.2.1", + "ast-walker-scope": "^0.8.3", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "muggle-string": "^0.4.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "scule": "^1.3.0", + "tinyglobby": "^0.2.15", + "unplugin": "^2.3.11", + "unplugin-utils": "^0.3.1", + "yaml": "^2.8.2" + }, + "peerDependencies": { + "@vue/compiler-sfc": "^3.5.17", + "vue-router": "^4.6.0" + }, + "peerDependenciesMeta": { + "vue-router": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-router/node_modules/unplugin": { + "version": "2.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unstorage": { + "version": "1.17.5", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^5.0.0", + "destr": "^2.0.5", + "h3": "^1.15.10", + "lru-cache": "^11.2.7", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.3" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6 || ^7 || ^8", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1 || ^2 || ^3", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/unstorage/node_modules/lru-cache": { + "version": "11.5.1", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/untun": { + "version": "0.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "citty": "^0.1.5", + "consola": "^3.2.3", + "pathe": "^1.1.1" + }, + "bin": { + "untun": "bin/untun.mjs" + } + }, + "node_modules/untun/node_modules/citty": { + "version": "0.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/untun/node_modules/pathe": { + "version": "1.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/untyped": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "citty": "^0.1.6", + "defu": "^6.1.4", + "jiti": "^2.4.2", + "knitwork": "^1.2.0", + "scule": "^1.3.0" + }, + "bin": { + "untyped": "dist/cli.mjs" + } + }, + "node_modules/untyped/node_modules/citty": { + "version": "0.1.6", + "license": "MIT", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/unwasm": { + "version": "0.5.3", + "dev": true, + "license": "MIT", + "dependencies": { + "exsolve": "^1.0.8", + "knitwork": "^1.3.0", + "magic-string": "^0.30.21", + "mlly": "^1.8.0", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uqr": { + "version": "0.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "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": "8.0.16", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-dev-rpc": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "birpc": "^4.0.0", + "vite-hot-client": "^2.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 || ^8.0.0" + } + }, + "node_modules/vite-hot-client": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0" + } + }, + "node_modules/vite-node": { + "version": "5.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "es-module-lexer": "^2.0.0", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "vite": "^7.3.1" + }, + "bin": { + "vite-node": "dist/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://opencollective.com/antfu" + } + }, + "node_modules/vite-node/node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/vite-node/node_modules/esbuild": { + "version": "0.27.7", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/vite-node/node_modules/vite": { + "version": "7.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.13.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "chokidar": "^4.0.3", + "npm-run-path": "^6.0.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.4", + "proper-lockfile": "^4.1.2", + "tiny-invariant": "^1.3.3", + "tinyglobby": "^0.2.15", + "vscode-uri": "^3.1.0" + }, + "engines": { + "node": ">=16.11" + }, + "peerDependencies": { + "@biomejs/biome": ">=1.7", + "eslint": ">=9.39.4", + "meow": "^13.2.0 || ^14.0.0", + "optionator": "^0.9.4", + "oxlint": ">=1", + "stylelint": ">=16.26.1", + "typescript": "*", + "vite": ">=5.4.21", + "vls": "*", + "vti": "*", + "vue-tsc": "~2.2.10 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "oxlint": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/chokidar": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vite-plugin-checker/node_modules/npm-run-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-checker/node_modules/readdirp": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/vite-plugin-checker/node_modules/unicorn-magic": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "11.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansis": "^4.3.0", + "error-stack-parser-es": "^1.0.5", + "obug": "^2.1.1", + "ohash": "^2.0.11", + "open": "^11.0.0", + "perfect-debounce": "^2.1.0", + "sirv": "^3.0.2", + "unplugin-utils": "^0.3.1", + "vite-dev-rpc": "^2.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0-0 || ^8.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vue-tracer": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.3", + "exsolve": "^1.0.8", + "magic-string": "^0.30.21", + "pathe": "^2.0.3", + "source-map-js": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.5.0" + } + }, + "node_modules/vite-plugin-vue-tracer/node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.38", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.38", + "@vue/compiler-sfc": "3.5.38", + "@vue/runtime-dom": "3.5.38", + "@vue/server-renderer": "3.5.38", + "@vue/shared": "3.5.38" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-bundle-renderer": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ufo": "^1.6.1" + } + }, + "node_modules/vue-devtools-stub": { + "version": "0.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "4.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "6.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^4.0.0" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.21.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.9.0", + "devOptional": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "18.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^9.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "string-width": "^7.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^22.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/yargs-parser": { + "version": "22.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/youch": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/colors": "^4.1.6", + "@poppinss/dumper": "^0.7.0", + "@speed-highlight/core": "^1.2.14", + "cookie-es": "^3.0.1", + "youch-core": "^0.3.3" + } + }, + "node_modules/youch-core": { + "version": "0.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@poppinss/exception": "^1.2.2", + "error-stack-parser-es": "^1.0.5" + } + }, + "node_modules/youch/node_modules/cookie-es": { + "version": "3.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/frontend/admin/package.json b/frontend_admin/package.json similarity index 68% rename from frontend/admin/package.json rename to frontend_admin/package.json index 995cd43..ca8343b 100644 --- a/frontend/admin/package.json +++ b/frontend_admin/package.json @@ -12,5 +12,11 @@ "nuxt": "^3.11.0", "vue": "^3.4.0", "vue-router": "^4.3.0" + }, + "dependencies": { + "@nuxtjs/tailwindcss": "^6.14.0", + "@pinia/nuxt": "^0.11.3", + "axios": "^1.18.1", + "pinia": "^3.0.4" } } diff --git a/frontend_admin/pages/index.vue b/frontend_admin/pages/index.vue new file mode 100644 index 0000000..f25f865 --- /dev/null +++ b/frontend_admin/pages/index.vue @@ -0,0 +1,128 @@ + + + diff --git a/frontend_admin/pages/login.vue b/frontend_admin/pages/login.vue new file mode 100644 index 0000000..e54fee5 --- /dev/null +++ b/frontend_admin/pages/login.vue @@ -0,0 +1,112 @@ + + + diff --git a/frontend_admin/pages/permissions/index.vue b/frontend_admin/pages/permissions/index.vue new file mode 100644 index 0000000..db8ef96 --- /dev/null +++ b/frontend_admin/pages/permissions/index.vue @@ -0,0 +1,141 @@ + + + diff --git a/frontend/public/logo.png b/frontend_admin/public/sf_logo.png similarity index 100% rename from frontend/public/logo.png rename to frontend_admin/public/sf_logo.png diff --git a/frontend_admin/stores/auth.ts b/frontend_admin/stores/auth.ts new file mode 100644 index 0000000..c8b4620 --- /dev/null +++ b/frontend_admin/stores/auth.ts @@ -0,0 +1,179 @@ +import { defineStore } from 'pinia' +import { ref, computed } from 'vue' + +export interface UserProfile { + id: number + email: string + first_name: string | null + last_name: string | null + is_active: boolean + role: string + region_code: string + subscription_plan: string + subscription_expires_at?: string | null + max_vehicles?: number + max_garages?: number + scope_level: string + scope_id: string | null + ui_mode: string + active_organization_id: number | null + preferred_language: string + person_id: number | null + person: Record | null + system_capabilities?: Record + org_capabilities?: Record> +} + +export const useAuthStore = defineStore('auth', () => { + // ── State ────────────────────────────────────────────────────────── + const user = ref(null) + const token = ref(null) + const isLoading = ref(false) + const error = ref(null) + const isInitialized = ref(false) + + // ── Getters ──────────────────────────────────────────────────────── + const isAuthenticated = computed(() => !!token.value && !!user.value) + + const isAdmin = computed(() => { + const role = user.value?.role + if (!role) return false + const staffRoles = ['SUPERADMIN', 'ADMIN', 'MODERATOR', 'SALES_REP', 'SERVICE_MGR'] + return staffRoles.includes(role.toUpperCase()) + }) + + const userName = computed(() => { + if (!user.value) return '' + const { first_name, last_name } = user.value + if (first_name && last_name) return `${first_name} ${last_name}` + return first_name || last_name || user.value.email + }) + + const userEmail = computed(() => user.value?.email ?? '') + const userRole = computed(() => user.value?.role ?? 'guest') + + // ── Actions ──────────────────────────────────────────────────────── + + /** + * Login with email + password. + * Calls the FastAPI /auth/login endpoint using OAuth2PasswordRequestForm. + * Stores the JWT token in a cookie (via useCookie) for SSR compatibility. + */ + async function login(email: string, password: string) { + isLoading.value = true + error.value = null + + try { + const body = new URLSearchParams() + body.append('username', email) + body.append('password', password) + + const res = await $fetch<{ + access_token: string + refresh_token?: string + token_type: string + is_active: boolean + }>('/api/v1/auth/login', { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body, + }) + + // Persist token in a cookie (SSR-safe) and in memory + const tokenCookie = useCookie('access_token', { + maxAge: 60 * 60 * 24 * 7, // 7 days + path: '/', + sameSite: 'lax', + secure: true, + }) + tokenCookie.value = res.access_token + token.value = res.access_token + + // Fetch user profile + await fetchUser() + } catch (err: any) { + error.value = err?.data?.detail || err?.message || 'Login failed' + throw err + } finally { + isLoading.value = false + } + } + + /** + * Fetch the current user profile from /auth/me. + */ + async function fetchUser() { + const tokenCookie = useCookie('access_token') + const currentToken = tokenCookie.value || token.value + if (!currentToken) return + + try { + const res = await $fetch('/api/v1/auth/me', { + headers: { Authorization: `Bearer ${currentToken}` }, + }) + user.value = res + } catch (err: any) { + if (err?.response?.status === 401) { + logout() + } + throw err + } + } + + /** + * Logout — clear token, user state, and cookie. + */ + function logout() { + token.value = null + user.value = null + error.value = null + const tokenCookie = useCookie('access_token') + tokenCookie.value = null + } + + /** + * Initialize the store on app load — if a token cookie exists, fetch the user. + */ + async function init() { + const tokenCookie = useCookie('access_token') + if (tokenCookie.value) { + token.value = tokenCookie.value + try { + await fetchUser() + } catch { + logout() + } + } + isInitialized.value = true + } + + /** + * Clear any stored error message. + */ + function clearError() { + error.value = null + } + + return { + // State + user, + token, + isLoading, + error, + isInitialized, + + // Getters + isAuthenticated, + isAdmin, + userName, + userEmail, + userRole, + + // Actions + login, + fetchUser, + logout, + init, + clearError, + } +}) diff --git a/frontend/.gitignore b/frontend_app/.gitignore similarity index 100% rename from frontend/.gitignore rename to frontend_app/.gitignore diff --git a/frontend/Dockerfile b/frontend_app/Dockerfile similarity index 100% rename from frontend/Dockerfile rename to frontend_app/Dockerfile diff --git a/frontend/Dockerfile.dev b/frontend_app/Dockerfile.dev similarity index 100% rename from frontend/Dockerfile.dev rename to frontend_app/Dockerfile.dev diff --git a/frontend/README.md b/frontend_app/README.md similarity index 100% rename from frontend/README.md rename to frontend_app/README.md diff --git a/frontend/docker-compose.yml b/frontend_app/docker-compose.yml similarity index 100% rename from frontend/docker-compose.yml rename to frontend_app/docker-compose.yml diff --git a/frontend/index.html b/frontend_app/index.html similarity index 100% rename from frontend/index.html rename to frontend_app/index.html diff --git a/frontend/nginx.conf b/frontend_app/nginx.conf similarity index 100% rename from frontend/nginx.conf rename to frontend_app/nginx.conf diff --git a/frontend/package-lock.json b/frontend_app/package-lock.json similarity index 100% rename from frontend/package-lock.json rename to frontend_app/package-lock.json diff --git a/frontend/package.json b/frontend_app/package.json similarity index 100% rename from frontend/package.json rename to frontend_app/package.json diff --git a/frontend/playwright.remote.config.ts b/frontend_app/playwright.remote.config.ts similarity index 100% rename from frontend/playwright.remote.config.ts rename to frontend_app/playwright.remote.config.ts diff --git a/frontend/postcss.config.js b/frontend_app/postcss.config.js similarity index 100% rename from frontend/postcss.config.js rename to frontend_app/postcss.config.js diff --git a/frontend_app/public/SF_logo.png b/frontend_app/public/SF_logo.png new file mode 100644 index 0000000..4c44e2e Binary files /dev/null and b/frontend_app/public/SF_logo.png differ diff --git a/frontend/public/garage1.png b/frontend_app/public/garage1.png similarity index 100% rename from frontend/public/garage1.png rename to frontend_app/public/garage1.png diff --git a/frontend/public/garage2.png b/frontend_app/public/garage2.png similarity index 100% rename from frontend/public/garage2.png rename to frontend_app/public/garage2.png diff --git a/frontend/public/garage_clean.png b/frontend_app/public/garage_clean.png similarity index 100% rename from frontend/public/garage_clean.png rename to frontend_app/public/garage_clean.png diff --git a/frontend/public/images/sf_landing_back.png b/frontend_app/public/images/sf_landing_back.png similarity index 100% rename from frontend/public/images/sf_landing_back.png rename to frontend_app/public/images/sf_landing_back.png diff --git a/frontend_app/public/logo.png b/frontend_app/public/logo.png new file mode 100644 index 0000000..4c44e2e Binary files /dev/null and b/frontend_app/public/logo.png differ diff --git a/frontend/public/sf_alarm_light_00.png b/frontend_app/public/sf_alarm_light_00.png similarity index 100% rename from frontend/public/sf_alarm_light_00.png rename to frontend_app/public/sf_alarm_light_00.png diff --git a/frontend/public/sf_alarm_light_01.png b/frontend_app/public/sf_alarm_light_01.png similarity index 100% rename from frontend/public/sf_alarm_light_01.png rename to frontend_app/public/sf_alarm_light_01.png diff --git a/frontend/public/sf_card.png b/frontend_app/public/sf_card.png similarity index 100% rename from frontend/public/sf_card.png rename to frontend_app/public/sf_card.png diff --git a/frontend/public/sf_logo_ok.png b/frontend_app/public/sf_logo_ok.png similarity index 100% rename from frontend/public/sf_logo_ok.png rename to frontend_app/public/sf_logo_ok.png diff --git a/frontend/public/sf_mobile_garage_1.png b/frontend_app/public/sf_mobile_garage_1.png similarity index 100% rename from frontend/public/sf_mobile_garage_1.png rename to frontend_app/public/sf_mobile_garage_1.png diff --git a/frontend/public/sf_naptar.png b/frontend_app/public/sf_naptar.png similarity index 100% rename from frontend/public/sf_naptar.png rename to frontend_app/public/sf_naptar.png diff --git a/frontend/src/App.vue b/frontend_app/src/App.vue similarity index 100% rename from frontend/src/App.vue rename to frontend_app/src/App.vue diff --git a/frontend/src/api/axios.ts b/frontend_app/src/api/axios.ts similarity index 100% rename from frontend/src/api/axios.ts rename to frontend_app/src/api/axios.ts diff --git a/frontend/src/assets/garage-bg.png b/frontend_app/src/assets/garage-bg.png similarity index 100% rename from frontend/src/assets/garage-bg.png rename to frontend_app/src/assets/garage-bg.png diff --git a/frontend/src/assets/logo copy.svg b/frontend_app/src/assets/logo copy.svg similarity index 100% rename from frontend/src/assets/logo copy.svg rename to frontend_app/src/assets/logo copy.svg diff --git a/frontend/src/assets/logo.svg b/frontend_app/src/assets/logo.svg similarity index 100% rename from frontend/src/assets/logo.svg rename to frontend_app/src/assets/logo.svg diff --git a/frontend/src/assets/main.css b/frontend_app/src/assets/main.css similarity index 100% rename from frontend/src/assets/main.css rename to frontend_app/src/assets/main.css diff --git a/frontend/src/assets/sf-brand-logo.svg b/frontend_app/src/assets/sf-brand-logo.svg similarity index 100% rename from frontend/src/assets/sf-brand-logo.svg rename to frontend_app/src/assets/sf-brand-logo.svg diff --git a/frontend/src/assets/sf_landing_back.png b/frontend_app/src/assets/sf_landing_back.png similarity index 100% rename from frontend/src/assets/sf_landing_back.png rename to frontend_app/src/assets/sf_landing_back.png diff --git a/frontend/src/components/LanguageSwitcher.vue b/frontend_app/src/components/LanguageSwitcher.vue similarity index 100% rename from frontend/src/components/LanguageSwitcher.vue rename to frontend_app/src/components/LanguageSwitcher.vue diff --git a/frontend/src/components/LoginModal.vue b/frontend_app/src/components/LoginModal.vue similarity index 100% rename from frontend/src/components/LoginModal.vue rename to frontend_app/src/components/LoginModal.vue diff --git a/frontend/src/components/Logo.vue b/frontend_app/src/components/Logo.vue similarity index 100% rename from frontend/src/components/Logo.vue rename to frontend_app/src/components/Logo.vue diff --git a/frontend/src/components/ModeSwitcher.vue b/frontend_app/src/components/ModeSwitcher.vue similarity index 100% rename from frontend/src/components/ModeSwitcher.vue rename to frontend_app/src/components/ModeSwitcher.vue diff --git a/frontend/src/components/admin/PackageEditModal.vue b/frontend_app/src/components/admin/PackageEditModal.vue similarity index 100% rename from frontend/src/components/admin/PackageEditModal.vue rename to frontend_app/src/components/admin/PackageEditModal.vue diff --git a/frontend/src/components/cost/CostEntryWizard.vue b/frontend_app/src/components/cost/CostEntryWizard.vue similarity index 75% rename from frontend/src/components/cost/CostEntryWizard.vue rename to frontend_app/src/components/cost/CostEntryWizard.vue index 20029aa..6ff734e 100644 --- a/frontend/src/components/cost/CostEntryWizard.vue +++ b/frontend_app/src/components/cost/CostEntryWizard.vue @@ -118,6 +118,34 @@ class="w-full rounded-xl border border-slate-300 bg-white px-4 py-2.5 text-sm text-slate-800 focus:border-sf-accent focus:ring-2 focus:ring-sf-accent/20 outline-none transition-all" /> + + +
+ + +

Add meg a jármű óraállását tankoláskor

+
+ + +
+ + +

Tankolt üzemanyag mennyisége literben

+
+
+ + +
+
@@ -257,8 +298,8 @@ />
- -
+ +
([]) const selectedVendor = ref(null) const showVendorDropdown = ref(false) +/** Normalize a provider search result or organization object to VendorOption */ +function toVendorOption(item: any): VendorOption { + return { + organization_id: item.organization_id ?? item.id, + name: item.name || '', + display_name: item.display_name || item.name || null, + tax_number: item.tax_number || null, + } +} + // ── File State ── const attachedFiles = ref([]) const fileInputRef = ref(null) @@ -513,10 +569,25 @@ function prevStep() { } // ── Category Methods ── +/** + * Rekurzívan kilapítja a backend által küldött nested category tree-t. + * A backend hierarchikus struktúrában küldi (children tömb), de a frontend + * flat listát vár a legördülőkhöz és a szűréshez. + */ +const flattenCategories = (cats: any[]): any[] => { + return cats.reduce((acc: any[], cat: any) => { + const { children, ...rest } = cat + return acc.concat(rest, flattenCategories(children || [])) + }, []) +} + async function fetchCategories() { try { - const res = await api.get('/dictionaries/cost-categories') - const allCategories = res.data as CategoryOption[] + // Pass visibility=b2c so only user-facing categories are returned + const res = await api.get('/dictionaries/cost-categories', { + params: { visibility: 'b2c' }, + }) + const allCategories = flattenCategories(res.data) as CategoryOption[] mainCategories.value = allCategories.filter((c) => c.parent_id === null) window.__allCostCategories = allCategories } catch (err) { @@ -544,37 +615,59 @@ function onMainCategoryChange() { subCategories.value = allCats.filter( (c) => c.parent_id === Number(form.mainCategory) ) + + // P0 FIX: Filter vendors by org_type when INSURANCE category is selected + // Insurance companies are stored as organizations with org_type='service_provider' + // in the fleet.organizations table. The /providers/search endpoint now supports + // org_type parameter to filter by organization type. + const catId = Number(form.mainCategory) + if (catId === 4) { + // INSURANCE category — show only insurance-related providers + fetchVendors('service_provider') + } else { + // Other categories — show all service providers + fetchVendors() + } } // ── Financial Calculation Methods ── function onNetAmountChange() { + // If user edits net, recalculate gross (forward VAT) if (form.netAmount > 0 && form.vatRate > 0) { form.grossAmount = Math.round(form.netAmount * (1 + form.vatRate / 100) * 100) / 100 } } function onVatRateChange() { - if (form.netAmount > 0) { + // Recalculate based on gross if available, otherwise net + if (form.grossAmount > 0) { + form.netAmount = Math.round(form.grossAmount / (1 + form.vatRate / 100) * 100) / 100 + } else if (form.netAmount > 0) { form.grossAmount = Math.round(form.netAmount * (1 + form.vatRate / 100) * 100) / 100 } } function onGrossAmountChange() { - // If user edits gross, recalculate net (reverse VAT) + // If user edits gross, recalculate net (reverse VAT) — GROSS-FIRST if (form.grossAmount > 0 && form.vatRate > 0) { form.netAmount = Math.round(form.grossAmount / (1 + form.vatRate / 100) * 100) / 100 } } // ── Vendor Methods ── -async function fetchVendors() { +async function fetchVendors(orgType?: string) { try { - const res = await api.get('/organizations', { - params: { org_type: 'SERVICE_PROVIDER' }, - }) + // Use /providers/search to list service providers (the /organizations endpoint + // does not support org_type=SERVICE_PROVIDER filtering — returns 404) + const params: Record = { limit: 100 } + if (orgType) { + params.org_type = orgType + } + const res = await api.get('/providers/search', { params }) const data = res.data - // Handle both paginated and direct array responses - vendors.value = data.data || data.items || data.results || data || [] + // ProviderSearchResponse returns { results: [...], total, page, per_page } + const rawList = data.results || data.data || data.items || data || [] + vendors.value = rawList.map(toVendorOption) } catch (err) { console.error('[CostEntryWizard] Failed to load vendors:', err) vendors.value = [] @@ -664,6 +757,12 @@ async function handleSubmit() { errorMessage.value = null try { + // P0 FIX: Auto-set payment_deadline for CASH/CARD + // If payment method is CASH or CARD, the deadline equals invoice_date or date + if (form.paymentMethod === 'CASH' || form.paymentMethod === 'CARD') { + form.paymentDeadline = form.invoiceDate || form.date || '' + } + // Determine category_id const allCats: CategoryOption[] = (window as any).__allCostCategories || [] let categoryId = Number(form.subCategory || form.mainCategory) || 10 @@ -676,9 +775,17 @@ async function handleSubmit() { amount_gross: form.grossAmount > 0 ? form.grossAmount : form.netAmount, currency: form.currency, date: new Date(form.date).toISOString(), - mileage_at_cost: null, + mileage_at_cost: form.mileageAtCost || null, description: `Számla: ${form.invoiceNumber || 'N/A'}`, + // P0 FIX: vendor_organization_id and external_vendor_name at root level + // so the backend Pydantic schema writes them to the dedicated DB columns. + vendor_organization_id: selectedVendor.value?.organization_id || null, + external_vendor_name: selectedVendor.value + ? (selectedVendor.value.display_name || selectedVendor.value.name) + : (vendorSearch.value || null), data: { + mileage_at_cost: form.mileageAtCost || null, + liters: form.liters || null, main_category_id: form.mainCategory || null, sub_category_id: form.subCategory || null, net_amount: form.netAmount, @@ -686,6 +793,7 @@ async function handleSubmit() { invoice_number: form.invoiceNumber || null, invoice_date: form.invoiceDate ? new Date(form.invoiceDate).toISOString() : null, payment_deadline: form.paymentDeadline ? new Date(form.paymentDeadline).toISOString() : null, + payment_method: form.paymentMethod, vendor_id: selectedVendor.value?.organization_id || null, vendor_name: selectedVendor.value ? (selectedVendor.value.display_name || selectedVendor.value.name) @@ -695,12 +803,24 @@ async function handleSubmit() { }, } - // Add organization_id if vendor selected - if (selectedVendor.value?.organization_id) { - payload.organization_id = selectedVendor.value.organization_id + // CRITICAL FIX: organization_id MUST be the user's active organization (fleet manager), + // NOT the vendor's organization. The vendor is stored separately via vendor_organization_id. + // If we set organization_id to the vendor's org, the expense becomes invisible + // when the user queries GET /expenses?organization_id=. + const userOrgId = authStore.user?.active_organization_id + if (userOrgId != null) { + payload.organization_id = userOrgId } - const result = await costStore.addExpense(payload) + // P0 FIX: Distinguish between CREATE and UPDATE based on editCost prop. + // If editCost exists, call updateExpense(id, payload) via PUT. + // Otherwise, call addExpense(payload) via POST. + let result + if (props.editCost?.id) { + result = await costStore.updateExpense(props.editCost.id, payload) + } else { + result = await costStore.addExpense(payload) + } if (result) { resetForm() @@ -725,12 +845,15 @@ function resetForm() { form.mainCategory = '' form.subCategory = '' form.netAmount = 0 - form.vatRate = 20 + form.vatRate = 27 form.grossAmount = 0 form.currency = 'HUF' form.invoiceNumber = '' form.invoiceDate = '' form.paymentDeadline = '' + form.paymentMethod = 'TRANSFER' + form.mileageAtCost = null + form.liters = null vendorSearch.value = '' selectedVendor.value = null attachedFiles.value = [] @@ -739,58 +862,99 @@ function resetForm() { } // ── Edit Cost Hydration ── +/** + * Biztonságos dátum formázó: bármilyen ISO stringből (pl. "2026-06-15T00:00:00") + * vagy raw JSONB értékből kivágja az első 10 karaktert (YYYY-MM-DD). + * Ha a bemenet undefined/null/üres, üres stringet ad vissza. + */ +const safeFormatDate = (dateStr: string | undefined | null): string => { + if (!dateStr) return '' + return dateStr.split('T')[0].substring(0, 10) +} + watch(() => props.editCost, (cost) => { if (!cost) return - // Populate top-level fields - if (cost.date) { - form.date = getLocalDateString(cost.date) - } - if (cost.category_id) { - form.mainCategory = String(cost.category_id) - } - if (cost.amount_gross) { - form.grossAmount = Number(cost.amount_gross) - } - if (cost.currency) { - form.currency = cost.currency - } + const editData = cost + const data = editData.data || {} - // Populate JSONB data fields - const data = cost.data || {} + // ── Date: slice T for HTML5 date input ── + // Ensure we always get a valid YYYY-MM-DD string or empty string + form.date = safeFormatDate(editData.date) + + // ── Invoice Number: check BOTH top-level and JSONB ── + form.invoiceNumber = editData.invoice_number || data.invoice_number || '' + + // ── Category ── + if (editData.category_id) { + form.mainCategory = String(editData.category_id) + } if (data.main_category_id) { form.mainCategory = String(data.main_category_id) } if (data.sub_category_id) { form.subCategory = String(data.sub_category_id) } + + // ── Financial ── + if (editData.amount_gross) { + form.grossAmount = Number(editData.amount_gross) + } if (data.net_amount) { form.netAmount = Number(data.net_amount) } if (data.vat_rate) { form.vatRate = Number(data.vat_rate) } - if (data.invoice_number) { - form.invoiceNumber = data.invoice_number + if (editData.currency) { + form.currency = editData.currency } - if (data.invoice_date) { - form.invoiceDate = getLocalDateString(data.invoice_date) + + // ── Dates (P0 FIX: robust hydration for YYYY-MM-DD) ── + // invoiceDate: extract from JSONB data.invoice_date or top-level + form.invoiceDate = safeFormatDate(data.invoice_date || editData.invoice_date) + + // paymentDeadline: extract from JSONB data.payment_deadline or top-level + form.paymentDeadline = safeFormatDate(data.payment_deadline || editData.payment_deadline) + + // ── Payment Method ── + if (data.payment_method) { + form.paymentMethod = data.payment_method } - if (data.payment_deadline) { - form.paymentDeadline = getLocalDateString(data.payment_deadline) - } - if (data.vendor_id) { + + // ── Vendor Hydration: check BOTH top-level and JSONB ── + const vendorOrgId = editData.vendor_organization_id || data.vendor_id || null + const vendorName = editData.external_vendor_name || data.vendor_name || '' + + if (vendorOrgId) { // Try to find the vendor in the loaded list const vendor = vendors.value.find( - (v) => v.organization_id === data.vendor_id + (v) => v.organization_id === vendorOrgId ) if (vendor) { selectedVendor.value = vendor vendorSearch.value = vendor.display_name || vendor.name + } else { + // Reconstruct from raw data so the UI shows the saved provider + selectedVendor.value = { + id: vendorOrgId, + organization_id: vendorOrgId, + name: vendorName, + display_name: vendorName || null, + tax_number: null, + } as any + vendorSearch.value = vendorName } + } else if (vendorName) { + vendorSearch.value = vendorName } - if (data.vendor_name && !selectedVendor.value) { - vendorSearch.value = data.vendor_name + + // ── Mileage & Liters ── + if (editData.mileage_at_cost || data.mileage_at_cost) { + form.mileageAtCost = Number(editData.mileage_at_cost || data.mileage_at_cost) + } + if (data.liters) { + form.liters = Number(data.liters) } // Reset step to beginning for editing @@ -798,6 +962,14 @@ watch(() => props.editCost, (cost) => { errorMessage.value = null }, { immediate: true }) +// ── Gross-to-Net Auto Calculation ── +// When the user types in the Gross Amount, automatically calculate and set the Net Amount +watch([() => form.grossAmount, () => form.vatRate], ([newGross, newVat]) => { + if (newGross > 0 && newVat > 0) { + form.netAmount = Math.round((newGross / (1 + newVat / 100)) * 100) / 100 + } +}) + // ── Lifecycle ── watch(() => props.isOpen, (open) => { if (open) { @@ -805,6 +977,7 @@ watch(() => props.isOpen, (open) => { form.date = getLocalDateString() errorMessage.value = null fetchCategories() + // Load all vendors by default (no org_type filter) fetchVendors() } }) diff --git a/frontend/src/components/cost/CostManagerModal.vue b/frontend_app/src/components/cost/CostManagerModal.vue similarity index 100% rename from frontend/src/components/cost/CostManagerModal.vue rename to frontend_app/src/components/cost/CostManagerModal.vue diff --git a/frontend/src/components/dashboard/AdPlacementWidget.vue b/frontend_app/src/components/dashboard/AdPlacementWidget.vue similarity index 100% rename from frontend/src/components/dashboard/AdPlacementWidget.vue rename to frontend_app/src/components/dashboard/AdPlacementWidget.vue diff --git a/frontend/src/components/dashboard/ComplexExpenseModal.vue b/frontend_app/src/components/dashboard/ComplexExpenseModal.vue similarity index 100% rename from frontend/src/components/dashboard/ComplexExpenseModal.vue rename to frontend_app/src/components/dashboard/ComplexExpenseModal.vue diff --git a/frontend/src/components/dashboard/CostsActionsCard.vue b/frontend_app/src/components/dashboard/CostsActionsCard.vue similarity index 100% rename from frontend/src/components/dashboard/CostsActionsCard.vue rename to frontend_app/src/components/dashboard/CostsActionsCard.vue diff --git a/frontend/src/components/dashboard/FinancialCard.vue b/frontend_app/src/components/dashboard/FinancialCard.vue similarity index 100% rename from frontend/src/components/dashboard/FinancialCard.vue rename to frontend_app/src/components/dashboard/FinancialCard.vue diff --git a/frontend/src/components/dashboard/GamificationCard.vue b/frontend_app/src/components/dashboard/GamificationCard.vue similarity index 100% rename from frontend/src/components/dashboard/GamificationCard.vue rename to frontend_app/src/components/dashboard/GamificationCard.vue diff --git a/frontend/src/components/dashboard/MyVehiclesCard.vue b/frontend_app/src/components/dashboard/MyVehiclesCard.vue similarity index 100% rename from frontend/src/components/dashboard/MyVehiclesCard.vue rename to frontend_app/src/components/dashboard/MyVehiclesCard.vue diff --git a/frontend/src/components/dashboard/PrivateVehicleManager.vue b/frontend_app/src/components/dashboard/PrivateVehicleManager.vue similarity index 100% rename from frontend/src/components/dashboard/PrivateVehicleManager.vue rename to frontend_app/src/components/dashboard/PrivateVehicleManager.vue diff --git a/frontend/src/components/dashboard/ProfileTrustCard.vue b/frontend_app/src/components/dashboard/ProfileTrustCard.vue similarity index 100% rename from frontend/src/components/dashboard/ProfileTrustCard.vue rename to frontend_app/src/components/dashboard/ProfileTrustCard.vue diff --git a/frontend/src/components/dashboard/ServiceFinderCard.vue b/frontend_app/src/components/dashboard/ServiceFinderCard.vue similarity index 100% rename from frontend/src/components/dashboard/ServiceFinderCard.vue rename to frontend_app/src/components/dashboard/ServiceFinderCard.vue diff --git a/frontend/src/components/dashboard/SimpleFuelModal.vue b/frontend_app/src/components/dashboard/SimpleFuelModal.vue similarity index 100% rename from frontend/src/components/dashboard/SimpleFuelModal.vue rename to frontend_app/src/components/dashboard/SimpleFuelModal.vue diff --git a/frontend_app/src/components/dashboard/SubscriptionStatusWidget.vue b/frontend_app/src/components/dashboard/SubscriptionStatusWidget.vue new file mode 100644 index 0000000..c2c82df --- /dev/null +++ b/frontend_app/src/components/dashboard/SubscriptionStatusWidget.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/frontend/src/components/dashboard/VehicleFormModal.vue b/frontend_app/src/components/dashboard/VehicleFormModal.vue similarity index 100% rename from frontend/src/components/dashboard/VehicleFormModal.vue rename to frontend_app/src/components/dashboard/VehicleFormModal.vue diff --git a/frontend/src/components/dashboard/VehicleFormModal_original.vue b/frontend_app/src/components/dashboard/VehicleFormModal_original.vue similarity index 100% rename from frontend/src/components/dashboard/VehicleFormModal_original.vue rename to frontend_app/src/components/dashboard/VehicleFormModal_original.vue diff --git a/frontend/src/components/dashboard/WalletDetailsModal.vue b/frontend_app/src/components/dashboard/WalletDetailsModal.vue similarity index 100% rename from frontend/src/components/dashboard/WalletDetailsModal.vue rename to frontend_app/src/components/dashboard/WalletDetailsModal.vue diff --git a/frontend/src/components/header/HeaderBackButton.vue b/frontend_app/src/components/header/HeaderBackButton.vue similarity index 100% rename from frontend/src/components/header/HeaderBackButton.vue rename to frontend_app/src/components/header/HeaderBackButton.vue diff --git a/frontend/src/components/header/HeaderCompanySwitcher.vue b/frontend_app/src/components/header/HeaderCompanySwitcher.vue similarity index 70% rename from frontend/src/components/header/HeaderCompanySwitcher.vue rename to frontend_app/src/components/header/HeaderCompanySwitcher.vue index ed7fe64..2e480a0 100644 --- a/frontend/src/components/header/HeaderCompanySwitcher.vue +++ b/frontend_app/src/components/header/HeaderCompanySwitcher.vue @@ -36,32 +36,41 @@ v-if="isOpen" class="absolute right-0 top-full mt-2 w-64 z-50 rounded-xl border border-white/10 bg-[#04151F]/95 backdrop-blur-xl shadow-2xl shadow-black/40 overflow-hidden" > - - + + - + + +
+ {{ t('header.noOrganizations') }} +
+
+ + + + +
+ + ← Back to ServiceFinder + +
+
+
+ + + + diff --git a/frontend/src/views/admin/AdminPackagesView.vue b/frontend_app/src/views/admin/AdminPackagesView.vue similarity index 100% rename from frontend/src/views/admin/AdminPackagesView.vue rename to frontend_app/src/views/admin/AdminPackagesView.vue diff --git a/frontend/src/views/admin/AdminServicesView.vue b/frontend_app/src/views/admin/AdminServicesView.vue similarity index 100% rename from frontend/src/views/admin/AdminServicesView.vue rename to frontend_app/src/views/admin/AdminServicesView.vue diff --git a/frontend/src/views/admin/AdminUsersView.vue b/frontend_app/src/views/admin/AdminUsersView.vue similarity index 100% rename from frontend/src/views/admin/AdminUsersView.vue rename to frontend_app/src/views/admin/AdminUsersView.vue diff --git a/frontend/src/views/costs/CostsView.vue b/frontend_app/src/views/costs/CostsView.vue similarity index 98% rename from frontend/src/views/costs/CostsView.vue rename to frontend_app/src/views/costs/CostsView.vue index c5151f1..774295e 100644 --- a/frontend/src/views/costs/CostsView.vue +++ b/frontend_app/src/views/costs/CostsView.vue @@ -550,6 +550,11 @@ function onCostSaved() { watch( () => authStore.user?.active_organization_id, () => { + // 1. Reset vehicle filter (critical: don't keep a vehicle selected from another garage) + selectedVehicleFilter.value = null + // 2. Reload vehicles with the new garage scope + vehicleStore.fetchVehicles() + // 3. Reset pagination and fetch costs for the new garage currentPage.value = 1 fetchCosts() } diff --git a/frontend/src/views/organization/CompanyGarageView.vue b/frontend_app/src/views/organization/CompanyGarageView.vue similarity index 100% rename from frontend/src/views/organization/CompanyGarageView.vue rename to frontend_app/src/views/organization/CompanyGarageView.vue diff --git a/frontend/src/views/organization/CompanyOnboardingView.vue b/frontend_app/src/views/organization/CompanyOnboardingView.vue similarity index 100% rename from frontend/src/views/organization/CompanyOnboardingView.vue rename to frontend_app/src/views/organization/CompanyOnboardingView.vue diff --git a/frontend/src/views/vehicles/FleetView.vue b/frontend_app/src/views/vehicles/FleetView.vue similarity index 100% rename from frontend/src/views/vehicles/FleetView.vue rename to frontend_app/src/views/vehicles/FleetView.vue diff --git a/frontend/src/views/vehicles/VehicleDetailsView.vue b/frontend_app/src/views/vehicles/VehicleDetailsView.vue similarity index 100% rename from frontend/src/views/vehicles/VehicleDetailsView.vue rename to frontend_app/src/views/vehicles/VehicleDetailsView.vue diff --git a/frontend/tailwind.config.js b/frontend_app/tailwind.config.js similarity index 100% rename from frontend/tailwind.config.js rename to frontend_app/tailwind.config.js diff --git a/frontend/tests/e2e/landing-bento-grid.spec.ts b/frontend_app/tests/e2e/landing-bento-grid.spec.ts similarity index 100% rename from frontend/tests/e2e/landing-bento-grid.spec.ts rename to frontend_app/tests/e2e/landing-bento-grid.spec.ts diff --git a/frontend/tests/e2e/landing-neo-glassmorphism.spec.ts b/frontend_app/tests/e2e/landing-neo-glassmorphism.spec.ts similarity index 100% rename from frontend/tests/e2e/landing-neo-glassmorphism.spec.ts rename to frontend_app/tests/e2e/landing-neo-glassmorphism.spec.ts diff --git a/frontend/tests/e2e/landing_visual.spec.js b/frontend_app/tests/e2e/landing_visual.spec.js similarity index 100% rename from frontend/tests/e2e/landing_visual.spec.js rename to frontend_app/tests/e2e/landing_visual.spec.js diff --git a/frontend/tests/e2e/logo-screenshot.spec.ts b/frontend_app/tests/e2e/logo-screenshot.spec.ts similarity index 100% rename from frontend/tests/e2e/logo-screenshot.spec.ts rename to frontend_app/tests/e2e/logo-screenshot.spec.ts diff --git a/frontend/tests/e2e/remote_sanity.spec.js b/frontend_app/tests/e2e/remote_sanity.spec.js similarity index 100% rename from frontend/tests/e2e/remote_sanity.spec.js rename to frontend_app/tests/e2e/remote_sanity.spec.js diff --git a/frontend/tsconfig.json b/frontend_app/tsconfig.json similarity index 100% rename from frontend/tsconfig.json rename to frontend_app/tsconfig.json diff --git a/frontend/vite.config.ts b/frontend_app/vite.config.ts similarity index 100% rename from frontend/vite.config.ts rename to frontend_app/vite.config.ts