From 80a5d67f79a724f9ddc45de455fd03267551fda2 Mon Sep 17 00:00:00 2001 From: Roo Date: Wed, 24 Jun 2026 11:29:45 +0000 Subject: [PATCH] =?UTF-8?q?admin=20fel=C3=BClet=20k=C3=BCl=C3=B6nv=C3=A1la?= =?UTF-8?q?sztva?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .roo/history.md | 224 + backend/app/api/deps.py | 61 +- backend/app/api/v1/endpoints/auth.py | 2 + backend/app/api/v1/endpoints/dictionaries.py | 26 + backend/app/api/v1/endpoints/expenses.py | 128 +- backend/app/api/v1/endpoints/organizations.py | 6 +- backend/app/api/v1/endpoints/providers.py | 2 + backend/app/core/config.py | 1 + backend/app/models/core_logic.py | 10 + backend/app/models/fleet_finance/models.py | 11 + .../app/models/marketplace/organization.py | 19 + backend/app/schemas/asset_cost.py | 24 + backend/app/services/capability_service.py | 109 + backend/app/services/provider_service.py | 28 +- backend/scripts/seed_finance_dictionaries.py | 30 + docker-compose.yml | 10 +- docs/p0_3d_capability_matrix_audit_report.md | 265 + docs/p0_backoffice_sso_router_audit_report.md | 266 + ..._isolation_vehicle_mapping_audit_report.md | 366 + ...witcher_roles_subscription_audit_report.md | 301 + ...endor_expense_architecture_audit_report.md | 190 + frontend/admin/app.vue | 6 - frontend/admin/nuxt.config.ts | 3 - .../dashboard/SubscriptionStatusWidget.vue | 139 - frontend_admin/.nuxt/app.config.mjs | 18 + frontend_admin/.nuxt/components.d.ts | 64 + frontend_admin/.nuxt/dev/index.mjs | 3365 ++++ frontend_admin/.nuxt/dev/index.mjs.map | 1 + .../.nuxt/dist/client/_nuxt/BFfxzM5G.js | 1 + .../.nuxt/dist/client/_nuxt/BW9w-mbE.js | 1 + .../.nuxt/dist/client/_nuxt/BoAo7BJa.js | 1 + .../.nuxt/dist/client/_nuxt/ByPKVH1D.js | 1 + .../.nuxt/dist/client/_nuxt/C3Ck-LNv.js | 4 + .../.nuxt/dist/client/_nuxt/CyOWWS80.js | 1 + .../.nuxt/dist/client/_nuxt/Di-57MrI.js | 1 + .../.nuxt/dist/client/_nuxt/Drr7KP9v.js | 1 + .../.nuxt/dist/client/_nuxt/Oih3kTQ2.js | 1 + .../.nuxt/dist/client/_nuxt/QKJPEFuj.js | 1 + .../.nuxt/dist/client/_nuxt/XMkMKtwS.js | 1 + .../dist/client/_nuxt/entry.KrfumMBl.css | 1 + .../dist/client/_nuxt/error-404.DL_4WIao.css | 1 + .../dist/client/_nuxt/error-500.I1Dtv2V5.css | 1 + .../.nuxt/dist/client/_nuxt/usmOON9X.js | 1 + .../dist/server/_nuxt/app-styles.BKebClGy.mjs | 4 + .../.nuxt/dist/server/_nuxt/auth-CRAMW6e4.js | 119 + .../dist/server/_nuxt/auth-CRAMW6e4.js.map | 1 + .../server/_nuxt/auth-CRAMW6e4.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/auth-D_CY0lMs.js | 30 + .../dist/server/_nuxt/auth-D_CY0lMs.js.map | 1 + .../server/_nuxt/auth-D_CY0lMs.js.map.json | 1 + .../dist/server/_nuxt/cookie-CWIsZYm7.js | 79 + .../dist/server/_nuxt/cookie-CWIsZYm7.js.map | 1 + .../server/_nuxt/cookie-CWIsZYm7.js.map.json | 1 + .../dist/server/_nuxt/default-DbJQlxCD.js | 253 + .../dist/server/_nuxt/default-DbJQlxCD.js.map | 1 + .../server/_nuxt/default-DbJQlxCD.js.map.json | 1 + .../_nuxt/entry-styles-1.mjs-CF-ChPYj.js | 5 + .../_nuxt/entry-styles-1.mjs-CF-ChPYj.js.map | 1 + .../entry-styles-1.mjs-CF-ChPYj.js.map.json | 1 + .../_nuxt/entry-styles-2.mjs-CntxBZab.js | 5 + .../_nuxt/entry-styles-2.mjs-CntxBZab.js.map | 1 + .../entry-styles-2.mjs-CntxBZab.js.map.json | 1 + .../_nuxt/entry-styles-3.mjs-C1rWf53M.js | 5 + .../_nuxt/entry-styles-3.mjs-C1rWf53M.js.map | 1 + .../entry-styles-3.mjs-C1rWf53M.js.map.json | 1 + .../server/_nuxt/entry-styles.BhrIOCGw.mjs | 8 + .../dist/server/_nuxt/error-404-BDmq62MM.js | 93 + .../server/_nuxt/error-404-BDmq62MM.js.map | 1 + .../_nuxt/error-404-BDmq62MM.js.map.json | 1 + .../_nuxt/error-404-styles-1.mjs-COQ9lBg6.js | 5 + .../error-404-styles-1.mjs-COQ9lBg6.js.map | 1 + ...rror-404-styles-1.mjs-COQ9lBg6.js.map.json | 1 + .../_nuxt/error-404-styles.CiJjK6WX.mjs | 4 + .../dist/server/_nuxt/error-500-gzzPk_-U.js | 71 + .../server/_nuxt/error-500-gzzPk_-U.js.map | 1 + .../_nuxt/error-500-gzzPk_-U.js.map.json | 1 + .../_nuxt/error-500-styles-1.mjs-C0glhSuM.js | 5 + .../error-500-styles-1.mjs-C0glhSuM.js.map | 1 + ...rror-500-styles-1.mjs-C0glhSuM.js.map.json | 1 + .../_nuxt/error-500-styles.ulHNpcF1.mjs | 4 + .../.nuxt/dist/server/_nuxt/index-92TOgIUU.js | 33 + .../dist/server/_nuxt/index-92TOgIUU.js.map | 1 + .../server/_nuxt/index-92TOgIUU.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/index-nGH29Vk2.js | 55 + .../dist/server/_nuxt/index-nGH29Vk2.js.map | 1 + .../server/_nuxt/index-nGH29Vk2.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/login-CLIOTi6c.js | 71 + .../dist/server/_nuxt/login-CLIOTi6c.js.map | 1 + .../server/_nuxt/login-CLIOTi6c.js.map.json | 1 + .../dist/server/_nuxt/nuxt-link-DNVrgHUL.js | 307 + .../server/_nuxt/nuxt-link-DNVrgHUL.js.map | 1 + .../_nuxt/nuxt-link-DNVrgHUL.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js | 21 + .../dist/server/_nuxt/v3-DnDMBKvA.js.map | 1 + .../dist/server/_nuxt/v3-DnDMBKvA.js.map.json | 1 + .../.nuxt/dist/server/client.manifest.mjs | 1 + .../.nuxt/dist/server/client.precomputed.mjs | 1 + frontend_admin/.nuxt/dist/server/server.mjs | 1298 ++ .../.nuxt/dist/server/server.mjs.map | 1 + .../.nuxt/dist/server/server.mjs.map.json | 1 + frontend_admin/.nuxt/dist/server/styles.mjs | 7 + frontend_admin/.nuxt/imports.d.ts | 35 + frontend_admin/.nuxt/manifest/latest.json | 1 + .../30eed3bb-14ef-4661-b342-1d1b41361648.json | 1 + frontend_admin/.nuxt/manifest/meta/dev.json | 1 + frontend_admin/.nuxt/nitro.json | 17 + frontend_admin/.nuxt/nuxt.d.ts | 26 + frontend_admin/.nuxt/nuxt.json | 9 + frontend_admin/.nuxt/schema/nuxt.schema.d.ts | 17 + frontend_admin/.nuxt/schema/nuxt.schema.json | 3 + frontend_admin/.nuxt/tailwind/postcss.mjs | 13 + frontend_admin/.nuxt/tsconfig.json | 175 + frontend_admin/.nuxt/tsconfig.server.json | 143 + frontend_admin/.nuxt/types/app-defaults.d.ts | 7 + frontend_admin/.nuxt/types/app.config.d.ts | 31 + frontend_admin/.nuxt/types/build.d.ts | 26 + frontend_admin/.nuxt/types/builder-env.d.ts | 1 + frontend_admin/.nuxt/types/components.d.ts | 69 + frontend_admin/.nuxt/types/imports.d.ts | 403 + frontend_admin/.nuxt/types/layouts.d.ts | 15 + frontend_admin/.nuxt/types/middleware.d.ts | 7 + frontend_admin/.nuxt/types/nitro-config.d.ts | 14 + frontend_admin/.nuxt/types/nitro-imports.d.ts | 149 + frontend_admin/.nuxt/types/nitro-layouts.d.ts | 17 + .../.nuxt/types/nitro-middleware.d.ts | 17 + frontend_admin/.nuxt/types/nitro-nuxt.d.ts | 39 + frontend_admin/.nuxt/types/nitro-routes.d.ts | 14 + frontend_admin/.nuxt/types/nitro.d.ts | 3 + frontend_admin/.nuxt/types/plugins.d.ts | 40 + frontend_admin/.nuxt/types/schema.d.ts | 127 + frontend_admin/.nuxt/types/vue-shim.d.ts | 0 frontend_admin/.output/nitro.json | 15 + .../.output/public/_nuxt/BFfxzM5G.js | 1 + .../.output/public/_nuxt/BW9w-mbE.js | 1 + .../.output/public/_nuxt/BoAo7BJa.js | 1 + .../.output/public/_nuxt/ByPKVH1D.js | 1 + .../.output/public/_nuxt/C3Ck-LNv.js | 4 + .../.output/public/_nuxt/CyOWWS80.js | 1 + .../.output/public/_nuxt/Di-57MrI.js | 1 + .../.output/public/_nuxt/Drr7KP9v.js | 1 + .../.output/public/_nuxt/Oih3kTQ2.js | 1 + .../.output/public/_nuxt/QKJPEFuj.js | 1 + .../.output/public/_nuxt/XMkMKtwS.js | 1 + .../.output/public/_nuxt/builds/latest.json | 1 + .../30eed3bb-14ef-4661-b342-1d1b41361648.json | 1 + .../.output/public/_nuxt/builds/meta/dev.json | 1 + .../.output/public/_nuxt/entry.KrfumMBl.css | 1 + .../public/_nuxt/error-404.DL_4WIao.css | 1 + .../public/_nuxt/error-500.I1Dtv2V5.css | 1 + .../.output/public/_nuxt/usmOON9X.js | 1 + .../.output/public/sf_logo.png | Bin .../.output/server/chunks/_/error-500.mjs | 19 + .../.output/server/chunks/_/error-500.mjs.map | 1 + .../chunks/build/app-styles.BKebClGy.mjs | 8 + .../chunks/build/app-styles.BKebClGy.mjs.map | 1 + .../server/chunks/build/auth-CRAMW6e4.mjs | 127 + .../server/chunks/build/auth-CRAMW6e4.mjs.map | 1 + .../server/chunks/build/auth-D_CY0lMs.mjs | 34 + .../server/chunks/build/auth-D_CY0lMs.mjs.map | 1 + .../chunks/build/client.precomputed.mjs | 4 + .../chunks/build/client.precomputed.mjs.map | 1 + .../server/chunks/build/cookie-CWIsZYm7.mjs | 77 + .../chunks/build/cookie-CWIsZYm7.mjs.map | 1 + .../server/chunks/build/default-DbJQlxCD.mjs | 260 + .../chunks/build/default-DbJQlxCD.mjs.map | 1 + .../build/entry-styles-3.mjs-C1rWf53M.mjs | 4 + .../build/entry-styles-3.mjs-C1rWf53M.mjs.map | 1 + .../chunks/build/entry-styles.BhrIOCGw.mjs | 14 + .../build/entry-styles.BhrIOCGw.mjs.map | 1 + .../chunks/build/error-404-BDmq62MM.mjs | 99 + .../chunks/build/error-404-BDmq62MM.mjs.map | 1 + .../build/error-404-styles.CiJjK6WX.mjs | 8 + .../build/error-404-styles.CiJjK6WX.mjs.map | 1 + .../chunks/build/error-500-gzzPk_-U.mjs | 77 + .../chunks/build/error-500-gzzPk_-U.mjs.map | 1 + .../build/error-500-styles.ulHNpcF1.mjs | 8 + .../build/error-500-styles.ulHNpcF1.mjs.map | 1 + .../server/chunks/build/index-92TOgIUU.mjs | 32 + .../chunks/build/index-92TOgIUU.mjs.map | 1 + .../server/chunks/build/index-nGH29Vk2.mjs | 54 + .../chunks/build/index-nGH29Vk2.mjs.map | 1 + .../server/chunks/build/login-CLIOTi6c.mjs | 75 + .../chunks/build/login-CLIOTi6c.mjs.map | 1 + .../chunks/build/nuxt-link-DNVrgHUL.mjs | 310 + .../chunks/build/nuxt-link-DNVrgHUL.mjs.map | 1 + .../.output/server/chunks/build/server.mjs | 1295 ++ .../server/chunks/build/server.mjs.map | 1 + .../.output/server/chunks/build/styles.mjs | 10 + .../server/chunks/build/styles.mjs.map | 1 + .../server/chunks/build/v3-DnDMBKvA.mjs | 22 + .../server/chunks/build/v3-DnDMBKvA.mjs.map | 1 + .../.output/server/chunks/nitro/nitro.mjs | 5612 ++++++ .../.output/server/chunks/nitro/nitro.mjs.map | 1 + .../.output/server/chunks/routes/renderer.mjs | 461 + .../server/chunks/routes/renderer.mjs.map | 1 + .../chunks/virtual/_virtual_spa-template.mjs | 4 + .../virtual/_virtual_spa-template.mjs.map | 1 + frontend_admin/.output/server/index.mjs | 10 + frontend_admin/.output/server/index.mjs.map | 1 + .../devtools-api@6.6.4/lib/cjs/api/api.js | 2 + .../devtools-api@6.6.4/lib/cjs/api/app.js | 2 + .../lib/cjs/api/component.js | 2 + .../devtools-api@6.6.4/lib/cjs/api/context.js | 2 + .../devtools-api@6.6.4/lib/cjs/api/hooks.js | 2 + .../devtools-api@6.6.4/lib/cjs/api/index.js | 22 + .../devtools-api@6.6.4/lib/cjs/api/util.js | 2 + .../@vue/devtools-api@6.6.4/lib/cjs/const.js | 5 + .../@vue/devtools-api@6.6.4/lib/cjs/env.js | 17 + .../@vue/devtools-api@6.6.4/lib/cjs/index.js | 45 + .../@vue/devtools-api@6.6.4/lib/cjs/plugin.js | 2 + .../@vue/devtools-api@6.6.4/lib/cjs/proxy.js | 111 + .../@vue/devtools-api@6.6.4/lib/cjs/time.js | 28 + .../@vue/devtools-api@6.6.4/package.json | 37 + .../@vue/devtools-api@7.7.9/dist/index.cjs | 42 + .../@vue/devtools-api@7.7.9/package.json | 32 + .../.nitro/hookable@5.5.3/dist/index.cjs | 299 + .../.nitro/hookable@5.5.3/package.json | 49 + .../.nitro/hookable@6.1.1/dist/index.mjs | 257 + .../.nitro/hookable@6.1.1/package.json | 53 + .../node_modules/@babel/parser/lib/index.js | 14599 ++++++++++++++++ .../node_modules/@babel/parser/package.json | 50 + .../dist/compiler-core.cjs.prod.js | 6759 +++++++ .../@vue/compiler-core/package.json | 58 + .../dist/compiler-dom.cjs.prod.js | 689 + .../@vue/compiler-dom/package.json | 57 + .../compiler-ssr/dist/compiler-ssr.cjs.js | 1413 ++ .../@vue/compiler-ssr/package.json | 34 + .../server/node_modules/@vue/devtools-api | 1 + .../@vue/devtools-kit/dist/index.cjs | 6850 ++++++++ .../@vue/devtools-kit/node_modules/hookable | 1 + .../@vue/devtools-kit/package.json | 44 + .../@vue/devtools-shared/dist/index.cjs | 378 + .../@vue/devtools-shared/package.json | 34 + .../reactivity/dist/reactivity.cjs.prod.js | 1899 ++ .../node_modules/@vue/reactivity/package.json | 55 + .../dist/runtime-core.cjs.prod.js | 6895 ++++++++ .../@vue/runtime-core/package.json | 52 + .../runtime-dom/dist/runtime-dom.cjs.prod.js | 1823 ++ .../@vue/runtime-dom/package.json | 60 + .../dist/server-renderer.cjs.prod.js | 883 + .../@vue/server-renderer/package.json | 55 + .../@vue/shared/dist/shared.cjs.prod.js | 604 + .../node_modules/@vue/shared/package.json | 47 + .../server/node_modules/birpc/dist/index.cjs | 296 + .../server/node_modules/birpc/package.json | 57 + .../server/node_modules/devalue/index.js | 4 + .../server/node_modules/devalue/package.json | 40 + .../server/node_modules/devalue/src/base64.js | 60 + .../node_modules/devalue/src/constants.js | 12 + .../server/node_modules/devalue/src/parse.js | 283 + .../node_modules/devalue/src/stringify.js | 401 + .../server/node_modules/devalue/src/uneval.js | 552 + .../server/node_modules/devalue/src/utils.js | 160 + .../dist/commonjs/decode-codepoint.js | 77 + .../entities/dist/commonjs/decode.js | 568 + .../commonjs/generated/decode-data-html.js | 7 + .../commonjs/generated/decode-data-xml.js | 7 + .../dist/commonjs/internal/bin-trie-flags.js | 21 + .../dist/commonjs/internal/decode-shared.js | 31 + .../entities/dist/commonjs/package.json | 3 + .../server/node_modules/entities/package.json | 120 + .../estree-walker/dist/umd/estree-walker.js | 344 + .../node_modules/estree-walker/package.json | 37 + .../.output/server/node_modules/hookable | 1 + .../perfect-debounce/dist/index.cjs | 59 + .../perfect-debounce/package.json | 44 + .../node_modules/pinia/dist/pinia.prod.cjs | 719 + .../pinia/node_modules/@vue/devtools-api | 1 + .../server/node_modules/pinia/package.json | 94 + .../source-map-js/lib/array-set.js | 121 + .../source-map-js/lib/base64-vlq.js | 140 + .../node_modules/source-map-js/lib/base64.js | 67 + .../source-map-js/lib/binary-search.js | 111 + .../source-map-js/lib/mapping-list.js | 79 + .../source-map-js/lib/quick-sort.js | 132 + .../source-map-js/lib/source-map-consumer.js | 1188 ++ .../source-map-js/lib/source-map-generator.js | 444 + .../source-map-js/lib/source-node.js | 413 + .../node_modules/source-map-js/lib/util.js | 594 + .../node_modules/source-map-js/package.json | 71 + .../node_modules/source-map-js/source-map.js | 8 + .../server/node_modules/ufo/dist/index.mjs | 645 + .../server/node_modules/ufo/package.json | 48 + .../server/node_modules/unhead/dist/index.mjs | 9 + .../node_modules/unhead/dist/parser.mjs | 508 + .../node_modules/unhead/dist/plugins.mjs | 101 + .../node_modules/unhead/dist/scripts.mjs | 30 + .../node_modules/unhead/dist/server.mjs | 180 + .../unhead/dist/shared/unhead.B3VbJo7Y.mjs | 207 + .../unhead/dist/shared/unhead.BYvz9V1x.mjs | 43 + .../unhead/dist/shared/unhead.BnoAbrHA.mjs | 269 + .../unhead/dist/shared/unhead.CaI5ZD4O.mjs | 182 + .../unhead/dist/shared/unhead.CbpEuj3y.mjs | 71 + .../unhead/dist/shared/unhead.D4vSFytZ.mjs | 236 + .../unhead/dist/shared/unhead.DQc16pHI.mjs | 196 + .../unhead/dist/shared/unhead.Dh1cQCTe.mjs | 44 + .../unhead/dist/shared/unhead.TxTMM7cM.mjs | 166 + .../unhead/dist/shared/unhead.yem5I2v_.mjs | 38 + .../server/node_modules/unhead/dist/utils.mjs | 5 + .../node_modules/unhead/node_modules/hookable | 1 + .../server/node_modules/unhead/package.json | 105 + .../vue-bundle-renderer/dist/runtime.mjs | 301 + .../vue-bundle-renderer/package.json | 55 + .../vue-router/dist/devtools-EWN81iOl.mjs | 1220 ++ .../vue-router/dist/vue-router.mjs | 1557 ++ .../vue-router/node_modules/@vue/devtools-api | 1 + .../node_modules/vue-router/package.json | 153 + .../vue-router/vue-router.node.mjs | 2 + .../server/node_modules/vue/dist/vue.cjs.js | 80 + .../node_modules/vue/dist/vue.cjs.prod.js | 66 + .../.output/server/node_modules/vue/index.js | 7 + .../.output/server/node_modules/vue/index.mjs | 1 + .../server/node_modules/vue/package.json | 112 + .../vue/server-renderer/index.mjs | 1 + frontend_admin/.output/server/package.json | 33 + .../admin => frontend_admin}/Dockerfile.dev | 0 frontend_admin/app.vue | 12 + frontend_admin/assets/css/main.css | 7 + frontend_admin/layouts/default.vue | 356 + frontend_admin/middleware/auth.ts | 16 + frontend_admin/nuxt.config.ts | 24 + frontend_admin/package-lock.json | 9650 ++++++++++ .../admin => frontend_admin}/package.json | 6 + frontend_admin/pages/index.vue | 128 + frontend_admin/pages/login.vue | 112 + frontend_admin/pages/permissions/index.vue | 141 + .../public/sf_logo.png | Bin frontend_admin/stores/auth.ts | 179 + {frontend => frontend_app}/.gitignore | 0 {frontend => frontend_app}/Dockerfile | 0 {frontend => frontend_app}/Dockerfile.dev | 0 {frontend => frontend_app}/README.md | 0 {frontend => frontend_app}/docker-compose.yml | 0 {frontend => frontend_app}/index.html | 0 {frontend => frontend_app}/nginx.conf | 0 {frontend => frontend_app}/package-lock.json | 0 {frontend => frontend_app}/package.json | 0 .../playwright.remote.config.ts | 0 {frontend => frontend_app}/postcss.config.js | 0 frontend_app/public/SF_logo.png | Bin 0 -> 4417192 bytes {frontend => frontend_app}/public/garage1.png | Bin {frontend => frontend_app}/public/garage2.png | Bin .../public/garage_clean.png | Bin .../public/images/sf_landing_back.png | Bin frontend_app/public/logo.png | Bin 0 -> 4417192 bytes .../public/sf_alarm_light_00.png | Bin .../public/sf_alarm_light_01.png | Bin {frontend => frontend_app}/public/sf_card.png | Bin .../public/sf_logo_ok.png | Bin .../public/sf_mobile_garage_1.png | Bin .../public/sf_naptar.png | Bin {frontend => frontend_app}/src/App.vue | 0 {frontend => frontend_app}/src/api/axios.ts | 0 .../src/assets/garage-bg.png | Bin .../src/assets/logo copy.svg | 0 .../src/assets/logo.svg | 0 .../src/assets/main.css | 0 .../src/assets/sf-brand-logo.svg | 0 .../src/assets/sf_landing_back.png | Bin .../src/components/LanguageSwitcher.vue | 0 .../src/components/LoginModal.vue | 0 .../src/components/Logo.vue | 0 .../src/components/ModeSwitcher.vue | 0 .../src/components/admin/PackageEditModal.vue | 0 .../src/components/cost/CostEntryWizard.vue | 263 +- .../src/components/cost/CostManagerModal.vue | 0 .../dashboard/AdPlacementWidget.vue | 0 .../dashboard/ComplexExpenseModal.vue | 0 .../components/dashboard/CostsActionsCard.vue | 0 .../components/dashboard/FinancialCard.vue | 0 .../components/dashboard/GamificationCard.vue | 0 .../components/dashboard/MyVehiclesCard.vue | 0 .../dashboard/PrivateVehicleManager.vue | 0 .../components/dashboard/ProfileTrustCard.vue | 0 .../dashboard/ServiceFinderCard.vue | 0 .../components/dashboard/SimpleFuelModal.vue | 0 .../dashboard/SubscriptionStatusWidget.vue | 213 + .../components/dashboard/VehicleFormModal.vue | 0 .../dashboard/VehicleFormModal_original.vue | 0 .../dashboard/WalletDetailsModal.vue | 0 .../components/header/HeaderBackButton.vue | 0 .../header/HeaderCompanySwitcher.vue | 92 +- .../src/components/header/HeaderLogo.vue | 0 .../src/components/header/HeaderProfile.vue | 0 .../src/components/layout/BaseHeader.vue | 0 .../src/components/logo1.vue | 0 .../organization/CompanyDataModal.vue | 0 .../OrganizationSettingsModal.vue | 0 .../provider/ProviderAutocomplete.vue | 0 .../provider/ProviderDetailModal.vue | 0 .../components/provider/ProviderEditModal.vue | 0 .../provider/ProviderQuickAddModal.vue | 0 .../subscription/PlanDetailsModal.vue | 0 .../subscription/SubscriptionInfoModal.vue | 0 .../src/components/ui/AddressDisplay.vue | 0 .../src/components/ui/BaseCard.vue | 0 .../src/components/ui/GlassCard.vue | 0 .../components/vehicle/VehicleCardCompact.vue | 0 .../vehicle/VehicleCardStandard.vue | 0 .../components/vehicle/VehicleDetailModal.vue | 0 .../components/vehicle/VehiclePlateBadge.vue | 0 .../components/vehicles/tabs/DocumentsTab.vue | 0 .../vehicles/tabs/FinancialsTab.vue | 0 .../components/vehicles/tabs/OverviewTab.vue | 0 .../vehicles/tabs/ServiceBookTab.vue | 0 .../components/vehicles/tabs/TechDataTab.vue | 0 {frontend => frontend_app}/src/env.d.ts | 0 {frontend => frontend_app}/src/i18n/cz.ts | 0 {frontend => frontend_app}/src/i18n/de.ts | 0 {frontend => frontend_app}/src/i18n/en.ts | 0 {frontend => frontend_app}/src/i18n/hu.ts | 0 {frontend => frontend_app}/src/i18n/ro.ts | 0 {frontend => frontend_app}/src/i18n/sk.ts | 0 .../src/layouts/AdminLayout.vue | 32 - .../src/layouts/ConsumerLayout.vue | 0 .../src/layouts/CorporateLayout.vue | 0 .../src/layouts/OrganizationLayout.vue | 18 + .../src/layouts/PrivateLayout.vue | 4 +- {frontend => frontend_app}/src/main.ts | 0 .../src/router/index.ts | 36 +- .../src/services/dateUtils.ts | 0 .../src/services/translationService.ts | 0 .../src/stores/adminPackages.ts | 0 .../src/stores/adminServices.ts | 0 .../src/stores/adminUsers.ts | 0 .../src/stores/appModeStore.ts | 0 {frontend => frontend_app}/src/stores/auth.ts | 6 +- .../src/stores/authStore.ts | 0 .../src/stores/catalog.ts | 0 {frontend => frontend_app}/src/stores/cost.ts | 59 +- .../src/stores/expense.ts | 0 .../src/stores/finance.ts | 0 .../src/stores/theme.ts | 0 .../src/stores/vehicle.ts | 0 .../src/types/organization.ts | 4 +- .../src/types/vehicle.ts | 0 .../src/views/CompleteKycView.vue | 0 .../src/views/DashboardView.vue | 0 .../src/views/LandingView.vue | 0 .../src/views/ProfileView.vue | 0 .../src/views/ResetPasswordView.vue | 0 .../src/views/ServiceFinderView.vue | 0 .../src/views/SubscriptionPlansView.vue | 0 .../src/views/VerifyEmailView.vue | 0 .../src/views/admin/AdminDashboardView.vue | 0 .../src/views/admin/AdminLoginView.vue | 117 + .../src/views/admin/AdminPackagesView.vue | 0 .../src/views/admin/AdminServicesView.vue | 0 .../src/views/admin/AdminUsersView.vue | 0 .../src/views/costs/CostsView.vue | 5 + .../views/organization/CompanyGarageView.vue | 0 .../organization/CompanyOnboardingView.vue | 0 .../src/views/vehicles/FleetView.vue | 0 .../src/views/vehicles/VehicleDetailsView.vue | 0 {frontend => frontend_app}/tailwind.config.js | 0 .../tests/e2e/landing-bento-grid.spec.ts | 0 .../e2e/landing-neo-glassmorphism.spec.ts | 0 .../tests/e2e/landing_visual.spec.js | 0 .../tests/e2e/logo-screenshot.spec.ts | 0 .../tests/e2e/remote_sanity.spec.js | 0 {frontend => frontend_app}/tsconfig.json | 0 {frontend => frontend_app}/vite.config.ts | 0 462 files changed, 87873 insertions(+), 312 deletions(-) create mode 100644 backend/app/services/capability_service.py create mode 100644 docs/p0_3d_capability_matrix_audit_report.md create mode 100644 docs/p0_backoffice_sso_router_audit_report.md create mode 100644 docs/p0_tenant_isolation_vehicle_mapping_audit_report.md create mode 100644 docs/p0_ui_switcher_roles_subscription_audit_report.md create mode 100644 docs/p0_vendor_expense_architecture_audit_report.md delete mode 100644 frontend/admin/app.vue delete mode 100644 frontend/admin/nuxt.config.ts delete mode 100644 frontend/src/components/dashboard/SubscriptionStatusWidget.vue create mode 100644 frontend_admin/.nuxt/app.config.mjs create mode 100644 frontend_admin/.nuxt/components.d.ts create mode 100644 frontend_admin/.nuxt/dev/index.mjs create mode 100644 frontend_admin/.nuxt/dev/index.mjs.map create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BFfxzM5G.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BW9w-mbE.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BoAo7BJa.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/ByPKVH1D.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/C3Ck-LNv.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/CyOWWS80.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Di-57MrI.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Drr7KP9v.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Oih3kTQ2.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/QKJPEFuj.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/XMkMKtwS.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/entry.KrfumMBl.css create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/error-404.DL_4WIao.css create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/error-500.I1Dtv2V5.css create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/usmOON9X.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/app-styles.BKebClGy.mjs create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-CRAMW6e4.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-CRAMW6e4.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-CRAMW6e4.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-D_CY0lMs.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-D_CY0lMs.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-D_CY0lMs.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-DbJQlxCD.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-DbJQlxCD.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-DbJQlxCD.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-3.mjs-C1rWf53M.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-3.mjs-C1rWf53M.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-3.mjs-C1rWf53M.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles.BhrIOCGw.mjs create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-BDmq62MM.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-BDmq62MM.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-BDmq62MM.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-COQ9lBg6.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-COQ9lBg6.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-COQ9lBg6.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-styles.CiJjK6WX.mjs create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-gzzPk_-U.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-gzzPk_-U.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-gzzPk_-U.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-C0glhSuM.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-C0glhSuM.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-C0glhSuM.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-styles.ulHNpcF1.mjs create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-92TOgIUU.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-92TOgIUU.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-92TOgIUU.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/client.manifest.mjs create mode 100644 frontend_admin/.nuxt/dist/server/client.precomputed.mjs create mode 100644 frontend_admin/.nuxt/dist/server/server.mjs create mode 100644 frontend_admin/.nuxt/dist/server/server.mjs.map create mode 100644 frontend_admin/.nuxt/dist/server/server.mjs.map.json create mode 100644 frontend_admin/.nuxt/dist/server/styles.mjs create mode 100644 frontend_admin/.nuxt/imports.d.ts create mode 100644 frontend_admin/.nuxt/manifest/latest.json create mode 100644 frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json create mode 100644 frontend_admin/.nuxt/manifest/meta/dev.json create mode 100644 frontend_admin/.nuxt/nitro.json create mode 100644 frontend_admin/.nuxt/nuxt.d.ts create mode 100644 frontend_admin/.nuxt/nuxt.json create mode 100644 frontend_admin/.nuxt/schema/nuxt.schema.d.ts create mode 100644 frontend_admin/.nuxt/schema/nuxt.schema.json create mode 100644 frontend_admin/.nuxt/tailwind/postcss.mjs create mode 100644 frontend_admin/.nuxt/tsconfig.json create mode 100644 frontend_admin/.nuxt/tsconfig.server.json create mode 100644 frontend_admin/.nuxt/types/app-defaults.d.ts create mode 100644 frontend_admin/.nuxt/types/app.config.d.ts create mode 100644 frontend_admin/.nuxt/types/build.d.ts create mode 100644 frontend_admin/.nuxt/types/builder-env.d.ts create mode 100644 frontend_admin/.nuxt/types/components.d.ts create mode 100644 frontend_admin/.nuxt/types/imports.d.ts create mode 100644 frontend_admin/.nuxt/types/layouts.d.ts create mode 100644 frontend_admin/.nuxt/types/middleware.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro-config.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro-imports.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro-layouts.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro-middleware.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro-nuxt.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro-routes.d.ts create mode 100644 frontend_admin/.nuxt/types/nitro.d.ts create mode 100644 frontend_admin/.nuxt/types/plugins.d.ts create mode 100644 frontend_admin/.nuxt/types/schema.d.ts create mode 100644 frontend_admin/.nuxt/types/vue-shim.d.ts create mode 100644 frontend_admin/.output/nitro.json create mode 100644 frontend_admin/.output/public/_nuxt/BFfxzM5G.js create mode 100644 frontend_admin/.output/public/_nuxt/BW9w-mbE.js create mode 100644 frontend_admin/.output/public/_nuxt/BoAo7BJa.js create mode 100644 frontend_admin/.output/public/_nuxt/ByPKVH1D.js create mode 100644 frontend_admin/.output/public/_nuxt/C3Ck-LNv.js create mode 100644 frontend_admin/.output/public/_nuxt/CyOWWS80.js create mode 100644 frontend_admin/.output/public/_nuxt/Di-57MrI.js create mode 100644 frontend_admin/.output/public/_nuxt/Drr7KP9v.js create mode 100644 frontend_admin/.output/public/_nuxt/Oih3kTQ2.js create mode 100644 frontend_admin/.output/public/_nuxt/QKJPEFuj.js create mode 100644 frontend_admin/.output/public/_nuxt/XMkMKtwS.js create mode 100644 frontend_admin/.output/public/_nuxt/builds/latest.json create mode 100644 frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json create mode 100644 frontend_admin/.output/public/_nuxt/builds/meta/dev.json create mode 100644 frontend_admin/.output/public/_nuxt/entry.KrfumMBl.css create mode 100644 frontend_admin/.output/public/_nuxt/error-404.DL_4WIao.css create mode 100644 frontend_admin/.output/public/_nuxt/error-500.I1Dtv2V5.css create mode 100644 frontend_admin/.output/public/_nuxt/usmOON9X.js rename frontend/public/SF_logo.png => frontend_admin/.output/public/sf_logo.png (100%) create mode 100644 frontend_admin/.output/server/chunks/_/error-500.mjs create mode 100644 frontend_admin/.output/server/chunks/_/error-500.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/app-styles.BKebClGy.mjs create mode 100644 frontend_admin/.output/server/chunks/build/app-styles.BKebClGy.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs create mode 100644 frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs create mode 100644 frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/client.precomputed.mjs create mode 100644 frontend_admin/.output/server/chunks/build/client.precomputed.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs create mode 100644 frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs create mode 100644 frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/entry-styles-3.mjs-C1rWf53M.mjs create mode 100644 frontend_admin/.output/server/chunks/build/entry-styles-3.mjs-C1rWf53M.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs create mode 100644 frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs create mode 100644 frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/error-404-styles.CiJjK6WX.mjs create mode 100644 frontend_admin/.output/server/chunks/build/error-404-styles.CiJjK6WX.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs create mode 100644 frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/error-500-styles.ulHNpcF1.mjs create mode 100644 frontend_admin/.output/server/chunks/build/error-500-styles.ulHNpcF1.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/index-92TOgIUU.mjs create mode 100644 frontend_admin/.output/server/chunks/build/index-92TOgIUU.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs create mode 100644 frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs create mode 100644 frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs create mode 100644 frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/server.mjs create mode 100644 frontend_admin/.output/server/chunks/build/server.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/styles.mjs create mode 100644 frontend_admin/.output/server/chunks/build/styles.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs create mode 100644 frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs.map create mode 100644 frontend_admin/.output/server/chunks/nitro/nitro.mjs create mode 100644 frontend_admin/.output/server/chunks/nitro/nitro.mjs.map create mode 100644 frontend_admin/.output/server/chunks/routes/renderer.mjs create mode 100644 frontend_admin/.output/server/chunks/routes/renderer.mjs.map create mode 100644 frontend_admin/.output/server/chunks/virtual/_virtual_spa-template.mjs create mode 100644 frontend_admin/.output/server/chunks/virtual/_virtual_spa-template.mjs.map create mode 100644 frontend_admin/.output/server/index.mjs create mode 100644 frontend_admin/.output/server/index.mjs.map create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/api.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/app.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/component.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/context.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/hooks.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/index.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/util.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/const.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/env.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/index.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/plugin.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/proxy.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/time.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/package.json create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/dist/index.cjs create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/package.json create mode 100644 frontend_admin/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.cjs create mode 100644 frontend_admin/.output/server/node_modules/.nitro/hookable@5.5.3/package.json create mode 100644 frontend_admin/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/.nitro/hookable@6.1.1/package.json create mode 100644 frontend_admin/.output/server/node_modules/@babel/parser/lib/index.js create mode 100644 frontend_admin/.output/server/node_modules/@babel/parser/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/compiler-core/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/compiler-dom/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/compiler-ssr/package.json create mode 120000 frontend_admin/.output/server/node_modules/@vue/devtools-api create mode 100644 frontend_admin/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs create mode 120000 frontend_admin/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable create mode 100644 frontend_admin/.output/server/node_modules/@vue/devtools-kit/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs create mode 100644 frontend_admin/.output/server/node_modules/@vue/devtools-shared/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/reactivity/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/runtime-core/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/runtime-dom/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/server-renderer/package.json create mode 100644 frontend_admin/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/@vue/shared/package.json create mode 100644 frontend_admin/.output/server/node_modules/birpc/dist/index.cjs create mode 100644 frontend_admin/.output/server/node_modules/birpc/package.json create mode 100644 frontend_admin/.output/server/node_modules/devalue/index.js create mode 100644 frontend_admin/.output/server/node_modules/devalue/package.json create mode 100644 frontend_admin/.output/server/node_modules/devalue/src/base64.js create mode 100644 frontend_admin/.output/server/node_modules/devalue/src/constants.js create mode 100644 frontend_admin/.output/server/node_modules/devalue/src/parse.js create mode 100644 frontend_admin/.output/server/node_modules/devalue/src/stringify.js create mode 100644 frontend_admin/.output/server/node_modules/devalue/src/uneval.js create mode 100644 frontend_admin/.output/server/node_modules/devalue/src/utils.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/decode.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js create mode 100644 frontend_admin/.output/server/node_modules/entities/dist/commonjs/package.json create mode 100644 frontend_admin/.output/server/node_modules/entities/package.json create mode 100644 frontend_admin/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js create mode 100644 frontend_admin/.output/server/node_modules/estree-walker/package.json create mode 120000 frontend_admin/.output/server/node_modules/hookable create mode 100644 frontend_admin/.output/server/node_modules/perfect-debounce/dist/index.cjs create mode 100644 frontend_admin/.output/server/node_modules/perfect-debounce/package.json create mode 100644 frontend_admin/.output/server/node_modules/pinia/dist/pinia.prod.cjs create mode 120000 frontend_admin/.output/server/node_modules/pinia/node_modules/@vue/devtools-api create mode 100644 frontend_admin/.output/server/node_modules/pinia/package.json create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/array-set.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/base64-vlq.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/base64.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/binary-search.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/mapping-list.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/quick-sort.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/source-map-generator.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/source-node.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/lib/util.js create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/package.json create mode 100644 frontend_admin/.output/server/node_modules/source-map-js/source-map.js create mode 100644 frontend_admin/.output/server/node_modules/ufo/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/ufo/package.json create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/parser.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/plugins.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/scripts.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/server.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.B3VbJo7Y.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.CaI5ZD4O.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.D4vSFytZ.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.Dh1cQCTe.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.TxTMM7cM.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs create mode 100644 frontend_admin/.output/server/node_modules/unhead/dist/utils.mjs create mode 120000 frontend_admin/.output/server/node_modules/unhead/node_modules/hookable create mode 100644 frontend_admin/.output/server/node_modules/unhead/package.json create mode 100644 frontend_admin/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs create mode 100644 frontend_admin/.output/server/node_modules/vue-bundle-renderer/package.json create mode 100644 frontend_admin/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs create mode 100644 frontend_admin/.output/server/node_modules/vue-router/dist/vue-router.mjs create mode 120000 frontend_admin/.output/server/node_modules/vue-router/node_modules/@vue/devtools-api create mode 100644 frontend_admin/.output/server/node_modules/vue-router/package.json create mode 100644 frontend_admin/.output/server/node_modules/vue-router/vue-router.node.mjs create mode 100644 frontend_admin/.output/server/node_modules/vue/dist/vue.cjs.js create mode 100644 frontend_admin/.output/server/node_modules/vue/dist/vue.cjs.prod.js create mode 100644 frontend_admin/.output/server/node_modules/vue/index.js create mode 100644 frontend_admin/.output/server/node_modules/vue/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/vue/package.json create mode 100644 frontend_admin/.output/server/node_modules/vue/server-renderer/index.mjs create mode 100644 frontend_admin/.output/server/package.json rename {frontend/admin => frontend_admin}/Dockerfile.dev (100%) create mode 100644 frontend_admin/app.vue create mode 100644 frontend_admin/assets/css/main.css create mode 100644 frontend_admin/layouts/default.vue create mode 100644 frontend_admin/middleware/auth.ts create mode 100644 frontend_admin/nuxt.config.ts create mode 100644 frontend_admin/package-lock.json rename {frontend/admin => frontend_admin}/package.json (68%) create mode 100644 frontend_admin/pages/index.vue create mode 100644 frontend_admin/pages/login.vue create mode 100644 frontend_admin/pages/permissions/index.vue rename frontend/public/logo.png => frontend_admin/public/sf_logo.png (100%) create mode 100644 frontend_admin/stores/auth.ts rename {frontend => frontend_app}/.gitignore (100%) rename {frontend => frontend_app}/Dockerfile (100%) rename {frontend => frontend_app}/Dockerfile.dev (100%) rename {frontend => frontend_app}/README.md (100%) rename {frontend => frontend_app}/docker-compose.yml (100%) rename {frontend => frontend_app}/index.html (100%) rename {frontend => frontend_app}/nginx.conf (100%) rename {frontend => frontend_app}/package-lock.json (100%) rename {frontend => frontend_app}/package.json (100%) rename {frontend => frontend_app}/playwright.remote.config.ts (100%) rename {frontend => frontend_app}/postcss.config.js (100%) create mode 100644 frontend_app/public/SF_logo.png rename {frontend => frontend_app}/public/garage1.png (100%) rename {frontend => frontend_app}/public/garage2.png (100%) rename {frontend => frontend_app}/public/garage_clean.png (100%) rename {frontend => frontend_app}/public/images/sf_landing_back.png (100%) create mode 100644 frontend_app/public/logo.png rename {frontend => frontend_app}/public/sf_alarm_light_00.png (100%) rename {frontend => frontend_app}/public/sf_alarm_light_01.png (100%) rename {frontend => frontend_app}/public/sf_card.png (100%) rename {frontend => frontend_app}/public/sf_logo_ok.png (100%) rename {frontend => frontend_app}/public/sf_mobile_garage_1.png (100%) rename {frontend => frontend_app}/public/sf_naptar.png (100%) rename {frontend => frontend_app}/src/App.vue (100%) rename {frontend => frontend_app}/src/api/axios.ts (100%) rename {frontend => frontend_app}/src/assets/garage-bg.png (100%) rename {frontend => frontend_app}/src/assets/logo copy.svg (100%) rename {frontend => frontend_app}/src/assets/logo.svg (100%) rename {frontend => frontend_app}/src/assets/main.css (100%) rename {frontend => frontend_app}/src/assets/sf-brand-logo.svg (100%) rename {frontend => frontend_app}/src/assets/sf_landing_back.png (100%) rename {frontend => frontend_app}/src/components/LanguageSwitcher.vue (100%) rename {frontend => frontend_app}/src/components/LoginModal.vue (100%) rename {frontend => frontend_app}/src/components/Logo.vue (100%) rename {frontend => frontend_app}/src/components/ModeSwitcher.vue (100%) rename {frontend => frontend_app}/src/components/admin/PackageEditModal.vue (100%) rename {frontend => frontend_app}/src/components/cost/CostEntryWizard.vue (75%) rename {frontend => frontend_app}/src/components/cost/CostManagerModal.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/AdPlacementWidget.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/ComplexExpenseModal.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/CostsActionsCard.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/FinancialCard.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/GamificationCard.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/MyVehiclesCard.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/PrivateVehicleManager.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/ProfileTrustCard.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/ServiceFinderCard.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/SimpleFuelModal.vue (100%) create mode 100644 frontend_app/src/components/dashboard/SubscriptionStatusWidget.vue rename {frontend => frontend_app}/src/components/dashboard/VehicleFormModal.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/VehicleFormModal_original.vue (100%) rename {frontend => frontend_app}/src/components/dashboard/WalletDetailsModal.vue (100%) rename {frontend => frontend_app}/src/components/header/HeaderBackButton.vue (100%) rename {frontend => frontend_app}/src/components/header/HeaderCompanySwitcher.vue (70%) rename {frontend => frontend_app}/src/components/header/HeaderLogo.vue (100%) rename {frontend => frontend_app}/src/components/header/HeaderProfile.vue (100%) rename {frontend => frontend_app}/src/components/layout/BaseHeader.vue (100%) rename {frontend => frontend_app}/src/components/logo1.vue (100%) rename {frontend => frontend_app}/src/components/organization/CompanyDataModal.vue (100%) rename {frontend => frontend_app}/src/components/organization/OrganizationSettingsModal.vue (100%) rename {frontend => frontend_app}/src/components/provider/ProviderAutocomplete.vue (100%) rename {frontend => frontend_app}/src/components/provider/ProviderDetailModal.vue (100%) rename {frontend => frontend_app}/src/components/provider/ProviderEditModal.vue (100%) rename {frontend => frontend_app}/src/components/provider/ProviderQuickAddModal.vue (100%) rename {frontend => frontend_app}/src/components/subscription/PlanDetailsModal.vue (100%) rename {frontend => frontend_app}/src/components/subscription/SubscriptionInfoModal.vue (100%) rename {frontend => frontend_app}/src/components/ui/AddressDisplay.vue (100%) rename {frontend => frontend_app}/src/components/ui/BaseCard.vue (100%) rename {frontend => frontend_app}/src/components/ui/GlassCard.vue (100%) rename {frontend => frontend_app}/src/components/vehicle/VehicleCardCompact.vue (100%) rename {frontend => frontend_app}/src/components/vehicle/VehicleCardStandard.vue (100%) rename {frontend => frontend_app}/src/components/vehicle/VehicleDetailModal.vue (100%) rename {frontend => frontend_app}/src/components/vehicle/VehiclePlateBadge.vue (100%) rename {frontend => frontend_app}/src/components/vehicles/tabs/DocumentsTab.vue (100%) rename {frontend => frontend_app}/src/components/vehicles/tabs/FinancialsTab.vue (100%) rename {frontend => frontend_app}/src/components/vehicles/tabs/OverviewTab.vue (100%) rename {frontend => frontend_app}/src/components/vehicles/tabs/ServiceBookTab.vue (100%) rename {frontend => frontend_app}/src/components/vehicles/tabs/TechDataTab.vue (100%) rename {frontend => frontend_app}/src/env.d.ts (100%) rename {frontend => frontend_app}/src/i18n/cz.ts (100%) rename {frontend => frontend_app}/src/i18n/de.ts (100%) rename {frontend => frontend_app}/src/i18n/en.ts (100%) rename {frontend => frontend_app}/src/i18n/hu.ts (100%) rename {frontend => frontend_app}/src/i18n/ro.ts (100%) rename {frontend => frontend_app}/src/i18n/sk.ts (100%) rename {frontend => frontend_app}/src/layouts/AdminLayout.vue (85%) rename {frontend => frontend_app}/src/layouts/ConsumerLayout.vue (100%) rename {frontend => frontend_app}/src/layouts/CorporateLayout.vue (100%) rename {frontend => frontend_app}/src/layouts/OrganizationLayout.vue (87%) rename {frontend => frontend_app}/src/layouts/PrivateLayout.vue (96%) rename {frontend => frontend_app}/src/main.ts (100%) rename {frontend => frontend_app}/src/router/index.ts (77%) rename {frontend => frontend_app}/src/services/dateUtils.ts (100%) rename {frontend => frontend_app}/src/services/translationService.ts (100%) rename {frontend => frontend_app}/src/stores/adminPackages.ts (100%) rename {frontend => frontend_app}/src/stores/adminServices.ts (100%) rename {frontend => frontend_app}/src/stores/adminUsers.ts (100%) rename {frontend => frontend_app}/src/stores/appModeStore.ts (100%) rename {frontend => frontend_app}/src/stores/auth.ts (99%) rename {frontend => frontend_app}/src/stores/authStore.ts (100%) rename {frontend => frontend_app}/src/stores/catalog.ts (100%) rename {frontend => frontend_app}/src/stores/cost.ts (56%) rename {frontend => frontend_app}/src/stores/expense.ts (100%) rename {frontend => frontend_app}/src/stores/finance.ts (100%) rename {frontend => frontend_app}/src/stores/theme.ts (100%) rename {frontend => frontend_app}/src/stores/vehicle.ts (100%) rename {frontend => frontend_app}/src/types/organization.ts (93%) rename {frontend => frontend_app}/src/types/vehicle.ts (100%) rename {frontend => frontend_app}/src/views/CompleteKycView.vue (100%) rename {frontend => frontend_app}/src/views/DashboardView.vue (100%) rename {frontend => frontend_app}/src/views/LandingView.vue (100%) rename {frontend => frontend_app}/src/views/ProfileView.vue (100%) rename {frontend => frontend_app}/src/views/ResetPasswordView.vue (100%) rename {frontend => frontend_app}/src/views/ServiceFinderView.vue (100%) rename {frontend => frontend_app}/src/views/SubscriptionPlansView.vue (100%) rename {frontend => frontend_app}/src/views/VerifyEmailView.vue (100%) rename {frontend => frontend_app}/src/views/admin/AdminDashboardView.vue (100%) create mode 100644 frontend_app/src/views/admin/AdminLoginView.vue rename {frontend => frontend_app}/src/views/admin/AdminPackagesView.vue (100%) rename {frontend => frontend_app}/src/views/admin/AdminServicesView.vue (100%) rename {frontend => frontend_app}/src/views/admin/AdminUsersView.vue (100%) rename {frontend => frontend_app}/src/views/costs/CostsView.vue (98%) rename {frontend => frontend_app}/src/views/organization/CompanyGarageView.vue (100%) rename {frontend => frontend_app}/src/views/organization/CompanyOnboardingView.vue (100%) rename {frontend => frontend_app}/src/views/vehicles/FleetView.vue (100%) rename {frontend => frontend_app}/src/views/vehicles/VehicleDetailsView.vue (100%) rename {frontend => frontend_app}/tailwind.config.js (100%) rename {frontend => frontend_app}/tests/e2e/landing-bento-grid.spec.ts (100%) rename {frontend => frontend_app}/tests/e2e/landing-neo-glassmorphism.spec.ts (100%) rename {frontend => frontend_app}/tests/e2e/landing_visual.spec.js (100%) rename {frontend => frontend_app}/tests/e2e/logo-screenshot.spec.ts (100%) rename {frontend => frontend_app}/tests/e2e/remote_sanity.spec.js (100%) rename {frontend => frontend_app}/tsconfig.json (100%) rename {frontend => frontend_app}/vite.config.ts (100%) 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":"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","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 0000000000000000000000000000000000000000..4c44e2eaa4a99f4a040ae523b7618451236e812f GIT binary patch literal 4417192 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೺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

;%L(t`y6UDt&h?KN6)u@0mHPc&5W<4U8j zJT4YQjSbm>>A8rvLe7_NrmG6H#0BCH(dEup+oN)a3(bw1z2pnmKkYlcm}|vL`)oC$_vq+UjCAd^(7--@*ip|Y!^&wM8@VA-#1q$ zpTwm9gTM~@SejTm=r2B`H!+i&X}Y;cNa^h^d<)a1!`42_fL2w^OMx#l0DYh?X&@#8 zfXvy|`PBy(U<#xKsyF?wTe0VoBeV(z*%&_*LGNKrI ziQl5S7U1u?4g!Rj6`;P3Nw!<=6C*-|-fX>LV^|3|XmAMyt0qmRcvpc!pBR;~?g}kep+Mz$gKWLm;%znO=a~s>x2mT}{}-*Yb zjpXG?h|km;!L-W9RCZ~!9t?|m2N+tko?T~%*Uf|tGih>*@DUbLR5%YYJ85(v*9~}r ziXtRyUB}HwI^g=s_rZp`2*C0~Z|r5E>{YB>^=j~Z_VBvuel2W>F9zOr} zyd9lCB1sohT$gpvv;e#=3$njGYMFmsEb6$_{M0bW*^Qp#9d+Bhr}e2Df7H7(aOQe6 zZt;@?+j?_rbFJTvVMJ1BLn5IxTf+6o+K|WyATsxnbLv|utHidu4`KBU^-;#@3x zYzOZN=>@swNd#ZNrKJ!1T!(!YaWge9bCC;*19HNoWV)_Rd2XK@*0Lf2wU)gf#?}nh zQMk%^_QRloAW}w(53vB^RUdD~yi3KwonBv*pGTqOVp4a|!!bcWKU{Sp>82)Z7BLH* zJF7O2q*S%by^RG_my_p9ubzcM?EFP8F85w<1 z)xe!Xg8NboPj3p_$VIiJlN_q=mw57V;3;GY)oMxtS^M&sq^-}u>Xq}HrJ`b}4B z(&#BIyd7Ov7}uY$N%i`YP&7}^-5jxVTnQa<`d;nHa-l580@(jPdni_)dvZYcp!|hT zy1{%#Kwzl|plgY8O`=f=7bD`0uU{;p$A2PCa4SM7=ZEYcxEvz znpfxd0Nxd?W8ypAb6`jX&KZ6M7$-1}1CKweMOqz&k6mN(R|Kv1iVQUg&cVdf%1t_6 zaOXrVAu8>~1yZcOLKEgA=1;UMc?QzNy@@J>*#X&@43rIFOqSQvR_LIvek_e9xZtWl za3+T_)R1W E%Vj?&fL2Tj|ld9a0+3DX^TwlS?*2UQT< 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�=@j3wA2?pNm>=c`d-%CjAa%Rdok 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