From f2b690f3f59d10c62318b148b6906bfa8c8b404b Mon Sep 17 00:00:00 2001 From: Bennet Gallein Date: Sat, 14 Feb 2026 10:14:49 +0100 Subject: [PATCH] fix: add admin --- .dockerignore | 1 + .env | 3 + .env.example | 3 + .nuxt/imports.d.ts | 3 +- .nuxt/tailwind/postcss.mjs | 2 +- .nuxt/tsconfig.app.json | 4 +- .nuxt/tsconfig.json | 2 +- .nuxt/tsconfig.shared.json | 2 +- .nuxt/types/build.d.ts | 2 + .nuxt/types/imports.d.ts | 2 + .nuxt/types/nitro-imports.d.ts | 12 + .nuxt/types/nitro-routes.d.ts | 9 + .nuxt/types/plugins.d.ts | 11 +- .nuxt/types/runtime-config.d.ts | 6 + app/pages/admin/dashboard.vue | 302 ++++++ app/pages/admin/index.vue | 74 ++ .../jiti/vat-api-nuxt.config.38f7f2db.mjs | 7 +- .../nuxt/.nuxt/dist/client/_nuxt/BGLmsXN0.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/CBwmZ8LB.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/CeoJbNH2.js | 18 - ...M_Mono-normal-400-latin-ext.C2zvOubV.woff2 | Bin 9552 -> 0 bytes .../DM_Mono-normal-400-latin.4GdczIuU.woff2 | Bin 14820 -> 0 bytes ...M_Mono-normal-500-latin-ext.BtRyHRi6.woff2 | Bin 9616 -> 0 bytes .../DM_Mono-normal-500-latin.DRMDZjhP.woff2 | Bin 14988 -> 0 bytes ...M_Sans-normal-400-latin-ext.BOFOeGcA.woff2 | Bin 18228 -> 0 bytes .../DM_Sans-normal-400-latin.Xz1IZZA0.woff2 | Bin 36932 -> 0 bytes .../nuxt/.nuxt/dist/client/_nuxt/DNdyEWwv.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/Dgz6sxCl.js | 4 - ...t_Sans-normal-400-latin-ext.B5bTHO_g.woff2 | Bin 11144 -> 0 bytes ...ument_Sans-normal-400-latin.BbzFLZTg.woff2 | Bin 30092 -> 0 bytes .../dist/client/_nuxt/entry.DJL3iLlR.css | 1 - .../dist/client/_nuxt/error-404.C-Ezrlz-.css | 1 - .../dist/client/_nuxt/error-500.DBWf9FGj.css | 1 - .../dist/server/_nuxt/composables-Piy9capG.js | 23 - .../server/_nuxt/composables-Piy9capG.js.map | 1 - .../_nuxt/composables-Piy9capG.js.map.json | 1 - .../dist/server/_nuxt/error-404-BY_x-_oz.js | 369 ------- .../server/_nuxt/error-404-BY_x-_oz.js.map | 1 - .../_nuxt/error-404-BY_x-_oz.js.map.json | 1 - .../_nuxt/error-404-styles-1.mjs-Bae73Gon.js | 5 - .../error-404-styles-1.mjs-Bae73Gon.js.map | 1 - ...rror-404-styles-1.mjs-Bae73Gon.js.map.json | 1 - .../_nuxt/error-404-styles.DuDrf-v0.mjs | 4 - .../dist/server/_nuxt/error-500-B0qDQUop.js | 69 -- .../server/_nuxt/error-500-B0qDQUop.js.map | 1 - .../_nuxt/error-500-B0qDQUop.js.map.json | 1 - .../_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js | 5 - .../error-500-styles-1.mjs-DOrS-RIZ.js.map | 1 - ...rror-500-styles-1.mjs-DOrS-RIZ.js.map.json | 1 - .../_nuxt/error-500-styles.8IYEHzz6.mjs | 4 - .../.nuxt/dist/server/_nuxt/index-BDcJu3_l.js | 409 -------- .../dist/server/_nuxt/index-BDcJu3_l.js.map | 1 - .../server/_nuxt/index-BDcJu3_l.js.map.json | 1 - .../.nuxt/dist/server/client.manifest.mjs | 1 - .../.nuxt/dist/server/client.precomputed.mjs | 1 - .../.cache/nuxt/.nuxt/dist/server/server.mjs | 954 ------------------ .../nuxt/.nuxt/dist/server/server.mjs.map | 1 - .../.nuxt/dist/server/server.mjs.map.json | 1 - .../.cache/nuxt/.nuxt/dist/server/styles.mjs | 7 - .../.cache/nuxt/.nuxt/manifest/latest.json | 1 - .../6324e146-4419-48fd-9473-f44ec3cf0d83.json | 1 - node_modules/.cache/nuxt/.nuxt/nuxt.d.ts | 2 +- node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts | 2 +- .../.cache/nuxt/.nuxt/schema/nuxt.schema.d.ts | 17 - .../.cache/nuxt/.nuxt/schema/nuxt.schema.json | 3 - .../.cache/nuxt/.nuxt/tailwind/postcss.mjs | 2 +- .../.cache/nuxt/.nuxt/tsconfig.app.json | 2 +- node_modules/.cache/nuxt/.nuxt/tsconfig.json | 2 +- .../.cache/nuxt/.nuxt/tsconfig.shared.json | 2 +- .../nuxt/.nuxt/types/nitro-imports.d.ts | 12 + .../.cache/nuxt/.nuxt/types/nitro-routes.d.ts | 9 + .../nuxt/.nuxt/types/runtime-config.d.ts | 4 + .../.cache/vite/client/deps/_metadata.json | 12 +- node_modules/.package-lock.json | 139 ++- nuxt.config.ts | 3 + package-lock.json | 141 ++- package.json | 2 + server/api/admin/login.post.ts | 28 + server/api/admin/requests.get.ts | 31 + server/api/admin/stats.get.ts | 54 + server/middleware/adminAuth.ts | 33 + server/middleware/requestLogger.ts | 19 + server/plugins/logWorker.ts | 66 ++ server/utils/mongodb.ts | 30 + server/utils/redis.ts | 24 + server/utils/requestLogger.ts | 17 + 86 files changed, 1057 insertions(+), 1939 deletions(-) create mode 100644 .dockerignore create mode 100644 app/pages/admin/dashboard.vue create mode 100644 app/pages/admin/index.vue delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BGLmsXN0.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CBwmZ8LB.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CeoJbNH2.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-400-latin-ext.C2zvOubV.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-400-latin.4GdczIuU.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-500-latin.DRMDZjhP.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Sans-normal-400-latin.Xz1IZZA0.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DNdyEWwv.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Dgz6sxCl.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Instrument_Sans-normal-400-latin.BbzFLZTg.woff2 delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/entry.DJL3iLlR.css delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-404.C-Ezrlz-.css delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-500.DBWf9FGj.css delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles.DuDrf-v0.mjs delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles.8IYEHzz6.mjs delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs delete mode 100644 node_modules/.cache/nuxt/.nuxt/manifest/latest.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json delete mode 100644 node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.d.ts delete mode 100644 node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.json create mode 100644 server/api/admin/login.post.ts create mode 100644 server/api/admin/requests.get.ts create mode 100644 server/api/admin/stats.get.ts create mode 100644 server/middleware/adminAuth.ts create mode 100644 server/middleware/requestLogger.ts create mode 100644 server/plugins/logWorker.ts create mode 100644 server/utils/mongodb.ts create mode 100644 server/utils/redis.ts create mode 100644 server/utils/requestLogger.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..4c49bd78 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.env diff --git a/.env b/.env index 1afdfc69..3228cf38 100644 --- a/.env +++ b/.env @@ -1 +1,4 @@ NUXT_VATSTACK_API_KEY=pk_live_3038ce089ee7197879fcf95e624da019 +NUXT_DB=mongodb+srv://development:35XRgDMsPkb1opbp@cluster0.ajj3s.mongodb.net/vat-api +NUXT_REDIS_URL=redis://:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81@localhost:6379 +NUXT_ADMIN_PASSWORD=changeme diff --git a/.env.example b/.env.example index db3ef451..54b2a064 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,5 @@ # Vatstack API key for live VAT rate data (optional — falls back to hardcoded rates) NUXT_VATSTACK_API_KEY= +NUXT_DB=mongodb+srv://development:35XRgDMsPkb1opbp@cluster0.ajj3s.mongodb.net/vat-api +NUXT_REDIS_URL=redis://:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81@localhost:6379 +NUXT_ADMIN_PASSWORD=changeme diff --git a/.nuxt/imports.d.ts b/.nuxt/imports.d.ts index 2d63d197..0f106e77 100644 --- a/.nuxt/imports.d.ts +++ b/.nuxt/imports.d.ts @@ -31,4 +31,5 @@ export { setInterval } from '#app/compat/interval'; export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables'; export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration'; export { useScrollAnimation } from '../app/composables/useScrollAnimation'; -export { useVatRates, VatRate } from '../app/composables/useVatRates'; \ No newline at end of file +export { useVatRates, VatRate } from '../app/composables/useVatRates'; +export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools'; \ No newline at end of file diff --git a/.nuxt/tailwind/postcss.mjs b/.nuxt/tailwind/postcss.mjs index 00b8459e..0974777d 100644 --- a/.nuxt/tailwind/postcss.mjs +++ b/.nuxt/tailwind/postcss.mjs @@ -1,4 +1,4 @@ -// generated by the @nuxtjs/tailwindcss module at 2/13/2026, 10:13:46 PM +// generated by the @nuxtjs/tailwindcss module at 2/14/2026, 10:13:39 AM import "@nuxtjs/tailwindcss/config-ctx" import configMerger from "@nuxtjs/tailwindcss/merger"; diff --git a/.nuxt/tsconfig.app.json b/.nuxt/tsconfig.app.json index 6242f32a..5a5d05d0 100644 --- a/.nuxt/tsconfig.app.json +++ b/.nuxt/tsconfig.app.json @@ -104,7 +104,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/28eed3f6-8bb7-4ce5-bd5e-c2f1ff73389b" + "./manifest/meta/dev" ], "#components": [ "./components" @@ -181,7 +181,7 @@ "../node_modules/dist/runtime/server", "../node_modules/*.*", "../node_modules/dist/*.*", - "../.output", + "dev", "../server" ] } \ No newline at end of file diff --git a/.nuxt/tsconfig.json b/.nuxt/tsconfig.json index cd4934fe..f230641a 100644 --- a/.nuxt/tsconfig.json +++ b/.nuxt/tsconfig.json @@ -104,7 +104,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/28eed3f6-8bb7-4ce5-bd5e-c2f1ff73389b" + "./manifest/meta/dev" ], "#components": [ "./components" diff --git a/.nuxt/tsconfig.shared.json b/.nuxt/tsconfig.shared.json index 7418592d..a26ad887 100644 --- a/.nuxt/tsconfig.shared.json +++ b/.nuxt/tsconfig.shared.json @@ -104,7 +104,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/28eed3f6-8bb7-4ce5-bd5e-c2f1ff73389b" + "./manifest/meta/dev" ], "#build": [ "." diff --git a/.nuxt/types/build.d.ts b/.nuxt/types/build.d.ts index 813a333a..55550f43 100644 --- a/.nuxt/types/build.d.ts +++ b/.nuxt/types/build.d.ts @@ -12,6 +12,8 @@ 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.nCg_nTMck4Vjq9J_TXBbUMCbducTRhoEa7hkWr4xMsk.js"; declare module "#build/routes.mjs"; declare module "#build/pages.mjs"; declare module "#build/router.options.mjs"; diff --git a/.nuxt/types/imports.d.ts b/.nuxt/types/imports.d.ts index ccb2c0f0..af3e879f 100644 --- a/.nuxt/types/imports.d.ts +++ b/.nuxt/types/imports.d.ts @@ -113,6 +113,7 @@ declare global { 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 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 @@ -302,6 +303,7 @@ declare module 'vue' { readonly useModel: UnwrapRef readonly useNuxtApp: UnwrapRef readonly useNuxtData: UnwrapRef + readonly useNuxtDevTools: UnwrapRef readonly usePreviewMode: UnwrapRef readonly useRequestEvent: UnwrapRef readonly useRequestFetch: UnwrapRef diff --git a/.nuxt/types/nitro-imports.d.ts b/.nuxt/types/nitro-imports.d.ts index 7c8e2873..f0a22f5e 100644 --- a/.nuxt/types/nitro-imports.d.ts +++ b/.nuxt/types/nitro-imports.d.ts @@ -15,11 +15,14 @@ declare global { 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 closeDb: typeof import('../../server/utils/mongodb').closeDb + const closeRedis: typeof import('../../server/utils/redis').closeRedis 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 createRedisClient: typeof import('../../server/utils/redis').createRedisClient 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 @@ -47,12 +50,14 @@ declare global { const fromWebHandler: typeof import('../../node_modules/h3').fromWebHandler const getAllRates: typeof import('../../server/utils/vatRates').getAllRates const getCookie: typeof import('../../node_modules/h3').getCookie + const getDb: typeof import('../../server/utils/mongodb').getDb 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 getRateByCode: typeof import('../../server/utils/vatRates').getRateByCode + const getRedis: typeof import('../../server/utils/redis').getRedis const getRequestFingerprint: typeof import('../../node_modules/h3').getRequestFingerprint const getRequestHeader: typeof import('../../node_modules/h3').getRequestHeader const getRequestHeaders: typeof import('../../node_modules/h3').getRequestHeaders @@ -83,6 +88,7 @@ declare global { 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 logRequest: typeof import('../../server/utils/requestLogger').logRequest 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 @@ -135,6 +141,9 @@ declare global { export type { EventHandler, EventHandlerRequest, EventHandlerResponse, EventHandlerObject, H3EventContext } from '../../node_modules/h3' import('../../node_modules/h3') // @ts-ignore + export type { RequestLogEntry } from '../../server/utils/requestLogger' + import('../../server/utils/requestLogger') + // @ts-ignore export type { VatRateResponse } from '../../server/utils/vatRates' import('../../server/utils/vatRates') } @@ -152,4 +161,7 @@ export { defineTask, runTask } from 'nitropack/runtime/internal/task'; export { defineNitroErrorHandler } from 'nitropack/runtime/internal/error/utils'; export { buildAssetsURL as __buildAssetsURL, publicAssetsURL as __publicAssetsURL } from '/home/bennet/source/vat-api/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths'; export { defineAppConfig } from '/home/bennet/source/vat-api/node_modules/@nuxt/nitro-server/dist/runtime/utils/config'; +export { getDb, closeDb } from '/home/bennet/source/vat-api/server/utils/mongodb'; +export { getRedis, createRedisClient, closeRedis } from '/home/bennet/source/vat-api/server/utils/redis'; +export { logRequest } from '/home/bennet/source/vat-api/server/utils/requestLogger'; export { getAllRates, getRateByCode } from '/home/bennet/source/vat-api/server/utils/vatRates'; \ No newline at end of file diff --git a/.nuxt/types/nitro-routes.d.ts b/.nuxt/types/nitro-routes.d.ts index 46efb56b..9749a5c8 100644 --- a/.nuxt/types/nitro-routes.d.ts +++ b/.nuxt/types/nitro-routes.d.ts @@ -3,6 +3,15 @@ import type { Serialize, Simplify } from "nitropack/types"; declare module "nitropack/types" { type Awaited = T extends PromiseLike ? Awaited : T interface InternalApi { + '/api/admin/login': { + 'post': Simplify>>> + } + '/api/admin/requests': { + 'get': Simplify>>> + } + '/api/admin/stats': { + 'get': Simplify>>> + } '/api/v1/rates/:code': { 'get': Simplify>>> } diff --git a/.nuxt/types/plugins.d.ts b/.nuxt/types/plugins.d.ts index 5e10cfd6..51d95f7d 100644 --- a/.nuxt/types/plugins.d.ts +++ b/.nuxt/types/plugins.d.ts @@ -9,18 +9,25 @@ type NuxtAppInjections = 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: 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'nuxt:global-components' | 'nuxt:prefetch' + 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' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed' } } diff --git a/.nuxt/types/runtime-config.d.ts b/.nuxt/types/runtime-config.d.ts index 52538c0d..78dc9ede 100644 --- a/.nuxt/types/runtime-config.d.ts +++ b/.nuxt/types/runtime-config.d.ts @@ -12,6 +12,12 @@ import { RuntimeConfig as UserRuntimeConfig, PublicRuntimeConfig as UserPublicRu vatstackApiKey: string, + db: string, + + redisUrl: string, + + adminPassword: string, + nitro: { envPrefix: string, }, diff --git a/app/pages/admin/dashboard.vue b/app/pages/admin/dashboard.vue new file mode 100644 index 00000000..e4ae5ade --- /dev/null +++ b/app/pages/admin/dashboard.vue @@ -0,0 +1,302 @@ + + + diff --git a/app/pages/admin/index.vue b/app/pages/admin/index.vue new file mode 100644 index 00000000..743f00bd --- /dev/null +++ b/app/pages/admin/index.vue @@ -0,0 +1,74 @@ + + + diff --git a/node_modules/.cache/jiti/vat-api-nuxt.config.38f7f2db.mjs b/node_modules/.cache/jiti/vat-api-nuxt.config.38f7f2db.mjs index 4e4b4a0c..e3623b96 100644 --- a/node_modules/.cache/jiti/vat-api-nuxt.config.38f7f2db.mjs +++ b/node_modules/.cache/jiti/vat-api-nuxt.config.38f7f2db.mjs @@ -20,7 +20,10 @@ var _default = exports.default = defineNuxtConfig({ }, runtimeConfig: { - vatstackApiKey: '' + vatstackApiKey: '', + db: '', + redisUrl: '', + adminPassword: '' }, app: { @@ -31,4 +34,4 @@ var _default = exports.default = defineNuxtConfig({ } } -}); /* v9-40b9d46909467c59 */ +}); /* v9-d85c2260d73c206e */ diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BGLmsXN0.js b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BGLmsXN0.js deleted file mode 100644 index c8e2bf85..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BGLmsXN0.js +++ /dev/null @@ -1 +0,0 @@ -import{S as a,a as s,U as r,V as u,W as o}from"./Dgz6sxCl.js";function d(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(r()){const n=u(o);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function i(t,e={}){const n=e.head||d(e.nuxt);return a(t,{head:n,...e})}export{i as u}; diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CBwmZ8LB.js b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CBwmZ8LB.js deleted file mode 100644 index bb44ca01..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CBwmZ8LB.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o,y as s,z as a,A as t,B as r}from"./Dgz6sxCl.js";import{u as i}from"./BGLmsXN0.js";const u={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},l={class:"max-w-520px text-center"},c=["textContent"],d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:500},statusText:{type:String,default:"Internal server error"},description:{type:String,default:"This page is temporarily unavailable."},refresh:{type:String,default:"Refresh this page"}},setup(e){const n=e;return i({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,h2{font-size:inherit;font-weight:inherit}h1,h2,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: }'}]}),(h,m)=>(s(),a("div",u,[t("div",l,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:r(e.status)},null,8,c),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:r(e.statusText)},null,8,d),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:r(e.description)},null,8,p)])]))}},x=o(f,[["__scopeId","data-v-d349100d"]]);export{x as default}; diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CeoJbNH2.js b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CeoJbNH2.js deleted file mode 100644 index c7c06356..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CeoJbNH2.js +++ /dev/null @@ -1,18 +0,0 @@ -import{d as w,o as A,F as T,y as o,z as n,G as $,H as l,A as e,E as C,I as _,J as k,C as b,T as U,D as q,B as p,K as y,i as h,_ as R,L as S,M as j,N as I,O as V,P as B,Q as L,l as M,R as N}from"./Dgz6sxCl.js";import{u as F}from"./BGLmsXN0.js";const H={class:"section-container flex items-center justify-between h-16"},G={class:"hidden md:flex items-center gap-8"},O=["href"],D=["aria-label"],J={key:0,class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},z={key:1,class:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},K={key:0,class:"md:hidden bg-white/95 backdrop-blur-xl border-b border-surface-border"},Z={class:"section-container py-4 flex flex-col gap-3"},Q=["href"],Y=w({__name:"Navbar",setup(x){const u=h(!1);function i(){u.value=window.scrollY>20}A(()=>{window.addEventListener("scroll",i,{passive:!0})}),T(()=>{window.removeEventListener("scroll",i)});const a=[{label:"Features",href:"#features"},{label:"Rates",href:"#rates"},{label:"API Docs",href:"#playground"}],s=h(!1);return(d,t)=>(o(),n("nav",{class:$(["fixed top-0 left-0 right-0 z-50 transition-all duration-300",l(u)?"bg-white/80 backdrop-blur-xl shadow-soft border-b border-surface-border":"bg-transparent"])},[e("div",H,[t[5]||(t[5]=e("a",{href:"#",class:"flex items-center gap-2 group"},[e("span",{class:"inline-flex items-center justify-center w-8 h-8 rounded-lg bg-eu-blue text-white font-heading font-bold text-sm transition-transform group-hover:scale-105"}," V "),e("span",{class:"font-heading font-bold text-lg text-ink"},[C(" vat-api"),e("span",{class:"text-eu-blue"},".eu")])],-1)),e("div",G,[(o(),n(_,null,k(a,c=>e("a",{key:c.href,href:c.href,class:"text-sm font-medium text-ink-secondary hover:text-eu-blue transition-colors"},p(c.label),9,O)),64)),t[2]||(t[2]=e("a",{href:"#playground",class:"inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-eu-blue text-white text-sm font-semibold hover:bg-eu-blue-dark transition-colors"},[C(" Try API "),e("svg",{class:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"})])],-1))]),e("button",{class:"md:hidden p-2 -mr-2 text-ink-secondary hover:text-ink",onClick:t[0]||(t[0]=c=>s.value=!l(s)),"aria-label":l(s)?"Close menu":"Open menu"},[l(s)?(o(),n("svg",z,[...t[4]||(t[4]=[e("path",{"stroke-linecap":"round",d:"M6 18 18 6M6 6l12 12"},null,-1)])])):(o(),n("svg",J,[...t[3]||(t[3]=[e("path",{"stroke-linecap":"round",d:"M4 6h16M4 12h16M4 18h16"},null,-1)])]))],8,D)]),b(U,{"enter-active-class":"transition duration-200 ease-out","enter-from-class":"opacity-0 -translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-2"},{default:q(()=>[l(s)?(o(),n("div",K,[e("div",Z,[(o(),n(_,null,k(a,c=>e("a",{key:c.href,href:c.href,class:"text-sm font-medium text-ink-secondary hover:text-eu-blue py-2 transition-colors",onClick:t[1]||(t[1]=g=>s.value=!1)},p(c.label),9,Q)),64))])])):y("",!0)]),_:1})],2))}}),W=Object.assign(Y,{__name:"Navbar"}),X={},ee={class:"relative pt-32 pb-20 md:pt-40 md:pb-28 overflow-hidden"};function te(x,u){return o(),n("section",ee,[...u[0]||(u[0]=[S(`
Free & Open

EU VAT Rates API

Free. No API key. Always up-to-date.

Get current VAT rates for all 27 EU member states with a single API call. No registration, no rate limits, no nonsense.

GET /api/v1/rates/DE
// Response 200 OK
-{
-  "country": "Germany",
-  "country_code": "DE",
-  "standard_rate": 19,
-  "reduced_rates": [7],
-  "currency": "EUR"
-}
`,3)])])}const se=Object.assign(R(X,[["render",te]]),{__name:"HeroSection"}),oe={id:"features",class:"section-padding bg-surface-soft"},ne={class:"section-container"},ae={class:"grid sm:grid-cols-2 lg:grid-cols-4 gap-5"},re=["innerHTML"],le={class:"font-heading font-semibold text-ink mb-1.5"},ie={class:"text-sm text-ink-muted leading-relaxed"},de=w({__name:"FeaturesGrid",setup(x){const u=[{icon:'',title:"All 27 EU Countries",description:"Standard, reduced, and special VAT rates for every member state."},{icon:'',title:"No Authentication",description:"No API keys, no sign-up. Just send a GET request."},{icon:'',title:"Always Current",description:"Rates sourced and synced regularly from official EU data."},{icon:'',title:"Simple JSON",description:"Clean, predictable JSON responses. Easy to integrate anywhere."}];return(i,a)=>(o(),n("section",oe,[e("div",ne,[a[0]||(a[0]=e("div",{class:"text-center mb-14 animate-on-scroll"},[e("h2",{class:"text-title md:text-display-sm text-ink"}," Built for developers "),e("p",{class:"mt-3 text-ink-muted max-w-lg mx-auto"}," A straightforward API that does one thing well — delivering EU VAT rates without friction. ")],-1)),e("div",ae,[(o(),n(_,null,k(u,(s,d)=>e("div",{key:s.title,class:"animate-on-scroll group relative bg-white rounded-2xl p-6 border border-surface-border hover:border-eu-blue/20 hover:shadow-card transition-all duration-300",style:j({transitionDelay:`${d*80}ms`})},[e("div",{class:"w-10 h-10 rounded-xl bg-eu-blue-100 text-eu-blue flex items-center justify-center mb-4 group-hover:bg-eu-blue group-hover:text-white transition-colors duration-300",innerHTML:s.icon},null,8,re),e("h3",le,p(s.title),1),e("p",ie,p(s.description),1)],4)),64))])])]))}}),ce=Object.assign(de,{__name:"FeaturesGrid"}),E=[{country:"Austria",code:"AT",flag:"🇦🇹",standard:20,reduced:[10,13]},{country:"Belgium",code:"BE",flag:"🇧🇪",standard:21,reduced:[6,12]},{country:"Bulgaria",code:"BG",flag:"🇧🇬",standard:20,reduced:[9]},{country:"Croatia",code:"HR",flag:"🇭🇷",standard:25,reduced:[5,13]},{country:"Cyprus",code:"CY",flag:"🇨🇾",standard:19,reduced:[5,9]},{country:"Czech Republic",code:"CZ",flag:"🇨🇿",standard:21,reduced:[12,15]},{country:"Denmark",code:"DK",flag:"🇩🇰",standard:25,reduced:[]},{country:"Estonia",code:"EE",flag:"🇪🇪",standard:22,reduced:[9]},{country:"Finland",code:"FI",flag:"🇫🇮",standard:25.5,reduced:[10,14]},{country:"France",code:"FR",flag:"🇫🇷",standard:20,reduced:[5.5,10]},{country:"Germany",code:"DE",flag:"🇩🇪",standard:19,reduced:[7]},{country:"Greece",code:"GR",flag:"🇬🇷",standard:24,reduced:[6,13]},{country:"Hungary",code:"HU",flag:"🇭🇺",standard:27,reduced:[5,18]},{country:"Ireland",code:"IE",flag:"🇮🇪",standard:23,reduced:[9,13.5]},{country:"Italy",code:"IT",flag:"🇮🇹",standard:22,reduced:[5,10]},{country:"Latvia",code:"LV",flag:"🇱🇻",standard:21,reduced:[5,12]},{country:"Lithuania",code:"LT",flag:"🇱🇹",standard:21,reduced:[5,9]},{country:"Luxembourg",code:"LU",flag:"🇱🇺",standard:17,reduced:[8]},{country:"Malta",code:"MT",flag:"🇲🇹",standard:18,reduced:[5,7]},{country:"Netherlands",code:"NL",flag:"🇳🇱",standard:21,reduced:[9]},{country:"Poland",code:"PL",flag:"🇵🇱",standard:23,reduced:[5,8]},{country:"Portugal",code:"PT",flag:"🇵🇹",standard:23,reduced:[6,13]},{country:"Romania",code:"RO",flag:"🇷🇴",standard:19,reduced:[5,9]},{country:"Slovakia",code:"SK",flag:"🇸🇰",standard:23,reduced:[5,10]},{country:"Slovenia",code:"SI",flag:"🇸🇮",standard:22,reduced:[5,9.5]},{country:"Spain",code:"ES",flag:"🇪🇸",standard:21,reduced:[4,10]},{country:"Sweden",code:"SE",flag:"🇸🇪",standard:25,reduced:[6,12]}];function P(){const x=I(h(E));function u(s){return E.find(d=>d.code===s.toUpperCase())}function i(s){return{country:s.country,country_code:s.code,standard_rate:s.standard,reduced_rates:s.reduced,currency:"EUR"}}function a(){return E.map(i)}return{rates:x,getRateByCode:u,formatApiResponse:i,formatAllRatesResponse:a}}const ue={id:"rates",class:"section-padding"},pe={class:"section-container"},fe={class:"max-w-sm mx-auto mb-8 animate-on-scroll"},me={class:"relative"},xe={class:"animate-on-scroll overflow-hidden rounded-2xl border border-surface-border bg-white shadow-soft"},ge={class:"overflow-x-auto"},he={class:"w-full text-sm"},be={class:"px-5 py-3"},ve={class:"inline-flex items-center gap-2.5"},ye={class:"text-lg leading-none"},_e={class:"font-medium text-ink"},ke={class:"px-5 py-3"},we={class:"inline-flex px-2 py-0.5 rounded bg-surface-muted font-mono text-xs font-medium text-ink-secondary"},$e={class:"px-5 py-3 text-right"},Ce={class:"font-semibold text-ink tabular-nums"},Ae={class:"px-5 py-3 text-right"},Ee={key:0,class:"text-ink-muted tabular-nums"},Te={key:1,class:"text-ink-faint"},Re={key:0},Se={colspan:"4",class:"px-5 py-10 text-center text-ink-muted"},Ve=w({__name:"VatRateTable",setup(x){function u(d){return[...d.toUpperCase()].map(t=>String.fromCodePoint(127462+t.charCodeAt(0)-65)).join("")}const i=h([]);A(async()=>{try{const d=await $fetch("/api/v1/rates");i.value=d.map(t=>({country:t.country,code:t.country_code,flag:u(t.country_code),standard:t.standard_rate,reduced:t.reduced_rates}))}catch{const{rates:d}=P();i.value=d.value}});const a=h(""),s=M(()=>{const d=a.value.toLowerCase().trim();return d?i.value.filter(t=>t.country.toLowerCase().includes(d)||t.code.toLowerCase().includes(d)):i.value});return(d,t)=>(o(),n("section",ue,[e("div",pe,[t[3]||(t[3]=e("div",{class:"text-center mb-10 animate-on-scroll"},[e("h2",{class:"text-title md:text-display-sm text-ink"}," VAT Rates across the EU "),e("p",{class:"mt-3 text-ink-muted max-w-lg mx-auto"}," Current standard and reduced rates for all 27 member states. ")],-1)),e("div",fe,[e("div",me,[t[1]||(t[1]=e("svg",{class:"absolute left-3.5 top-1/2 -translate-y-1/2 w-4 h-4 text-ink-faint",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"})],-1)),V(e("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>L(a)?a.value=c:null),type:"text",placeholder:"Search countries...",class:"w-full pl-10 pr-4 py-2.5 rounded-xl border border-surface-border bg-white text-sm text-ink placeholder:text-ink-faint focus:outline-none focus:ring-2 focus:ring-eu-blue/20 focus:border-eu-blue/40 transition-all"},null,512),[[B,l(a)]])])]),e("div",xe,[e("div",ge,[e("table",he,[t[2]||(t[2]=e("thead",null,[e("tr",{class:"bg-surface-soft border-b border-surface-border"},[e("th",{class:"text-left font-semibold text-ink-secondary px-5 py-3.5 font-heading"},"Country"),e("th",{class:"text-left font-semibold text-ink-secondary px-5 py-3.5 font-heading w-20"},"Code"),e("th",{class:"text-right font-semibold text-ink-secondary px-5 py-3.5 font-heading w-32"},"Standard"),e("th",{class:"text-right font-semibold text-ink-secondary px-5 py-3.5 font-heading w-40"},"Reduced")])],-1)),e("tbody",null,[(o(!0),n(_,null,k(l(s),c=>(o(),n("tr",{key:c.code,class:"border-b border-surface-border/60 last:border-0 hover:bg-eu-blue-100/40 transition-colors"},[e("td",be,[e("span",ve,[e("span",ye,p(c.flag),1),e("span",_e,p(c.country),1)])]),e("td",ke,[e("span",we,p(c.code),1)]),e("td",$e,[e("span",Ce,p(c.standard)+"%",1)]),e("td",Ae,[c.reduced.length?(o(),n("span",Ee,p(c.reduced.map(g=>`${g}%`).join(", ")),1)):(o(),n("span",Te,"—"))])]))),128)),l(s).length?y("",!0):(o(),n("tr",Re,[e("td",Se,' No countries matching "'+p(l(a))+'" ',1)]))])])])]),t[4]||(t[4]=e("p",{class:"text-center text-xs text-ink-faint mt-4"}," Data updated regularly from official EU sources. ",-1))])]))}}),Le=Object.assign(Ve,{__name:"VatRateTable"}),Me={id:"playground",class:"section-padding bg-surface-soft"},Pe={class:"section-container"},Ue={class:"animate-on-scroll max-w-3xl mx-auto"},qe={class:"bg-white rounded-2xl border border-surface-border shadow-card overflow-hidden"},je={class:"p-5 border-b border-surface-border"},Ie={class:"flex flex-wrap gap-3 items-end"},Be={class:"flex-shrink-0"},Ne={class:"flex rounded-lg border border-surface-border overflow-hidden text-sm"},Fe={key:0,class:"flex-shrink-0"},He=["value"],Ge=["disabled"],Oe={key:0,class:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24"},De={class:"mt-3.5 flex items-center gap-2 px-3.5 py-2.5 rounded-lg bg-surface-muted font-mono text-sm overflow-x-auto"},Je={class:"text-ink-secondary"},ze={class:"relative"},Ke={class:"flex items-center justify-between px-5 py-3 bg-[#0d1117] border-b border-white/5"},Ze={key:0,class:"text-xs font-mono px-2 py-0.5 rounded bg-green-500/20 text-green-400"},Qe={key:1,class:"text-xs font-mono px-2 py-0.5 rounded bg-red-500/20 text-red-400"},Ye={class:"bg-[#0d1117] text-[#e6edf3] font-mono text-sm leading-relaxed p-5 max-h-80 overflow-y-auto"},We=["innerHTML"],Xe={key:1,class:"text-[#8b949e] text-sm"},et={key:2,class:"text-[#8b949e] text-sm"},tt=w({__name:"ApiPlayground",setup(x){const{rates:u}=P(),i=h("DE"),a=h(""),s=h(null),d=h(!1),t=h(!1),c=M(()=>t.value?"https://vat-api.eu/api/v1/rates":`https://vat-api.eu/api/v1/rates/${i.value}`);function g(f){return f.replace(/("(?:\\.|[^"\\])*")\s*:/g,'$1:').replace(/:\s*("(?:\\.|[^"\\])*")/g,': $1').replace(/:\s*(\d+\.?\d*)/g,': $1').replace(/(\[|\])/g,'$1').replace(/^(\{|})/gm,'$1')}async function v(){d.value=!0,a.value="",s.value=null;try{const f=t.value?"/api/v1/rates":`/api/v1/rates/${i.value}`,r=await $fetch(f);s.value=200,a.value=g(JSON.stringify(r,null,2))}catch(f){s.value=f?.statusCode??500;const r=f?.data??{error:f?.statusMessage??"Request failed"};a.value=g(JSON.stringify(r,null,2))}finally{d.value=!1}}return A(()=>v()),(f,r)=>(o(),n("section",Me,[e("div",Pe,[r[8]||(r[8]=e("div",{class:"text-center mb-10 animate-on-scroll"},[e("h2",{class:"text-title md:text-display-sm text-ink"}," Try it out "),e("p",{class:"mt-3 text-ink-muted max-w-lg mx-auto"}," Build your request, send it, and see the response. ")],-1)),e("div",Ue,[e("div",qe,[e("div",je,[e("div",Ie,[e("div",Be,[r[3]||(r[3]=e("label",{class:"block text-xs font-medium text-ink-muted mb-1.5"},"Endpoint",-1)),e("div",Ne,[e("button",{class:$(["px-3 py-2 font-medium transition-colors",l(t)?"bg-white text-ink-secondary hover:bg-surface-soft":"bg-eu-blue text-white"]),onClick:r[0]||(r[0]=m=>t.value=!1)}," Single ",2),e("button",{class:$(["px-3 py-2 font-medium transition-colors",l(t)?"bg-eu-blue text-white":"bg-white text-ink-secondary hover:bg-surface-soft"]),onClick:r[1]||(r[1]=m=>t.value=!0)}," All Rates ",2)])]),l(t)?y("",!0):(o(),n("div",Fe,[r[4]||(r[4]=e("label",{class:"block text-xs font-medium text-ink-muted mb-1.5"},"Country",-1)),V(e("select",{"onUpdate:modelValue":r[2]||(r[2]=m=>L(i)?i.value=m:null),class:"px-3 py-2 rounded-lg border border-surface-border bg-white text-sm text-ink focus:outline-none focus:ring-2 focus:ring-eu-blue/20 focus:border-eu-blue/40 transition-all"},[(o(!0),n(_,null,k(l(u),m=>(o(),n("option",{key:m.code,value:m.code},p(m.flag)+" "+p(m.country)+" ("+p(m.code)+") ",9,He))),128))],512),[[N,l(i)]])])),e("button",{class:"px-5 py-2 rounded-lg bg-eu-gold text-eu-blue-dark font-semibold text-sm hover:bg-eu-gold-dark transition-colors flex items-center gap-2",onClick:v,disabled:l(d)},[l(d)?(o(),n("svg",Oe,[...r[5]||(r[5]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):y("",!0),e("span",null,p(l(d)?"Sending...":"Send Request"),1)],8,Ge)]),e("div",De,[r[6]||(r[6]=e("span",{class:"flex-shrink-0 text-xs font-semibold px-1.5 py-0.5 rounded bg-green-100 text-green-700"},"GET",-1)),e("span",Je,p(l(c)),1)])]),e("div",ze,[e("div",Ke,[r[7]||(r[7]=e("span",{class:"text-xs text-[#8b949e] font-mono"},"Response",-1)),l(s)===200?(o(),n("span",Ze,"200 OK")):l(s)?(o(),n("span",Qe,p(l(s))+" Error",1)):y("",!0)]),e("div",Ye,[l(a)?(o(),n("pre",{key:0,class:"text-[13px] leading-6",innerHTML:l(a)},null,8,We)):l(d)?(o(),n("p",Xe,"Loading...")):(o(),n("p",et,'Click "Send Request" to see a response.'))])])])])])]))}}),st=Object.assign(tt,{__name:"ApiPlayground"}),ot={id:"examples",class:"section-padding"},nt={class:"section-container"},at={class:"animate-on-scroll max-w-2xl mx-auto"},rt={class:"rounded-2xl border border-surface-border overflow-hidden shadow-card bg-white"},lt={class:"flex items-center justify-between border-b border-surface-border bg-surface-soft px-1.5"},it={class:"flex"},dt=["onClick"],ct={key:0,class:"absolute bottom-0 left-2 right-2 h-0.5 bg-eu-blue rounded-full"},ut={key:0,class:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},pt={key:1,class:"w-3.5 h-3.5 text-green-600",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2.5"},ft={class:"code-block p-5"},mt=["innerHTML"],xt=w({__name:"CodeExamples",setup(x){const u=["cURL","JavaScript","Python"],i=h("cURL"),a={cURL:`# Get all EU VAT rates -curl https://vat-api.eu/api/v1/rates - -# Get rates for a specific country -curl https://vat-api.eu/api/v1/rates/DE`,JavaScript:`const response = await fetch('https://vat-api.eu/api/v1/rates/DE'); -const data = await response.json(); -console.log(data.standard_rate); // 19`,Python:`import requests - -response = requests.get('https://vat-api.eu/api/v1/rates/DE') -data = response.json() -print(data['standard_rate']) # 19`},s={cURL:d(a.cURL),JavaScript:t(a.JavaScript),Python:c(a.Python)};function d(f){return f.replace(/(#.*)/g,'$1').replace(/(curl)\s/g,'$1 ').replace(/(https?:\/\/[^\s]+)/g,'$1')}function t(f){return f.replace(/(\/\/\s*\d+)/g,'$1').replace(/(const|await)\s/g,'$1 ').replace(/(fetch|json|log)\(/g,'$1(').replace(/('https?:\/\/[^']*')/g,'$1').replace(/(\.standard_rate)/g,'$1').replace(/(console)\./g,'$1.').replace(/(response)\./g,'$1.')}function c(f){return f.replace(/(#\s*\d+)/g,'$1').replace(/(import|from)\s/g,'$1 ').replace(/(requests)/g,'$1').replace(/('https?:\/\/[^']*')/g,'$1').replace(/(\['standard_rate'\])/g,'$1').replace(/(print|get)\(/g,'$1(').replace(/(response)\./g,'$1.')}const g=h(!1);async function v(){await navigator.clipboard.writeText(a[i.value]),g.value=!0,setTimeout(()=>{g.value=!1},2e3)}return(f,r)=>(o(),n("section",ot,[e("div",nt,[r[2]||(r[2]=e("div",{class:"text-center mb-10 animate-on-scroll"},[e("h2",{class:"text-title md:text-display-sm text-ink"}," Quick start "),e("p",{class:"mt-3 text-ink-muted max-w-lg mx-auto"}," Integrate EU VAT rates into your project in seconds. ")],-1)),e("div",at,[e("div",rt,[e("div",lt,[e("div",it,[(o(),n(_,null,k(u,m=>e("button",{key:m,class:$(["px-4 py-3 text-sm font-medium transition-colors relative",l(i)===m?"text-eu-blue":"text-ink-muted hover:text-ink-secondary"]),onClick:wt=>i.value=m},[C(p(m)+" ",1),l(i)===m?(o(),n("span",ct)):y("",!0)],10,dt)),64))]),e("button",{class:"flex items-center gap-1.5 px-3 py-1.5 mr-1.5 rounded-lg text-xs font-medium text-ink-muted hover:text-ink-secondary hover:bg-surface-muted transition-colors",onClick:v},[l(g)?(o(),n("svg",pt,[...r[1]||(r[1]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 12.75 6 6 9-13.5"},null,-1)])])):(o(),n("svg",ut,[...r[0]||(r[0]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9.75a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"},null,-1)])])),C(" "+p(l(g)?"Copied!":"Copy"),1)])]),e("div",ft,[e("pre",{class:"text-[13px] leading-6",innerHTML:s[l(i)]},null,8,mt)])])])])]))}}),gt=Object.assign(xt,{__name:"CodeExamples"}),ht={},bt={class:"border-t border-surface-border bg-white"};function vt(x,u){return o(),n("footer",bt,[...u[0]||(u[0]=[S('
V vat-api.eu

Free EU VAT rate data

',1)])])}const yt=Object.assign(R(ht,[["render",vt]]),{__name:"FooterSection"});function _t(){A(()=>{const x=new IntersectionObserver(i=>{for(const a of i)a.isIntersecting&&(a.target.classList.add("is-visible"),x.unobserve(a.target))},{threshold:.1,rootMargin:"0px 0px -40px 0px"}),u=document.querySelectorAll(".animate-on-scroll");for(const i of u)x.observe(i);T(()=>x.disconnect())})}const kt={class:"min-h-screen"},At=w({__name:"index",setup(x){return F({title:"vat-api.eu — Free EU VAT Rates API",meta:[{name:"description",content:"Get current VAT rates for all 27 EU member states with a free, open REST API. No API key required."},{property:"og:title",content:"vat-api.eu — Free EU VAT Rates API"},{property:"og:description",content:"Get current VAT rates for all 27 EU member states with a free, open REST API. No API key required."},{property:"og:type",content:"website"},{property:"og:url",content:"https://vat-api.eu"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:"vat-api.eu — Free EU VAT Rates API"},{name:"twitter:description",content:"Get current VAT rates for all 27 EU member states with a free, open REST API. No API key required."}]}),_t(),(u,i)=>{const a=W,s=se,d=ce,t=Le,c=st,g=gt,v=yt;return o(),n("div",kt,[b(a),e("main",null,[b(s),b(d),b(t),b(c),b(g)]),b(v)])}}});export{At as default}; diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-400-latin-ext.C2zvOubV.woff2 b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-400-latin-ext.C2zvOubV.woff2 deleted file mode 100644 index 9785e9177291ef526d28285e086ba823315a0bd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9552 zcmV-WC9m3dPew8T0RR9103}cW5dZ)H0942T03_}J0RR9100000000000000000000 z0000Qf)X2u5FC64U;u;^2w(}HEfEL`+hEZ%3xf~<0X7081BL_yAO(aX2a7BWfjt}I zOf_tqcJPDl;CPB+9j+)UNAHTFhAgR-;Q#-)AXP@jF8Xs)fOUmIu<6WH_TKF#yKm+} zUYduBP%lKE;h{~ln8G3WjYg^OU7Eji7PhoTQIMy)+H=j(v$|Kt^{+dZY}|+WSFU|^ zj>M%XK)zHgh3mV%8XakSToQcDad*eX&vi#=?2}xA$S(e?d+&ivMa5#|6#kHMnm0o< zXa6%v2n&H!ER-M?btEKCNH#(oZw#>@p&V4@mDZ^$dW9-2eMicvb0X5~=l!G3KkuJ- zZUu_eG+wJflOPA0YMc9 z29V&u^RKSA2^AHP0#AA2Id;Mu@Y3_ZF8|Ncq7*y7sHdp4P}Nrs`%iP(|1(*7Z>HTI z5PLv*He4iQ5}Vk{15(G1Ey99<+j_mBsZPM7mp$6aJAe}xyaCx7nMShzktP3cT9`4!uq4_&`fCRex@;HvfLsL# zE3Q*>nKnh0wg)Uzv~~R6>1`v{+WkBjk44@&q{qfE?MeLdmLNrB z^UcydPaa}O^^PO7idGShG4#Ww{d&Kq-;zjb6~O|`P^!Kh|81uV7(_S!-Tfy~K{23M zv7k5v5D^hH&mzzgNuXqDpbQzHEL0F36U4>^@d-g81y!FAVssue->lzkZ z)mrDBedzR4E^nf7MjLIJBX9A7o2!)ZDB$4J)#z+CxUb8g@TxcgKH;^gxxUpO8Q&8> zC7nOzIoCJwS$r68$E$HSCR}&ffOAebWUn1ITdPMzi#mQ4WK2fgY>W=6ts5#NBk*=; zPlVQpg(BTj3lS*`5#t!}*dOfVmSAw!4>FC>^H{rd0b~8jqZaoP>myMdKflhs#G*Lu zu(pm$CMs1GKQ~Ga=erOA9t)%o$7PnmD>B287r2MS`pCN^isQ~Va7I8yB#P67~sQ;sUqeQ9Bv|f$p=rQ7dGYmO%6}?c)+vXMsMPG zHbDsKRKPg%ws7!4K%4}U5t$goCIJaaMoQ9A|`Kd~D1ox4j3Nz`|sFWDtN5@fr9bAh=_LaHI-s@gKPK+FcBg$L9^0SO2PGV}clg zY!(xT!$2Iw0-%v%lhaNBOqST^4*O008Q?sMklX`sK0y4G69K(p0SS<74+o-vOW@%s z$M(nGLOPXGq7e&|W#N%BC{ZqCwO#gllF2LGEBR#wu{bP}`kDWl`XD_${Z7^H*)ylT z0kA1dMI(_5Y~RH-|7eV;Bme&;}8FLsm2A%DTZ5|G6WUk zl_RP$N4155=J8n|V3Cmd{FbPbqyb62G+`;4C2NwZ1zCnRSvutClr4f{IjSyn-I!Kj z=)tuH+bSHZ@vS4YfxvoVn@DXTu~~ut$hV!=J}SE@?4+@m(k^Oy6zOAf1j^ z6w6CyE4dwt9in%D!9iw6SsZiacD^okkDRpKVK3erN39pjAlI+Jr8a9Z7R0c z_6J)42;D@`?FP{$$FaEPmpoirr((5sVnKG=X?J@TnFXILK09Qyv9@ zTLHlh(am}Pl#2!)cD6x`RiQFz#npD58vKdTBNxj7F861KQp&dnjXKt!V6*Lzwp`wc zL8FfXeF}bJT8t(p zOB+V0+knm$+x55FnDm})1@F|yd%nRyB|T^S@eekb=$0UF@CQNZ!I)dbe2dSHX*aN# zBEZ?Cd}5_8O^L-M<%gYY5_FR`e%uR{{k@1c&^o#?z!};OKkn|c&UfNGqKgVM{k~<3 zd0=T+5mg%_$*OTca~8Ou0+UX=!Z;B&Svj@g2hH5;diy)qu>nbQaTtQdOTwuW)(eWdjZ=`mgsJ14pW$h;**qr&{WA&?3}s1S%024aPUMByM+c*qn1az%tfk(LcY?XX7p;>W$9(t-ttLX@0H=zHvs|p#T&5u2l7bGtXNa z<9X$DeiGL|J^Ey8yGmuW! zdh`LTKS2$%XwP>Ib6o~O4r{aLQHd*G>C^7{Ol&!a%x0~?2j|wz ztgr~Bbi_9byoOdf^$zmU7Wq83WtLCsO5ZPGbYs@_dc$hAyMAW%Dy(3f>@?GwPrL`2lZ$g%~)z2^OQ22lusCu*`Ld zz_Vp62wOQ=@KZOlKwn1PbqM%*x=JUlJ|8E#jVkvgTYbP?`!8bc&0II0&)&1s=g#|0 zw~z9|&NA4Uqa$}!c658ChE^sNxaZD?zdu2wTc_>#Ox~9LkpooFVV2p=I`qoObN&m2y?i^C$yb3TU?=>?oYBe5jBfUqe5Ea6mXi!U>KD z7$*=;h&!jK^k_(D_BM;q)H#aw0(`MT$y!c$V1*S0SyRBKm#)3zR=wg*y*hg$E_g65 zaHN0}g;YM@F@_hF;Z@#4VeUxNV(Rlh_=LZQuKp|)SHUl~lqjEHc3nXd zuRKnE_t}fncy+E_=)QVl6RiF}&=Sby;x5I8D>QS}f^DU~;pSK4QKhWEgT76;#eXX0 zy`zccOnhRcVU=RyCbqf5zk@FJtn|qM2YG7%4@0SpLwR8R6?r)Q|YgggKAPAvqoVZMV1h4)*dwi~F{?J#Kevck7gMbt7(c`_}I0t`pm~HfBe*cHCYBU)Oe9TUrhS zYwLU0wy@!YIp1)c<|JZ-(RO|v7BY&>8H-<-SJo2&sSMKcKeYJved4h7;6u?Wha|!4jIuzee zLY_wBcwJhdF1r^lREAM!q_Xq7-#esChSEL!wI`g8wATYQx^>9)WMRfk@4U6RZ@f7| z?&CsV*NtyQkXaj42+QzJ z=E=KDI^7;gjP*-^{Y&m}InC=FcNg}Jo|m^kSA%RA*Z_Y ztOje|8r@P1l>Q}1|8tjNmlSbNTtj`oYEaGJK9q|fNH)RP;Z~k*YgL_o&f^HI>>&6m zj~a{xZr_1TTYUR0vLbbM-I8O5`{5&eJx*s+tVWPP@kz$X;=S7}9r-#2`-D?JPuEB( z$1%#A7bsOZo(X4b08K;U4y*7kNxoFBQ;+XStb3L_!d<01)s4FG;)yX}&_}Ii-7^f&~ zmvQAz%_pAg^74?Z$kpvuoos2-om=g7n1xP>r~zlHflZdR8cgd1`X)Njnt?C~`lj5% z82&ps5c;yNff0UE|LuWw!CHz0yc_mqrxo&H$wz$f`QAuCKCZOD2$$2hCN1-zG!^~{DRLYa^7}=zHAwg3o zmq$uUsLCJ3Z24a{)BAd5%dj8dBkEV zh%_n;8Zky2;Q_O-fpA*vtHq$?Z2#k+@#`zkb;Go%u};zg@>Fu46B8ohp&{ zo?bM@2wehMd0Ar(!wsFl$X}ZRW`*N#|(FPgzAVFZ}xb#!hBgcjiE|a z#afVBjaDAAdOZOP-r&gkjmvkYroOC-5xbI^k_3Uil$O6tYgW1Et~Qv2ZHZ{%nwJeP z&t>>{VN{GDgtGGcetDj;pdjPCs8!fjHvjF=w>#UbzSHlKmcQMlYuPEG?*F`-kTUf` z`I$9?YrN_=7&YcBXPRZbIorvwaG5Y|JS{b`Zl&Vmv^0+NxjCO=4tejl?XDtP5>Ttg z+JW}uRJjr@R}E3`{Y2ELaf(;3ELWF5{oq|Fms_2emzg{)+Zy-F>X%pgRvC+o1qDSW z!kOEr7xIdFHoYfc~ec^Dazd?*7w40Jd>s= zHc1l;s5f(RE>Y!)GNX~tq-?bsH(POZXh!_+DGrkVCHem&&v)nQ9tMQTH!-ug?8m7|*9G`z$4W zpQ!rGC4G#o4z*rQQM^l6@x`2mzPOXWo%k+^^zo9!PEz4x;UJ6oF^@aVWKMH=9}kj< zwU?Ut)g|@JLTaM|*pt7G^4)<1&UHW0L7b2^Oz>?&AIGSx<;F*MKF0J>-%bS0*Rp)JK9?e5xJf;g7PqmyE+7C3sX7~c<1F+4OXC1btO#%9oftnz=os^|TWVOfx9NOY7A(rd+d zL9I9T=lXj4YkJ5-<5o!Nwf8`Su41nWSBKW8-R9grwD}wM{Jf*(Y0$^TsLn)cV0dmI zVis49b_hlr)5;c^)+4>1?G9`G#11M)#|PM#rj1Vo(|XkNg-kb&+upQ8knURBF4|_h z^u1V*)oVt2$ZN7UeuQ4>uVUKYBE!3k4irN#;Ba|4Ln1HX>U7+j$s1(`|5lB_X&^d> z_kz?xr(e?Y7&^%&O;4%Zw! zB4uXK&!+gA?cS?A^FtsTzuO|23H&S`?}34!Gdm;|V2or-?Abh0wubcBNW@(1trPU7 zf$7u9Go#>a0_}Zje|8{yowH7F45mq?PcDU?pf|prEZM7MR_cLmrQVkF!HCStTnwb0 zO`yH#2d=53uQ;9K#+5qJ-j0ZjX*foQ8ZmKRXFAzl*NOH%^|2f?)1w^6zA(3EJ=PWx z=%yJFOQg~B-ZdAGp!%XE8&{*IjD5hJS7qu^0qPGG7WH6h7K>#n5UJTSQ(=|lX@%7>0W8-HAdE=nbvA&!@e+D3$j$tCK%=W<6 z38L}!goF76J>p^@TOUz61;1n%$}At_asYET=)+>H%i-WX-usuH`qqd*&f7GNc3hIL z<4iW5fSFhvYU1&WK{UF%@A@_t>vFL}DK?px`Y8?C?UAV@IS?~x^k6bX)QPRRbV{gJb&@oM(BEuG%UzW%8HAMc9wQQ=!5Mgbka36@l z4GPUYj4#s$2BFD^0Oq@#3R!UvXl00qd2aD(dihcK?QcwD@97!{G>JAy2$n+A&V)qW zBy?B6%&YO4B#xjj@@@z24Tx_t^&u0fvK9WB;@z-jCe z(~0kzdZ(R5lq_Q!U4Epf+Rs_q9>$~$C=4xESL8~Dgm}`^u{TqJjD!&l+@*$y7Q3u< zqH3jkKsk%Tz%#n&pndZ58d91bl_AAyK#&V;CIM)pt@j%yq;k@~X0J;$=g#(n_wF0* zK{Tj@&%whjcmqlyCZTU=`C^cxKgOzCF0t9ziU!1@N|QK(^0}SjscahUDoIG*r7Qup zOo6MfTR~O89TMo%R75H{g^Iq#rRlVrqW1!%yj8OGIUKLWrpYe<>;K;g|2~FcflAY3 z0jjSf2B6yxdCUc&@YAIItt>@TVIsIQ==EK6hr{>NAUkPArl*@X812hO4|v=1~eN6cyQtkRKs55V5#fQKWlT;~p+5#Ho{6 zo43AenR+Knm~-x1YofUjU=7ljjEFMQOBI|YS}9qZ0l^=f*xYDm!BMbqIf>MMZ^nMm z4qC^!Bb5Cz&P0N>bkNEBw#BCzZCu=2meJ_G6%KPSvSG%@0>kF~sIR<6IL1<0G8il^8;Y9~U{)WjVN4d}fBQ6MMqxS-rd$2Ci-7 zd@BX2v^Mt7r`Q$7Bs=2cV%SoOpSQ>^Lt;2?b0ptM?{0J?My#`qY5k`7;6CE%Lg(?lq7Q2vT!Uq+m zgjlOF4t_AYWm;>iXxuWLX|J~bwV6*xFMrsXPbrwFnAQN0w~{7NF*8)-^D?|#Bvo34 z&s@hevWOXHXf)c%*?OW3(^Zi5DH9Qd0W%6RYaVPfvsbyXIb(M^tvyohmki!ylLa+mR~_V4b>N=Bi7vQ8&C+O2ZH5`e{I7qhH%X205t zD>txFaMJVbKNU}@+vE2CaPn@NK<)^8v=K(*s_Vb1WeuA+jzb{rWl9thmdY0a-kU*Y zGMu-f+LQqXr=3<&v%n?K<5JLk?46!}sod%~5DI zUJ&WhccFY`eC;=@+GIReS@S?8^m7@CSL=kHydoj> z>({e3F0(YCWmpRa6QiTewrV~C{FRf;am$(6{DQ?U?>cz92gG$^j3?tBfD*IZsTzJf zQmQV~8AK?fHby!Thz2RmRb9!#s{pDp@L+(!$#zDzOg7vqX@nC^;4;7VjCLZOIVnc9 z2r7Y2S9|1R2p~s)Qc)Wr*k4qL>RjGUB2&kl^AJXtsV^i^16XhmfI@RkiySi9wr})A@yG@GC#|-sIZ5n0CV(p?iM5L?9H(I1i*GnJB|k9(ELsc>8VwJW0djpsG(5bY;zC;!@_QTcwUWw> zBf?8^PE+(a>HSeSG6Ewkrh{xBH^sFC0Uy!M%j;McgX?_5ivo@c1VCW+`^>ks@#H_z z(0>8o{hia^WzYM5-@Y{f^pN3cdMGV3v#=InY<3~FIyLcW=N8g#7nq!mkApWUNar*# zRI{nTrd`Sgj}tIDsy>~%;n^KqbJ$)-cDg3x9JT5VK_@?57ZBDQ)C#A`wVH&~?D&%s za0OkG&Gq;)9Y%3&xnd^pY{UN!p9J*xT3{d+;=t~R0TfS^zyqpZBNifnRve6n1egF5 z0mEz%;T*tfZVzLg`4+@!VcZs3Yzb1|;g@8o<5n`OLo$7P*9Ua zL&w0x!Y(fkE*^db3A!CZqU4GDDI{r=lF98<;dWi>k*IXCysui*1lLQJWxZU`2IR3W&<2iGUeMXu zTin^J>E?G6og>xVT4zhog=J|)ZgDg%R*Tv1OC$YMi4)7V2ec9P7D0x1xA=z!*9(?8 z$(FL?!n%COwAS5Adlv6`lG9zpdbTduPffO4?oJ%yc)ulr^p-&mr@Gs-=JiK#ohjAj zxw=tZ{@?ZOR%}J|l!GVcrFGBWXxje2Fu%9z3HJ4WQ^2M!tv%$ERO+MjF45K$k>vr( z9*v|j*Y^-opXy`M4H=RGZt!t)Lr<3)N(#|Xa%jME!_9NpTCG}7>uG&T{e?c7Qku?B zeobmiO3Q^F!l_{zR@+nBm-5l^S|K8!_JuJzQ#)xV?IfLQr`na=73)&FlDkv7FAUKW z>k;>90+0AdV?S25c%0T*URv8u4{aag4n6wAZNz{#^LTijM~!M`8U}3 z+ehPM=4J6#A3ya!ezM_YZ4wrtLShamCmixmtPxEAWXIMQ?`7pyFCeJU`fnoOdIFe! uCqMRb=oYdzSo8M;oHKZ_D>qn4zAPM;$oR!)!+O8unD~teUV!!h0000*MRxiC diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-400-latin.4GdczIuU.woff2 b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-400-latin.4GdczIuU.woff2 deleted file mode 100644 index 03e4859816da02b8d788146d1b80847cf8b03fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14820 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 Gw*mkL5_L5I diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-500-latin.DRMDZjhP.woff2 b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Mono-normal-500-latin.DRMDZjhP.woff2 deleted file mode 100644 index 67698d873cee7836851e17114f22a030f8294872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14988 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 WNo?L6xNB_kt5n5zqCy4&rvm_d*X()# diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2 b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2 deleted file mode 100644 index db39c6263056cff430c828fe7035b9ba5edaa6ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18228 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 diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Sans-normal-400-latin.Xz1IZZA0.woff2 b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DM_Sans-normal-400-latin.Xz1IZZA0.woff2 deleted file mode 100644 index 01383d7e5c4340847b8fe4570ad0458e6582989d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36932 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 diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DNdyEWwv.js b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DNdyEWwv.js deleted file mode 100644 index 2feb8d39..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DNdyEWwv.js +++ /dev/null @@ -1 +0,0 @@ -import{d as j,u as q,a as L,o as z,b as E,r as O,c as H,e as I,h as A,f as P,p as U,g as D,s as V,i as M,j as B,k as F,n as $,l as p,m as W,q as T,t as G,w as K,v as Q,x as J,_ as X,y as Y,z as Z,A as S,B as _,C as ee,D as te,E as ne}from"./Dgz6sxCl.js";import{u as re}from"./BGLmsXN0.js";const ae=(...t)=>t.find(o=>o!==void 0);function oe(t){const o=t.componentName||"NuxtLink";function c(e){return typeof e=="string"&&e.startsWith("#")}function w(e,i,d){const n=d??t.trailingSlash;if(!e||n!=="append"&&n!=="remove")return e;if(typeof e=="string")return R(e,n);const l="path"in e&&e.path!==void 0?e.path:i(e).path;return{...e,name:void 0,path:R(l,n)}}function C(e){const i=q(),d=G(),n=p(()=>!!e.target&&e.target!=="_self"),l=p(()=>{const s=e.to||e.href||"";return typeof s=="string"&&T(s,{acceptRelative:!0})}),m=P("RouterLink"),v=m&&typeof m!="string"?m.useLink:void 0,f=p(()=>{if(e.external)return!0;const s=e.to||e.href||"";return typeof s=="object"?!1:s===""||l.value}),a=p(()=>{const s=e.to||e.href||"";return f.value?s:w(s,i.resolve,e.trailingSlash)}),g=f.value?void 0:v?.({...e,to:a}),b=p(()=>{const s=e.trailingSlash??t.trailingSlash;if(!a.value||l.value||c(a.value))return a.value;if(f.value){const x=typeof a.value=="object"&&"path"in a.value?B(a.value):a.value,k=typeof x=="object"?i.resolve(x).href:x;return R(k,s)}return typeof a.value=="object"?i.resolve(a.value)?.href??null:R(W(d.app.baseURL,a.value),s)});return{to:a,hasTarget:n,isAbsoluteUrl:l,isExternal:f,href:b,isActive:g?.isActive??p(()=>a.value===i.currentRoute.value.path),isExactActive:g?.isExactActive??p(()=>a.value===i.currentRoute.value.path),route:g?.route??p(()=>i.resolve(a.value)),async navigate(s){await $(b.value,{replace:e.replace,external:f.value||n.value})}}}return j({name:o,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:C,setup(e,{slots:i}){const d=q(),{to:n,href:l,navigate:m,isExternal:v,hasTarget:f,isAbsoluteUrl:a}=C(e),g=V(!1),b=M(null),s=u=>{b.value=e.custom?u?.$el?.nextElementSibling:u?.$el};function x(u){return!g.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"&&!ue()}async function k(u=L()){if(g.value)return;g.value=!0;const h=typeof n.value=="string"?n.value:v.value?B(n.value):d.resolve(n.value).fullPath,r=v.value?new URL(h,window.location.href).href:h;await Promise.all([u.hooks.callHook("link:prefetch",r).catch(()=>{}),!v.value&&!f.value&&F(n.value,d).catch(()=>{})])}if(x("visibility")){const u=L();let h,r=null;z(()=>{const y=le();E(()=>{h=O(()=>{b?.value?.tagName&&(r=y.observe(b.value,async()=>{r?.(),r=null,await k(u)}))})})}),H(()=>{h&&I(h),r?.(),r=null})}return()=>{if(!v.value&&!f.value&&!c(n.value)){const r={ref:s,to:n.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(x("interaction")&&(r.onPointerenter=k.bind(null,void 0),r.onFocus=k.bind(null,void 0)),g.value&&(r.class=e.prefetchedClass||t.prefetchedClass),r.rel=e.rel||void 0),A(P("RouterLink"),r,i.default)}const u=e.target||null,h=ae(e.noRel?"":e.rel,t.externalRelAttribute,a.value||f.value?"noopener noreferrer":"")||null;return e.custom?i.default?i.default({href:l.value,navigate:m,prefetch:k,get route(){if(!l.value)return;const r=new URL(l.value,window.location.href);return{path:r.pathname,fullPath:r.pathname,get query(){return U(r.search)},hash:r.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:l.value}},rel:h,target:u,isExternal:v.value||f.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:b,href:l.value||null,rel:h,target:u,onClick:async r=>{if(!(v.value||f.value)){r.preventDefault();try{const y=D(l.value);return await(e.replace?d.replace(y):d.push(y))}finally{if(c(n.value)){const y=n.value.slice(1);let N=y;try{N=decodeURIComponent(y)}catch{}document.getElementById(N)?.focus()}}}}},i.default?.())}}})}const ie=oe(J);function R(t,o){const c=o==="append"?K:Q;return T(t)&&!t.startsWith("http")?t:c(t,!0)}function le(){const t=L();if(t._observer)return t._observer;let o=null;const c=new Map,w=(e,i)=>(o||=new IntersectionObserver(d=>{for(const n of d){const l=c.get(n.target);(n.isIntersecting||n.intersectionRatio>0)&&l&&l()}}),c.set(e,i),o.observe(e),()=>{c.delete(e),o?.unobserve(e),c.size===0&&(o?.disconnect(),o=null)});return t._observer={observe:w}}const se=/2g/;function ue(){const t=navigator.connection;return!!(t&&(t.saveData||se.test(t.effectiveType)))}const ce={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},fe={class:"max-w-520px text-center"},de=["textContent"],he=["textContent"],ve=["textContent"],ge={class:"flex items-center justify-center w-full"},pe={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page 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 o=t;return re({title:`${o.status} - ${o.statusText} | ${o.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,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,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: }'}]}),(c,w)=>{const C=ie;return Y(),Z("div",ce,[S("div",fe,[S("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:_(t.status)},null,8,de),S("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:_(t.statusText)},null,8,he),S("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:_(t.description)},null,8,ve),S("div",ge,[ee(C,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:te(()=>[ne(_(t.backHome),1)]),_:1})])])])}}},xe=X(pe,[["__scopeId","data-v-204d37bf"]]);export{xe as default}; diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Dgz6sxCl.js b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Dgz6sxCl.js deleted file mode 100644 index a6fe4c1f..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Dgz6sxCl.js +++ /dev/null @@ -1,4 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CeoJbNH2.js","./BGLmsXN0.js","./DNdyEWwv.js","./error-404.C-Ezrlz-.css","./CBwmZ8LB.js","./error-500.DBWf9FGj.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 Js(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ae={},nn=[],it=()=>{},Qi=()=>!1,Jn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Ys=e=>e.startsWith("onUpdate:"),we=Object.assign,zs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},dc=Object.prototype.hasOwnProperty,oe=(e,t)=>dc.call(e,t),J=Array.isArray,rn=e=>vn(e)==="[object Map]",Ir=e=>vn(e)==="[object Set]",Ro=e=>vn(e)==="[object Date]",hc=e=>vn(e)==="[object RegExp]",z=e=>typeof e=="function",pe=e=>typeof e=="string",lt=e=>typeof e=="symbol",re=e=>e!==null&&typeof e=="object",Xi=e=>(re(e)||z(e))&&z(e.then)&&z(e.catch),Zi=Object.prototype.toString,vn=e=>Zi.call(e),pc=e=>vn(e).slice(8,-1),el=e=>vn(e)==="[object Object]",Nr=e=>pe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Vt=Js(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Mr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},gc=/-\w/g,Ke=Mr(e=>e.replace(gc,t=>t.slice(1).toUpperCase())),mc=/\B([A-Z])/g,Jt=Mr(e=>e.replace(mc,"-$1").toLowerCase()),Hr=Mr(e=>e.charAt(0).toUpperCase()+e.slice(1)),zr=Mr(e=>e?`on${Hr(e)}`:""),Pt=(e,t)=>!Object.is(e,t),sn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Lr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},nl=e=>{const t=pe(e)?Number(e):NaN;return isNaN(t)?e:t};let Co;const Dr=()=>Co||(Co=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Fr(e){if(J(e)){const t={};for(let n=0;n{if(n){const r=n.split(_c);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function jr(e){let t="";if(pe(e))t=e;else if(J(e))for(let n=0;nYn(n,t))}const sl=e=>!!(e&&e.__v_isRef===!0),Sc=e=>pe(e)?e:e==null?"":J(e)||re(e)&&(e.toString===Zi||!z(e.toString))?sl(e)?Sc(e.value):JSON.stringify(e,ol,2):String(e),ol=(e,t)=>sl(t)?ol(e,t.value):rn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[Qr(r,o)+" =>"]=s,n),{})}:Ir(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Qr(n))}:lt(t)?Qr(t):re(t)&&!J(t)&&!el(t)?String(t):t,Qr=(e,t="")=>{var n;return lt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Oe;class il{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Oe,!t&&Oe&&(this.index=(Oe.scopes||(Oe.scopes=[])).push(this)-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&&(Oe=this.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(Nn){let t=Nn;for(Nn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;In;){let t=In;for(In=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 ul(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function dl(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Zs(r),xc(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function _s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Bn)||(e.globalVersion=Bn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_s(e))))return;e.flags|=2;const t=e.dep,n=ue,r=ze;ue=e,ze=!0;try{ul(e);const s=e.fn(e._value);(t.version===0||Pt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ue=n,ze=r,dl(e),e.flags&=-3}}function Zs(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)Zs(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function xc(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let ze=!0;const pl=[];function _t(){pl.push(ze),ze=!1}function bt(){const e=pl.pop();ze=e===void 0?!0:e}function So(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ue;ue=void 0;try{t()}finally{ue=n}}}let Bn=0;class kc{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 eo{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(!ue||!ze||ue===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ue)n=this.activeLink=new kc(ue,this),ue.deps?(n.prevDep=ue.depsTail,ue.depsTail.nextDep=n,ue.depsTail=n):ue.deps=ue.depsTail=n,gl(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=ue.depsTail,n.nextDep=void 0,ue.depsTail.nextDep=n,ue.depsTail=n,ue.deps===n&&(ue.deps=r)}return n}trigger(t){this.version++,Bn++,this.notify(t)}notify(t){Qs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Xs()}}}function gl(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)gl(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const pr=new WeakMap,Wt=Symbol(""),bs=Symbol(""),Un=Symbol("");function Ce(e,t,n){if(ze&&ue){let r=pr.get(e);r||pr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new eo),s.map=r,s.key=n),s.track()}}function pt(e,t,n,r,s,o){const i=pr.get(e);if(!i){Bn++;return}const l=a=>{a&&a.trigger()};if(Qs(),t==="clear")i.forEach(l);else{const a=J(e),u=a&&Nr(n);if(a&&n==="length"){const c=Number(r);i.forEach((f,p)=>{(p==="length"||p===Un||!lt(p)&&p>=c)&&l(f)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Un)),t){case"add":a?u&&l(i.get("length")):(l(i.get(Wt)),rn(e)&&l(i.get(bs)));break;case"delete":a||(l(i.get(Wt)),rn(e)&&l(i.get(bs)));break;case"set":rn(e)&&l(i.get(Wt));break}}Xs()}function Pc(e,t){const n=pr.get(e);return n&&n.get(t)}function Qt(e){const t=ne(e);return t===e?t:(Ce(t,"iterate",Un),je(e)?t:t.map(Qe))}function Br(e){return Ce(e=ne(e),"iterate",Un),e}function St(e,t){return at(e)?dn(Ot(e)?Qe(t):t):Qe(t)}const Oc={__proto__:null,[Symbol.iterator](){return Zr(this,Symbol.iterator,e=>St(this,e))},concat(...e){return Qt(this).concat(...e.map(t=>J(t)?Qt(t):t))},entries(){return Zr(this,"entries",e=>(e[1]=St(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,n=>n.map(r=>St(this,r)),arguments)},find(e,t){return ct(this,"find",e,t,n=>St(this,n),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,n=>St(this,n),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return es(this,"includes",e)},indexOf(...e){return es(this,"indexOf",e)},join(e){return Qt(this).join(e)},lastIndexOf(...e){return es(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return Cn(this,"pop")},push(...e){return Cn(this,"push",e)},reduce(e,...t){return Ao(this,"reduce",e,t)},reduceRight(e,...t){return Ao(this,"reduceRight",e,t)},shift(){return Cn(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return Cn(this,"splice",e)},toReversed(){return Qt(this).toReversed()},toSorted(e){return Qt(this).toSorted(e)},toSpliced(...e){return Qt(this).toSpliced(...e)},unshift(...e){return Cn(this,"unshift",e)},values(){return Zr(this,"values",e=>St(this,e))}};function Zr(e,t,n){const r=Br(e),s=r[t]();return r!==e&&!je(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Ic=Array.prototype;function ct(e,t,n,r,s,o){const i=Br(e),l=i!==e&&!je(e),a=i[t];if(a!==Ic[t]){const f=a.apply(e,o);return l?Qe(f):f}let u=n;i!==e&&(l?u=function(f,p){return n.call(this,St(e,f),p,e)}:n.length>2&&(u=function(f,p){return n.call(this,f,p,e)}));const c=a.call(i,u,r);return l&&s?s(c):c}function Ao(e,t,n,r){const s=Br(e);let o=n;return s!==e&&(je(e)?n.length>3&&(o=function(i,l,a){return n.call(this,i,l,a,e)}):o=function(i,l,a){return n.call(this,i,St(e,l),a,e)}),s[t](o,...r)}function es(e,t,n){const r=ne(e);Ce(r,"iterate",Un);const s=r[t](...n);return(s===-1||s===!1)&&Ur(n[0])?(n[0]=ne(n[0]),r[t](...n)):s}function Cn(e,t,n=[]){_t(),Qs();const r=ne(e)[t].apply(e,n);return Xs(),bt(),r}const Nc=Js("__proto__,__v_isRef,__isVue"),ml=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(lt));function Mc(e){lt(e)||(e=String(e));const t=ne(this);return Ce(t,"has",e),t.hasOwnProperty(e)}class yl{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?Wc:wl:o?vl:bl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=J(t);if(!s){let a;if(i&&(a=Oc[n]))return a;if(n==="hasOwnProperty")return Mc}const l=Reflect.get(t,n,ye(t)?t:r);if((lt(n)?ml.has(n):Nc(n))||(s||Ce(t,"get",n),o))return l;if(ye(l)){const a=i&&Nr(n)?l:l.value;return s&&re(a)?ws(a):a}return re(l)?s?ws(l):Nt(l):l}}class _l extends yl{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=J(t)&&Nr(n);if(!this._isShallow){const u=at(o);if(!je(r)&&!at(r)&&(o=ne(o),r=ne(r)),!i&&ye(o)&&!ye(r))return u||(o.value=r),!0}const l=i?Number(n)e,tr=e=>Reflect.getPrototypeOf(e);function jc(e,t,n){return function(...r){const s=this.__v_raw,o=ne(s),i=rn(o),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=s[e](...r),c=n?vs:t?dn:Qe;return!t&&Ce(o,"iterate",a?bs:Wt),we(Object.create(u),{next(){const{value:f,done:p}=u.next();return p?{value:f,done:p}:{value:l?[c(f[0]),c(f[1])]:c(f),done:p}}})}}function nr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Bc(e,t){const n={get(s){const o=this.__v_raw,i=ne(o),l=ne(s);e||(Pt(s,l)&&Ce(i,"get",s),Ce(i,"get",l));const{has:a}=tr(i),u=t?vs:e?dn:Qe;if(a.call(i,s))return u(o.get(s));if(a.call(i,l))return u(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ce(ne(s),"iterate",Wt),s.size},has(s){const o=this.__v_raw,i=ne(o),l=ne(s);return e||(Pt(s,l)&&Ce(i,"has",s),Ce(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=ne(l),u=t?vs:e?dn:Qe;return!e&&Ce(a,"iterate",Wt),l.forEach((c,f)=>s.call(o,u(c),u(f),i))}};return we(n,e?{add:nr("add"),set:nr("set"),delete:nr("delete"),clear:nr("clear")}:{add(s){!t&&!je(s)&&!at(s)&&(s=ne(s));const o=ne(this);return tr(o).has.call(o,s)||(o.add(s),pt(o,"add",s,s)),this},set(s,o){!t&&!je(o)&&!at(o)&&(o=ne(o));const i=ne(this),{has:l,get:a}=tr(i);let u=l.call(i,s);u||(s=ne(s),u=l.call(i,s));const c=a.call(i,s);return i.set(s,o),u?Pt(o,c)&&pt(i,"set",s,o):pt(i,"add",s,o),this},delete(s){const o=ne(this),{has:i,get:l}=tr(o);let a=i.call(o,s);a||(s=ne(s),a=i.call(o,s)),l&&l.call(o,s);const u=o.delete(s);return a&&pt(o,"delete",s,void 0),u},clear(){const s=ne(this),o=s.size!==0,i=s.clear();return o&&pt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=jc(s,e,t)}),n}function to(e,t){const n=Bc(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(oe(n,s)&&s in r?n:r,s,o)}const Uc={get:to(!1,!1)},$c={get:to(!1,!0)},Vc={get:to(!0,!1)};const bl=new WeakMap,vl=new WeakMap,wl=new WeakMap,Wc=new WeakMap;function Kc(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Gc(e){return e.__v_skip||!Object.isExtensible(e)?0:Kc(pc(e))}function Nt(e){return at(e)?e:no(e,!1,Lc,Uc,bl)}function mt(e){return no(e,!1,Fc,$c,vl)}function ws(e){return no(e,!0,Dc,Vc,wl)}function no(e,t,n,r,s){if(!re(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=Gc(e);if(o===0)return e;const i=s.get(e);if(i)return i;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function Ot(e){return at(e)?Ot(e.__v_raw):!!(e&&e.__v_isReactive)}function at(e){return!!(e&&e.__v_isReadonly)}function je(e){return!!(e&&e.__v_isShallow)}function Ur(e){return e?!!e.__v_raw:!1}function ne(e){const t=e&&e.__v_raw;return t?ne(t):e}function qc(e){return!oe(e,"__v_skip")&&Object.isExtensible(e)&&tl(e,"__v_skip",!0),e}const Qe=e=>re(e)?Nt(e):e,dn=e=>re(e)?ws(e):e;function ye(e){return e?e.__v_isRef===!0:!1}function yt(e){return El(e,!1)}function $n(e){return El(e,!0)}function El(e,t){return ye(e)?e:new Jc(e,t)}class Jc{constructor(t,n){this.dep=new eo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ne(t),this._value=n?t:Qe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||je(t)||at(t);t=r?t:ne(t),Pt(t,n)&&(this._rawValue=t,this._value=r?t:Qe(t),this.dep.trigger())}}function de(e){return ye(e)?e.value:e}function Yc(e){return z(e)?e():de(e)}const zc={get:(e,t,n)=>t==="__v_raw"?e:de(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ye(s)&&!ye(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Tl(e){return Ot(e)?e:new Proxy(e,zc)}class Qc{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._raw=ne(t);let s=!0,o=t;if(!J(t)||!Nr(String(n)))do s=!Ur(o)||je(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=de(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ye(this._raw[this._key])){const n=this._object[this._key];if(ye(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Pc(this._raw,this._key)}}class Xc{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 Zc(e,t,n){return ye(e)?e:z(e)?new Xc(e):re(e)&&arguments.length>1?ef(e,t,n):yt(e)}function ef(e,t,n){return new Qc(e,t,n)}class tf{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new eo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Bn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ue!==this)return fl(this,!0),!0}get value(){const t=this.dep.track();return hl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function nf(e,t,n=!1){let r,s;return z(e)?r=e:(r=e.get,s=e.set),new tf(r,s,n)}const rr={},gr=new WeakMap;let jt;function rf(e,t=!1,n=jt){if(n){let r=gr.get(n);r||gr.set(n,r=[]),r.push(e)}}function sf(e,t,n=ae){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:a}=n,u=b=>s?b:je(b)||s===!1||s===0?gt(b,1):gt(b);let c,f,p,d,m=!1,_=!1;if(ye(e)?(f=()=>e.value,m=je(e)):Ot(e)?(f=()=>u(e),m=!0):J(e)?(_=!0,m=e.some(b=>Ot(b)||je(b)),f=()=>e.map(b=>{if(ye(b))return b.value;if(Ot(b))return u(b);if(z(b))return a?a(b,2):b()})):z(e)?t?f=a?()=>a(e,2):e:f=()=>{if(p){_t();try{p()}finally{bt()}}const b=jt;jt=c;try{return a?a(e,3,[d]):e(d)}finally{jt=b}}:f=it,t&&s){const b=f,E=s===!0?1/0:s;f=()=>gt(b(),E)}const T=ll(),R=()=>{c.stop(),T&&T.active&&zs(T.effects,c)};if(o&&t){const b=t;t=(...E)=>{b(...E),R()}}let v=_?new Array(e.length).fill(rr):rr;const g=b=>{if(!(!(c.flags&1)||!c.dirty&&!b))if(t){const E=c.run();if(s||m||(_?E.some((S,M)=>Pt(S,v[M])):Pt(E,v))){p&&p();const S=jt;jt=c;try{const M=[E,v===rr?void 0:_&&v[0]===rr?[]:v,d];v=E,a?a(t,3,M):t(...M)}finally{jt=S}}}else c.run()};return l&&l(g),c=new al(f),c.scheduler=i?()=>i(g,!1):g,d=b=>rf(b,!1,c),p=c.onStop=()=>{const b=gr.get(c);if(b){if(a)a(b,4);else for(const E of b)E();gr.delete(c)}},t?r?g(!0):v=c.run():i?i(g.bind(null,!0),!0):c.run(),R.pause=c.pause.bind(c),R.resume=c.resume.bind(c),R.stop=R,R}function gt(e,t=1/0,n){if(t<=0||!re(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ye(e))gt(e.value,t,n);else if(J(e))for(let r=0;r{gt(r,t,n)});else if(el(e)){for(const r in e)gt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&>(e[r],t,n)}return e}function zn(e,t,n,r){try{return r?e(...r):e()}catch(s){wn(s,t,n)}}function Xe(e,t,n,r){if(z(e)){const s=zn(e,t,n,r);return s&&Xi(s)&&s.catch(o=>{wn(o,t,n)}),s}if(J(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Vn(s);o=Vn(n)?xe.push(e):xe.splice(lf(t),0,e),e.flags|=1,Cl()}}function Cl(){mr||(mr=Rl.then(Sl))}function Es(e){J(e)?on.push(...e):At&&e.id===-1?At.splice(Zt+1,0,e):e.flags&1||(on.push(e),e.flags|=1),Cl()}function xo(e,t,n=nt+1){for(;nVn(n)-Vn(r));if(on.length=0,At){At.push(...t);return}for(At=t,Zt=0;Zte.id==null?e.flags&2?-1:1/0:e.id;function Sl(e){try{for(nt=0;nt{r._d&&Tr(-1);const o=_r(t);let i;try{i=e(...s)}finally{_r(o),r._d&&Tr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function cm(e,t){if(Fe===null)return e;const n=Kr(Fe),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&z(t)?t.call(r&&r.proxy):t}}function so(){return!!(En()||Kt)}const af=Symbol.for("v-scx"),cf=()=>Be(af);function ff(e,t){return oo(e,null,t)}function an(e,t,n){return oo(e,t,n)}function oo(e,t,n=ae){const{immediate:r,deep:s,flush:o,once:i}=n,l=we({},n),a=t&&r||!t&&o!=="post";let u;if(yn){if(o==="sync"){const d=cf();u=d.__watcherHandles||(d.__watcherHandles=[])}else if(!a){const d=()=>{};return d.stop=it,d.resume=it,d.pause=it,d}}const c=Ee;l.call=(d,m,_)=>Xe(d,c,m,_);let f=!1;o==="post"?l.scheduler=d=>{be(d,c&&c.suspense)}:o!=="sync"&&(f=!0,l.scheduler=(d,m)=>{m?d():ro(d)}),l.augmentJob=d=>{t&&(d.flags|=4),f&&(d.flags|=2,c&&(d.id=c.uid,d.i=c))};const p=sf(e,t,l);return yn&&(u?u.push(p):a&&p()),p}function uf(e,t,n){const r=this.proxy,s=pe(e)?e.includes(".")?kl(r,e):()=>r[e]:e.bind(r,r);let o;z(t)?o=t:(o=t.handler,n=t);const i=er(this),l=oo(s,o.bind(r),n);return i(),l}function kl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,st=Symbol("_leaveCb"),Sn=Symbol("_enterCb");function hf(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return lo(()=>{e.isMounted=!0}),Zn(()=>{e.isUnmounting=!0}),e}const $e=[Function,Array],Ol={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:$e,onEnter:$e,onAfterEnter:$e,onEnterCancelled:$e,onBeforeLeave:$e,onLeave:$e,onAfterLeave:$e,onLeaveCancelled:$e,onBeforeAppear:$e,onAppear:$e,onAfterAppear:$e,onAppearCancelled:$e},Il=e=>{const t=e.subTree;return t.component?Il(t.component):t},pf={name:"BaseTransition",props:Ol,setup(e,{slots:t}){const n=En(),r=hf();return()=>{const s=t.default&&Hl(t.default(),!0);if(!s||!s.length)return;const o=Nl(s),i=ne(e),{mode:l}=i;if(r.isLeaving)return ts(o);const a=ko(o);if(!a)return ts(o);let u=Ts(a,i,r,n,f=>u=f);a.type!==ve&&pn(a,u);let c=n.subTree&&ko(n.subTree);if(c&&c.type!==ve&&!Je(c,a)&&Il(n).type!==ve){let f=Ts(c,i,r,n);if(pn(c,f),l==="out-in"&&a.type!==ve)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},ts(o);l==="in-out"&&a.type!==ve?f.delayLeave=(p,d,m)=>{const _=Ml(r,c);_[String(c.key)]=c,p[st]=()=>{d(),p[st]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{m(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function Nl(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ve){t=n;break}}return t}const gf=pf;function Ml(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 Ts(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:p,onLeave:d,onAfterLeave:m,onLeaveCancelled:_,onBeforeAppear:T,onAppear:R,onAfterAppear:v,onAppearCancelled:g}=t,b=String(e.key),E=Ml(n,e),S=(I,N)=>{I&&Xe(I,r,9,N)},M=(I,N)=>{const W=N[1];S(I,N),J(I)?I.every(O=>O.length<=1)&&W():I.length<=1&&W()},V={mode:i,persisted:l,beforeEnter(I){let N=a;if(!n.isMounted)if(o)N=T||a;else return;I[st]&&I[st](!0);const W=E[b];W&&Je(e,W)&&W.el[st]&&W.el[st](),S(N,[I])},enter(I){let N=u,W=c,O=f;if(!n.isMounted)if(o)N=R||u,W=v||c,O=g||f;else return;let K=!1;I[Sn]=le=>{K||(K=!0,le?S(O,[I]):S(W,[I]),V.delayedLeave&&V.delayedLeave(),I[Sn]=void 0)};const ee=I[Sn].bind(null,!1);N?M(N,[I,ee]):ee()},leave(I,N){const W=String(e.key);if(I[Sn]&&I[Sn](!0),n.isUnmounting)return N();S(p,[I]);let O=!1;I[st]=ee=>{O||(O=!0,N(),ee?S(_,[I]):S(m,[I]),I[st]=void 0,E[W]===e&&delete E[W])};const K=I[st].bind(null,!1);E[W]=e,d?M(d,[I,K]):K()},clone(I){const N=Ts(I,t,n,r,s);return s&&s(N),N}};return V}function ts(e){if(Xn(e))return e=vt(e),e.children=null,e}function ko(e){if(!Xn(e))return Pl(e.type)&&e.children?Nl(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&&z(n.default))return n.default()}}function pn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,pn(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 Hl(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;ocn(_,t&&(J(t)?t[T]:t),n,r,s));return}if(It(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&cn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Kr(r.component):r.el,i=s?null:o,{i:l,r:a}=e,u=t&&t.r,c=l.refs===ae?l.refs={}:l.refs,f=l.setupState,p=ne(f),d=f===ae?Qi:_=>Po(c,_)?!1:oe(p,_),m=(_,T)=>!(T&&Po(c,T));if(u!=null&&u!==a){if(Oo(t),pe(u))c[u]=null,d(u)&&(f[u]=null);else if(ye(u)){const _=t;m(u,_.k)&&(u.value=null),_.k&&(c[_.k]=null)}}if(z(a))zn(a,l,12,[i,c]);else{const _=pe(a),T=ye(a);if(_||T){const R=()=>{if(e.f){const v=_?d(a)?f[a]:c[a]:m()||!e.k?a.value:c[e.k];if(s)J(v)&&zs(v,o);else if(J(v))v.includes(o)||v.push(o);else if(_)c[a]=[o],d(a)&&(f[a]=c[a]);else{const g=[o];m(a,e.k)&&(a.value=g),e.k&&(c[e.k]=g)}}else _?(c[a]=i,d(a)&&(f[a]=i)):T&&(m(a,e.k)&&(a.value=i),e.k&&(c[e.k]=i))};if(i){const v=()=>{R(),br.delete(e)};v.id=-1,br.set(e,v),be(v,n)}else Oo(e),R()}}}function Oo(e){const t=br.get(e);t&&(t.flags|=8,br.delete(e))}let Io=!1;const Xt=()=>{Io||(console.error("Hydration completed but contains mismatches."),Io=!0)},mf=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",yf=e=>e.namespaceURI.includes("MathML"),sr=e=>{if(e.nodeType===1){if(mf(e))return"svg";if(yf(e))return"mathml"}},tn=e=>e.nodeType===8;function _f(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:a,createComment:u}}=e,c=(g,b)=>{if(!b.hasChildNodes()){n(null,g,b),yr(),b._vnode=g;return}f(b.firstChild,g,null,null,null),yr(),b._vnode=g},f=(g,b,E,S,M,V=!1)=>{V=V||!!b.dynamicChildren;const I=tn(g)&&g.data==="[",N=()=>_(g,b,E,S,M,I),{type:W,ref:O,shapeFlag:K,patchFlag:ee}=b;let le=g.nodeType;b.el=g,ee===-2&&(V=!1,b.dynamicChildren=null);let $=null;switch(W){case Gt:le!==3?b.children===""?(a(b.el=s(""),i(g),g),$=g):$=N():(g.data!==b.children&&(Xt(),g.data=b.children),$=o(g));break;case ve:v(g)?($=o(g),R(b.el=g.content.firstChild,g,E)):le!==8||I?$=N():$=o(g);break;case Hn:if(I&&(g=o(g),le=g.nodeType),le===1||le===3){$=g;const Q=!b.children.length;for(let B=0;B{V=V||!!b.dynamicChildren;const{type:I,props:N,patchFlag:W,shapeFlag:O,dirs:K,transition:ee}=b,le=I==="input"||I==="option";if(le||W!==-1){K&&rt(b,null,E,"created");let $=!1;if(v(g)){$=oa(null,ee)&&E&&E.vnode.props&&E.vnode.props.appear;const B=g.content.firstChild;if($){const ce=B.getAttribute("class");ce&&(B.$cls=ce),ee.beforeEnter(B)}R(B,g,E),b.el=g=B}if(O&16&&!(N&&(N.innerHTML||N.textContent))){let B=d(g.firstChild,b,g,E,S,M,V);for(;B;){or(g,1)||Xt();const ce=B;B=B.nextSibling,l(ce)}}else if(O&8){let B=b.children;B[0]===` -`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(B=B.slice(1));const{textContent:ce}=g;ce!==B&&ce!==B.replace(/\r\n|\r/g,` -`)&&(or(g,0)||Xt(),g.textContent=b.children)}if(N){if(le||!V||W&48){const B=g.tagName.includes("-");for(const ce in N)(le&&(ce.endsWith("value")||ce==="indeterminate")||Jn(ce)&&!Vt(ce)||ce[0]==="."||B&&!Vt(ce))&&r(g,ce,null,N[ce],void 0,E)}else if(N.onClick)r(g,"onClick",null,N.onClick,void 0,E);else if(W&4&&Ot(N.style))for(const B in N.style)N.style[B]}let Q;(Q=N&&N.onVnodeBeforeMount)&&Ie(Q,E,b),K&&rt(b,null,E,"beforeMount"),((Q=N&&N.onVnodeMounted)||K||$)&&ua(()=>{Q&&Ie(Q,E,b),$&&ee.enter(g),K&&rt(b,null,E,"mounted")},S)}return g.nextSibling},d=(g,b,E,S,M,V,I)=>{I=I||!!b.dynamicChildren;const N=b.children,W=N.length;for(let O=0;O{const{slotScopeIds:I}=b;I&&(M=M?M.concat(I):I);const N=i(g),W=d(o(g),b,N,E,S,M,V);return W&&tn(W)&&W.data==="]"?o(b.anchor=W):(Xt(),a(b.anchor=u("]"),N,W),W)},_=(g,b,E,S,M,V)=>{if(or(g.parentElement,1)||Xt(),b.el=null,V){const W=T(g);for(;;){const O=o(g);if(O&&O!==W)l(O);else break}}const I=o(g),N=i(g);return l(g),n(null,b,N,I,E,S,sr(N),M),E&&(E.vnode.el=b.el,Wr(E,b.el)),I},T=(g,b="[",E="]")=>{let S=0;for(;g;)if(g=o(g),g&&tn(g)&&(g.data===b&&S++,g.data===E)){if(S===0)return o(g);S--}return g},R=(g,b,E)=>{const S=b.parentNode;S&&S.replaceChild(g,b);let M=E;for(;M;)M.vnode.el===b&&(M.vnode.el=M.subTree.el=g),M=M.parent},v=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[c,f]}const No="data-allow-mismatch",bf={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function or(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(No);)e=e.parentElement;const n=e&&e.getAttribute(No);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:r.includes(bf[t])}}Dr().requestIdleCallback;Dr().cancelIdleCallback;function vf(e,t){if(tn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(tn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const It=e=>!!e.type.__asyncLoader;function Mo(e){z(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 u=null,c,f=0;const p=()=>(f++,u=null,d()),d=()=>{let m;return u||(m=u=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),a)return new Promise((T,R)=>{a(_,()=>T(p()),()=>R(_),f+1)});throw _}).then(_=>m!==u&&u?u:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),c=_,_)))};return Qn({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(m,_,T){let R=!1;(_.bu||(_.bu=[])).push(()=>R=!0);const v=()=>{R||T()},g=o?()=>{const b=o(v,E=>vf(m,E));b&&(_.bum||(_.bum=[])).push(b)}:v;c?g():d().then(()=>!_.isUnmounted&&g())},get __asyncResolved(){return c},setup(){const m=Ee;if(io(m),c)return()=>ir(c,m);const _=g=>{u=null,wn(g,m,13,!r)};if(l&&m.suspense||yn)return d().then(g=>()=>ir(g,m)).catch(g=>(_(g),()=>r?me(r,{error:g}):null));const T=yt(!1),R=yt(),v=yt(!!s);return s&&setTimeout(()=>{v.value=!1},s),i!=null&&setTimeout(()=>{if(!T.value&&!R.value){const g=new Error(`Async component timed out after ${i}ms.`);_(g),R.value=g}},i),d().then(()=>{T.value=!0,m.parent&&Xn(m.parent.vnode)&&m.parent.update()}).catch(g=>{_(g),R.value=g}),()=>{if(T.value&&c)return ir(c,m);if(R.value&&r)return me(r,{error:R.value});if(n&&!v.value)return ir(n,m)}}})}function ir(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=me(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const Xn=e=>e.type.__isKeepAlive,wf={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=En(),r=n.ctx;if(!r.renderer)return()=>{const v=t.default&&t.default();return v&&v.length===1?v[0]:v};const s=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:a,m:u,um:c,o:{createElement:f}}}=r,p=f("div");r.activate=(v,g,b,E,S)=>{const M=v.component;u(v,g,b,0,l),a(M.vnode,v,g,b,M,l,E,v.slotScopeIds,S),be(()=>{M.isDeactivated=!1,M.a&&sn(M.a);const V=v.props&&v.props.onVnodeMounted;V&&Ie(V,M.parent,v)},l)},r.deactivate=v=>{const g=v.component;wr(g.m),wr(g.a),u(v,p,null,1,l),be(()=>{g.da&&sn(g.da);const b=v.props&&v.props.onVnodeUnmounted;b&&Ie(b,g.parent,v),g.isDeactivated=!0},l)};function d(v){ns(v),c(v,n,l,!0)}function m(v){s.forEach((g,b)=>{const E=Os(It(g)?g.type.__asyncResolved||{}:g.type);E&&!v(E)&&_(b)})}function _(v){const g=s.get(v);g&&(!i||!Je(g,i))?d(g):i&&ns(i),s.delete(v),o.delete(v)}an(()=>[e.include,e.exclude],([v,g])=>{v&&m(b=>Pn(v,b)),g&&m(b=>!Pn(g,b))},{flush:"post",deep:!0});let T=null;const R=()=>{T!=null&&(Er(n.subTree.type)?be(()=>{s.set(T,lr(n.subTree))},n.subTree.suspense):s.set(T,lr(n.subTree)))};return lo(R),jl(R),Zn(()=>{s.forEach(v=>{const{subTree:g,suspense:b}=n,E=lr(g);if(v.type===E.type&&v.key===E.key){ns(E);const S=E.component.da;S&&be(S,b);return}d(v)})}),()=>{if(T=null,!t.default)return i=null;const v=t.default(),g=v[0];if(v.length>1)return i=null,v;if(!mn(g)||!(g.shapeFlag&4)&&!(g.shapeFlag&128))return i=null,g;let b=lr(g);if(b.type===ve)return i=null,b;const E=b.type,S=Os(It(b)?b.type.__asyncResolved||{}:E),{include:M,exclude:V,max:I}=e;if(M&&(!S||!Pn(M,S))||V&&S&&Pn(V,S))return b.shapeFlag&=-257,i=b,g;const N=b.key==null?E:b.key,W=s.get(N);return b.el&&(b=vt(b),g.shapeFlag&128&&(g.ssContent=b)),T=N,W?(b.el=W.el,b.component=W.component,b.transition&&pn(b,b.transition),b.shapeFlag|=512,o.delete(N),o.add(N)):(o.add(N),I&&o.size>parseInt(I,10)&&_(o.values().next().value)),b.shapeFlag|=256,i=b,Er(g.type)?g:b}}},Ef=wf;function Pn(e,t){return J(e)?e.some(n=>Pn(n,t)):pe(e)?e.split(",").includes(t):hc(e)?(e.lastIndex=0,e.test(t)):!1}function Ll(e,t){Fl(e,"a",t)}function Dl(e,t){Fl(e,"da",t)}function Fl(e,t,n=Ee){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if($r(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Xn(s.parent.vnode)&&Tf(r,t,n,s),s=s.parent}}function Tf(e,t,n,r){const s=$r(t,e,r,!0);Bl(()=>{zs(r[t],s)},n)}function ns(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function lr(e){return e.shapeFlag&128?e.ssContent:e}function $r(e,t,n=Ee,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{_t();const l=er(n),a=Xe(t,n,e,i);return l(),bt(),a});return r?s.unshift(o):s.push(o),o}}const wt=e=>(t,n=Ee)=>{(!yn||e==="sp")&&$r(e,(...r)=>t(...r),n)},Rf=wt("bm"),lo=wt("m"),Cf=wt("bu"),jl=wt("u"),Zn=wt("bum"),Bl=wt("um"),Sf=wt("sp"),Af=wt("rtg"),xf=wt("rtc");function Ul(e,t=Ee){$r("ec",e,t)}const $l="components";function fm(e,t){return Wl($l,e,!0,t)||e}const Vl=Symbol.for("v-ndc");function kf(e){return pe(e)?Wl($l,e,!1)||e:e||Vl}function Wl(e,t,n=!0,r=!1){const s=Fe||Ee;if(s){const o=s.type;{const l=Os(o,!1);if(l&&(l===t||l===Ke(t)||l===Hr(Ke(t))))return o}const i=Ho(s[e]||o[e],t)||Ho(s.appContext[e],t);return!i&&r?o:i}}function Ho(e,t){return e&&(e[t]||e[Ke(t)]||e[Hr(Ke(t))])}function um(e,t,n,r){let s;const o=n,i=J(e);if(i||pe(e)){const l=i&&Ot(e);let a=!1,u=!1;l&&(a=!je(e),u=at(e),e=Br(e)),s=new Array(e.length);for(let c=0,f=e.length;ct(l,a,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let a=0,u=l.length;ae?_a(e)?Kr(e):Rs(e.parent):null,Mn=we(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=>Rs(e.parent),$root:e=>Rs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Gl(e),$forceUpdate:e=>e.f||(e.f=()=>{ro(e.update)}),$nextTick:e=>e.n||(e.n=hn.bind(e.proxy)),$watch:e=>uf.bind(e)}),rs=(e,t)=>e!==ae&&!e.__isScriptSetup&&oe(e,t),Pf={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 p=i[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(rs(r,t))return i[t]=1,r[t];if(s!==ae&&oe(s,t))return i[t]=2,s[t];if(oe(o,t))return i[t]=3,o[t];if(n!==ae&&oe(n,t))return i[t]=4,n[t];Cs&&(i[t]=0)}}const u=Mn[t];let c,f;if(u)return t==="$attrs"&&Ce(e.attrs,"get",""),u(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==ae&&oe(n,t))return i[t]=4,n[t];if(f=a.config.globalProperties,oe(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return rs(s,t)?(s[t]=n,!0):r!==ae&&oe(r,t)?(r[t]=n,!0):oe(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!==ae&&l[0]!=="$"&&oe(e,l)||rs(t,l)||oe(o,l)||oe(r,l)||oe(Mn,l)||oe(s.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:oe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Lo(e){return J(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Cs=!0;function Of(e){const t=Gl(e),n=e.proxy,r=e.ctx;Cs=!1,t.beforeCreate&&Do(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:a,inject:u,created:c,beforeMount:f,mounted:p,beforeUpdate:d,updated:m,activated:_,deactivated:T,beforeDestroy:R,beforeUnmount:v,destroyed:g,unmounted:b,render:E,renderTracked:S,renderTriggered:M,errorCaptured:V,serverPrefetch:I,expose:N,inheritAttrs:W,components:O,directives:K,filters:ee}=t;if(u&&If(u,r,null),i)for(const Q in i){const B=i[Q];z(B)&&(r[Q]=B.bind(n))}if(s){const Q=s.call(n,n);re(Q)&&(e.data=Nt(Q))}if(Cs=!0,o)for(const Q in o){const B=o[Q],ce=z(B)?B.bind(n,n):z(B.get)?B.get.bind(n,n):it,Tt=!z(B)&&z(B.set)?B.set.bind(n):it,et=Ye({get:ce,set:Tt});Object.defineProperty(r,Q,{enumerable:!0,configurable:!0,get:()=>et.value,set:ke=>et.value=ke})}if(l)for(const Q in l)Kl(l[Q],r,n,Q);if(a){const Q=z(a)?a.call(n):a;Reflect.ownKeys(Q).forEach(B=>{ln(B,Q[B])})}c&&Do(c,e,"c");function $(Q,B){J(B)?B.forEach(ce=>Q(ce.bind(n))):B&&Q(B.bind(n))}if($(Rf,f),$(lo,p),$(Cf,d),$(jl,m),$(Ll,_),$(Dl,T),$(Ul,V),$(xf,S),$(Af,M),$(Zn,v),$(Bl,b),$(Sf,I),J(N))if(N.length){const Q=e.exposed||(e.exposed={});N.forEach(B=>{Object.defineProperty(Q,B,{get:()=>n[B],set:ce=>n[B]=ce,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===it&&(e.render=E),W!=null&&(e.inheritAttrs=W),O&&(e.components=O),K&&(e.directives=K),I&&io(e)}function If(e,t,n=it){J(e)&&(e=Ss(e));for(const r in e){const s=e[r];let o;re(s)?"default"in s?o=Be(s.from||r,s.default,!0):o=Be(s.from||r):o=Be(s),ye(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Do(e,t,n){Xe(J(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Kl(e,t,n,r){let s=r.includes(".")?kl(n,r):()=>n[r];if(pe(e)){const o=t[e];z(o)&&an(s,o)}else if(z(e))an(s,e.bind(n));else if(re(e))if(J(e))e.forEach(o=>Kl(o,t,n,r));else{const o=z(e.handler)?e.handler.bind(n):t[e.handler];z(o)&&an(s,o,e)}}function Gl(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(u=>vr(a,u,i,!0)),vr(a,t,i)),re(t)&&o.set(t,a),a}function vr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&vr(e,o,n,!0),s&&s.forEach(i=>vr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Nf[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Nf={data:Fo,props:jo,emits:jo,methods:On,computed:On,beforeCreate:Se,created:Se,beforeMount:Se,mounted:Se,beforeUpdate:Se,updated:Se,beforeDestroy:Se,beforeUnmount:Se,destroyed:Se,unmounted:Se,activated:Se,deactivated:Se,errorCaptured:Se,serverPrefetch:Se,components:On,directives:On,watch:Hf,provide:Fo,inject:Mf};function Fo(e,t){return t?e?function(){return we(z(e)?e.call(this,this):e,z(t)?t.call(this,this):t)}:t:e}function Mf(e,t){return On(Ss(e),Ss(t))}function Ss(e){if(J(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ke(t)}Modifiers`]||e[`${Jt(t)}Modifiers`];function jf(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ae;let s=n;const o=t.startsWith("update:"),i=o&&Ff(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>pe(c)?c.trim():c)),i.number&&(s=n.map(Lr)));let l,a=r[l=zr(t)]||r[l=zr(Ke(t))];!a&&o&&(a=r[l=zr(Jt(t))]),a&&Xe(a,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Xe(u,e,6,s)}}const Bf=new WeakMap;function Jl(e,t,n=!1){const r=n?Bf:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!z(e)){const a=u=>{const c=Jl(u,t,!0);c&&(l=!0,we(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!l?(re(e)&&r.set(e,null),null):(J(o)?o.forEach(a=>i[a]=null):we(i,o),re(e)&&r.set(e,i),i)}function Vr(e,t){return!e||!Jn(t)?!1:(t=t.slice(2).replace(/Once$/,""),oe(e,t[0].toLowerCase()+t.slice(1))||oe(e,Jt(t))||oe(e,t))}function ss(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:a,render:u,renderCache:c,props:f,data:p,setupState:d,ctx:m,inheritAttrs:_}=e,T=_r(e);let R,v;try{if(n.shapeFlag&4){const b=s||r,E=b;R=De(u.call(E,b,c,f,d,p,m)),v=l}else{const b=t;R=De(b.length>1?b(f,{attrs:l,slots:i,emit:a}):b(f,null)),v=t.props?l:$f(l)}}catch(b){Ln.length=0,wn(b,e,1),R=me(ve)}let g=R;if(v&&_!==!1){const b=Object.keys(v),{shapeFlag:E}=g;b.length&&E&7&&(o&&b.some(Ys)&&(v=Vf(v,o)),g=vt(g,v,!1,!0))}return n.dirs&&(g=vt(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&pn(g,n.transition),R=g,_r(T),R}function Uf(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||Jn(n))&&((t||(t={}))[n]=e[n]);return t},Vf=(e,t)=>{const n={};for(const r in e)(!Ys(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Wf(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:a}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?Bo(r,i,u):!!i;if(a&8){const c=t.dynamicProps;for(let f=0;fObject.create(zl),Xl=e=>Object.getPrototypeOf(e)===zl;function Kf(e,t,n,r=!1){const s={},o=Ql();e.propsDefaults=Object.create(null),Zl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:mt(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Gf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=ne(s),[a]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f{a=!0;const[p,d]=ea(f,t,!0);we(i,p),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 re(e)&&r.set(e,nn),nn;if(J(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",co=e=>J(e)?e.map(De):[De(e)],Jf=(e,t,n)=>{if(t._n)return t;const r=xl((...s)=>co(t(...s)),n);return r._c=!1,r},ta=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ao(s))continue;const o=e[s];if(z(o))t[s]=Jf(s,o,r);else if(o!=null){const i=co(o);t[s]=()=>i}}},na=(e,t)=>{const n=co(t);e.slots.default=()=>n},ra=(e,t,n)=>{for(const r in t)(n||!ao(r))&&(e[r]=t[r])},Yf=(e,t,n)=>{const r=e.slots=Ql();if(e.vnode.shapeFlag&32){const s=t._;s?(ra(r,t,n),n&&tl(r,"_",s,!0)):ta(t,r)}else t&&na(e,t)},zf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ae;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:ra(s,t,n):(o=!t.$stable,ta(t,s)),i=t}else t&&(na(e,t),i={default:1});if(o)for(const l in s)!ao(l)&&i[l]==null&&delete s[l]},be=ua;function Qf(e){return sa(e)}function Xf(e){return sa(e,_f)}function sa(e,t){const n=Dr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:a,setText:u,setElementText:c,parentNode:f,nextSibling:p,setScopeId:d=it,insertStaticContent:m}=e,_=(h,y,w,x=null,C=null,k=null,D=void 0,L=null,H=!!y.dynamicChildren)=>{if(h===y)return;h&&!Je(h,y)&&(x=A(h),ke(h,C,k,!0),h=null),y.patchFlag===-2&&(H=!1,y.dynamicChildren=null);const{type:P,ref:Y,shapeFlag:j}=y;switch(P){case Gt:T(h,y,w,x);break;case ve:R(h,y,w,x);break;case Hn:h==null&&v(y,w,x,D);break;case Le:O(h,y,w,x,C,k,D,L,H);break;default:j&1?E(h,y,w,x,C,k,D,L,H):j&6?K(h,y,w,x,C,k,D,L,H):(j&64||j&128)&&P.process(h,y,w,x,C,k,D,L,H,q)}Y!=null&&C?cn(Y,h&&h.ref,k,y||h,!y):Y==null&&h&&h.ref!=null&&cn(h.ref,null,k,h,!0)},T=(h,y,w,x)=>{if(h==null)r(y.el=l(y.children),w,x);else{const C=y.el=h.el;y.children!==h.children&&u(C,y.children)}},R=(h,y,w,x)=>{h==null?r(y.el=a(y.children||""),w,x):y.el=h.el},v=(h,y,w,x)=>{[h.el,h.anchor]=m(h.children,y,w,x,h.el,h.anchor)},g=({el:h,anchor:y},w,x)=>{let C;for(;h&&h!==y;)C=p(h),r(h,w,x),h=C;r(y,w,x)},b=({el:h,anchor:y})=>{let w;for(;h&&h!==y;)w=p(h),s(h),h=w;s(y)},E=(h,y,w,x,C,k,D,L,H)=>{if(y.type==="svg"?D="svg":y.type==="math"&&(D="mathml"),h==null)S(y,w,x,C,k,D,L,H);else{const P=h.el&&h.el._isVueCE?h.el:null;try{P&&P._beginPatch(),I(h,y,C,k,D,L,H)}finally{P&&P._endPatch()}}},S=(h,y,w,x,C,k,D,L)=>{let H,P;const{props:Y,shapeFlag:j,transition:G,dirs:X}=h;if(H=h.el=i(h.type,k,Y&&Y.is,Y),j&8?c(H,h.children):j&16&&V(h.children,H,null,x,C,os(h,k),D,L),X&&rt(h,null,x,"created"),M(H,h,h.scopeId,D,x),Y){for(const fe in Y)fe!=="value"&&!Vt(fe)&&o(H,fe,null,Y[fe],k,x);"value"in Y&&o(H,"value",null,Y.value,k),(P=Y.onVnodeBeforeMount)&&Ie(P,x,h)}X&&rt(h,null,x,"beforeMount");const te=oa(C,G);te&&G.beforeEnter(H),r(H,y,w),((P=Y&&Y.onVnodeMounted)||te||X)&&be(()=>{P&&Ie(P,x,h),te&&G.enter(H),X&&rt(h,null,x,"mounted")},C)},M=(h,y,w,x,C)=>{if(w&&d(h,w),x)for(let k=0;k{for(let P=H;P{const L=y.el=h.el;let{patchFlag:H,dynamicChildren:P,dirs:Y}=y;H|=h.patchFlag&16;const j=h.props||ae,G=y.props||ae;let X;if(w&&Ht(w,!1),(X=G.onVnodeBeforeUpdate)&&Ie(X,w,y,h),Y&&rt(y,h,w,"beforeUpdate"),w&&Ht(w,!0),(j.innerHTML&&G.innerHTML==null||j.textContent&&G.textContent==null)&&c(L,""),P?N(h.dynamicChildren,P,L,w,x,os(y,C),k):D||B(h,y,L,null,w,x,os(y,C),k,!1),H>0){if(H&16)W(L,j,G,w,C);else if(H&2&&j.class!==G.class&&o(L,"class",null,G.class,C),H&4&&o(L,"style",j.style,G.style,C),H&8){const te=y.dynamicProps;for(let fe=0;fe{X&&Ie(X,w,y,h),Y&&rt(y,h,w,"updated")},x)},N=(h,y,w,x,C,k,D)=>{for(let L=0;L{if(y!==w){if(y!==ae)for(const k in y)!Vt(k)&&!(k in w)&&o(h,k,y[k],null,C,x);for(const k in w){if(Vt(k))continue;const D=w[k],L=y[k];D!==L&&k!=="value"&&o(h,k,L,D,C,x)}"value"in w&&o(h,"value",y.value,w.value,C)}},O=(h,y,w,x,C,k,D,L,H)=>{const P=y.el=h?h.el:l(""),Y=y.anchor=h?h.anchor:l("");let{patchFlag:j,dynamicChildren:G,slotScopeIds:X}=y;X&&(L=L?L.concat(X):X),h==null?(r(P,w,x),r(Y,w,x),V(y.children||[],w,Y,C,k,D,L,H)):j>0&&j&64&&G&&h.dynamicChildren&&h.dynamicChildren.length===G.length?(N(h.dynamicChildren,G,w,C,k,D,L),(y.key!=null||C&&y===C.subTree)&&ia(h,y,!0)):B(h,y,w,Y,C,k,D,L,H)},K=(h,y,w,x,C,k,D,L,H)=>{y.slotScopeIds=L,h==null?y.shapeFlag&512?C.ctx.activate(y,w,x,D,H):ee(y,w,x,C,k,D,H):le(h,y,H)},ee=(h,y,w,x,C,k,D)=>{const L=h.component=uu(h,x,C);if(Xn(h)&&(L.ctx.renderer=q),du(L,!1,D),L.asyncDep){if(C&&C.registerDep(L,$,D),!h.el){const H=L.subTree=me(ve);R(null,H,y,w),h.placeholder=H.el}}else $(L,h,y,w,C,k,D)},le=(h,y,w)=>{const x=y.component=h.component;if(Wf(h,y,w))if(x.asyncDep&&!x.asyncResolved){Q(x,y,w);return}else x.next=y,x.update();else y.el=h.el,x.vnode=y},$=(h,y,w,x,C,k,D)=>{const L=()=>{if(h.isMounted){let{next:j,bu:G,u:X,parent:te,vnode:fe}=h;{const Me=la(h);if(Me){j&&(j.el=fe.el,Q(h,j,D)),Me.asyncDep.then(()=>{be(()=>{h.isUnmounted||P()},C)});return}}let ie=j,Pe;Ht(h,!1),j?(j.el=fe.el,Q(h,j,D)):j=fe,G&&sn(G),(Pe=j.props&&j.props.onVnodeBeforeUpdate)&&Ie(Pe,te,j,fe),Ht(h,!0);const Re=ss(h),qe=h.subTree;h.subTree=Re,_(qe,Re,f(qe.el),A(qe),h,C,k),j.el=Re.el,ie===null&&Wr(h,Re.el),X&&be(X,C),(Pe=j.props&&j.props.onVnodeUpdated)&&be(()=>Ie(Pe,te,j,fe),C)}else{let j;const{el:G,props:X}=y,{bm:te,m:fe,parent:ie,root:Pe,type:Re}=h,qe=It(y);if(Ht(h,!1),te&&sn(te),!qe&&(j=X&&X.onVnodeBeforeMount)&&Ie(j,ie,y),Ht(h,!0),G&&he){const Me=()=>{h.subTree=ss(h),he(G,h.subTree,h,C,null)};qe&&Re.__asyncHydrate?Re.__asyncHydrate(G,h,Me):Me()}else{Pe.ce&&Pe.ce._hasShadowRoot()&&Pe.ce._injectChildStyle(Re);const Me=h.subTree=ss(h);_(null,Me,w,x,h,C,k),y.el=Me.el}if(fe&&be(fe,C),!qe&&(j=X&&X.onVnodeMounted)){const Me=y;be(()=>Ie(j,ie,Me),C)}(y.shapeFlag&256||ie&&It(ie.vnode)&&ie.vnode.shapeFlag&256)&&h.a&&be(h.a,C),h.isMounted=!0,y=w=x=null}};h.scope.on();const H=h.effect=new al(L);h.scope.off();const P=h.update=H.run.bind(H),Y=h.job=H.runIfDirty.bind(H);Y.i=h,Y.id=h.uid,H.scheduler=()=>ro(Y),Ht(h,!0),P()},Q=(h,y,w)=>{y.component=h;const x=h.vnode.props;h.vnode=y,h.next=null,Gf(h,y.props,x,w),zf(h,y.children,w),_t(),xo(h),bt()},B=(h,y,w,x,C,k,D,L,H=!1)=>{const P=h&&h.children,Y=h?h.shapeFlag:0,j=y.children,{patchFlag:G,shapeFlag:X}=y;if(G>0){if(G&128){Tt(P,j,w,x,C,k,D,L,H);return}else if(G&256){ce(P,j,w,x,C,k,D,L,H);return}}X&8?(Y&16&&Ue(P,C,k),j!==P&&c(w,j)):Y&16?X&16?Tt(P,j,w,x,C,k,D,L,H):Ue(P,C,k,!0):(Y&8&&c(w,""),X&16&&V(j,w,x,C,k,D,L,H))},ce=(h,y,w,x,C,k,D,L,H)=>{h=h||nn,y=y||nn;const P=h.length,Y=y.length,j=Math.min(P,Y);let G;for(G=0;GY?Ue(h,C,k,!0,!1,j):V(y,w,x,C,k,D,L,H,j)},Tt=(h,y,w,x,C,k,D,L,H)=>{let P=0;const Y=y.length;let j=h.length-1,G=Y-1;for(;P<=j&&P<=G;){const X=h[P],te=y[P]=H?ht(y[P]):De(y[P]);if(Je(X,te))_(X,te,w,null,C,k,D,L,H);else break;P++}for(;P<=j&&P<=G;){const X=h[j],te=y[G]=H?ht(y[G]):De(y[G]);if(Je(X,te))_(X,te,w,null,C,k,D,L,H);else break;j--,G--}if(P>j){if(P<=G){const X=G+1,te=XG)for(;P<=j;)ke(h[P],C,k,!0),P++;else{const X=P,te=P,fe=new Map;for(P=te;P<=G;P++){const He=y[P]=H?ht(y[P]):De(y[P]);He.key!=null&&fe.set(He.key,P)}let ie,Pe=0;const Re=G-te+1;let qe=!1,Me=0;const Rn=new Array(Re);for(P=0;P=Re){ke(He,C,k,!0);continue}let tt;if(He.key!=null)tt=fe.get(He.key);else for(ie=te;ie<=G;ie++)if(Rn[ie-te]===0&&Je(He,y[ie])){tt=ie;break}tt===void 0?ke(He,C,k,!0):(Rn[tt-te]=P+1,tt>=Me?Me=tt:qe=!0,_(He,y[tt],w,null,C,k,D,L,H),Pe++)}const wo=qe?Zf(Rn):nn;for(ie=wo.length-1,P=Re-1;P>=0;P--){const He=te+P,tt=y[He],Eo=y[He+1],To=He+1{const{el:k,type:D,transition:L,children:H,shapeFlag:P}=h;if(P&6){et(h.component.subTree,y,w,x);return}if(P&128){h.suspense.move(y,w,x);return}if(P&64){D.move(h,y,w,q);return}if(D===Le){r(k,y,w);for(let j=0;jL.enter(k),C);else{const{leave:j,delayLeave:G,afterLeave:X}=L,te=()=>{h.ctx.isUnmounted?s(k):r(k,y,w)},fe=()=>{k._isLeaving&&k[st](!0),j(k,()=>{te(),X&&X()})};G?G(k,te,fe):fe()}else r(k,y,w)},ke=(h,y,w,x=!1,C=!1)=>{const{type:k,props:D,ref:L,children:H,dynamicChildren:P,shapeFlag:Y,patchFlag:j,dirs:G,cacheIndex:X}=h;if(j===-2&&(C=!1),L!=null&&(_t(),cn(L,null,w,h,!0),bt()),X!=null&&(y.renderCache[X]=void 0),Y&256){y.ctx.deactivate(h);return}const te=Y&1&&G,fe=!It(h);let ie;if(fe&&(ie=D&&D.onVnodeBeforeUnmount)&&Ie(ie,y,h),Y&6)Mt(h.component,w,x);else{if(Y&128){h.suspense.unmount(w,x);return}te&&rt(h,null,y,"beforeUnmount"),Y&64?h.type.remove(h,y,w,q,x):P&&!P.hasOnce&&(k!==Le||j>0&&j&64)?Ue(P,y,w,!1,!0):(k===Le&&j&384||!C&&Y&16)&&Ue(H,y,w),x&&Yt(h)}(fe&&(ie=D&&D.onVnodeUnmounted)||te)&&be(()=>{ie&&Ie(ie,y,h),te&&rt(h,null,y,"unmounted")},w)},Yt=h=>{const{type:y,el:w,anchor:x,transition:C}=h;if(y===Le){zt(w,x);return}if(y===Hn){b(h);return}const k=()=>{s(w),C&&!C.persisted&&C.afterLeave&&C.afterLeave()};if(h.shapeFlag&1&&C&&!C.persisted){const{leave:D,delayLeave:L}=C,H=()=>D(w,k);L?L(h.el,k,H):H()}else k()},zt=(h,y)=>{let w;for(;h!==y;)w=p(h),s(h),h=w;s(y)},Mt=(h,y,w)=>{const{bum:x,scope:C,job:k,subTree:D,um:L,m:H,a:P}=h;wr(H),wr(P),x&&sn(x),C.stop(),k&&(k.flags|=8,ke(D,h,y,w)),L&&be(L,y),be(()=>{h.isUnmounted=!0},y)},Ue=(h,y,w,x=!1,C=!1,k=0)=>{for(let D=k;D{if(h.shapeFlag&6)return A(h.component.subTree);if(h.shapeFlag&128)return h.suspense.next();const y=p(h.anchor||h.el),w=y&&y[df];return w?p(w):y};let U=!1;const F=(h,y,w)=>{let x;h==null?y._vnode&&(ke(y._vnode,null,null,!0),x=y._vnode.component):_(y._vnode||null,h,y,null,null,null,w),y._vnode=h,U||(U=!0,xo(x),yr(),U=!1)},q={p:_,um:ke,m:et,r:Yt,mt:ee,mc:V,pc:B,pbc:N,n:A,o:e};let Z,he;return t&&([Z,he]=t(q)),{render:F,hydrate:Z,createApp:Df(F,Z)}}function os({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 Ht({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function oa(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ia(e,t,n=!1){const r=e.children,s=t.children;if(J(r)&&J(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 la(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:la(t)}function wr(e){if(e)for(let t=0;te.__isSuspense;let xs=0;const eu={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,l,a,u){if(e==null)tu(t,n,r,s,o,i,l,a,u);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}nu(e,t,n,r,s,i,l,a,u)}},hydrate:ru,normalize:su},ca=eu;function Wn(e,t){const n=e.props&&e.props[t];z(n)&&n()}function tu(e,t,n,r,s,o,i,l,a){const{p:u,o:{createElement:c}}=a,f=c("div"),p=e.suspense=fa(e,s,r,t,f,n,o,i,l,a);u(null,p.pendingBranch=e.ssContent,f,null,r,p,o,i),p.deps>0?(Wn(e,"onPending"),Wn(e,"onFallback"),u(null,e.ssFallback,t,n,r,null,o,i),fn(p,e.ssFallback)):p.resolve(!1,!0)}function nu(e,t,n,r,s,o,i,l,{p:a,um:u,o:{createElement:c}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const p=t.ssContent,d=t.ssFallback,{activeBranch:m,pendingBranch:_,isInFallback:T,isHydrating:R}=f;if(_)f.pendingBranch=p,Je(_,p)?(a(_,p,f.hiddenContainer,null,s,f,o,i,l),f.deps<=0?f.resolve():T&&(R||(a(m,d,n,r,s,null,o,i,l),fn(f,d)))):(f.pendingId=xs++,R?(f.isHydrating=!1,f.activeBranch=_):u(_,s,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),T?(a(null,p,f.hiddenContainer,null,s,f,o,i,l),f.deps<=0?f.resolve():(a(m,d,n,r,s,null,o,i,l),fn(f,d))):m&&Je(m,p)?(a(m,p,n,r,s,f,o,i,l),f.resolve(!0)):(a(null,p,f.hiddenContainer,null,s,f,o,i,l),f.deps<=0&&f.resolve()));else if(m&&Je(m,p))a(m,p,n,r,s,f,o,i,l),fn(f,p);else if(Wn(t,"onPending"),f.pendingBranch=p,p.shapeFlag&512?f.pendingId=p.component.suspenseId:f.pendingId=xs++,a(null,p,f.hiddenContainer,null,s,f,o,i,l),f.deps<=0)f.resolve();else{const{timeout:v,pendingId:g}=f;v>0?setTimeout(()=>{f.pendingId===g&&f.fallback(d)},v):v===0&&f.fallback(d)}}function fa(e,t,n,r,s,o,i,l,a,u,c=!1){const{p:f,m:p,um:d,n:m,o:{parentNode:_,remove:T}}=u;let R;const v=ou(e);v&&t&&t.pendingBranch&&(R=t.pendingId,t.deps++);const g=e.props?nl(e.props.timeout):void 0,b=o,E={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:xs++,timeout:typeof g=="number"?g:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(S=!1,M=!1){const{vnode:V,activeBranch:I,pendingBranch:N,pendingId:W,effects:O,parentComponent:K,container:ee,isInFallback:le}=E;let $=!1;E.isHydrating?E.isHydrating=!1:S||($=I&&N.transition&&N.transition.mode==="out-in",$&&(I.transition.afterLeave=()=>{W===E.pendingId&&(p(N,ee,o===b?m(I):o,0),Es(O),le&&V.ssFallback&&(V.ssFallback.el=null))}),I&&(_(I.el)===ee&&(o=m(I)),d(I,K,E,!0),!$&&le&&V.ssFallback&&be(()=>V.ssFallback.el=null,E)),$||p(N,ee,o,0)),fn(E,N),E.pendingBranch=null,E.isInFallback=!1;let Q=E.parent,B=!1;for(;Q;){if(Q.pendingBranch){Q.effects.push(...O),B=!0;break}Q=Q.parent}!B&&!$&&Es(O),E.effects=[],v&&t&&t.pendingBranch&&R===t.pendingId&&(t.deps--,t.deps===0&&!M&&t.resolve()),Wn(V,"onResolve")},fallback(S){if(!E.pendingBranch)return;const{vnode:M,activeBranch:V,parentComponent:I,container:N,namespace:W}=E;Wn(M,"onFallback");const O=m(V),K=()=>{E.isInFallback&&(f(null,S,N,O,I,null,W,l,a),fn(E,S))},ee=S.transition&&S.transition.mode==="out-in";ee&&(V.transition.afterLeave=K),E.isInFallback=!0,d(V,I,null,!0),ee||K()},move(S,M,V){E.activeBranch&&p(E.activeBranch,S,M,V),E.container=S},next(){return E.activeBranch&&m(E.activeBranch)},registerDep(S,M,V){const I=!!E.pendingBranch;I&&E.deps++;const N=S.vnode.el;S.asyncDep.catch(W=>{wn(W,S,0)}).then(W=>{if(S.isUnmounted||E.isUnmounted||E.pendingId!==S.suspenseId)return;S.asyncResolved=!0;const{vnode:O}=S;Ps(S,W),N&&(O.el=N);const K=!N&&S.subTree.el;M(S,O,_(N||S.subTree.el),N?null:m(S.subTree),E,i,V),K&&(O.placeholder=null,T(K)),Wr(S,O.el),I&&--E.deps===0&&E.resolve()})},unmount(S,M){E.isUnmounted=!0,E.activeBranch&&d(E.activeBranch,n,S,M),E.pendingBranch&&d(E.pendingBranch,n,S,M)}};return E}function ru(e,t,n,r,s,o,i,l,a){const u=t.suspense=fa(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,l,!0),c=a(e,u.pendingBranch=t.ssContent,n,u,o,i);return u.deps===0&&u.resolve(!1,!0),c}function su(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=$o(r?n.default:n),e.ssFallback=r?$o(n.fallback):me(ve)}function $o(e){let t;if(z(e)){const n=gn&&e._c;n&&(e._d=!1,ot()),e=e(),n&&(e._d=!0,t=Ne,da())}return J(e)&&(e=Uf(e)),e=De(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function ua(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Es(e)}function fn(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,Wr(r,s))}function ou(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const Le=Symbol.for("v-fgt"),Gt=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),Hn=Symbol.for("v-stc"),Ln=[];let Ne=null;function ot(e=!1){Ln.push(Ne=e?null:[])}function da(){Ln.pop(),Ne=Ln[Ln.length-1]||null}let gn=1;function Tr(e,t=!1){gn+=e,e<0&&Ne&&t&&(Ne.hasOnce=!0)}function ha(e){return e.dynamicChildren=gn>0?Ne||nn:null,da(),gn>0&&Ne&&Ne.push(e),e}function iu(e,t,n,r,s,o){return ha(ga(e,t,n,r,s,o,!0))}function kt(e,t,n,r,s){return ha(me(e,t,n,r,s,!0))}function mn(e){return e?e.__v_isVNode===!0:!1}function Je(e,t){return e.type===t.type&&e.key===t.key}const pa=({key:e})=>e??null,ur=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?pe(e)||ye(e)||z(e)?{i:Fe,r:e,k:t,f:!!n}:e:null);function ga(e,t=null,n=null,r=0,s=null,o=e===Le?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&pa(t),ref:t&&ur(t),scopeId:Al,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:Fe};return l?(fo(a,n),o&128&&e.normalize(a)):n&&(a.shapeFlag|=pe(n)?8:16),gn>0&&!i&&Ne&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&Ne.push(a),a}const me=lu;function lu(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Vl)&&(e=ve),mn(e)){const l=vt(e,t,!0);return n&&fo(l,n),gn>0&&!o&&Ne&&(l.shapeFlag&6?Ne[Ne.indexOf(e)]=l:Ne.push(l)),l.patchFlag=-2,l}if(mu(e)&&(e=e.__vccOpts),t){t=ma(t);let{class:l,style:a}=t;l&&!pe(l)&&(t.class=jr(l)),re(a)&&(Ur(a)&&!J(a)&&(a=we({},a)),t.style=Fr(a))}const i=pe(e)?1:Er(e)?128:Pl(e)?64:re(e)?4:z(e)?2:0;return ga(e,t,n,r,s,i,o,!0)}function ma(e){return e?Ur(e)||Xl(e)?we({},e):e:null}function vt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:a}=e,u=t?au(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&pa(u),ref:t&&t.ref?n&&o?J(o)?o.concat(ur(t)):[o,ur(t)]:ur(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!==Le?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&&vt(e.ssContent),ssFallback:e.ssFallback&&vt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&pn(c,a.clone(c)),c}function ya(e=" ",t=0){return me(Gt,null,e,t)}function dm(e,t){const n=me(Hn,null,e);return n.staticCount=t,n}function hm(e="",t=!1){return t?(ot(),kt(ve,null,e)):me(ve,null,e)}function De(e){return e==null||typeof e=="boolean"?me(ve):J(e)?me(Le,null,e.slice()):mn(e)?ht(e):me(Gt,null,String(e))}function ht(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vt(e)}function fo(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),fo(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Xl(t)?t._ctx=Fe:s===3&&Fe&&(Fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else z(t)?(t={default:t,_ctx:Fe},n=32):(t=String(t),r&64?(n=16,t=[ya(t)]):n=8);e.children=t,e.shapeFlag|=n}function au(...e){const t={};for(let n=0;nEe||Fe;let Rr,ks;{const e=Dr(),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)}};Rr=t("__VUE_INSTANCE_SETTERS__",n=>Ee=n),ks=t("__VUE_SSR_SETTERS__",n=>yn=n)}const er=e=>{const t=Ee;return Rr(e),e.scope.on(),()=>{e.scope.off(),Rr(t)}},Vo=()=>{Ee&&Ee.scope.off(),Rr(null)};function _a(e){return e.vnode.shapeFlag&4}let yn=!1;function du(e,t=!1,n=!1){t&&ks(t);const{props:r,children:s}=e.vnode,o=_a(e);Kf(e,r,o,t),Yf(e,s,n||t);const i=o?hu(e,t):void 0;return t&&ks(!1),i}function hu(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Pf);const{setup:r}=n;if(r){_t();const s=e.setupContext=r.length>1?gu(e):null,o=er(e),i=zn(r,e,0,[e.props,s]),l=Xi(i);if(bt(),o(),(l||e.sp)&&!It(e)&&io(e),l){if(i.then(Vo,Vo),t)return i.then(a=>{Ps(e,a)}).catch(a=>{wn(a,e,0)});e.asyncDep=i}else Ps(e,i)}else ba(e)}function Ps(e,t,n){z(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:re(t)&&(e.setupState=Tl(t)),ba(e)}function ba(e,t,n){const r=e.type;e.render||(e.render=r.render||it);{const s=er(e);_t();try{Of(e)}finally{bt(),s()}}}const pu={get(e,t){return Ce(e,"get",""),e[t]}};function gu(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,pu),slots:e.slots,emit:e.emit,expose:t}}function Kr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Tl(qc(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Mn)return Mn[n](e)},has(t,n){return n in t||n in Mn}})):e.proxy}function Os(e,t=!0){return z(e)?e.displayName||e.name:e.name||t&&e.__name}function mu(e){return z(e)&&"__vccOpts"in e}const Ye=(e,t)=>nf(e,t,yn);function We(e,t,n){try{Tr(-1);const r=arguments.length;return r===2?re(t)&&!J(t)?mn(t)?me(e,null,[t]):me(e,t):me(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&mn(n)&&(n=[n]),me(e,t,n))}finally{Tr(1)}}const yu="3.5.28";let Is;const Wo=typeof window<"u"&&window.trustedTypes;if(Wo)try{Is=Wo.createPolicy("vue",{createHTML:e=>e})}catch{}const va=Is?e=>Is.createHTML(e):e=>e,_u="http://www.w3.org/2000/svg",bu="http://www.w3.org/1998/Math/MathML",dt=typeof document<"u"?document:null,Ko=dt&&dt.createElement("template"),vu={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"?dt.createElementNS(_u,e):t==="mathml"?dt.createElementNS(bu,e):n?dt.createElement(e,{is:n}):dt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>dt.createTextNode(e),createComment:e=>dt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>dt.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{Ko.innerHTML=va(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Ko.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]}},Rt="transition",An="animation",Kn=Symbol("_vtc"),wa={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},wu=we({},Ol,wa),Eu=e=>(e.displayName="Transition",e.props=wu,e),Tu=Eu((e,{slots:t})=>We(gf,Ru(e),t)),Lt=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},Go=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function Ru(e){const t={};for(const O in e)O in wa||(t[O]=e[O]);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:u=i,appearToClass:c=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,m=Cu(s),_=m&&m[0],T=m&&m[1],{onBeforeEnter:R,onEnter:v,onEnterCancelled:g,onLeave:b,onLeaveCancelled:E,onBeforeAppear:S=R,onAppear:M=v,onAppearCancelled:V=g}=t,I=(O,K,ee,le)=>{O._enterCancelled=le,Dt(O,K?c:l),Dt(O,K?u:i),ee&&ee()},N=(O,K)=>{O._isLeaving=!1,Dt(O,f),Dt(O,d),Dt(O,p),K&&K()},W=O=>(K,ee)=>{const le=O?M:v,$=()=>I(K,O,ee);Lt(le,[K,$]),qo(()=>{Dt(K,O?a:o),ft(K,O?c:l),Go(le)||Jo(K,r,_,$)})};return we(t,{onBeforeEnter(O){Lt(R,[O]),ft(O,o),ft(O,i)},onBeforeAppear(O){Lt(S,[O]),ft(O,a),ft(O,u)},onEnter:W(!1),onAppear:W(!0),onLeave(O,K){O._isLeaving=!0;const ee=()=>N(O,K);ft(O,f),O._enterCancelled?(ft(O,p),Qo(O)):(Qo(O),ft(O,p)),qo(()=>{O._isLeaving&&(Dt(O,f),ft(O,d),Go(b)||Jo(O,r,T,ee))}),Lt(b,[O,ee])},onEnterCancelled(O){I(O,!1,void 0,!0),Lt(g,[O])},onAppearCancelled(O){I(O,!0,void 0,!0),Lt(V,[O])},onLeaveCancelled(O){N(O),Lt(E,[O])}})}function Cu(e){if(e==null)return null;if(re(e))return[is(e.enter),is(e.leave)];{const t=is(e);return[t,t]}}function is(e){return nl(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Kn]||(e[Kn]=new Set)).add(t)}function Dt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Kn];n&&(n.delete(t),n.size||(e[Kn]=void 0))}function qo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Su=0;function Jo(e,t,n,r){const s=e._endId=++Su,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:a}=Au(e,t);if(!i)return r();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,p),o()},p=d=>{d.target===e&&++c>=a&&f()};setTimeout(()=>{c(n[m]||"").split(", "),s=r(`${Rt}Delay`),o=r(`${Rt}Duration`),i=Yo(s,o),l=r(`${An}Delay`),a=r(`${An}Duration`),u=Yo(l,a);let c=null,f=0,p=0;t===Rt?i>0&&(c=Rt,f=i,p=o.length):t===An?u>0&&(c=An,f=u,p=a.length):(f=Math.max(i,u),c=f>0?i>u?Rt:An:null,p=c?c===Rt?o.length:a.length:0);const d=c===Rt&&/\b(?:transform|all)(?:,|$)/.test(r(`${Rt}Property`).toString());return{type:c,timeout:f,propCount:p,hasTransform:d}}function Yo(e,t){for(;e.lengthzo(n)+zo(e[r])))}function zo(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Qo(e){return(e?e.ownerDocument:document).body.offsetHeight}function xu(e,t,n){const r=e[Kn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Xo=Symbol("_vod"),ku=Symbol("_vsh"),Pu=Symbol(""),Ou=/(?:^|;)\s*display\s*:/;function Iu(e,t,n){const r=e.style,s=pe(n);let o=!1;if(n&&!s){if(t)if(pe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&dr(r,l,"")}else for(const i in t)n[i]==null&&dr(r,i,"");for(const i in n)i==="display"&&(o=!0),dr(r,i,n[i])}else if(s){if(t!==n){const i=r[Pu];i&&(n+=";"+i),r.cssText=n,o=Ou.test(n)}}else t&&e.removeAttribute("style");Xo in e&&(e[Xo]=o?r.display:"",e[ku]&&(r.display="none"))}const Zo=/\s*!important$/;function dr(e,t,n){if(J(n))n.forEach(r=>dr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Nu(e,t);Zo.test(n)?e.setProperty(Jt(r),n.replace(Zo,""),"important"):e[r]=n}}const ei=["Webkit","Moz","ms"],ls={};function Nu(e,t){const n=ls[t];if(n)return n;let r=Ke(t);if(r!=="filter"&&r in e)return ls[t]=r;r=Hr(r);for(let s=0;sas||(Du.then(()=>as=0),as=Date.now());function ju(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Xe(Bu(r,n.value),t,5,[r])};return n.value=e,n.attached=Fu(),n}function Bu(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const ii=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Uu=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?xu(e,r,i):t==="style"?Iu(e,n,r):Jn(t)?Ys(t)||Hu(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$u(e,t,r,i))?(ri(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ni(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!pe(r))?ri(e,Ke(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ni(e,t,r,i))};function $u(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ii(t)&&z(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 ii(t)&&pe(n)?!1:t in e}const Cr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return J(t)?n=>sn(t,n):t};function Vu(e){e.target.composing=!0}function li(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const un=Symbol("_assign");function ai(e,t,n){return t&&(e=e.trim()),n&&(e=Lr(e)),e}const pm={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[un]=Cr(s);const o=r||s.props&&s.props.type==="number";Ut(e,t?"change":"input",i=>{i.target.composing||e[un](ai(e.value,n,o))}),(n||o)&&Ut(e,"change",()=>{e.value=ai(e.value,n,o)}),t||(Ut(e,"compositionstart",Vu),Ut(e,"compositionend",li),Ut(e,"change",li))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[un]=Cr(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?Lr(e.value):e.value,a=t??"";l!==a&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===a)||(e.value=a))}},gm={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Ir(t);Ut(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Lr(Sr(i)):Sr(i));e[un](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,hn(()=>{e._assigning=!1})}),e[un]=Cr(r)},mounted(e,{value:t}){ci(e,t)},beforeUpdate(e,t,n){e[un]=Cr(n)},updated(e,{value:t}){e._assigning||ci(e,t)}};function ci(e,t){const n=e.multiple,r=J(t);if(!(n&&!r&&!Ir(t))){for(let s=0,o=e.options.length;sString(u)===String(l)):i.selected=Cc(t,l)>-1}else i.selected=t.has(l);else if(Yn(Sr(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Sr(e){return"_value"in e?e._value:e.value}const Ea=we({patchProp:Uu},vu);let Dn,fi=!1;function Wu(){return Dn||(Dn=Qf(Ea))}function Ku(){return Dn=fi?Dn:Xf(Ea),fi=!0,Dn}const Gu=((...e)=>{const t=Wu().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ra(r);if(!s)return;const o=t._component;!z(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Ta(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t}),qu=((...e)=>{const t=Ku().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ra(r);if(s)return n(s,!0,Ta(s))},t});function Ta(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ra(e){return pe(e)?document.querySelector(e):e}const Ju=/"(?:_|\\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*:/,Yu=/"(?: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*:/,zu=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Qu(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){Xu(e);return}return t}function Xu(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Ar(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(!zu.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(Ju.test(e)||Yu.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,Qu)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const Ca=/#/g,Sa=/&/g,Zu=/\//g,ed=/=/g,td=/\?/g,Gr=/\+/g,nd=/%5e/gi,rd=/%60/gi,sd=/%7c/gi,od=/%20/gi,id=/%2f/gi,ld=/%252f/gi;function Aa(e){return encodeURI(""+e).replace(sd,"|")}function Ns(e){return Aa(typeof e=="string"?e:JSON.stringify(e)).replace(Gr,"%2B").replace(od,"+").replace(Ca,"%23").replace(Sa,"%26").replace(rd,"`").replace(nd,"^").replace(Zu,"%2F")}function cs(e){return Ns(e).replace(ed,"%3D")}function ad(e){return Aa(e).replace(Ca,"%23").replace(td,"%3F").replace(ld,"%2F").replace(Sa,"%26").replace(Gr,"%2B")}function Gn(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function cd(e){return Gn(e.replace(id,"%252F"))}function fd(e){return Gn(e.replace(Gr," "))}function ud(e){return Gn(e.replace(Gr," "))}function xa(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=fd(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=ud(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 dd(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${cs(e)}=${Ns(n)}`).join("&"):`${cs(e)}=${Ns(t)}`:cs(e)}function hd(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>dd(t,e[t])).filter(Boolean).join("&")}const pd=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,gd=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,md=/^([/\\]\s*){2,}[^/\\]/,yd=/^[\s\0]*(blob|data|javascript|vbscript):$/i,_d=/\/$|\/\?|\/#/,bd=/^\.?\//;function Tn(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?pd.test(e):gd.test(e)||(t.acceptRelative?md.test(e):!1)}function vd(e){return!!e&&yd.test(e)}function Ms(e="",t){return t?_d.test(e):e.endsWith("/")}function xr(e="",t){if(!t)return(Ms(e)?e.slice(0,-1):e)||"/";if(!Ms(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 wd(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(Ms(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 Ed(e,t){if(Pa(t)||Tn(e))return e;const n=xr(t);if(e.startsWith(n)){const r=e[n.length];if(!r||r==="/"||r==="?")return e}return Oa(n,e)}function ui(e,t){if(Pa(t))return e;const n=xr(t);if(!e.startsWith(n))return e;const r=e[n.length];if(r&&r!=="/"&&r!=="?")return e;const s=e.slice(n.length);return s[0]==="/"?s:"/"+s}function ka(e,t){const n=uo(e),r={...xa(n.search),...t};return n.search=hd(r),Cd(n)}function Pa(e){return!e||e==="/"}function Td(e){return e&&e!=="/"}function Oa(e,...t){let n=e||"";for(const r of t.filter(s=>Td(s)))if(n){const s=r.replace(bd,"");n=wd(n)+s}else n=r;return n}function Ia(...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&&Tn(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 Rd(e,t){return Gn(xr(e))===Gn(xr(t))}const Na=Symbol.for("ufo:protocolRelative");function uo(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,f,p=""]=n;return{protocol:f.toLowerCase(),pathname:p,href:f+p,auth:"",host:"",search:"",hash:""}}if(!Tn(e,{acceptRelative:!0}))return di(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:u,hash:c}=di(l);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:a,search:u,hash:c,[Na]:!r}}function di(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function Cd(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[Na]?(e.protocol||"")+"//":"")+s+o+t+n+r}class Sd extends Error{constructor(t,n){super(t,n),this.name="FetchError",n?.cause&&!this.cause&&(this.cause=n.cause)}}function Ad(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 Sd(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,u]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(l,a,{get(){return e.response&&e.response[u]}});return l}const xd=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function hi(e="GET"){return xd.has(e.toUpperCase())}function kd(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 Pd=new Set(["image/svg","application/xml","application/xhtml","application/html"]),Od=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function Id(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return Od.test(t)?"json":t==="text/event-stream"?"stream":Pd.has(t)||t.startsWith("text/")?"text":"blob"}function Nd(e,t,n,r){const s=Md(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 Md(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 ar(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const Hd=new Set([408,409,425,429,500,502,503,504]),Ld=new Set([101,204,205,304]);function Ma(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=hi(l.options.method)?0:1;const f=l.response&&l.response.status||500;if(c>0&&(Array.isArray(l.options.retryStatusCodes)?l.options.retryStatusCodes.includes(f):Hd.has(f))){const p=typeof l.options.retryDelay=="function"?l.options.retryDelay(l):l.options.retryDelay||0;return p>0&&await new Promise(d=>setTimeout(d,p)),o(l.request,{...l.options,retry:c-1})}}const u=Ad(l);throw Error.captureStackTrace&&Error.captureStackTrace(u,o),u}const o=async function(a,u={}){const c={request:a,options:Nd(a,u,e.defaults,n),response:void 0,error:void 0};if(c.options.method&&(c.options.method=c.options.method.toUpperCase()),c.options.onRequest&&(await ar(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=Ed(c.request,c.options.baseURL)),c.options.query&&(c.request=ka(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&&hi(c.options.method))if(kd(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 f;if(!c.options.signal&&c.options.timeout){const d=new r;f=setTimeout(()=>{const m=new Error("[TimeoutError]: The operation was aborted due to timeout");m.name="TimeoutError",m.code=23,d.abort(m)},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 ar(c,c.options.onRequestError),await s(c)}finally{f&&clearTimeout(f)}if((c.response.body||c.response._bodyInit)&&!Ld.has(c.response.status)&&c.options.method!=="HEAD"){const d=(c.options.parseResponse?"json":c.options.responseType)||Id(c.response.headers.get("content-type")||"");switch(d){case"json":{const m=await c.response.text(),_=c.options.parseResponse||Ar;c.response._data=_(m);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 ar(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await ar(c,c.options.onResponseError),await s(c)):c.response},i=async function(a,u){return(await o(a,u))._data};return i.raw=o,i.native=(...l)=>t(...l),i.create=(l={},a={})=>Ma({...e,...a,defaults:{...e.defaults,...a.defaults,...l}}),i}const kr=(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")})(),Dd=kr.fetch?(...e)=>kr.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),Fd=kr.Headers,jd=kr.AbortController,Bd=Ma({fetch:Dd,Headers:Fd,AbortController:jd}),Ud=Bd,$d=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,ho=()=>$d().app,Vd=()=>ho().baseURL,Wd=()=>ho().buildAssetsDir,po=(...e)=>Ia(Ha(),Wd(),...e),Ha=(...e)=>{const t=ho(),n=t.cdnURL||t.baseURL;return e.length?Ia(n,...e):n};globalThis.__buildAssetsURL=po,globalThis.__publicAssetsURL=Ha;globalThis.$fetch||(globalThis.$fetch=Ud.create({baseURL:Vd()}));"global"in globalThis||(globalThis.global=globalThis);function Hs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?Hs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const Kd={run:e=>e()},Gd=()=>Kd,La=typeof console.createTask<"u"?console.createTask:Gd;function qd(e,t){const n=t.shift(),r=La(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function Jd(e,t){const n=t.shift(),r=La(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function fs(e,t){for(const n of[...e])n(t)}let Yd=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=Hs(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=Hs(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(qd,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(Jd,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&fs(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&fs(this._after,s)}):(this._after&&s&&fs(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 zd(){return new Yd}function Qd(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},u=()=>t===i?a:void 0;Ls.add(u);try{const c=s?s.run(i,l):l();return n||(t=void 0),await c}finally{Ls.delete(u)}}}}function Xd(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=Qd({...e,...r})),t[n]}}}const Pr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},pi="__unctx__",Zd=Pr[pi]||(Pr[pi]=Xd()),eh=(e,t={})=>Zd.get(e,t),gi="__unctx_async_handlers__",Ls=Pr[gi]||(Pr[gi]=new Set);function Fn(e){const t=[];for(const s of Ls){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 mi=!1,th=!1,yi={id:"__nuxt-loader"},ym={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},nh="#__nuxt",Da="nuxt-app",_i=36e5,rh="vite:preloadError";function Fa(e=Da){return eh(e,{asyncContext:!1})}const sh="__nuxt_plugin";function oh(e){let t=0;const n={_id:e.id||Da||"nuxt-app",_scope:Ac(),provide:void 0,versions:{get nuxt(){return"4.3.1"},get vue(){return n.vueApp.version}},payload:mt({...e.ssrContext?.payload||{},data:mt({}),state:Nt({}),once:new Set,_errors:mt({})}),static:{data:{}},runWithContext(s){return n._scope.active&&!ll()?n._scope.run(()=>bi(n,s)):bi(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:mt({}),_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=zd(),n.hook=n.hooks.hook,n.callHook=n.hooks.callHook,n.provide=(s,o)=>{const i="$"+s;cr(n,i,o),cr(n.vueApp.config.globalProperties,i,o)},cr(n.vueApp,"$nuxt",n),cr(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(rh,o=>{n.callHook("app:chunkError",{error:o.payload}),o.payload.message.includes("Unable to preload CSS")&&o.preventDefault()}),window.useNuxtApp||=Te;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 ih(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function lh(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 ah(e,t){const n=new Set,r=[],s=[];let o,i=0;async function l(a){const u=a.dependsOn?.filter(c=>t.some(f=>f._name===c)&&!n.has(c))??[];if(u.length>0)r.push([new Set(u),a]);else{const c=lh(e,a).then(async()=>{a._name&&(n.add(a._name),await Promise.all(r.map(async([f,p])=>{f.has(a._name)&&(f.delete(a._name),f.size===0&&(i++,await l(p)))})))}).catch(f=>{if(!a.parallel&&!e.payload.error)throw f;o||=f});a.parallel?s.push(c):await c}}for(const a of t)ih(e,a);for(const a of t)await l(a);if(await Promise.all(s),i)for(let a=0;a{}),e,{[sh]:!0,_name:t})}function bi(e,t,n){const r=()=>t();return Fa(e._id).set(e),e.vueApp.runWithContext(r)}function ch(e){let t;return so()&&(t=En()?.appContext.app.$nuxt),t||=Fa(e).tryUse(),t||null}function Te(e){const t=ch(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function go(e){return Te().$config}function cr(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function us(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 Ds(e,t,n=".",r){if(!us(t))return Ds(e,{},n,r);const s=Object.assign({},t);for(const o in 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]]:us(i)&&us(s[o])?s[o]=Ds(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function fh(e){return(...t)=>t.reduce((n,r)=>Ds(n,r,"",e),{})}const ja=fh();function uh(e,t){try{return t in e}catch{return!1}}class vi 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:Fs(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=Ba(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}function dh(e){if(typeof e=="string")return new vi(e);if(hh(e))return e;const t=new vi(e.message??e.statusMessage??"",{cause:e.cause||e});if(uh(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=Fs(e.statusCode,t.statusCode):e.status&&(t.statusCode=Fs(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;Ba(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 hh(e){return e?.constructor?.__h3_error__===!0}const ph=/[^\u0009\u0020-\u007E]/g;function Ba(e=""){return e.replace(ph,"")}function Fs(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const gh=Symbol("layout-meta"),qr=Symbol("route");import.meta.url.replace(/\/app\/.*$/,"/");const Ge=()=>Te()?.$router,mh=()=>so()?Be(qr,Te()._route):Te()._route;const yh=()=>{try{if(Te()._processingMiddleware)return!0}catch{return!1}return!1},_m=(e,t)=>{e||="/";const n=typeof e=="string"?e:"path"in e?_h(e):Ge().resolve(e).href;if(t?.open){const{target:u="_blank",windowFeatures:c={}}=t.open,f=[];for(const[p,d]of Object.entries(c))d!==void 0&&f.push(`${p.toLowerCase()}=${d}`);return open(n,u,f.join(", ")),Promise.resolve()}const r=Tn(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:u}=new URL(n,window.location.href);if(u&&vd(u))throw new Error(`Cannot navigate to a URL with '${u}' protocol.`)}const o=yh();if(!s&&o){if(t?.replace){if(typeof e=="string"){const{pathname:u,search:c,hash:f}=uo(e);return{path:u,...c&&{query:xa(c)},...f&&{hash:f},replace:!0}}return{...e,replace:!0}}return e}const i=Ge(),l=Te();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"?bh(e):e;return t?.replace?i.replace(a):i.push(a)};function _h(e){return ka(e.path||"",e.query||{})+(e.hash||"")}function bh(e){const t=uo(e);return ad(cd(t.pathname))+t.search+t.hash}const Ua="__nuxt_error",Jr=()=>Zc(Te().payload,"error"),Bt=e=>{const t=qt(e);try{const n=Jr();Te().hooks.callHook("app:error",t),n.value||=t}catch{throw t}return t},vh=async(e={})=>{const t=Te(),n=Jr();t.callHook("app:error:cleared",e),e.redirect&&await Ge().replace(e.redirect),n.value=void 0},$a=e=>!!e&&typeof e=="object"&&Ua in e,qt=e=>{typeof e!="string"&&e.statusText&&(e.message??=e.statusText);const t=dh(e);return Object.defineProperty(t,Ua,{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};function wh(e){const t=Th(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let s=0;s>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const Rh=-1,Ch=-2,Sh=-3,Ah=-4,xh=-5,kh=-6;function Ph(e,t){return Oh(JSON.parse(e),t)}function Oh(e,t){if(typeof e=="number")return o(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);let s=null;function o(i,l=!1){if(i===Rh)return;if(i===Sh)return NaN;if(i===Ah)return 1/0;if(i===xh)return-1/0;if(i===kh)return-0;if(l||typeof i!="number")throw new Error("Invalid input");if(i in r)return r[i];const a=n[i];if(!a||typeof a!="object")r[i]=a;else if(Array.isArray(a))if(typeof a[0]=="string"){const u=a[0],c=t&&Object.hasOwn(t,u)?t[u]:void 0;if(c){let f=a[1];if(typeof f!="number"&&(f=n.push(a[1])-1),s??=new Set,s.has(f))throw new Error("Invalid circular reference");return s.add(f),r[i]=c(o(f)),s.delete(f),r[i]}switch(u){case"Date":r[i]=new Date(a[1]);break;case"Set":const f=new Set;r[i]=f;for(let m=1;m{if(console.createTask)return console.createTask;const e={run:t=>t()};return()=>e})();function Wa(e,t,n,r){for(let s=n;se[s](...t)):e[s](...t);if(o instanceof Promise)return o.then(()=>Wa(e,t,s+1,r))}catch(o){return Promise.reject(o)}}function jh(e,t,n){if(e.length>0)return Wa(e,t,0,Va(n))}function Bh(e,t,n){if(e.length>0){const r=Va(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}}function ds(e,t){for(const n of[...e])n(t)}var Uh=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)}}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=js(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=js(e);for(const n in t)this.removeHook(n,t[n])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(jh,e,t)}callHookParallel(e,...t){return this.callHookWith(Bh,e,t)}callHookWith(e,t,n){const r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&ds(this._before,r);const s=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return s instanceof Promise?s.finally(()=>{this._after&&r&&ds(this._after,r)}):(this._after&&r&&ds(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 $h(){return new Uh}const Vh=["name","property","http-equiv"],Wh=new Set(["viewport","description","keywords","robots"]);function Ka(e){const t=e.split(":");return t.length?Fh.has(t[1]):!1}function Bs(e){const{props:t,tag:n}=e;if(Hh.has(n))return n;if(n==="link"&&t.rel==="canonical")return"canonical";const r=t.hreflang||t.type;if(n==="link"&&t.rel==="alternate"&&r)return`alternate:${r}`;if(t.charset)return"charset";if(e.tag==="meta"){for(const s of Vh)if(t[s]!==void 0){const o=t[s],i=o&&typeof o=="string"&&o.includes(":"),l=o&&Wh.has(o),u=!(i||l)&&e.key?`:key:${e.key}`:"";return`${n}:${o}${u}`}}if(e.key)return`${n}:key:${e.key}`;if(t.id)return`${n}:id:${t.id}`;if(Nh.has(n)){const s=e.textContent||e.innerHTML;if(s)return`${n}:content:${s}`}}function Ei(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 Or(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=>Or(o,t));if(s?.constructor===Object){const o={};for(const i of Object.keys(s))o[i]=Or(s[i],t,i);return o}return s}function Kh(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 Ga(e,t){return e.props=e.props||{},t?e.tag==="templateParams"?(e.props=t,e):(Object.entries(t).forEach(([n,r])=>{if(r===null){e.props[n]=null;return}if(n==="class"||n==="style"){e.props[n]=Kh(n,r);return}if(Lh.has(n)){if(["textContent","innerHTML"].includes(n)&&typeof r=="object"){let l=t.type;if(t.type||(l="application/json"),!l?.endsWith("json")&&l!=="speculationrules")return;t.type=l,e.props.type=l,e[n]=JSON.stringify(r)}else e[n]=r;return}const s=String(r),o=n.startsWith("data-"),i=e.tag==="meta"&&n==="content";s==="true"||s===""?e.props[n]=o||i?s:!0:!r&&o&&s==="false"?e.props[n]="false":r!==void 0&&(e.props[n]=r)}),e):e}function Gh(e,t){const n=typeof t=="object"&&typeof t!="function"?t:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},r=Ga({tag:e,props:{}},n);return r.key&&Ih.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 qh(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(Gh(s,i))}),r.flat()}const Ti=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Ri={base:-10,title:10},Jh={critical:-8,high:-1,low:2},Ci={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}},Yh=/@import/,xn=e=>e===""||e===!0;function zh(e,t){if(typeof t.tagPriority=="number")return t.tagPriority;let n=100;const r=Jh[t.tagPriority]||0,s=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:Ci;if(t.tag in Ri)n=Ri[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=Ci.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);xn(t.props.async)?n=s.script.async:t.props.src&&!xn(t.props.defer)&&!xn(t.props.async)&&o!=="module"&&!o.endsWith("json")||t.innerHTML&&!o.endsWith("json")?n=s.script.sync:(xn(t.props.defer)&&t.props.src&&!xn(t.props.async)||o==="module")&&(n=s.script.defer)}else t.tag==="style"&&(n=t.innerHTML&&Yh.test(t.innerHTML)?s.style.imported:s.style.sync);return(n||100)+r}function Si(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 Qh(e={}){const t=$h();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=>Si(i,l),push(l,a){const u={...a||{}};delete u.head;const c=u._index??i._entryCount++,f={_i:c,input:l,options:u},p={_poll(d=!1){i.dirty=!0,!d&&o.add(c),t.callHook("entries:updated",i)},dispose(){r.delete(c)&&i.invalidate()},patch(d){(!u.mode||u.mode==="server"&&n||u.mode==="client"&&!n)&&(f.input=d,r.set(c,f),p._poll())}};return p.patch(l),p},async resolveTags(){const l={tagMap:new Map,tags:[],entries:[...i.entries.values()]};for(await t.callHook("entries:resolve",l);o.size;){const p=o.values().next().value;o.delete(p);const d=r.get(p);if(d){const m={tags:qh(d.input,e.propResolvers||[]).map(_=>Object.assign(_,d.options)),entry:d};await t.callHook("entries:normalize",m),d._tags=m.tags.map((_,T)=>(_._w=zh(i,_),_._p=(d._i<<10)+T,_._d=Bs(_),_))}}let a=!1;l.entries.flatMap(p=>(p._tags||[]).map(d=>({...d,props:{...d.props}}))).sort(Ti).reduce((p,d)=>{const m=String(d._d||d._p);if(!p.has(m))return p.set(m,d);const _=p.get(m);if((d?.tagDuplicateStrategy||(Dh.has(d.tag)?"merge":null)||(d.key&&d.key===_.key?"merge":null))==="merge"){const R={..._.props};Object.entries(d.props).forEach(([v,g])=>R[v]=v==="style"?new Map([..._.props.style||new Map,...g]):v==="class"?new Set([..._.props.class||new Set,...g]):g),p.set(m,{...d,props:R})}else d._p>>10===_._p>>10&&d.tag==="meta"&&Ka(m)?(p.set(m,Object.assign([...Array.isArray(_)?_:[_],d],d)),a=!0):(d._w===_._w?d._p>_._p:d?._w<_?._w)&&p.set(m,d);return p},l.tagMap);const u=l.tagMap.get("title"),c=l.tagMap.get("titleTemplate");if(i._title=u?.textContent,c){const p=c?.textContent;if(i._titleTemplate=p,p){let d=typeof p=="function"?p(u?.textContent):p;typeof d=="string"&&!i.plugins.has("template-params")&&(d=d.replace("%s",u?.textContent||"")),u?d===null?l.tagMap.delete("title"):l.tagMap.set("title",{...u,textContent:d}):(c.tag="title",c.textContent=d)}}l.tags=Array.from(l.tagMap.values()),a&&(l.tags=l.tags.flat().sort(Ti)),await t.callHook("tags:beforeResolve",l),await t.callHook("tags:resolve",l),await t.callHook("tags:afterResolve",l);const f=[];for(const p of l.tags){const{innerHTML:d,tag:m,props:_}=p;if(Mh.has(m)&&!(Object.keys(_).length===0&&!p.innerHTML&&!p.textContent)&&!(m==="meta"&&!_.content&&!_["http-equiv"]&&!_.charset)){if(m==="script"&&d){if(String(_.type).endsWith("json")){const T=typeof d=="string"?d:JSON.stringify(d);p.innerHTML=T.replace(/Si(i,l)),i.hooks.callHook("init",i),e.init?.forEach(l=>l&&i.push(l)),i}const Xh=(e,t)=>ye(t)?Yc(t):t,qa="usehead";function Zh(e){return{install(n){n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(qa,e)}}.install}function ep(){if(so()){const e=Be(qa);if(e)return e}throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.")}function bm(e,t={}){const n=t.head||ep();return n.ssr?n.push(e||{},t):tp(n,e,t)}function tp(e,t,n={}){const r=yt(!1);let s;return ff(()=>{const i=r.value?{}:Or(t,Xh);s?s.patch(i):s=e.push(i,n)}),En()&&(Zn(()=>{s.dispose()}),Dl(()=>{r.value=!0}),Ll(()=>{r.value=!1})),s}const np=(e,t)=>[],rp=e=>ja({},...np().map(t=>t.data).reverse()),sp=rp;let hr;function op(){return hr=$fetch(po(`builds/meta/${go().app.buildId}.json`),{responseType:"json"}),hr.catch(e=>{console.error("[nuxt] Error fetching app manifest.",e)}),hr}function Ja(){return hr||op()}function Ya(e){const t=typeof e=="string"?e:e.path;try{return sp(t)}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function Ai(e,t={}){return null}async function ip(e){return null}let Ft=null;async function lp(){if(Ft)return Ft;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await ap(e.textContent||""),n=e.dataset.src?await ip(e.dataset.src):void 0;return Ft={...t,...n,...window.__NUXT__},Ft.config?.public&&(Ft.config.public=Nt(Ft.config.public)),Ft}async function ap(e){return await Ph(e,Te()._payloadRevivers)}function cp(e,t){Te()._payloadRevivers[e]=t}const fp=[["NuxtError",e=>qt(e)],["EmptyShallowRef",e=>$n(e==="_"?void 0:e==="0n"?BigInt(0):Ar(e))],["EmptyRef",e=>yt(e==="_"?void 0:e==="0n"?BigInt(0):Ar(e))],["ShallowRef",e=>$n(e)],["ShallowReactive",e=>mt(e)],["Ref",e=>yt(e)],["Reactive",e=>Nt(e)]],up=Et({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of fp)cp(r,s);Object.assign(e.payload,([t,n]=Fn(()=>e.runWithContext(lp)),t=await t,n(),t)),delete window.__NUXT__}});async function mo(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(m=>{d(m.map(_=>{const T=o.get(_._d)||0,R={tag:_,id:(T?`${_._d}:${T}`:_._d)||Ei(_),shouldRender:!0};return _._d&&Ka(_._d)&&o.set(_._d,T+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 m=n[d]?.children;for(const _ of m){const T=_.tagName.toLowerCase();if(!wi.has(T))continue;const R=Ga({tag:T,props:{}},{innerHTML:_.innerHTML,..._.getAttributeNames().reduce((v,g)=>(v[g]=_.getAttribute(g),v),{})||{}});if(R.key=_.getAttribute("data-hid")||void 0,R._d=Bs(R)||Ei(R),l.elMap.has(R._d)){let v=1,g=R._d;for(;l.elMap.has(g);)g=`${R._d}:${v++}`;l.elMap.set(g,_)}else l.elMap.set(R._d,_)}}}l.pendingSideEffects={...l.sideEffects},l.sideEffects={};function a(d,m,_){const T=`${d}:${m}`;l.sideEffects[T]=_,delete l.pendingSideEffects[T]}function u({id:d,$el:m,tag:_}){const T=_.tag.endsWith("Attrs");l.elMap.set(d,m),T||(_.textContent&&_.textContent!==m.textContent&&(m.textContent=_.textContent),_.innerHTML&&_.innerHTML!==m.innerHTML&&(m.innerHTML=_.innerHTML),a(d,"el",()=>{m?.remove(),l.elMap.delete(d)}));for(const R in _.props){if(!Object.prototype.hasOwnProperty.call(_.props,R))continue;const v=_.props[R];if(R.startsWith("on")&&typeof v=="function"){const b=m?.dataset;if(b&&b[`${R}fired`]){const E=R.slice(0,-5);v.call(m,new Event(E.substring(2)))}m.getAttribute(`data-${R}`)!==""&&((_.tag==="bodyAttrs"?n.defaultView:m).addEventListener(R.substring(2),v.bind(m)),m.setAttribute(`data-${R}`,""));continue}const g=`attr:${R}`;if(R==="class"){if(!v)continue;for(const b of v)T&&a(d,`${g}:${b}`,()=>m.classList.remove(b)),!m.classList.contains(b)&&m.classList.add(b)}else if(R==="style"){if(!v)continue;for(const[b,E]of v)a(d,`${g}:${b}`,()=>{m.style.removeProperty(b)}),m.style.setProperty(b,E)}else v!==!1&&v!==null&&(m.getAttribute(R)!==v&&m.setAttribute(R,v===!0?"":String(v)),T&&a(d,g,()=>m.removeAttribute(R)))}}const c=[],f={bodyClose:void 0,bodyOpen:void 0,head:void 0},p=await i;for(const d of p){const{tag:m,shouldRender:_,id:T}=d;if(_){if(m.tag==="title"){n.title=m.textContent,a("title","",()=>n.title=l.title);continue}d.$el=d.$el||l.elMap.get(T),d.$el?u(d):wi.has(m.tag)&&c.push(d)}}for(const d of c){const m=d.tag.tagPosition||"head";d.$el=n.createElement(d.tag.tag),u(d),f[m]=f[m]||n.createDocumentFragment(),f[m].appendChild(d.$el)}for(const d of p)await e.hooks.callHook("dom:renderTag",d,n,a);f.head&&n.head.appendChild(f.head),f.bodyOpen&&n.body.insertBefore(f.bodyOpen,n.body.firstChild),f.bodyClose&&n.body.appendChild(f.bodyClose);for(const d in l.pendingSideEffects)l.pendingSideEffects[d]();e._dom=l,await e.hooks.callHook("dom:rendered",{renders:p}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function dp(e={}){const t=e.domOptions?.render||mo;e.document=e.document||(typeof window<"u"?document:void 0);const n=e.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML||!1;return Qh({...e,plugins:[...e.plugins||[],{key:"client",hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function hp(e,t){let n=0;return()=>{const r=++n;t(()=>{n===r&&e()})}}function pp(e={}){const t=dp({domOptions:{render:hp(()=>mo(t),n=>setTimeout(n,0))},...e});return t.install=Zh(t),t}const gp={disableDefaults:!0},mp=Et({name:"nuxt:head",enforce:"pre",setup(e){const t=pp(gp);e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await mo(t)};t.hooks.hook("dom:beforeRender",s=>{s.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 en=typeof document<"u";function za(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function yp(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&za(e.default)}const se=Object.assign;function hs(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ze(s)?s.map(e):e(s)}return n}const jn=()=>{},Ze=Array.isArray;function xi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Qa=/#/g,_p=/&/g,bp=/\//g,vp=/=/g,wp=/\?/g,Xa=/\+/g,Ep=/%5B/g,Tp=/%5D/g,Za=/%5E/g,Rp=/%60/g,ec=/%7B/g,Cp=/%7C/g,tc=/%7D/g,Sp=/%20/g;function yo(e){return e==null?"":encodeURI(""+e).replace(Cp,"|").replace(Ep,"[").replace(Tp,"]")}function Ap(e){return yo(e).replace(ec,"{").replace(tc,"}").replace(Za,"^")}function Us(e){return yo(e).replace(Xa,"%2B").replace(Sp,"+").replace(Qa,"%23").replace(_p,"%26").replace(Rp,"`").replace(ec,"{").replace(tc,"}").replace(Za,"^")}function xp(e){return Us(e).replace(vp,"%3D")}function kp(e){return yo(e).replace(Qa,"%23").replace(wp,"%3F")}function Pp(e){return kp(e).replace(bp,"%2F")}function qn(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Op=/\/$/,Ip=e=>e.replace(Op,"");function ps(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=Lp(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:qn(i)}}function Np(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ki(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Mp(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&_n(t.matched[r],n.matched[s])&&nc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function _n(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function nc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Hp(e[n],t[n]))return!1;return!0}function Hp(e,t){return Ze(e)?Pi(e,t):Ze(t)?Pi(t,e):e?.valueOf()===t?.valueOf()}function Pi(e,t){return Ze(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Lp(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 Ve={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let $s=(function(e){return e.pop="pop",e.push="push",e})({}),gs=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Dp(e){if(!e)if(en){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ip(e)}const Fp=/^[^#]+#/;function jp(e,t){return e.replace(Fp,"#")+t}function Bp(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 Yr=()=>({left:window.scrollX,top:window.scrollY});function Up(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=Bp(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 Oi(e,t){return(history.state?history.state.position-t:-1)+e}const Vs=new Map;function $p(e,t){Vs.set(e,t)}function Vp(e){const t=Vs.get(e);return Vs.delete(e),t}function Wp(e){return typeof e=="string"||e&&typeof e=="object"}function rc(e){return typeof e=="string"||typeof e=="symbol"}let ge=(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 sc=Symbol("");ge.MATCHER_NOT_FOUND+"",ge.NAVIGATION_GUARD_REDIRECT+"",ge.NAVIGATION_ABORTED+"",ge.NAVIGATION_CANCELLED+"",ge.NAVIGATION_DUPLICATED+"";function bn(e,t){return se(new Error,{type:e,[sc]:!0},t)}function ut(e,t){return e instanceof Error&&sc in e&&(t==null||!!(e.type&t))}const Kp=["params","query","hash"];function Gp(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Kp)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function qp(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Us(s)):[r&&Us(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Jp(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ze(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Yp=Symbol(""),Ni=Symbol(""),_o=Symbol(""),oc=Symbol(""),Ws=Symbol("");function kn(){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 xt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const u=p=>{p===!1?a(bn(ge.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?a(p):Wp(p)?a(bn(ge.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(i&&r.enterCallbacks[s]===i&&typeof p=="function"&&i.push(p),l())},c=o(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(p=>a(p))})}function ms(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(za(a)){const u=(a.__vccOpts||a)[t];u&&o.push(xt(u,n,r,i,l,s))}else{let u=a();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const f=yp(c)?c.default:c;i.mods[l]=c,i.components[l]=f;const p=(f.__vccOpts||f)[t];return p&&xt(p,n,r,i,l,s)()}))}}return o}function zp(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;i_n(u,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(u=>_n(u,a))||s.push(a))}return[n,r,s]}let Qp=()=>location.protocol+"//"+location.host;function ic(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),ki(l,"")}return ki(n,e)+r+s}function Xp(e,t,n,r){let s=[],o=[],i=null;const l=({state:p})=>{const d=ic(e,location),m=n.value,_=t.value;let T=0;if(p){if(n.value=d,t.value=p,i&&i===m){i=null;return}T=_?p.position-_.position:0}else r(d);s.forEach(R=>{R(n.value,m,{delta:T,type:$s.pop,direction:T?T>0?gs.forward:gs.back:gs.unknown})})};function a(){i=n.value}function u(p){s.push(p);const d=()=>{const m=s.indexOf(p);m>-1&&s.splice(m,1)};return o.push(d),d}function c(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(se({},p.state,{scroll:Yr()}),"")}}function f(){for(const p of o)p();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:u,destroy:f}}function Mi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?Yr():null}}function Zp(e){const{history:t,location:n}=window,r={value:ic(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,u,c){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:Qp()+e+a;try{t[c?"replaceState":"pushState"](u,"",p),s.value=u}catch(d){console.error(d),n[c?"replace":"assign"](p)}}function i(a,u){o(a,se({},t.state,Mi(s.value.back,a,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=a}function l(a,u){const c=se({},s.value,t.state,{forward:a,scroll:Yr()});o(c.current,c,!0),o(a,se({},Mi(r.value,a,null),{position:c.position+1},u),!1),r.value=a}return{location:r,state:s,push:l,replace:i}}function eg(e){e=Dp(e);const t=Zp(e),n=Xp(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=se({location:"",base:e,go:r,createHref:jp.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 $t=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var _e=(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})(_e||{});const tg={type:$t.Static,value:""},ng=/[a-zA-Z0-9_]/;function rg(e){if(!e)return[[]];if(e==="/")return[[tg]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${n})/"${u}": ${d}`)}let n=_e.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,a,u="",c="";function f(){u&&(n===_e.Static?o.push({type:$t.Static,value:u}):n===_e.Param||n===_e.ParamRegExp||n===_e.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:$t.Param,value:u,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function p(){u+=a}for(;lt.length?t.length===1&&t[0]===Ae.Static+Ae.Segment?1:-1:0}function lc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const ag={strict:!1,end:!0,sensitive:!1};function cg(e,t,n){const r=ig(rg(e.path),n),s=se(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function fg(e,t){const n=[],r=new Map;t=xi(ag,t);function s(f){return r.get(f)}function o(f,p,d){const m=!d,_=Fi(f);_.aliasOf=d&&d.record;const T=xi(t,f),R=[_];if("alias"in f){const b=typeof f.alias=="string"?[f.alias]:f.alias;for(const E of b)R.push(Fi(se({},_,{components:d?d.record.components:_.components,path:E,aliasOf:d?d.record:_})))}let v,g;for(const b of R){const{path:E}=b;if(p&&E[0]!=="/"){const S=p.record.path,M=S[S.length-1]==="/"?"":"/";b.path=p.record.path+(E&&M+E)}if(v=cg(b,p,T),d?d.alias.push(v):(g=g||v,g!==v&&g.alias.push(v),m&&f.name&&!ji(v)&&i(f.name)),ac(v)&&a(v),_.children){const S=_.children;for(let M=0;M{i(g)}:jn}function i(f){if(rc(f)){const p=r.get(f);p&&(r.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function a(f){const p=hg(f,n);n.splice(p,0,f),f.record.name&&!ji(f)&&r.set(f.record.name,f)}function u(f,p){let d,m={},_,T;if("name"in f&&f.name){if(d=r.get(f.name),!d)throw bn(ge.MATCHER_NOT_FOUND,{location:f});T=d.record.name,m=se(Di(p.params,d.keys.filter(g=>!g.optional).concat(d.parent?d.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),f.params&&Di(f.params,d.keys.map(g=>g.name))),_=d.stringify(m)}else if(f.path!=null)_=f.path,d=n.find(g=>g.re.test(_)),d&&(m=d.parse(_),T=d.record.name);else{if(d=p.name?r.get(p.name):n.find(g=>g.re.test(p.path)),!d)throw bn(ge.MATCHER_NOT_FOUND,{location:f,currentLocation:p});T=d.record.name,m=se({},p.params,f.params),_=d.stringify(m)}const R=[];let v=d;for(;v;)R.unshift(v.record),v=v.parent;return{name:T,path:_,params:m,matched:R,meta:dg(R)}}e.forEach(f=>o(f));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function Di(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Fi(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:ug(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 ug(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 ji(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function dg(e){return e.reduce((t,n)=>se(t,n.meta),{})}function hg(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;lc(e,t[o])<0?r=o:n=o+1}const s=pg(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function pg(e){let t=e;for(;t=t.parent;)if(ac(t)&&lc(e,t)===0)return t}function ac({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Bi(e){const t=Be(_o),n=Be(oc),r=Ye(()=>{const a=de(e.to);return t.resolve(a)}),s=Ye(()=>{const{matched:a}=r.value,{length:u}=a,c=a[u-1],f=n.matched;if(!c||!f.length)return-1;const p=f.findIndex(_n.bind(null,c));if(p>-1)return p;const d=Ui(a[u-2]);return u>1&&Ui(c)===d&&f[f.length-1].path!==d?f.findIndex(_n.bind(null,a[u-2])):p}),o=Ye(()=>s.value>-1&&bg(n.params,r.value.params)),i=Ye(()=>s.value>-1&&s.value===n.matched.length-1&&nc(n.params,r.value.params));function l(a={}){if(_g(a)){const u=t[de(e.replace)?"replace":"push"](de(e.to)).catch(jn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Ye(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function gg(e){return e.length===1?e[0]:e}const mg=Qn({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:Bi,setup(e,{slots:t}){const n=Nt(Bi(e)),{options:r}=Be(_o),s=Ye(()=>({[$i(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[$i(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&gg(t.default(n));return e.custom?o:We("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),yg=mg;function _g(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 bg(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(!Ze(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Ui(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const $i=(e,t,n)=>e??t??n,vg=Qn({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Be(Ws),s=Ye(()=>e.route||r.value),o=Be(Ni,0),i=Ye(()=>{let u=de(o);const{matched:c}=s.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),l=Ye(()=>s.value.matched[i.value]);ln(Ni,Ye(()=>i.value+1)),ln(Yp,l),ln(Ws,s);const a=yt();return an(()=>[a.value,l.value,e.name],([u,c,f],[p,d,m])=>{c&&(c.instances[f]=u,d&&d!==c&&u&&u===p&&(c.leaveGuards.size||(c.leaveGuards=d.leaveGuards),c.updateGuards.size||(c.updateGuards=d.updateGuards))),u&&c&&(!d||!_n(c,d)||!p)&&(c.enterCallbacks[f]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,f=l.value,p=f&&f.components[c];if(!p)return Vi(n.default,{Component:p,route:u});const d=f.props[c],m=d?d===!0?u.params:typeof d=="function"?d(u):d:null,T=We(p,se({},m,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(f.instances[c]=null)},ref:a}));return Vi(n.default,{Component:T,route:u})||T}}});function Vi(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const cc=vg;function wg(e){const t=fg(e.routes,e),n=e.parseQuery||qp,r=e.stringifyQuery||Ii,s=e.history,o=kn(),i=kn(),l=kn(),a=$n(Ve);let u=Ve;en&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=hs.bind(null,A=>""+A),f=hs.bind(null,Pp),p=hs.bind(null,qn);function d(A,U){let F,q;return rc(A)?(F=t.getRecordMatcher(A),q=U):q=A,t.addRoute(q,F)}function m(A){const U=t.getRecordMatcher(A);U&&t.removeRoute(U)}function _(){return t.getRoutes().map(A=>A.record)}function T(A){return!!t.getRecordMatcher(A)}function R(A,U){if(U=se({},U||a.value),typeof A=="string"){const y=ps(n,A,U.path),w=t.resolve({path:y.path},U),x=s.createHref(y.fullPath);return se(y,w,{params:p(w.params),hash:qn(y.hash),redirectedFrom:void 0,href:x})}let F;if(A.path!=null)F=se({},A,{path:ps(n,A.path,U.path).path});else{const y=se({},A.params);for(const w in y)y[w]==null&&delete y[w];F=se({},A,{params:f(y)}),U.params=f(U.params)}const q=t.resolve(F,U),Z=A.hash||"";q.params=c(p(q.params));const he=Np(r,se({},A,{hash:Ap(Z),path:q.path})),h=s.createHref(he);return se({fullPath:he,hash:Z,query:r===Ii?Jp(A.query):A.query||{}},q,{redirectedFrom:void 0,href:h})}function v(A){return typeof A=="string"?ps(n,A,a.value.path):se({},A)}function g(A,U){if(u!==A)return bn(ge.NAVIGATION_CANCELLED,{from:U,to:A})}function b(A){return M(A)}function E(A){return b(se(v(A),{replace:!0}))}function S(A,U){const F=A.matched[A.matched.length-1];if(F&&F.redirect){const{redirect:q}=F;let Z=typeof q=="function"?q(A,U):q;return typeof Z=="string"&&(Z=Z.includes("?")||Z.includes("#")?Z=v(Z):{path:Z},Z.params={}),se({query:A.query,hash:A.hash,params:Z.path!=null?{}:A.params},Z)}}function M(A,U){const F=u=R(A),q=a.value,Z=A.state,he=A.force,h=A.replace===!0,y=S(F,q);if(y)return M(se(v(y),{state:typeof y=="object"?se({},Z,y.state):Z,force:he,replace:h}),U||F);const w=F;w.redirectedFrom=U;let x;return!he&&Mp(r,q,F)&&(x=bn(ge.NAVIGATION_DUPLICATED,{to:w,from:q}),et(q,q,!0,!1)),(x?Promise.resolve(x):N(w,q)).catch(C=>ut(C)?ut(C,ge.NAVIGATION_GUARD_REDIRECT)?C:Tt(C):B(C,w,q)).then(C=>{if(C){if(ut(C,ge.NAVIGATION_GUARD_REDIRECT))return M(se({replace:h},v(C.to),{state:typeof C.to=="object"?se({},Z,C.to.state):Z,force:he}),U||w)}else C=O(w,q,!0,h,Z);return W(w,q,C),C})}function V(A,U){const F=g(A,U);return F?Promise.reject(F):Promise.resolve()}function I(A){const U=zt.values().next().value;return U&&typeof U.runWithContext=="function"?U.runWithContext(A):A()}function N(A,U){let F;const[q,Z,he]=zp(A,U);F=ms(q.reverse(),"beforeRouteLeave",A,U);for(const y of q)y.leaveGuards.forEach(w=>{F.push(xt(w,A,U))});const h=V.bind(null,A,U);return F.push(h),Ue(F).then(()=>{F=[];for(const y of o.list())F.push(xt(y,A,U));return F.push(h),Ue(F)}).then(()=>{F=ms(Z,"beforeRouteUpdate",A,U);for(const y of Z)y.updateGuards.forEach(w=>{F.push(xt(w,A,U))});return F.push(h),Ue(F)}).then(()=>{F=[];for(const y of he)if(y.beforeEnter)if(Ze(y.beforeEnter))for(const w of y.beforeEnter)F.push(xt(w,A,U));else F.push(xt(y.beforeEnter,A,U));return F.push(h),Ue(F)}).then(()=>(A.matched.forEach(y=>y.enterCallbacks={}),F=ms(he,"beforeRouteEnter",A,U,I),F.push(h),Ue(F))).then(()=>{F=[];for(const y of i.list())F.push(xt(y,A,U));return F.push(h),Ue(F)}).catch(y=>ut(y,ge.NAVIGATION_CANCELLED)?y:Promise.reject(y))}function W(A,U,F){l.list().forEach(q=>I(()=>q(A,U,F)))}function O(A,U,F,q,Z){const he=g(A,U);if(he)return he;const h=U===Ve,y=en?history.state:{};F&&(q||h?s.replace(A.fullPath,se({scroll:h&&y&&y.scroll},Z)):s.push(A.fullPath,Z)),a.value=A,et(A,U,F,h),Tt()}let K;function ee(){K||(K=s.listen((A,U,F)=>{if(!Mt.listening)return;const q=R(A),Z=S(q,Mt.currentRoute.value);if(Z){M(se(Z,{replace:!0,force:!0}),q).catch(jn);return}u=q;const he=a.value;en&&$p(Oi(he.fullPath,F.delta),Yr()),N(q,he).catch(h=>ut(h,ge.NAVIGATION_ABORTED|ge.NAVIGATION_CANCELLED)?h:ut(h,ge.NAVIGATION_GUARD_REDIRECT)?(M(se(v(h.to),{force:!0}),q).then(y=>{ut(y,ge.NAVIGATION_ABORTED|ge.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===$s.pop&&s.go(-1,!1)}).catch(jn),Promise.reject()):(F.delta&&s.go(-F.delta,!1),B(h,q,he))).then(h=>{h=h||O(q,he,!1),h&&(F.delta&&!ut(h,ge.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===$s.pop&&ut(h,ge.NAVIGATION_ABORTED|ge.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),W(q,he,h)}).catch(jn)}))}let le=kn(),$=kn(),Q;function B(A,U,F){Tt(A);const q=$.list();return q.length?q.forEach(Z=>Z(A,U,F)):console.error(A),Promise.reject(A)}function ce(){return Q&&a.value!==Ve?Promise.resolve():new Promise((A,U)=>{le.add([A,U])})}function Tt(A){return Q||(Q=!A,ee(),le.list().forEach(([U,F])=>A?F(A):U()),le.reset()),A}function et(A,U,F,q){const{scrollBehavior:Z}=e;if(!en||!Z)return Promise.resolve();const he=!F&&Vp(Oi(A.fullPath,0))||(q||!F)&&history.state&&history.state.scroll||null;return hn().then(()=>Z(A,U,he)).then(h=>h&&Up(h)).catch(h=>B(h,A,U))}const ke=A=>s.go(A);let Yt;const zt=new Set,Mt={currentRoute:a,listening:!0,addRoute:d,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:T,getRoutes:_,resolve:R,options:e,push:b,replace:E,go:ke,back:()=>ke(-1),forward:()=>ke(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:$.add,isReady:ce,install(A){A.component("RouterLink",yg),A.component("RouterView",cc),A.config.globalProperties.$router=Mt,Object.defineProperty(A.config.globalProperties,"$route",{enumerable:!0,get:()=>de(a)}),en&&!Yt&&a.value===Ve&&(Yt=!0,b(s.location).catch(q=>{}));const U={};for(const q in Ve)Object.defineProperty(U,q,{get:()=>a.value[q],enumerable:!0});A.provide(_o,Mt),A.provide(oc,mt(U)),A.provide(Ws,a);const F=A.unmount;zt.add(A),A.unmount=function(){zt.delete(A),zt.size<1&&(u=Ve,K&&K(),K=null,a.value=Ve,Yt=!1,Q=!1),F()}}};function Ue(A){return A.reduce((U,F)=>U.then(()=>I(F)),Promise.resolve())}return Mt}const Eg=/(:\w+)\([^)]+\)/g,Tg=/(:\w+)[?+*]/g,Rg=/:\w+/g,Cg=(e,t)=>t.path.replace(Eg,"$1").replace(Tg,"$1").replace(Rg,n=>e.params[n.slice(1)]?.toString()||""),Ks=(e,t)=>{const n=e.route.matched.find(s=>s.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Cg(e.route,n));return typeof r=="function"?r(e.route):r},Sg=(e,t)=>({default:()=>e?We(Ef,e===!0?{}:e,t):t});function bo(e){return Array.isArray(e)?e:[e]}const Ag="modulepreload",xg=function(e,t){return new URL(e,t).href},Wi={},Gs=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let u=function(c){return Promise.all(c.map(f=>Promise.resolve(f).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),a=l?.nonce||l?.getAttribute("nonce");s=u(n.map(c=>{if(c=xg(c,r),c in Wi)return;Wi[c]=!0;const f=c.endsWith(".css"),p=f?'[rel="stylesheet"]':"";if(r)for(let m=i.length-1;m>=0;m--){const _=i[m];if(_.href===c&&(!f||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${p}`))return;const d=document.createElement("link");if(d.rel=f?"stylesheet":Ag,f||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),f)return new Promise((m,_)=>{d.addEventListener("load",m),d.addEventListener("error",()=>_(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)})},ys=[{name:"index",path:"/",component:()=>Gs(()=>import("./CeoJbNH2.js"),__vite__mapDeps([0,1]),import.meta.url)}],kg=(e,t)=>({default:()=>e?We(Tu,e===!0?{}:e,t):t.default?.()}),Pg=/(:\w+)\([^)]+\)/g,Og=/(:\w+)[?+*]/g,Ig=/:\w+/g;function Ki(e){const t=e?.meta.key??e.path.replace(Pg,"$1").replace(Og,"$1").replace(Ig,n=>e.params[n.slice(1)]?.toString()||"");return typeof t=="function"?t(e):t}function Ng(e,t){return e===t||t===Ve?!1:Ki(e)!==Ki(t)?!0:!e.matched.every((r,s)=>r.components&&r.components.default===t.matched[s]?.components?.default)}const Mg={scrollBehavior(e,t,n){const r=Te(),s=Ge().options?.scrollBehaviorType??"auto";if(e.path.replace(/\/$/,"")===t.path.replace(/\/$/,""))return t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:fc(e.hash),behavior:s}:!1;if((typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1)return!1;const i=r._runningTransition?"page:transition:finish":"page:loading:end";return new Promise(l=>{if(t===Ve){l(Gi(e,t,n,s));return}r.hooks.hookOnce(i,()=>{requestAnimationFrame(()=>l(Gi(e,t,n,s)))})})}};function fc(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 Gi(e,t,n,r){if(n)return n;const s=Ng(e,t);return e.hash?{el:e.hash,top:fc(e.hash),behavior:s?r:"instant"}:{left:0,top:0}}const Hg={hashMode:!1,scrollBehaviorType:"auto"},Ct={...Hg,...Mg},Lg=async(e,t)=>{let n,r;if(!e.meta?.validate)return;const s=([n,r]=Fn(()=>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},Dg=e=>{const t=Ya({path:e.path});if(t.redirect){const n=t.redirect.includes("#")?t.redirect:t.redirect+e.hash;return Tn(n,{acceptRelative:!0})?(window.location.href=n,!1):n}},Fg=[Lg,Dg],qs={};function jg(e,t,n){const{pathname:r,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){const u=o.includes(e.slice(i))?e.slice(i).length:1;let c=o.slice(u);return c[0]!=="/"&&(c="/"+c),ui(c,"")}const l=ui(r,e),a=!n||Rd(l,n)?l:n;return a+(a.includes("?")?"":s)+o}const Bg=Et({name:"nuxt:router",enforce:"pre",async setup(e){let t,n,r=go().app.baseURL;const s=Ct.history?.(r)??eg(r),o=Ct.routes?([t,n]=Fn(()=>Ct.routes(ys)),t=await t,n(),t??ys):ys;let i;const l=wg({...Ct,scrollBehavior:(T,R,v)=>{if(R===Ve){i=v;return}if(Ct.scrollBehavior){if(l.options.scrollBehavior=Ct.scrollBehavior,"scrollRestoration"in window.history){const g=l.beforeEach(()=>{g(),window.history.scrollRestoration="manual"})}return Ct.scrollBehavior(T,Ve,i||v)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(l);const a=$n(l.currentRoute.value);l.afterEach((T,R)=>{a.value=R}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>a.value});const u=jg(r,window.location,e.payload.path),c=$n(l.currentRoute.value),f=()=>{c.value=l.currentRoute.value};l.afterEach((T,R)=>{T.matched.at(-1)?.components?.default===R.matched.at(-1)?.components?.default&&f()});const p={sync:f};for(const T in c.value)Object.defineProperty(p,T,{get:()=>c.value[T],enumerable:!0});e._route=mt(p),e._middleware||={global:[],named:{}};const d=Jr();l.afterEach(async(T,R,v)=>{delete e._processingMiddleware,!e.isHydrating&&d.value&&await e.runWithContext(vh),v&&await e.callHook("page:loading:end")});try{[t,n]=Fn(()=>l.isReady()),await t,n()}catch(T){[t,n]=Fn(()=>e.runWithContext(()=>Bt(T))),await t,n()}const m=u!==l.currentRoute.value.fullPath?l.resolve(u):l.currentRoute.value;f();const _=e.payload.state._layout;return l.beforeEach(async(T,R)=>{await e.callHook("page:loading:start"),T.meta=Nt(T.meta),e.isHydrating&&_&&!at(T.meta.layout)&&(T.meta.layout=_),e._processingMiddleware=!0;{const v=new Set([...Fg,...e._middleware.global]);for(const b of T.matched){const E=b.meta.middleware;if(E)for(const S of bo(E))v.add(S)}const g=Ya({path:T.path});if(g.appMiddleware)for(const b in g.appMiddleware)g.appMiddleware[b]?v.add(b):v.delete(b);for(const b of v){const E=typeof b=="string"?e._middleware.named[b]||await qs[b]?.().then(S=>S.default||S):b;if(!E)throw new Error(`Unknown route middleware: '${b}'.`);try{const S=await e.runWithContext(()=>E(T,R));if(!e.payload.serverRendered&&e.isHydrating&&(S===!1||S instanceof Error)){const M=S||qt({status:404,statusText:`Page Not Found: ${u}`});return await e.runWithContext(()=>Bt(M)),!1}if(S===!0)continue;if(S===!1)return S;if(S)return $a(S)&&S.fatal&&await e.runWithContext(()=>Bt(S)),S}catch(S){const M=qt(S);return M.fatal&&await e.runWithContext(()=>Bt(M)),M}}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),l.afterEach(T=>{if(T.matched.length===0&&!d.value)return e.runWithContext(()=>Bt(qt({status:404,fatal:!1,statusText:`Page not found: ${T.fullPath}`,data:{path:T.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{"name"in m&&(m.name=void 0),await l.replace({...m,force:!0}),l.options.scrollBehavior=Ct.scrollBehavior}catch(T){await e.runWithContext(()=>Bt(T))}}),{provide:{router:l}}}}),qi=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),vm=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),vo=e=>{const t=Te();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{qi(()=>e())}):qi(()=>e())},Ug=Et({name:"nuxt:payload",setup(e){const t=new Set;Ge().beforeResolve(async(n,r)=>{if(n.path===r.path)return;const s=await Ai(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 Ai().catch(()=>{console.warn("[nuxt] Error preloading payload for",n)})}),navigator.connection?.effectiveType!=="slow-2g"&&setTimeout(Ja,1e3)})}}),$g=Et(()=>{const e=Ge();vo(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),Vg=Et(e=>{let t;async function n(){let r;try{r=await Ja()}catch(s){const o=s;if(!("status"in o&&(o.status===404||o.status===403)))throw o}t&&clearTimeout(t),t=setTimeout(n,_i);try{const s=await $fetch(po("builds/latest.json")+`?${Date.now()}`);s.id!==r?.id&&(e.hooks.callHook("app:manifest:update",s),t&&clearTimeout(t))}catch{}}vo(()=>{t=setTimeout(n,_i)})});function Wg(e={}){const t=e.path||window.location.pathname;let n={};try{n=Ar(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||n?.path!==t||n?.expires{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const i=Oa(n.app.baseURL,o.fullPath);Wg({path:i,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}}),Gg=Et({name:"nuxt:global-components"}),fr={};function qg(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}async function Jg(e,t=Ge()){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(()=>Jg(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)));s.push(l)}await Promise.all(s)}const Yg=Et({name:"nuxt:prefetch",setup(e){const t=Ge();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{const r=n?.meta?.layout;r&&typeof fr[r]=="function"&&await fr[r]()})}),e.hooks.hook("link:prefetch",n=>{if(Tn(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=bo(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof qs[i]=="function"&&qs[i]();typeof s=="string"&&s in fr&&qg(fr[s])})}}),zg=[up,mp,Bg,Ug,$g,Vg,Kg,Gg,Yg],uc=(e="RouteProvider")=>Qn({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 ln(qr,mt(s)),()=>t.vnode?We(t.vnode,{ref:t.vnodeRef}):t.vnode}}),Qg=uc(),Ji=new WeakMap,Xg=Qn({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=Te(),o=yt(),i=Be(qr,null);let l;r({pageRef:o});const a=Be(gh,null);let u;const c=s.deferHydration();let f=!1,p=0;if(s.isHydrating){const m=s.hooks.hookOnce("app:error",c);Ge().beforeEach(m)}e.pageKey&&an(()=>e.pageKey,(m,_)=>{m!==_&&s.callHook("page:loading:start")});let d=!1;{const m=Ge().beforeResolve(()=>{d=!1});Zn(()=>{m(),c()})}return()=>We(cc,{name:e.name,route:e.route,...t},{default:m=>{const _=em(i,m.route,m.Component),T=i&&i.matched.length===m.route.matched.length;if(!m.Component){if(u&&!T)return u;c();return}if(u&&a&&!a.isCurrent(m.route))return u;if(_&&i&&(!a||a?.isCurrent(i)))return T||u?u:null;const R=Ks(m,e.pageKey),v=tm(i,m.route,m.Component);!s.isHydrating&&l===R&&!v&&hn(()=>{d||(d=!0,s.callHook("page:loading:end"))}),f&&l!==R&&p++,l=R;const g=!!(e.transition??m.route.meta.pageTransition??mi),b=g&&Zg([e.transition,m.route.meta.pageTransition,mi,{onAfterLeave(){delete s._runningTransition,s.callHook("page:transition:finish",m.Component)}}]),E=e.keepalive??m.route.meta.keepalive??th;return u=kg(g&&b,Sg(E,We(ca,{key:p,suspensible:!0,onPending:()=>{f=!0,g&&(s._runningTransition=!0),s.callHook("page:start",m.Component)},onResolve:async()=>{f=!1;try{await hn(),s._route.sync?.(),await s.callHook("page:finish",m.Component),delete s._runningTransition,!d&&!v&&(d=!0,await s.callHook("page:loading:end"))}finally{c()}}},{default:()=>{const S={key:R||void 0,vnode:n.default?nm(n.default,m):m.Component,route:m.route,renderKey:R||void 0,trackRootNodes:g,vnodeRef:o};if(!E)return We(Qg,S);const M=m.Component.type,V=M;let I=Ji.get(V);return I||(I=uc(M.name||M.__name),Ji.set(V,I)),We(I,S)}}))).default(),u}})}});function Zg(e){const t=[];for(const n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?bo(n.onAfterLeave):void 0});return ja(...t)}function em(e,t,n){if(!e)return!1;const r=t.matched.findIndex(s=>s.components?.default===n?.type);return!r||r===-1?!1:t.matched.slice(0,r).some((s,o)=>s.components?.default!==e.matched[o]?.components?.default)||n&&Ks({route:t,Component:n})!==Ks({route:e,Component:n})}function tm(e,t,n){return e?t.matched.findIndex(s=>s.components?.default===n?.type){const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},sm={};function om(e,t){const n=Xg;return ot(),kt(n)}const im=rm(sm,[["render",om]]),lm={__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?Mo(()=>Gs(()=>import("./DNdyEWwv.js"),__vite__mapDeps([2,1,3]),import.meta.url)):Mo(()=>Gs(()=>import("./CBwmZ8LB.js"),__vite__mapDeps([4,1,5]),import.meta.url));return(f,p)=>(ot(),kt(de(c),wc(ma({status:de(r),statusText:de(o),statusCode:de(r),statusMessage:de(o),description:de(i),stack:de(l)})),null,16))}},am={key:0},Yi={__name:"nuxt-root",setup(e){const t=()=>null,n=Te(),r=n.deferHydration();if(n.isHydrating){const u=n.hooks.hookOnce("app:error",r);Ge().beforeEach(u)}const s=!1;ln(qr,mh()),n.hooks.callHookWith(u=>u.map(c=>c()),"vue:setup");const o=Jr(),i=!1,l=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;Ul((u,c,f)=>{if(n.hooks.callHook("vue:error",u,c,f).catch(p=>console.error("[nuxt] Error in `vue:error` hook",p)),l.test(navigator.userAgent))return n.hooks.callHook("app:error",u),console.error(`[nuxt] Not rendering error page for bot with user agent \`${navigator.userAgent}\`:`,u),!1;if($a(u)&&(u.fatal||u.unhandled))return n.runWithContext(()=>Bt(u)),!1});const a=!1;return(u,c)=>(ot(),kt(ca,{onResolve:de(r)},{default:xl(()=>[de(i)?(ot(),iu("div",am)):de(o)?(ot(),kt(de(lm),{key:1,error:de(o)},null,8,["error"])):de(a)?(ot(),kt(de(t),{key:2,context:de(a)},null,8,["context"])):de(s)?(ot(),kt(kf(de(s)),{key:3})):(ot(),kt(de(im),{key:4}))]),_:1},8,["onResolve"]))}};let zi;{let e;zi=async function(){if(e)return e;const n=!!(window.__NUXT__?.serverRendered??document.getElementById("__NUXT_DATA__")?.dataset.ssr==="true"),r=n?qu(Yi):Gu(Yi),s=oh({vueApp:r});async function o(i){await s.callHook("app:error",i),s.payload.error||=qt(i)}r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)}),!n&&yi.id&&s.hook("app:suspense:resolve",()=>{document.getElementById(yi.id)?.remove()});try{await ah(s,zg)}catch(i){o(i)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(nh),await s.hooks.callHook("app:mounted",r),await hn()}catch(i){o(i)}return r},e=zi().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{ga as A,Sc as B,me as C,xl as D,ya as E,Bl as F,jr as G,de as H,Le as I,um as J,hm as K,dm as L,Fr as M,ws as N,cm as O,pm as P,ye as Q,gm as R,bm as S,Tu as T,so as U,Be as V,qa as W,rm as _,Te as a,vo as b,Zn as c,Qn as d,vm as e,fm as f,bh as g,We as h,yt as i,_h as j,Jg as k,Ye as l,Oa as m,_m as n,lo as o,xa as p,Tn as q,qi as r,$n as s,go as t,Ge as u,xr as v,wd as w,ym as x,ot as y,iu as z}; diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2 b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2 deleted file mode 100644 index 0ea0da04cb2bdacb918460c16ca2863138a19f4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11144 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

;7&cRT>@vBgT`qml^v#W*W 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 diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/entry.DJL3iLlR.css b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/entry.DJL3iLlR.css deleted file mode 100644 index cdb99d4a..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/entry.DJL3iLlR.css +++ /dev/null @@ -1 +0,0 @@ -*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:host,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;tab-size:4;-webkit-tap-highlight-color:transparent}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}progress{vertical-align:initial}.bg-transparent{background-color:initial}.shadow-card{--tw-shadow:0 4px 24px #00339914;--tw-shadow-colored:0 4px 24px var(--tw-shadow-color)}.shadow-soft{--tw-shadow:0 1px 3px #0033990f,0 1px 2px #0033990a;--tw-shadow-colored:0 1px 3px var(--tw-shadow-color),0 1px 2px var(--tw-shadow-color)}.hover\:shadow-card:hover{--tw-shadow:0 4px 24px #00339914;--tw-shadow-colored:0 4px 24px var(--tw-shadow-color)}.hover\:shadow-glow:hover{--tw-shadow:0 0 40px #00339926;--tw-shadow-colored:0 0 40px var(--tw-shadow-color)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-eu-blue\/20:focus{--tw-ring-color:#0393}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,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;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:DM Mono,ui-monospace,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));font-family:DM Sans,system-ui,sans-serif;--tw-text-opacity:1;color:rgb(26 26 46/var(--tw-text-opacity,1))}h1,h2,h3,h4,h5,h6{font-family:Instrument Sans,system-ui,sans-serif}::-moz-selection{background-color:#00339926;--tw-text-opacity:1;color:rgb(0 34 102/var(--tw-text-opacity,1))}::selection{background-color:#00339926;--tw-text-opacity:1;color:rgb(0 34 102/var(--tw-text-opacity,1))}.section-container{margin-left:auto;margin-right:auto;max-width:72rem;padding-left:1.25rem;padding-right:1.25rem}@media(min-width:640px){.section-container{padding-left:2rem;padding-right:2rem}}.section-padding{padding-bottom:5rem;padding-top:5rem}@media(min-width:768px){.section-padding{padding-bottom:7rem;padding-top:7rem}}.code-block{border-radius:.875rem;overflow-x:auto;--tw-bg-opacity:1;background-color:rgb(13 17 23/var(--tw-bg-opacity,1));font-family:DM Mono,ui-monospace,monospace;font-size:.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity:1;color:rgb(230 237 243/var(--tw-text-opacity,1))}.dot-grid{background-image:radial-gradient(circle,#039 .6px,transparent 0);background-size:24px 24px}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-inset-4{inset:-1rem}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-3\.5{left:.875rem}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.-mr-2{margin-right:-.5rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-14{margin-bottom:3.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-1\.5{margin-right:.375rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[600px\]{height:600px}.max-h-80{max-height:20rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-\[600px\]{width:600px}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.-translate-y-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-2{--tw-translate-y:-.5rem}.translate-x-1\/4{--tw-translate-x:25%}.translate-x-1\/4,.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1.25rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.875rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-eu-blue\/20{border-color:#0393}.border-surface-border{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-surface-border\/60{border-color:#e2e8f099}.border-white\/10{border-color:#ffffff1a}.border-white\/5{border-color:#ffffff0d}.bg-\[\#0d1117\]{--tw-bg-opacity:1;background-color:rgb(13 17 23/var(--tw-bg-opacity,1))}.bg-\[\#28c840\]{--tw-bg-opacity:1;background-color:rgb(40 200 64/var(--tw-bg-opacity,1))}.bg-\[\#febc2e\]{--tw-bg-opacity:1;background-color:rgb(254 188 46/var(--tw-bg-opacity,1))}.bg-\[\#ff5f57\]{--tw-bg-opacity:1;background-color:rgb(255 95 87/var(--tw-bg-opacity,1))}.bg-eu-blue{--tw-bg-opacity:1;background-color:rgb(0 51 153/var(--tw-bg-opacity,1))}.bg-eu-blue-100{--tw-bg-opacity:1;background-color:rgb(232 240 254/var(--tw-bg-opacity,1))}.bg-eu-blue\/\[0\.04\]{background-color:#0033990a}.bg-eu-gold{--tw-bg-opacity:1;background-color:rgb(255 204 0/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-500\/20{background-color:#22c55e33}.bg-red-500\/20{background-color:#ef444433}.bg-surface-muted{--tw-bg-opacity:1;background-color:rgb(241 244 249/var(--tw-bg-opacity,1))}.bg-surface-soft{--tw-bg-opacity:1;background-color:rgb(248 250 253/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/80{background-color:#fffc}.bg-white\/95{background-color:#fffffff2}.p-2{padding:.5rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pr-4{padding-right:1rem}.pt-32{padding-top:8rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-heading{font-family:Instrument Sans,system-ui,sans-serif}.font-mono{font-family:DM Mono,ui-monospace,monospace}.text-\[10px\]{font-size:10px}.text-\[13px\]{font-size:13px}.text-base{font-size:1rem;line-height:1.5rem}.text-display-sm{font-size:2.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.15}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-subtitle{font-size:1.25rem;font-weight:500;line-height:1.4}.text-title{font-size:1.75rem;font-weight:600;letter-spacing:-.01em;line-height:1.25}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.text-\[\#8b949e\]{--tw-text-opacity:1;color:rgb(139 148 158/var(--tw-text-opacity,1))}.text-\[\#e6edf3\]{--tw-text-opacity:1;color:rgb(230 237 243/var(--tw-text-opacity,1))}.text-eu-blue{--tw-text-opacity:1;color:rgb(0 51 153/var(--tw-text-opacity,1))}.text-eu-blue-dark{--tw-text-opacity:1;color:rgb(0 34 102/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-ink{--tw-text-opacity:1;color:rgb(26 26 46/var(--tw-text-opacity,1))}.text-ink-faint{--tw-text-opacity:1;color:rgb(160 174 192/var(--tw-text-opacity,1))}.text-ink-muted{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity,1))}.text-ink-secondary{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-\[0\.03\]{opacity:.03}.shadow-card{--tw-shadow:0 4px 24px rgba(0,51,153,.08);--tw-shadow-colored:0 4px 24px var(--tw-shadow-color)}.shadow-card,.shadow-soft{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-soft{--tw-shadow:0 1px 3px rgba(0,51,153,.06),0 1px 2px rgba(0,51,153,.04);--tw-shadow-colored:0 1px 3px var(--tw-shadow-color),0 1px 2px var(--tw-shadow-color)}.blur-2xl{--tw-blur:blur(40px)}.blur-2xl,.blur-3xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-3xl{--tw-blur:blur(64px)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.text-balance{text-wrap:balance}.animate-on-scroll{opacity:0;transform:translateY(24px);transition:opacity .65s ease-out,transform .65s ease-out}.animate-on-scroll.is-visible{opacity:1;transform:translateY(0)}.placeholder\:text-ink-faint::-moz-placeholder{--tw-text-opacity:1;color:rgb(160 174 192/var(--tw-text-opacity,1))}.placeholder\:text-ink-faint::placeholder{--tw-text-opacity:1;color:rgb(160 174 192/var(--tw-text-opacity,1))}.last\:border-0:last-child{border-width:0}.hover\:border-eu-blue\/20:hover{border-color:#0393}.hover\:border-eu-blue\/40:hover{border-color:#0396}.hover\:bg-eu-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(232 240 254/var(--tw-bg-opacity,1))}.hover\:bg-eu-blue-100\/40:hover{background-color:#e8f0fe66}.hover\:bg-eu-blue-dark:hover{--tw-bg-opacity:1;background-color:rgb(0 34 102/var(--tw-bg-opacity,1))}.hover\:bg-eu-gold-dark:hover{--tw-bg-opacity:1;background-color:rgb(230 184 0/var(--tw-bg-opacity,1))}.hover\:bg-surface-muted:hover{--tw-bg-opacity:1;background-color:rgb(241 244 249/var(--tw-bg-opacity,1))}.hover\:bg-surface-soft:hover{--tw-bg-opacity:1;background-color:rgb(248 250 253/var(--tw-bg-opacity,1))}.hover\:text-eu-blue:hover{--tw-text-opacity:1;color:rgb(0 51 153/var(--tw-text-opacity,1))}.hover\:text-ink:hover{--tw-text-opacity:1;color:rgb(26 26 46/var(--tw-text-opacity,1))}.hover\:text-ink-secondary:hover{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}.hover\:shadow-card:hover{--tw-shadow:0 4px 24px rgba(0,51,153,.08);--tw-shadow-colored:0 4px 24px var(--tw-shadow-color)}.hover\:shadow-card:hover,.hover\:shadow-glow:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-glow:hover{--tw-shadow:0 0 40px rgba(0,51,153,.15);--tw-shadow-colored:0 0 40px var(--tw-shadow-color)}.focus\:border-eu-blue\/40:focus{border-color:#0396}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-eu-blue\/20:focus{--tw-ring-color:rgba(0,51,153,.2)}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-eu-blue{--tw-bg-opacity:1;background-color:rgb(0 51 153/var(--tw-bg-opacity,1))}.group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media(min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:pb-28{padding-bottom:7rem}.md\:pt-40{padding-top:10rem}.md\:text-display{font-size:3.5rem;line-height:1.1}.md\:text-display,.md\:text-display-sm{font-weight:700;letter-spacing:-.02em}.md\:text-display-sm{font-size:2.5rem;line-height:1.15}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-16{gap:4rem}}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(./DM_Mono-normal-400-latin-ext.C2zvOubV.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:400;src:url(./DM_Mono-normal-400-latin.4GdczIuU.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:500;src:url(./DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Mono;font-style:normal;font-weight:500;src:url(./DM_Mono-normal-500-latin.DRMDZjhP.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:500;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:500;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:600;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:600;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:700;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:700;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:400;src:url(./Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:400;src:url(./Instrument_Sans-normal-400-latin.BbzFLZTg.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:500;src:url(./Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:500;src:url(./Instrument_Sans-normal-400-latin.BbzFLZTg.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:600;src:url(./Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:600;src:url(./Instrument_Sans-normal-400-latin.BbzFLZTg.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:700;src:url(./Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Instrument Sans;font-stretch:100%;font-style:normal;font-weight:700;src:url(./Instrument_Sans-normal-400-latin.BbzFLZTg.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd} diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-404.C-Ezrlz-.css b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-404.C-Ezrlz-.css deleted file mode 100644 index e5e95fa3..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-404.C-Ezrlz-.css +++ /dev/null @@ -1 +0,0 @@ -.grid[data-v-204d37bf]{display:grid}.mb-2[data-v-204d37bf]{margin-bottom:.5rem}.mb-4[data-v-204d37bf]{margin-bottom:1rem}.max-w-520px[data-v-204d37bf]{max-width:520px}.min-h-screen[data-v-204d37bf]{min-height:100vh}.w-full[data-v-204d37bf]{width:100%}.flex[data-v-204d37bf]{display:flex}.place-content-center[data-v-204d37bf]{place-content:center}.items-center[data-v-204d37bf]{align-items:center}.justify-center[data-v-204d37bf]{justify-content:center}.overflow-hidden[data-v-204d37bf]{overflow:hidden}.bg-white[data-v-204d37bf]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-204d37bf]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-204d37bf]{text-align:center}.text-\[80px\][data-v-204d37bf]{font-size:80px}.text-2xl[data-v-204d37bf]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-204d37bf]{font-size:.875rem;line-height:1.25rem}.text-\[\#020420\][data-v-204d37bf]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-204d37bf]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-204d37bf]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-204d37bf]{font-weight:500}.font-semibold[data-v-204d37bf]{font-weight:600}.leading-none[data-v-204d37bf]{line-height:1}.tracking-wide[data-v-204d37bf]{letter-spacing:.025em}.font-sans[data-v-204d37bf]{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}.tabular-nums[data-v-204d37bf]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-204d37bf]{text-decoration-line:underline}.underline-offset-3[data-v-204d37bf]{text-underline-offset:3px}.antialiased[data-v-204d37bf]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-204d37bf]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-204d37bf]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-204d37bf]{font-size:110px}.sm\:text-3xl[data-v-204d37bf]{font-size:1.875rem;line-height:2.25rem}} diff --git a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-500.DBWf9FGj.css b/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-500.DBWf9FGj.css deleted file mode 100644 index 96c58536..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/error-500.DBWf9FGj.css +++ /dev/null @@ -1 +0,0 @@ -.grid[data-v-d349100d]{display:grid}.mb-2[data-v-d349100d]{margin-bottom:.5rem}.mb-4[data-v-d349100d]{margin-bottom:1rem}.max-w-520px[data-v-d349100d]{max-width:520px}.min-h-screen[data-v-d349100d]{min-height:100vh}.place-content-center[data-v-d349100d]{place-content:center}.overflow-hidden[data-v-d349100d]{overflow:hidden}.bg-white[data-v-d349100d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-d349100d]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-d349100d]{text-align:center}.text-\[80px\][data-v-d349100d]{font-size:80px}.text-2xl[data-v-d349100d]{font-size:1.5rem;line-height:2rem}.text-\[\#020420\][data-v-d349100d]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\[\#64748B\][data-v-d349100d]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-d349100d]{font-weight:600}.leading-none[data-v-d349100d]{line-height:1}.tracking-wide[data-v-d349100d]{letter-spacing:.025em}.font-sans[data-v-d349100d]{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}.tabular-nums[data-v-d349100d]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-d349100d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-\[\#020420\][data-v-d349100d]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\:text-white[data-v-d349100d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:text-\[110px\][data-v-d349100d]{font-size:110px}.sm\:text-3xl[data-v-d349100d]{font-size:1.875rem;line-height:2.25rem}} diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js deleted file mode 100644 index a4a1d340..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js +++ /dev/null @@ -1,23 +0,0 @@ -import { hasInjectionContext, inject } from "vue"; -import { useHead as useHead$1, headSymbol } from "/home/bennet/source/vat-api/node_modules/@unhead/vue/dist/index.mjs"; -import { a as useNuxtApp } from "../server.mjs"; -function injectHead(nuxtApp) { - const nuxt = nuxtApp || useNuxtApp(); - return nuxt.ssrContext?.head || nuxt.runWithContext(() => { - if (hasInjectionContext()) { - const head = inject(headSymbol); - if (!head) { - throw new Error("[nuxt] [unhead] Missing Unhead instance."); - } - return head; - } - }); -} -function useHead(input, options = {}) { - const head = options.head || injectHead(options.nuxt); - return useHead$1(input, { head, ...options }); -} -export { - useHead as u -}; -//# sourceMappingURL=composables-Piy9capG.js.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map deleted file mode 100644 index 030cd2e2..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"composables-Piy9capG.js","sources":["../../../../../../nuxt/dist/head/runtime/composables.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 { useNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || useNuxtApp();\n return nuxt.ssrContext?.head || nuxt.runWithContext(() => {\n if (hasInjectionContext()) {\n const head = inject(headSymbol);\n if (!head) {\n throw new Error(\"[nuxt] [unhead] Missing Unhead instance.\");\n }\n return head;\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return headCore(input, { head, ...options });\n}\nexport function useHeadSafe(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return headSafe(input, { head, ...options });\n}\nexport function useSeoMeta(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return seoMeta(input, { head, ...options });\n}\nexport function useServerHead(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return serverHead(input, { head, ...options });\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return serverHeadSafe(input, { head, ...options });\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return serverSeoMeta(input, { head, ...options });\n}\n"],"names":["headCore"],"mappings":";;;AAWO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,WAAU;AAClC,SAAO,KAAK,YAAY,QAAQ,KAAK,eAAe,MAAM;AACxD,QAAI,oBAAmB,GAAI;AACzB,YAAM,OAAO,OAAO,UAAU;AAC9B,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC5D;AACA,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,QAAQ,QAAQ,WAAW,QAAQ,IAAI;AACpD,SAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAC7C;"} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map.json deleted file mode 100644 index d6655870..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/composables-Piy9capG.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"composables-Piy9capG.js","mappings":";;;AAWO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,WAAU;AAClC,SAAO,KAAK,YAAY,QAAQ,KAAK,eAAe,MAAM;AACxD,QAAI,oBAAmB,GAAI;AACzB,YAAM,OAAO,OAAO,UAAU;AAC9B,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC5D;AACA,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,QAAQ,QAAQ,WAAW,QAAQ,IAAI;AACpD,SAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAC7C;","names":["headCore"],"sources":["../../../../../../nuxt/dist/head/runtime/composables.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 { useNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || useNuxtApp();\n return nuxt.ssrContext?.head || nuxt.runWithContext(() => {\n if (hasInjectionContext()) {\n const head = inject(headSymbol);\n if (!head) {\n throw new Error(\"[nuxt] [unhead] Missing Unhead instance.\");\n }\n return head;\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return headCore(input, { head, ...options });\n}\nexport function useHeadSafe(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return headSafe(input, { head, ...options });\n}\nexport function useSeoMeta(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return seoMeta(input, { head, ...options });\n}\nexport function useServerHead(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return serverHead(input, { head, ...options });\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return serverHeadSafe(input, { head, ...options });\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = options.head || injectHead(options.nuxt);\n return serverSeoMeta(input, { head, ...options });\n}\n"],"version":3} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js deleted file mode 100644 index 2ce40c14..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js +++ /dev/null @@ -1,369 +0,0 @@ -import { defineComponent, shallowRef, h, resolveComponent, computed, mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from "vue"; -import { parseQuery, hasProtocol, joinURL, withTrailingSlash, withoutTrailingSlash } from "/home/bennet/source/vat-api/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, _ as _export_sfc } from "../server.mjs"; -import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from "vue/server-renderer"; -import { u as useHead } from "./composables-Piy9capG.js"; -import "/home/bennet/source/vat-api/node_modules/ofetch/dist/node.mjs"; -import "#internal/nuxt/paths"; -import "/home/bennet/source/vat-api/node_modules/hookable/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/unctx/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/h3/dist/index.mjs"; -import "vue-router"; -import "/home/bennet/source/vat-api/node_modules/defu/dist/defu.mjs"; -import "/home/bennet/source/vat-api/node_modules/@unhead/vue/dist/index.mjs"; -const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); -// @__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(() => !!props.target && props.target !== "_self"); - const isAbsoluteUrl = computed(() => { - const path = props.to || 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 (props.external) { - return true; - } - const path = props.to || props.href || ""; - if (typeof path === "object") { - return false; - } - return path === "" || isAbsoluteUrl.value; - }); - const to = computed(() => { - const path = props.to || props.href || ""; - if (isExternal.value) { - return path; - } - return resolveTrailingSlashBehavior(path, router.resolve, props.trailingSlash); - }); - const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to }); - const href = computed(() => { - const effectiveTrailingSlash = props.trailingSlash ?? options.trailingSlash; - if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) { - return to.value; - } - 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; - return applyTrailingSlashBehavior(href2, 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) { - await navigateTo(href.value, { replace: 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); -} -const _sfc_main = { - __name: "error-404", - __ssrInlineRender: true, - props: { - appName: { - type: String, - default: "Nuxt" - }, - status: { - type: Number, - default: 404 - }, - statusText: { - type: String, - default: "Page 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(__props) { - const props = __props; - useHead({ - title: `${props.status} - ${props.statusText} | ${props.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,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,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: }` - } - ] - }); - return (_ctx, _push, _parent, _attrs) => { - const _component_NuxtLink = __nuxt_component_0; - _push(`

`); - }; - } -}; -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/error-404.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-204d37bf"]]); -export { - error404 as default -}; -//# sourceMappingURL=error-404-BY_x-_oz.js.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map deleted file mode 100644 index 8e5532a9..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error-404-BY_x-_oz.js","sources":["../../../../../../nuxt/dist/app/components/nuxt-link.js","../../../../../../nuxt/dist/app/components/error-404.vue"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef } from \"vue\";\nimport { hasProtocol, 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);\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(() => !!props.target && props.target !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = props.to || 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 (props.external) {\n return true;\n }\n const path = props.to || 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 = props.to || props.href || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, props.trailingSlash);\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to });\n const href = computed(() => {\n const effectiveTrailingSlash = props.trailingSlash ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n return to.value;\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 return applyTrailingSlashBehavior(href2, 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 await navigateTo(href.value, { replace: 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 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 !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","\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_push","_parent"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map.json deleted file mode 100644 index 79d35fe7..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BY_x-_oz.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"error-404-BY_x-_oz.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_push","_parent"],"sources":["../../../../../../nuxt/dist/app/components/nuxt-link.js","../../../../../../nuxt/dist/app/components/error-404.vue"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef } from \"vue\";\nimport { hasProtocol, 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);\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(() => !!props.target && props.target !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = props.to || 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 (props.external) {\n return true;\n }\n const path = props.to || 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 = props.to || props.href || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, props.trailingSlash);\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to });\n const href = computed(() => {\n const effectiveTrailingSlash = props.trailingSlash ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n return to.value;\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 return applyTrailingSlashBehavior(href2, 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 await navigateTo(href.value, { replace: 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 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 !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","\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js deleted file mode 100644 index e9a2093f..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js +++ /dev/null @@ -1,5 +0,0 @@ -const error404_vue_vue_type_style_index_0_scoped_204d37bf_lang = ".grid[data-v-204d37bf]{display:grid}.mb-2[data-v-204d37bf]{margin-bottom:.5rem}.mb-4[data-v-204d37bf]{margin-bottom:1rem}.max-w-520px[data-v-204d37bf]{max-width:520px}.min-h-screen[data-v-204d37bf]{min-height:100vh}.w-full[data-v-204d37bf]{width:100%}.flex[data-v-204d37bf]{display:flex}.place-content-center[data-v-204d37bf]{place-content:center}.items-center[data-v-204d37bf]{align-items:center}.justify-center[data-v-204d37bf]{justify-content:center}.overflow-hidden[data-v-204d37bf]{overflow:hidden}.bg-white[data-v-204d37bf]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-204d37bf]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-204d37bf]{text-align:center}.text-\\[80px\\][data-v-204d37bf]{font-size:80px}.text-2xl[data-v-204d37bf]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-204d37bf]{font-size:.875rem;line-height:1.25rem}.text-\\[\\#020420\\][data-v-204d37bf]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\\[\\#64748B\\][data-v-204d37bf]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.hover\\:text-\\[\\#00DC82\\][data-v-204d37bf]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-medium[data-v-204d37bf]{font-weight:500}.font-semibold[data-v-204d37bf]{font-weight:600}.leading-none[data-v-204d37bf]{line-height:1}.tracking-wide[data-v-204d37bf]{letter-spacing:.025em}.font-sans[data-v-204d37bf]{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}.tabular-nums[data-v-204d37bf]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-204d37bf]{text-decoration-line:underline}.underline-offset-3[data-v-204d37bf]{text-underline-offset:3px}.antialiased[data-v-204d37bf]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\\:bg-\\[\\#020420\\][data-v-204d37bf]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:text-white[data-v-204d37bf]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\\:text-\\[110px\\][data-v-204d37bf]{font-size:110px}.sm\\:text-3xl[data-v-204d37bf]{font-size:1.875rem;line-height:2.25rem}}"; -export { - error404_vue_vue_type_style_index_0_scoped_204d37bf_lang as default -}; -//# sourceMappingURL=error-404-styles-1.mjs-Bae73Gon.js.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map deleted file mode 100644 index 076d006d..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error-404-styles-1.mjs-Bae73Gon.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map.json deleted file mode 100644 index 0a5e922f..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-Bae73Gon.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"error-404-styles-1.mjs-Bae73Gon.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles.DuDrf-v0.mjs b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles.DuDrf-v0.mjs deleted file mode 100644 index 9f644dae..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-styles.DuDrf-v0.mjs +++ /dev/null @@ -1,4 +0,0 @@ -import style_0 from "./error-404-styles-1.mjs-Bae73Gon.js"; -export default [ - style_0 -] \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js deleted file mode 100644 index 34a3f4a4..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js +++ /dev/null @@ -1,69 +0,0 @@ -import { mergeProps, useSSRContext } from "vue"; -import { ssrRenderAttrs, ssrInterpolate } from "vue/server-renderer"; -import { _ as _export_sfc } from "../server.mjs"; -import { u as useHead } from "./composables-Piy9capG.js"; -import "/home/bennet/source/vat-api/node_modules/ofetch/dist/node.mjs"; -import "#internal/nuxt/paths"; -import "/home/bennet/source/vat-api/node_modules/hookable/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/unctx/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/h3/dist/index.mjs"; -import "vue-router"; -import "/home/bennet/source/vat-api/node_modules/defu/dist/defu.mjs"; -import "/home/bennet/source/vat-api/node_modules/ufo/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/@unhead/vue/dist/index.mjs"; -const _sfc_main = { - __name: "error-500", - __ssrInlineRender: true, - props: { - appName: { - type: String, - default: "Nuxt" - }, - status: { - type: Number, - default: 500 - }, - statusText: { - type: String, - default: "Internal server error" - }, - description: { - type: String, - default: "This page is temporarily unavailable." - }, - refresh: { - type: String, - default: "Refresh this page" - } - }, - setup(__props) { - const props = __props; - useHead({ - title: `${props.status} - ${props.statusText} | ${props.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,h2{font-size:inherit;font-weight:inherit}h1,h2,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: }` - } - ] - }); - return (_ctx, _push, _parent, _attrs) => { - _push(`

${ssrInterpolate(__props.status)}

${ssrInterpolate(__props.statusText)}

${ssrInterpolate(__props.description)}

`); - }; - } -}; -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/error-500.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d349100d"]]); -export { - error500 as default -}; -//# sourceMappingURL=error-500-B0qDQUop.js.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map deleted file mode 100644 index 0e7da9e9..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error-500-B0qDQUop.js","sources":["../../../../../../nuxt/dist/app/components/error-500.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBd,YAAQ;AAAA,MACN,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,OAAO;AAAA,MAC/D,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;mBAIIA,eAAAC,WAAA,EAAA,OAAM,0JAAsJ,MAAA,CAAA,8LAAmI,QAAA,MAAM,4FAAgE,QAAA,UAAU,oFAAwD,QAAA,WAAW;;;;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map.json deleted file mode 100644 index d91e207c..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-B0qDQUop.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"error-500-B0qDQUop.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBd,YAAQ;AAAA,MACN,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,OAAO;AAAA,MAC/D,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;mBAIIA,eAAAC,WAAA,EAAA,OAAM,0JAAsJ,MAAA,CAAA,8LAAmI,QAAA,MAAM,4FAAgE,QAAA,UAAU,oFAAwD,QAAA,WAAW;;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps"],"sources":["../../../../../../nuxt/dist/app/components/error-500.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js deleted file mode 100644 index 5b3f692a..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js +++ /dev/null @@ -1,5 +0,0 @@ -const error500_vue_vue_type_style_index_0_scoped_d349100d_lang = ".grid[data-v-d349100d]{display:grid}.mb-2[data-v-d349100d]{margin-bottom:.5rem}.mb-4[data-v-d349100d]{margin-bottom:1rem}.max-w-520px[data-v-d349100d]{max-width:520px}.min-h-screen[data-v-d349100d]{min-height:100vh}.place-content-center[data-v-d349100d]{place-content:center}.overflow-hidden[data-v-d349100d]{overflow:hidden}.bg-white[data-v-d349100d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-d349100d]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-d349100d]{text-align:center}.text-\\[80px\\][data-v-d349100d]{font-size:80px}.text-2xl[data-v-d349100d]{font-size:1.5rem;line-height:2rem}.text-\\[\\#020420\\][data-v-d349100d]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\\[\\#64748B\\][data-v-d349100d]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-d349100d]{font-weight:600}.leading-none[data-v-d349100d]{line-height:1}.tracking-wide[data-v-d349100d]{letter-spacing:.025em}.font-sans[data-v-d349100d]{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}.tabular-nums[data-v-d349100d]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-d349100d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\\:bg-\\[\\#020420\\][data-v-d349100d]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:text-white[data-v-d349100d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\\:text-\\[110px\\][data-v-d349100d]{font-size:110px}.sm\\:text-3xl[data-v-d349100d]{font-size:1.875rem;line-height:2.25rem}}"; -export { - error500_vue_vue_type_style_index_0_scoped_d349100d_lang as default -}; -//# sourceMappingURL=error-500-styles-1.mjs-DOrS-RIZ.js.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map deleted file mode 100644 index a0ed5aae..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error-500-styles-1.mjs-DOrS-RIZ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map.json deleted file mode 100644 index 353f5bd6..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"error-500-styles-1.mjs-DOrS-RIZ.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles.8IYEHzz6.mjs b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles.8IYEHzz6.mjs deleted file mode 100644 index 7861e21f..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles.8IYEHzz6.mjs +++ /dev/null @@ -1,4 +0,0 @@ -import style_0 from "./error-500-styles-1.mjs-DOrS-RIZ.js"; -export default [ - style_0 -] \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js deleted file mode 100644 index 699d22f1..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js +++ /dev/null @@ -1,409 +0,0 @@ -import { defineComponent, ref, mergeProps, unref, useSSRContext, readonly, computed } from "vue"; -import { ssrRenderAttrs, ssrRenderList, ssrRenderAttr, ssrInterpolate, ssrRenderStyle, ssrRenderClass, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderComponent } from "vue/server-renderer"; -import { _ as _export_sfc } from "../server.mjs"; -import { u as useHead } from "./composables-Piy9capG.js"; -import "/home/bennet/source/vat-api/node_modules/ofetch/dist/node.mjs"; -import "#internal/nuxt/paths"; -import "/home/bennet/source/vat-api/node_modules/hookable/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/unctx/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/h3/dist/index.mjs"; -import "vue-router"; -import "/home/bennet/source/vat-api/node_modules/defu/dist/defu.mjs"; -import "/home/bennet/source/vat-api/node_modules/ufo/dist/index.mjs"; -import "/home/bennet/source/vat-api/node_modules/@unhead/vue/dist/index.mjs"; -const _sfc_main$7 = /* @__PURE__ */ defineComponent({ - __name: "Navbar", - __ssrInlineRender: true, - setup(__props) { - const scrolled = ref(false); - const links = [ - { label: "Features", href: "#features" }, - { label: "Rates", href: "#rates" }, - { label: "API Docs", href: "#playground" } - ]; - const mobileOpen = ref(false); - return (_ctx, _push, _parent, _attrs) => { - _push(`
V vat-api.eu
`); - if (unref(mobileOpen)) { - _push(`
`); - ssrRenderList(links, (link) => { - _push(`${ssrInterpolate(link.label)}`); - }); - _push(`
`); - } else { - _push(``); - } - _push(``); - }; - } -}); -const _sfc_setup$7 = _sfc_main$7.setup; -_sfc_main$7.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Navbar.vue"); - return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : void 0; -}; -const __nuxt_component_0 = Object.assign(_sfc_main$7, { __name: "Navbar" }); -const _sfc_main$6 = {}; -function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs) { - _push(`
Free & Open

EU VAT Rates API

Free. No API key. Always up-to-date.

Get current VAT rates for all 27 EU member states with a single API call. No registration, no rate limits, no nonsense.

GET /api/v1/rates/DE
// Response 200 OK
-{
-  "country": "Germany",
-  "country_code": "DE",
-  "standard_rate": 19,
-  "reduced_rates": [7],
-  "currency": "EUR"
-}
`); -} -const _sfc_setup$6 = _sfc_main$6.setup; -_sfc_main$6.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/HeroSection.vue"); - return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0; -}; -const __nuxt_component_1 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$6, [["ssrRender", _sfc_ssrRender$1]]), { __name: "HeroSection" }); -const _sfc_main$5 = /* @__PURE__ */ defineComponent({ - __name: "FeaturesGrid", - __ssrInlineRender: true, - setup(__props) { - const features = [ - { - icon: ``, - title: "All 27 EU Countries", - description: "Standard, reduced, and special VAT rates for every member state." - }, - { - icon: ``, - title: "No Authentication", - description: "No API keys, no sign-up. Just send a GET request." - }, - { - icon: ``, - title: "Always Current", - description: "Rates sourced and synced regularly from official EU data." - }, - { - icon: ``, - title: "Simple JSON", - description: "Clean, predictable JSON responses. Easy to integrate anywhere." - } - ]; - return (_ctx, _push, _parent, _attrs) => { - _push(`

Built for developers

A straightforward API that does one thing well — delivering EU VAT rates without friction.

`); - ssrRenderList(features, (feature, i) => { - _push(`
${feature.icon ?? ""}

${ssrInterpolate(feature.title)}

${ssrInterpolate(feature.description)}

`); - }); - _push(`
`); - }; - } -}); -const _sfc_setup$5 = _sfc_main$5.setup; -_sfc_main$5.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/FeaturesGrid.vue"); - return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0; -}; -const __nuxt_component_2 = Object.assign(_sfc_main$5, { __name: "FeaturesGrid" }); -const euVatRates = [ - { country: "Austria", code: "AT", flag: "🇦🇹", standard: 20, reduced: [10, 13] }, - { country: "Belgium", code: "BE", flag: "🇧🇪", standard: 21, reduced: [6, 12] }, - { country: "Bulgaria", code: "BG", flag: "🇧🇬", standard: 20, reduced: [9] }, - { country: "Croatia", code: "HR", flag: "🇭🇷", standard: 25, reduced: [5, 13] }, - { country: "Cyprus", code: "CY", flag: "🇨🇾", standard: 19, reduced: [5, 9] }, - { country: "Czech Republic", code: "CZ", flag: "🇨🇿", standard: 21, reduced: [12, 15] }, - { country: "Denmark", code: "DK", flag: "🇩🇰", standard: 25, reduced: [] }, - { country: "Estonia", code: "EE", flag: "🇪🇪", standard: 22, reduced: [9] }, - { country: "Finland", code: "FI", flag: "🇫🇮", standard: 25.5, reduced: [10, 14] }, - { country: "France", code: "FR", flag: "🇫🇷", standard: 20, reduced: [5.5, 10] }, - { country: "Germany", code: "DE", flag: "🇩🇪", standard: 19, reduced: [7] }, - { country: "Greece", code: "GR", flag: "🇬🇷", standard: 24, reduced: [6, 13] }, - { country: "Hungary", code: "HU", flag: "🇭🇺", standard: 27, reduced: [5, 18] }, - { country: "Ireland", code: "IE", flag: "🇮🇪", standard: 23, reduced: [9, 13.5] }, - { country: "Italy", code: "IT", flag: "🇮🇹", standard: 22, reduced: [5, 10] }, - { country: "Latvia", code: "LV", flag: "🇱🇻", standard: 21, reduced: [5, 12] }, - { country: "Lithuania", code: "LT", flag: "🇱🇹", standard: 21, reduced: [5, 9] }, - { country: "Luxembourg", code: "LU", flag: "🇱🇺", standard: 17, reduced: [8] }, - { country: "Malta", code: "MT", flag: "🇲🇹", standard: 18, reduced: [5, 7] }, - { country: "Netherlands", code: "NL", flag: "🇳🇱", standard: 21, reduced: [9] }, - { country: "Poland", code: "PL", flag: "🇵🇱", standard: 23, reduced: [5, 8] }, - { country: "Portugal", code: "PT", flag: "🇵🇹", standard: 23, reduced: [6, 13] }, - { country: "Romania", code: "RO", flag: "🇷🇴", standard: 19, reduced: [5, 9] }, - { country: "Slovakia", code: "SK", flag: "🇸🇰", standard: 23, reduced: [5, 10] }, - { country: "Slovenia", code: "SI", flag: "🇸🇮", standard: 22, reduced: [5, 9.5] }, - { country: "Spain", code: "ES", flag: "🇪🇸", standard: 21, reduced: [4, 10] }, - { country: "Sweden", code: "SE", flag: "🇸🇪", standard: 25, reduced: [6, 12] } -]; -function useVatRates() { - const rates = readonly(ref(euVatRates)); - function getRateByCode(code) { - return euVatRates.find((r) => r.code === code.toUpperCase()); - } - function formatApiResponse(rate) { - return { - country: rate.country, - country_code: rate.code, - standard_rate: rate.standard, - reduced_rates: rate.reduced, - currency: "EUR" - }; - } - function formatAllRatesResponse() { - return euVatRates.map(formatApiResponse); - } - return { rates, getRateByCode, formatApiResponse, formatAllRatesResponse }; -} -const _sfc_main$4 = /* @__PURE__ */ defineComponent({ - __name: "VatRateTable", - __ssrInlineRender: true, - setup(__props) { - const rates = ref([]); - const search = ref(""); - const filtered = computed(() => { - const q = search.value.toLowerCase().trim(); - if (!q) return rates.value; - return rates.value.filter( - (r) => r.country.toLowerCase().includes(q) || r.code.toLowerCase().includes(q) - ); - }); - return (_ctx, _push, _parent, _attrs) => { - _push(`

VAT Rates across the EU

Current standard and reduced rates for all 27 member states.

`); - ssrRenderList(unref(filtered), (rate) => { - _push(``); - }); - _push(``); - if (!unref(filtered).length) { - _push(``); - } else { - _push(``); - } - _push(`
CountryCodeStandardReduced
${ssrInterpolate(rate.flag)}${ssrInterpolate(rate.country)}${ssrInterpolate(rate.code)}${ssrInterpolate(rate.standard)}%`); - if (rate.reduced.length) { - _push(`${ssrInterpolate(rate.reduced.map((r) => `${r}%`).join(", "))}`); - } else { - _push(``); - } - _push(`
No countries matching "${ssrInterpolate(unref(search))}"

Data updated regularly from official EU sources.

`); - }; - } -}); -const _sfc_setup$4 = _sfc_main$4.setup; -_sfc_main$4.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/VatRateTable.vue"); - return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0; -}; -const __nuxt_component_3 = Object.assign(_sfc_main$4, { __name: "VatRateTable" }); -const _sfc_main$3 = /* @__PURE__ */ defineComponent({ - __name: "ApiPlayground", - __ssrInlineRender: true, - setup(__props) { - const { rates } = useVatRates(); - const selectedCode = ref("DE"); - const response = ref(""); - const statusCode = ref(null); - const isLoading = ref(false); - const showAllRates = ref(false); - const endpointUrl = computed( - () => showAllRates.value ? "https://vat-api.eu/api/v1/rates" : `https://vat-api.eu/api/v1/rates/${selectedCode.value}` - ); - return (_ctx, _push, _parent, _attrs) => { - _push(`

Try it out

Build your request, send it, and see the response.

`); - if (!unref(showAllRates)) { - _push(`
`); - } else { - _push(``); - } - _push(`
GET${ssrInterpolate(unref(endpointUrl))}
Response`); - if (unref(statusCode) === 200) { - _push(`200 OK`); - } else if (unref(statusCode)) { - _push(`${ssrInterpolate(unref(statusCode))} Error`); - } else { - _push(``); - } - _push(`
`); - if (unref(response)) { - _push(`
${unref(response) ?? ""}
`); - } else if (unref(isLoading)) { - _push(`

Loading...

`); - } else { - _push(`

Click "Send Request" to see a response.

`); - } - _push(`
`); - }; - } -}); -const _sfc_setup$3 = _sfc_main$3.setup; -_sfc_main$3.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ApiPlayground.vue"); - return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0; -}; -const __nuxt_component_4 = Object.assign(_sfc_main$3, { __name: "ApiPlayground" }); -const _sfc_main$2 = /* @__PURE__ */ defineComponent({ - __name: "CodeExamples", - __ssrInlineRender: true, - setup(__props) { - const tabs = ["cURL", "JavaScript", "Python"]; - const activeTab = ref("cURL"); - const code = { - cURL: `# Get all EU VAT rates -curl https://vat-api.eu/api/v1/rates - -# Get rates for a specific country -curl https://vat-api.eu/api/v1/rates/DE`, - JavaScript: `const response = await fetch('https://vat-api.eu/api/v1/rates/DE'); -const data = await response.json(); -console.log(data.standard_rate); // 19`, - Python: `import requests - -response = requests.get('https://vat-api.eu/api/v1/rates/DE') -data = response.json() -print(data['standard_rate']) # 19` - }; - const highlighted = { - cURL: highlightBash(code.cURL), - JavaScript: highlightJS(code.JavaScript), - Python: highlightPython(code.Python) - }; - function highlightBash(src) { - return src.replace(/(#.*)/g, '$1').replace(/(curl)\s/g, '$1 ').replace(/(https?:\/\/[^\s]+)/g, '$1'); - } - function highlightJS(src) { - return src.replace(/(\/\/\s*\d+)/g, '$1').replace(/(const|await)\s/g, '$1 ').replace(/(fetch|json|log)\(/g, '$1(').replace(/('https?:\/\/[^']*')/g, '$1').replace(/(\.standard_rate)/g, '$1').replace(/(console)\./g, '$1.').replace(/(response)\./g, '$1.'); - } - function highlightPython(src) { - return src.replace(/(#\s*\d+)/g, '$1').replace(/(import|from)\s/g, '$1 ').replace(/(requests)/g, '$1').replace(/('https?:\/\/[^']*')/g, '$1').replace(/(\['standard_rate'\])/g, '$1').replace(/(print|get)\(/g, '$1(').replace(/(response)\./g, '$1.'); - } - const copied = ref(false); - return (_ctx, _push, _parent, _attrs) => { - _push(`

Quick start

Integrate EU VAT rates into your project in seconds.

`); - ssrRenderList(tabs, (tab) => { - _push(``); - }); - _push(`
${highlighted[unref(activeTab)] ?? ""}
`); - }; - } -}); -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("components/CodeExamples.vue"); - return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0; -}; -const __nuxt_component_5 = Object.assign(_sfc_main$2, { __name: "CodeExamples" }); -const _sfc_main$1 = {}; -function _sfc_ssrRender(_ctx, _push, _parent, _attrs) { - _push(`
V vat-api.eu

Free EU VAT rate data

`); -} -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("components/FooterSection.vue"); - return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; -}; -const __nuxt_component_6 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$1, [["ssrRender", _sfc_ssrRender]]), { __name: "FooterSection" }); -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "index", - __ssrInlineRender: true, - setup(__props) { - useHead({ - title: "vat-api.eu — Free EU VAT Rates API", - meta: [ - { - name: "description", - content: "Get current VAT rates for all 27 EU member states with a free, open REST API. No API key required." - }, - { property: "og:title", content: "vat-api.eu — Free EU VAT Rates API" }, - { - property: "og:description", - content: "Get current VAT rates for all 27 EU member states with a free, open REST API. No API key required." - }, - { property: "og:type", content: "website" }, - { property: "og:url", content: "https://vat-api.eu" }, - { name: "twitter:card", content: "summary_large_image" }, - { name: "twitter:title", content: "vat-api.eu — Free EU VAT Rates API" }, - { - name: "twitter:description", - content: "Get current VAT rates for all 27 EU member states with a free, open REST API. No API key required." - } - ] - }); - return (_ctx, _push, _parent, _attrs) => { - const _component_Navbar = __nuxt_component_0; - const _component_HeroSection = __nuxt_component_1; - const _component_FeaturesGrid = __nuxt_component_2; - const _component_VatRateTable = __nuxt_component_3; - const _component_ApiPlayground = __nuxt_component_4; - const _component_CodeExamples = __nuxt_component_5; - const _component_FooterSection = __nuxt_component_6; - _push(``); - _push(ssrRenderComponent(_component_Navbar, null, null, _parent)); - _push(`
`); - _push(ssrRenderComponent(_component_HeroSection, null, null, _parent)); - _push(ssrRenderComponent(_component_FeaturesGrid, null, null, _parent)); - _push(ssrRenderComponent(_component_VatRateTable, null, null, _parent)); - _push(ssrRenderComponent(_component_ApiPlayground, null, null, _parent)); - _push(ssrRenderComponent(_component_CodeExamples, null, null, _parent)); - _push(`
`); - _push(ssrRenderComponent(_component_FooterSection, null, null, _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/index.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -export { - _sfc_main as default -}; -//# sourceMappingURL=index-BDcJu3_l.js.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map deleted file mode 100644 index 3ec39563..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-BDcJu3_l.js","sources":["../../../../../../../app/components/Navbar.vue","../../../../../../../app/components/HeroSection.vue","../../../../../../../app/components/FeaturesGrid.vue","../../../../../../../app/composables/useVatRates.ts","../../../../../../../app/components/VatRateTable.vue","../../../../../../../app/components/ApiPlayground.vue","../../../../../../../app/components/CodeExamples.vue","../../../../../../../app/components/FooterSection.vue","../../../../../../../app/pages/index.vue"],"sourcesContent":["\n\n\n","\n","\n\n\n","export interface VatRate {\n country: string\n code: string\n flag: string\n standard: number\n reduced: number[]\n}\n\nconst euVatRates: VatRate[] = [\n { country: 'Austria', code: 'AT', flag: '\\u{1F1E6}\\u{1F1F9}', standard: 20, reduced: [10, 13] },\n { country: 'Belgium', code: 'BE', flag: '\\u{1F1E7}\\u{1F1EA}', standard: 21, reduced: [6, 12] },\n { country: 'Bulgaria', code: 'BG', flag: '\\u{1F1E7}\\u{1F1EC}', standard: 20, reduced: [9] },\n { country: 'Croatia', code: 'HR', flag: '\\u{1F1ED}\\u{1F1F7}', standard: 25, reduced: [5, 13] },\n { country: 'Cyprus', code: 'CY', flag: '\\u{1F1E8}\\u{1F1FE}', standard: 19, reduced: [5, 9] },\n { country: 'Czech Republic', code: 'CZ', flag: '\\u{1F1E8}\\u{1F1FF}', standard: 21, reduced: [12, 15] },\n { country: 'Denmark', code: 'DK', flag: '\\u{1F1E9}\\u{1F1F0}', standard: 25, reduced: [] },\n { country: 'Estonia', code: 'EE', flag: '\\u{1F1EA}\\u{1F1EA}', standard: 22, reduced: [9] },\n { country: 'Finland', code: 'FI', flag: '\\u{1F1EB}\\u{1F1EE}', standard: 25.5, reduced: [10, 14] },\n { country: 'France', code: 'FR', flag: '\\u{1F1EB}\\u{1F1F7}', standard: 20, reduced: [5.5, 10] },\n { country: 'Germany', code: 'DE', flag: '\\u{1F1E9}\\u{1F1EA}', standard: 19, reduced: [7] },\n { country: 'Greece', code: 'GR', flag: '\\u{1F1EC}\\u{1F1F7}', standard: 24, reduced: [6, 13] },\n { country: 'Hungary', code: 'HU', flag: '\\u{1F1ED}\\u{1F1FA}', standard: 27, reduced: [5, 18] },\n { country: 'Ireland', code: 'IE', flag: '\\u{1F1EE}\\u{1F1EA}', standard: 23, reduced: [9, 13.5] },\n { country: 'Italy', code: 'IT', flag: '\\u{1F1EE}\\u{1F1F9}', standard: 22, reduced: [5, 10] },\n { country: 'Latvia', code: 'LV', flag: '\\u{1F1F1}\\u{1F1FB}', standard: 21, reduced: [5, 12] },\n { country: 'Lithuania', code: 'LT', flag: '\\u{1F1F1}\\u{1F1F9}', standard: 21, reduced: [5, 9] },\n { country: 'Luxembourg', code: 'LU', flag: '\\u{1F1F1}\\u{1F1FA}', standard: 17, reduced: [8] },\n { country: 'Malta', code: 'MT', flag: '\\u{1F1F2}\\u{1F1F9}', standard: 18, reduced: [5, 7] },\n { country: 'Netherlands', code: 'NL', flag: '\\u{1F1F3}\\u{1F1F1}', standard: 21, reduced: [9] },\n { country: 'Poland', code: 'PL', flag: '\\u{1F1F5}\\u{1F1F1}', standard: 23, reduced: [5, 8] },\n { country: 'Portugal', code: 'PT', flag: '\\u{1F1F5}\\u{1F1F9}', standard: 23, reduced: [6, 13] },\n { country: 'Romania', code: 'RO', flag: '\\u{1F1F7}\\u{1F1F4}', standard: 19, reduced: [5, 9] },\n { country: 'Slovakia', code: 'SK', flag: '\\u{1F1F8}\\u{1F1F0}', standard: 23, reduced: [5, 10] },\n { country: 'Slovenia', code: 'SI', flag: '\\u{1F1F8}\\u{1F1EE}', standard: 22, reduced: [5, 9.5] },\n { country: 'Spain', code: 'ES', flag: '\\u{1F1EA}\\u{1F1F8}', standard: 21, reduced: [4, 10] },\n { country: 'Sweden', code: 'SE', flag: '\\u{1F1F8}\\u{1F1EA}', standard: 25, reduced: [6, 12] },\n]\n\nexport function useVatRates() {\n const rates = readonly(ref(euVatRates))\n\n function getRateByCode(code: string): VatRate | undefined {\n return euVatRates.find(r => r.code === code.toUpperCase())\n }\n\n function formatApiResponse(rate: VatRate) {\n return {\n country: rate.country,\n country_code: rate.code,\n standard_rate: rate.standard,\n reduced_rates: rate.reduced,\n currency: 'EUR',\n }\n }\n\n function formatAllRatesResponse() {\n return euVatRates.map(formatApiResponse)\n }\n\n return { rates, getRateByCode, formatApiResponse, formatAllRatesResponse }\n}\n","\n\n\n","\n\n\n","\n\n\n","\n","\n\n\n"],"names":["_unref","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrRenderAttrs","_mergeProps","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map.json deleted file mode 100644 index 74c5abea..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-BDcJu3_l.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"index-BDcJu3_l.js","mappings":"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","names":["_unref","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrRenderAttrs","_mergeProps","_ssrRenderClass"],"sources":["../../../../../../../app/components/Navbar.vue","../../../../../../../app/components/HeroSection.vue","../../../../../../../app/components/FeaturesGrid.vue","../../../../../../../app/composables/useVatRates.ts","../../../../../../../app/components/VatRateTable.vue","../../../../../../../app/components/ApiPlayground.vue","../../../../../../../app/components/CodeExamples.vue","../../../../../../../app/components/FooterSection.vue","../../../../../../../app/pages/index.vue"],"sourcesContent":["\n\n\n","\n","\n\n\n","export interface VatRate {\n country: string\n code: string\n flag: string\n standard: number\n reduced: number[]\n}\n\nconst euVatRates: VatRate[] = [\n { country: 'Austria', code: 'AT', flag: '\\u{1F1E6}\\u{1F1F9}', standard: 20, reduced: [10, 13] },\n { country: 'Belgium', code: 'BE', flag: '\\u{1F1E7}\\u{1F1EA}', standard: 21, reduced: [6, 12] },\n { country: 'Bulgaria', code: 'BG', flag: '\\u{1F1E7}\\u{1F1EC}', standard: 20, reduced: [9] },\n { country: 'Croatia', code: 'HR', flag: '\\u{1F1ED}\\u{1F1F7}', standard: 25, reduced: [5, 13] },\n { country: 'Cyprus', code: 'CY', flag: '\\u{1F1E8}\\u{1F1FE}', standard: 19, reduced: [5, 9] },\n { country: 'Czech Republic', code: 'CZ', flag: '\\u{1F1E8}\\u{1F1FF}', standard: 21, reduced: [12, 15] },\n { country: 'Denmark', code: 'DK', flag: '\\u{1F1E9}\\u{1F1F0}', standard: 25, reduced: [] },\n { country: 'Estonia', code: 'EE', flag: '\\u{1F1EA}\\u{1F1EA}', standard: 22, reduced: [9] },\n { country: 'Finland', code: 'FI', flag: '\\u{1F1EB}\\u{1F1EE}', standard: 25.5, reduced: [10, 14] },\n { country: 'France', code: 'FR', flag: '\\u{1F1EB}\\u{1F1F7}', standard: 20, reduced: [5.5, 10] },\n { country: 'Germany', code: 'DE', flag: '\\u{1F1E9}\\u{1F1EA}', standard: 19, reduced: [7] },\n { country: 'Greece', code: 'GR', flag: '\\u{1F1EC}\\u{1F1F7}', standard: 24, reduced: [6, 13] },\n { country: 'Hungary', code: 'HU', flag: '\\u{1F1ED}\\u{1F1FA}', standard: 27, reduced: [5, 18] },\n { country: 'Ireland', code: 'IE', flag: '\\u{1F1EE}\\u{1F1EA}', standard: 23, reduced: [9, 13.5] },\n { country: 'Italy', code: 'IT', flag: '\\u{1F1EE}\\u{1F1F9}', standard: 22, reduced: [5, 10] },\n { country: 'Latvia', code: 'LV', flag: '\\u{1F1F1}\\u{1F1FB}', standard: 21, reduced: [5, 12] },\n { country: 'Lithuania', code: 'LT', flag: '\\u{1F1F1}\\u{1F1F9}', standard: 21, reduced: [5, 9] },\n { country: 'Luxembourg', code: 'LU', flag: '\\u{1F1F1}\\u{1F1FA}', standard: 17, reduced: [8] },\n { country: 'Malta', code: 'MT', flag: '\\u{1F1F2}\\u{1F1F9}', standard: 18, reduced: [5, 7] },\n { country: 'Netherlands', code: 'NL', flag: '\\u{1F1F3}\\u{1F1F1}', standard: 21, reduced: [9] },\n { country: 'Poland', code: 'PL', flag: '\\u{1F1F5}\\u{1F1F1}', standard: 23, reduced: [5, 8] },\n { country: 'Portugal', code: 'PT', flag: '\\u{1F1F5}\\u{1F1F9}', standard: 23, reduced: [6, 13] },\n { country: 'Romania', code: 'RO', flag: '\\u{1F1F7}\\u{1F1F4}', standard: 19, reduced: [5, 9] },\n { country: 'Slovakia', code: 'SK', flag: '\\u{1F1F8}\\u{1F1F0}', standard: 23, reduced: [5, 10] },\n { country: 'Slovenia', code: 'SI', flag: '\\u{1F1F8}\\u{1F1EE}', standard: 22, reduced: [5, 9.5] },\n { country: 'Spain', code: 'ES', flag: '\\u{1F1EA}\\u{1F1F8}', standard: 21, reduced: [4, 10] },\n { country: 'Sweden', code: 'SE', flag: '\\u{1F1F8}\\u{1F1EA}', standard: 25, reduced: [6, 12] },\n]\n\nexport function useVatRates() {\n const rates = readonly(ref(euVatRates))\n\n function getRateByCode(code: string): VatRate | undefined {\n return euVatRates.find(r => r.code === code.toUpperCase())\n }\n\n function formatApiResponse(rate: VatRate) {\n return {\n country: rate.country,\n country_code: rate.code,\n standard_rate: rate.standard,\n reduced_rates: rate.reduced,\n currency: 'EUR',\n }\n }\n\n function formatAllRatesResponse() {\n return euVatRates.map(formatApiResponse)\n }\n\n return { rates, getRateByCode, formatApiResponse, formatAllRatesResponse }\n}\n","\n\n\n","\n\n\n","\n\n\n","\n","\n\n\n"],"version":3} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs b/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs deleted file mode 100644 index 39e1e0a6..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs +++ /dev/null @@ -1 +0,0 @@ -export default ({"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Mono-normal-400-latin.4GdczIuU.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Mono-normal-500-latin.DRMDZjhP.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-500-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-500-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-600-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-600-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-700-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-700-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-500-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-500-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-600-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-600-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-700-latin-ext.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2"},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-700-latin.woff2":{resourceType:"font",mimeType:"font/woff2",file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",src:"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2"},"../node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DNdyEWwv.js",name:"error-404",src:"../node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["../node_modules/nuxt/dist/app/entry.js","_BGLmsXN0.js"],css:[]},"error-404.C-Ezrlz-.css":{file:"error-404.C-Ezrlz-.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:"CBwmZ8LB.js",name:"error-500",src:"../node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["../node_modules/nuxt/dist/app/entry.js","_BGLmsXN0.js"],css:[]},"error-500.DBWf9FGj.css":{file:"error-500.DBWf9FGj.css",resourceType:"style",prefetch:!0,preload:!0},"../node_modules/nuxt/dist/app/entry.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Dgz6sxCl.js",name:"entry",src:"../node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["../node_modules/nuxt/dist/app/components/error-404.vue","../node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.DJL3iLlR.css"],assets:["DM_Mono-normal-400-latin-ext.C2zvOubV.woff2","DM_Mono-normal-400-latin.4GdczIuU.woff2","DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2","DM_Mono-normal-500-latin.DRMDZjhP.woff2","DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2","DM_Sans-normal-400-latin.Xz1IZZA0.woff2","Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2","Instrument_Sans-normal-400-latin.BbzFLZTg.woff2"]},"entry.DJL3iLlR.css":{file:"entry.DJL3iLlR.css",resourceType:"style",prefetch:!0,preload:!0},"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":{file:"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Mono-normal-400-latin.4GdczIuU.woff2":{file:"DM_Mono-normal-400-latin.4GdczIuU.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":{file:"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Mono-normal-500-latin.DRMDZjhP.woff2":{file:"DM_Mono-normal-500-latin.DRMDZjhP.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":{file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":{file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2"},"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":{file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2"},"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":{file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2"},"_BGLmsXN0.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BGLmsXN0.js",name:"composables",imports:["../node_modules/nuxt/dist/app/entry.js"]},"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CeoJbNH2.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["../node_modules/nuxt/dist/app/entry.js","_BGLmsXN0.js"]}}) \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs b/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs deleted file mode 100644 index 03f1d14e..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs +++ /dev/null @@ -1 +0,0 @@ -export default ((h,j,k,m,o,q,u,x,z,A,B)=>({dependencies:{"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-500-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-500-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-600-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-600-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-700-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-700-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-500-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-500-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-600-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-600-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-700-latin-ext.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-700-latin.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"../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:"Dgz6sxCl.js",name:"entry",src:"../node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["../node_modules/nuxt/dist/app/components/error-404.vue","../node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.DJL3iLlR.css"],assets:["DM_Mono-normal-400-latin-ext.C2zvOubV.woff2","DM_Mono-normal-400-latin.4GdczIuU.woff2","DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2","DM_Mono-normal-500-latin.DRMDZjhP.woff2","DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2","DM_Sans-normal-400-latin.Xz1IZZA0.woff2","Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2","Instrument_Sans-normal-400-latin.BbzFLZTg.woff2"]}},styles:{"entry.DJL3iLlR.css":j={file:"entry.DJL3iLlR.css",resourceType:"style",prefetch:!0,preload:!0}},preload:{"../node_modules/nuxt/dist/app/entry.js":h,"entry.DJL3iLlR.css":j},prefetch:{"entry.DJL3iLlR.css":j,"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":k={file:"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Mono-normal-400-latin.4GdczIuU.woff2":m={file:"DM_Mono-normal-400-latin.4GdczIuU.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":o={file:"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Mono-normal-500-latin.DRMDZjhP.woff2":q={file:"DM_Mono-normal-500-latin.DRMDZjhP.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":u={file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2"},"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":x={file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2"},"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":z={file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2"},"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":A={file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2"}}},"_BGLmsXN0.js":{scripts:{},styles:{"entry.DJL3iLlR.css":j},preload:{"_BGLmsXN0.js":B={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BGLmsXN0.js",name:"composables",imports:["../node_modules/nuxt/dist/app/entry.js"]},"../node_modules/nuxt/dist/app/entry.js":h,"entry.DJL3iLlR.css":j},prefetch:{"entry.DJL3iLlR.css":j,"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":k,"DM_Mono-normal-400-latin.4GdczIuU.woff2":m,"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":o,"DM_Mono-normal-500-latin.DRMDZjhP.woff2":q,"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":u,"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":x,"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":z,"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":A}},"../node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{"entry.DJL3iLlR.css":j},preload:{"../node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DNdyEWwv.js",name:"error-404",src:"../node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["../node_modules/nuxt/dist/app/entry.js","_BGLmsXN0.js"],css:[]},"../node_modules/nuxt/dist/app/entry.js":h,"entry.DJL3iLlR.css":j,"_BGLmsXN0.js":B},prefetch:{"entry.DJL3iLlR.css":j,"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":k,"DM_Mono-normal-400-latin.4GdczIuU.woff2":m,"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":o,"DM_Mono-normal-500-latin.DRMDZjhP.woff2":q,"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":u,"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":x,"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":z,"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":A}},"error-404.C-Ezrlz-.css":{scripts:{},styles:{},preload:{"error-404.C-Ezrlz-.css":{file:"error-404.C-Ezrlz-.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"../node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{"entry.DJL3iLlR.css":j},preload:{"../node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CBwmZ8LB.js",name:"error-500",src:"../node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["../node_modules/nuxt/dist/app/entry.js","_BGLmsXN0.js"],css:[]},"../node_modules/nuxt/dist/app/entry.js":h,"entry.DJL3iLlR.css":j,"_BGLmsXN0.js":B},prefetch:{"entry.DJL3iLlR.css":j,"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":k,"DM_Mono-normal-400-latin.4GdczIuU.woff2":m,"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":o,"DM_Mono-normal-500-latin.DRMDZjhP.woff2":q,"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":u,"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":x,"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":z,"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":A}},"error-500.DBWf9FGj.css":{scripts:{},styles:{},preload:{"error-500.DBWf9FGj.css":{file:"error-500.DBWf9FGj.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"entry.DJL3iLlR.css":{scripts:{},styles:{},preload:{"entry.DJL3iLlR.css":j},prefetch:{}},"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"DM_Mono-normal-400-latin.4GdczIuU.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"DM_Mono-normal-500-latin.DRMDZjhP.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":{scripts:{},styles:{},preload:{},prefetch:{}},"pages/index.vue":{scripts:{},styles:{"entry.DJL3iLlR.css":j},preload:{"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CeoJbNH2.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["../node_modules/nuxt/dist/app/entry.js","_BGLmsXN0.js"]},"../node_modules/nuxt/dist/app/entry.js":h,"entry.DJL3iLlR.css":j,"_BGLmsXN0.js":B},prefetch:{"entry.DJL3iLlR.css":j,"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":k,"DM_Mono-normal-400-latin.4GdczIuU.woff2":m,"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":o,"DM_Mono-normal-500-latin.DRMDZjhP.woff2":q,"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":u,"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":x,"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":z,"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":A}}},entrypoints:["../node_modules/nuxt/dist/app/entry.js"],modules:{"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin-ext.woff2":{file:"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-400-latin.woff2":{file:"DM_Mono-normal-400-latin.4GdczIuU.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin-ext.woff2":{file:"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Mono-normal-500-latin.woff2":{file:"DM_Mono-normal-500-latin.DRMDZjhP.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin-ext.woff2":{file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-400-latin.woff2":{file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-500-latin-ext.woff2":{file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-500-latin.woff2":{file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-600-latin-ext.woff2":{file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-600-latin.woff2":{file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-700-latin-ext.woff2":{file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/DM_Sans-normal-700-latin.woff2":{file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin-ext.woff2":{file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-400-latin.woff2":{file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-500-latin-ext.woff2":{file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-500-latin.woff2":{file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-600-latin-ext.woff2":{file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-600-latin.woff2":{file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-700-latin-ext.woff2":{file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/.cache/nuxt-google-fonts/fonts/Instrument_Sans-normal-700-latin.woff2":{file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"../node_modules/nuxt/dist/app/components/error-404.vue":{file:"DNdyEWwv.js",resourceType:"script",mimeType:void 0,module:!0},"error-404.C-Ezrlz-.css":{file:"error-404.C-Ezrlz-.css",resourceType:"style",mimeType:void 0,module:void 0},"../node_modules/nuxt/dist/app/components/error-500.vue":{file:"CBwmZ8LB.js",resourceType:"script",mimeType:void 0,module:!0},"error-500.DBWf9FGj.css":{file:"error-500.DBWf9FGj.css",resourceType:"style",mimeType:void 0,module:void 0},"../node_modules/nuxt/dist/app/entry.js":{file:"Dgz6sxCl.js",resourceType:"script",mimeType:void 0,module:!0},"entry.DJL3iLlR.css":{file:"entry.DJL3iLlR.css",resourceType:"style",mimeType:void 0,module:void 0},"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2":{file:"DM_Mono-normal-400-latin-ext.C2zvOubV.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"DM_Mono-normal-400-latin.4GdczIuU.woff2":{file:"DM_Mono-normal-400-latin.4GdczIuU.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2":{file:"DM_Mono-normal-500-latin-ext.BtRyHRi6.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"DM_Mono-normal-500-latin.DRMDZjhP.woff2":{file:"DM_Mono-normal-500-latin.DRMDZjhP.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2":{file:"DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"DM_Sans-normal-400-latin.Xz1IZZA0.woff2":{file:"DM_Sans-normal-400-latin.Xz1IZZA0.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2":{file:"Instrument_Sans-normal-400-latin-ext.B5bTHO_g.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2":{file:"Instrument_Sans-normal-400-latin.BbzFLZTg.woff2",resourceType:"font",mimeType:"font/woff2",module:void 0},"_BGLmsXN0.js":{file:"BGLmsXN0.js",resourceType:"script",mimeType:void 0,module:!0},"pages/index.vue":{file:"CeoJbNH2.js",resourceType:"script",mimeType:void 0,module:!0}}}))() \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs b/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs deleted file mode 100644 index d0420180..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs +++ /dev/null @@ -1,954 +0,0 @@ -import { hasInjectionContext, getCurrentInstance, shallowReactive, reactive, effectScope, getCurrentScope, inject, toRef, shallowRef, isReadonly, isRef, isShallow, isReactive, toRaw, defineComponent, provide, h, ref, Suspense, Fragment, useSSRContext, defineAsyncComponent, unref, mergeProps, onErrorCaptured, onServerPrefetch, createVNode, resolveDynamicComponent, createApp } from "vue"; -import { $fetch } from "/home/bennet/source/vat-api/node_modules/ofetch/dist/node.mjs"; -import { baseURL } from "#internal/nuxt/paths"; -import { createHooks } from "/home/bennet/source/vat-api/node_modules/hookable/dist/index.mjs"; -import { getContext, executeAsync } from "/home/bennet/source/vat-api/node_modules/unctx/dist/index.mjs"; -import { sanitizeStatusCode, createError as createError$1 } from "/home/bennet/source/vat-api/node_modules/h3/dist/index.mjs"; -import { START_LOCATION, createMemoryHistory, createRouter, RouterView } from "vue-router"; -import { defu } from "/home/bennet/source/vat-api/node_modules/defu/dist/defu.mjs"; -import { hasProtocol, joinURL, withQuery, parseURL, encodePath, decodePath, isScriptProtocol } from "/home/bennet/source/vat-api/node_modules/ufo/dist/index.mjs"; -import { ssrRenderComponent, ssrRenderSuspense, ssrRenderVNode } from "vue/server-renderer"; -if (!globalThis.$fetch) { - globalThis.$fetch = $fetch.create({ - baseURL: baseURL() - }); -} -if (!("global" in globalThis)) { - globalThis.global = globalThis; -} -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, - versions: { - get nuxt() { - return "4.3.1"; - }, - 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 }); -} -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 URL_QUOTE_RE = /"/g; -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 encodedLoc = location2.replace(URL_QUOTE_RE, "%22"); - const encodedHeader = encodeURL(location2, isExternalHost); - 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) { - return url.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 unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defineNuxtPlugin({ - name: "nuxt:head", - enforce: "pre", - setup(nuxtApp) { - const head = nuxtApp.ssrContext.head; - nuxtApp.vueApp.use(head); - } -}); -function toArray(value) { - return Array.isArray(value) ? value : [value]; -} -const matcher = (m, p) => { - return []; -}; -const _routeRulesMatcher = (path) => defu({}, ...matcher().map((r) => r.data).reverse()); -const routeRulesMatcher = _routeRulesMatcher; -function getRouteRules(arg) { - const path = typeof arg === "string" ? arg : arg.path; - try { - return routeRulesMatcher(path); - } catch (e) { - console.error("[nuxt] Error matching route rules.", e); - return {}; - } -} -const _routes = [ - { - name: "index", - path: "/", - component: () => import("./_nuxt/index-BDcJu3_l.js") - } -]; -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; -} -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; - } - const hookToWait = nuxtApp._runningTransition ? "page:transition:finish" : "page:loading:end"; - return new Promise((resolve) => { - if (from === START_LOCATION) { - resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)); - return; - } - nuxtApp.hooks.hookOnce(hookToWait, () => { - requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour))); - }); - }); - } -}; -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; - } - const isPageNavigation = isChangingPage(to, from); - if (to.hash) { - return { - el: to.hash, - top: _getHashElementScrollMarginTop(to.hash), - behavior: isPageNavigation ? 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 = {}; -const plugin = /* @__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) => { - if (to.matched.at(-1)?.components?.default === from.matched.at(-1)?.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(); - if (!nuxtApp.ssrContext?.islandContext) { - 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; - syncCurrentRoute(); - if (nuxtApp.ssrContext?.islandContext) { - 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) { - 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(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; - } - } - } - }); - 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; - } - await router.replace({ - ...resolvedInitialRoute, - force: true - }); - router.options.scrollBehavior = routerOptions.scrollBehavior; - } catch (error2) { - await nuxtApp.runWithContext(() => showError(error2)); - } - }); - return { provide: { router } }; - } -}); -function definePayloadReducer(name, reduce) { - { - useNuxtApp().ssrContext["~payloadReducers"][name] = reduce; - } -} -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); - } - } -}); -const components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 = /* @__PURE__ */ defineNuxtPlugin({ - name: "nuxt:global-components" -}); -const plugins = [ - unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU, - plugin, - revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms, - components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 -]; -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_0 = 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_NuxtPage = __nuxt_component_0; - _push(ssrRenderComponent(_component_NuxtPage, _attrs, null, _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-BY_x-_oz.js")); - const _Error = defineAsyncComponent(() => import("./_nuxt/error-500-B0qDQUop.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; - 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); - 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, - entry_default as default, - encodeRoutePath as e, - navigateTo as n, - resolveRouteObject as r, - useRouter as u -}; -//# sourceMappingURL=server.mjs.map diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map b/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map deleted file mode 100644 index 73ae4016..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"server.mjs","sources":["../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../../nuxt/dist/app/nuxt.js","../../../../../nuxt/dist/app/components/injections.js","../../../../../nuxt/dist/app/utils.js","../../../../../nuxt/dist/app/composables/router.js","../../../../../nuxt/dist/app/composables/error.js","../../../../../nuxt/dist/head/runtime/plugins/unhead.js","../../../../../nuxt/dist/pages/runtime/utils.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs","../../../../../nuxt/dist/app/composables/manifest.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../../nuxt/dist/app/components/utils.js","../../../../../nuxt/dist/pages/runtime/router.options.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../../nuxt/dist/pages/runtime/validate.js","../../../../../nuxt/dist/app/middleware/route-rules.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../../nuxt/dist/pages/runtime/plugins/router.js","../../../../../nuxt/dist/app/composables/payload.js","../../../../../nuxt/dist/app/plugins/revive-payload.server.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../../nuxt/dist/app/components/route-provider.js","../../../../../nuxt/dist/pages/runtime/page.js","../../../../../nuxt/dist/app/components/nuxt-error-page.vue","../../../../../nuxt/dist/app/components/nuxt-root.vue","../../../../../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 appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[{\"rel\":\"icon\",\"type\":\"image/svg+xml\",\"href\":\"/favicon.svg\"}],\"style\":[],\"script\":[],\"noscript\":[],\"htmlAttrs\":{\"lang\":\"en\"}}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\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 = {\"deep\":false}\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 = true\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = true\n\nexport const pendingWhenIdle = false\n\nexport const alwaysRunFetchOnKeyChange = false","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 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/4.x/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/4.x/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).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/4.x/directory-structure/app/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 URL_QUOTE_RE = /\"/g;\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 { 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 encodedLoc = location2.replace(URL_QUOTE_RE, \"%22\");\n const encodedHeader = encodeURL(location2, isExternalHost);\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(\"[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(\"[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 }\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 return url.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\";\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 = void 0;\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","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\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 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 }\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","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', 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 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 });\n }\n manifest.catch((e) => {\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);\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\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 indexyEzZmaPNk7GJYtIrCNLRc1wdntiRCwVW0Wf9Ls7S6A8Meta } from \"/home/bennet/source/vat-api/app/pages/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n component: () => import(\"/home/bennet/source/vat-api/app/pages/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\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}\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 const hookToWait = nuxtApp._runningTransition ? \"page:transition:finish\" : \"page:loading:end\";\n return new Promise((resolve) => {\n if (from === START_LOCATION) {\n resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour));\n return;\n }\n nuxtApp.hooks.hookOnce(hookToWait, () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\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 const isPageNavigation = isChangingPage(to, from);\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isPageNavigation ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/home/bennet/source/vat-api/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 \"/home/bennet/source/vat-api/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","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\";\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 if (to.matched.at(-1)?.components?.default === from.matched.at(-1)?.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 if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\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 syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext) {\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) {\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 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 await router.replace({\n ...resolvedInitialRoute,\n force: true\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 { 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 = _getPayloadURL(url, opts).then((payloadURL) => {\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 ? 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 const payloadPromise = renderJsonPayloads ? fetch(payloadURL, { cache: \"force-cache\" }).then((res) => res.text().then(parsePayload)) : import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n try {\n return await payloadPromise;\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 const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n return await _isPrerenderedInManifest(url);\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 return await _isPrerenderedInManifest(url);\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 { 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","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 from \"/home/bennet/source/vat-api/node_modules/.cache/nuxt/.nuxt/components.plugin.mjs\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8\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 { defu } from \"defu\";\nimport { generateRouteKey, toArray, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _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 suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n useRouter().beforeEach(removeErrorHook);\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) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if (hasSameChildren || 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) {\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 delete nuxtApp._runningTransition;\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) {\n nuxtApp._runningTransition = true;\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n delete nuxtApp._runningTransition;\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 _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 });\n }\n return defu(..._props);\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 || index === -1) {\n return false;\n }\n return newRoute.matched.slice(0, index).some(\n (c, i) => c.components?.default !== fork.matched[i]?.components?.default\n ) || 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}\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 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":["plugin","provide","plugins","createH3Error","__executeAsync","entry","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"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","x_google_ignoreList":[0,1,2,10,12,15,18,22,23]} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json b/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json deleted file mode 100644 index da1c8947..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"server.mjs","mappings":"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","names":["plugin","provide","plugins","createH3Error","__executeAsync","entry","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../../nuxt/dist/app/nuxt.js","../../../../../nuxt/dist/app/components/injections.js","../../../../../nuxt/dist/app/utils.js","../../../../../nuxt/dist/app/composables/router.js","../../../../../nuxt/dist/app/composables/error.js","../../../../../nuxt/dist/head/runtime/plugins/unhead.js","../../../../../nuxt/dist/pages/runtime/utils.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs","../../../../../nuxt/dist/app/composables/manifest.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../../nuxt/dist/app/components/utils.js","../../../../../nuxt/dist/pages/runtime/router.options.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../../nuxt/dist/pages/runtime/validate.js","../../../../../nuxt/dist/app/middleware/route-rules.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../../nuxt/dist/pages/runtime/plugins/router.js","../../../../../nuxt/dist/app/composables/payload.js","../../../../../nuxt/dist/app/plugins/revive-payload.server.js","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../../../virtual:nuxt:%2Fhome%2Fbennet%2Fsource%2Fvat-api%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../../nuxt/dist/app/components/route-provider.js","../../../../../nuxt/dist/pages/runtime/page.js","../../../../../nuxt/dist/app/components/nuxt-error-page.vue","../../../../../nuxt/dist/app/components/nuxt-root.vue","../../../../../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 appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[{\"rel\":\"icon\",\"type\":\"image/svg+xml\",\"href\":\"/favicon.svg\"}],\"style\":[],\"script\":[],\"noscript\":[],\"htmlAttrs\":{\"lang\":\"en\"}}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\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 = {\"deep\":false}\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 = true\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = true\n\nexport const pendingWhenIdle = false\n\nexport const alwaysRunFetchOnKeyChange = false","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 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/4.x/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/4.x/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).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/4.x/directory-structure/app/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 URL_QUOTE_RE = /\"/g;\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 { 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 encodedLoc = location2.replace(URL_QUOTE_RE, \"%22\");\n const encodedHeader = encodeURL(location2, isExternalHost);\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(\"[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(\"[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 }\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 return url.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\";\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 = void 0;\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","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\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 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 }\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","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', 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 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 });\n }\n manifest.catch((e) => {\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);\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\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 indexyEzZmaPNk7GJYtIrCNLRc1wdntiRCwVW0Wf9Ls7S6A8Meta } from \"/home/bennet/source/vat-api/app/pages/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n component: () => import(\"/home/bennet/source/vat-api/app/pages/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\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}\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 const hookToWait = nuxtApp._runningTransition ? \"page:transition:finish\" : \"page:loading:end\";\n return new Promise((resolve) => {\n if (from === START_LOCATION) {\n resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour));\n return;\n }\n nuxtApp.hooks.hookOnce(hookToWait, () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\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 const isPageNavigation = isChangingPage(to, from);\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isPageNavigation ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/home/bennet/source/vat-api/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 \"/home/bennet/source/vat-api/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","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\";\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 if (to.matched.at(-1)?.components?.default === from.matched.at(-1)?.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 if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\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 syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext) {\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) {\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 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 await router.replace({\n ...resolvedInitialRoute,\n force: true\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 { 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 = _getPayloadURL(url, opts).then((payloadURL) => {\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 ? 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 const payloadPromise = renderJsonPayloads ? fetch(payloadURL, { cache: \"force-cache\" }).then((res) => res.text().then(parsePayload)) : import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n try {\n return await payloadPromise;\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 const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n return await _isPrerenderedInManifest(url);\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 return await _isPrerenderedInManifest(url);\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 { 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","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/home/bennet/source/vat-api/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 from \"/home/bennet/source/vat-api/node_modules/.cache/nuxt/.nuxt/components.plugin.mjs\";\nexport default [\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8\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 { defu } from \"defu\";\nimport { generateRouteKey, toArray, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _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 suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n useRouter().beforeEach(removeErrorHook);\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) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if (hasSameChildren || 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) {\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 delete nuxtApp._runningTransition;\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) {\n nuxtApp._runningTransition = true;\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n delete nuxtApp._runningTransition;\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 _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 });\n }\n return defu(..._props);\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 || index === -1) {\n return false;\n }\n return newRoute.matched.slice(0, index).some(\n (c, i) => c.components?.default !== fork.matched[i]?.components?.default\n ) || 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}\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 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/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs b/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs deleted file mode 100644 index b55aac12..00000000 --- a/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs +++ /dev/null @@ -1,7 +0,0 @@ -const interopDefault = r => r.default || r || [] -export default { - "../node_modules/nuxt/dist/app/components/error-404.vue": () => import('./_nuxt/error-404-styles.DuDrf-v0.mjs').then(interopDefault), - "../node_modules/nuxt/dist/app/components/error-500.vue": () => import('./_nuxt/error-500-styles.8IYEHzz6.mjs').then(interopDefault), - "../node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=204d37bf&lang.css": () => import('./_nuxt/error-404-styles.DuDrf-v0.mjs').then(interopDefault), - "../node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=d349100d&lang.css": () => import('./_nuxt/error-500-styles.8IYEHzz6.mjs').then(interopDefault) -} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/manifest/latest.json b/node_modules/.cache/nuxt/.nuxt/manifest/latest.json deleted file mode 100644 index e859e049..00000000 --- a/node_modules/.cache/nuxt/.nuxt/manifest/latest.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"6324e146-4419-48fd-9473-f44ec3cf0d83","timestamp":1771016374643} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json b/node_modules/.cache/nuxt/.nuxt/manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json deleted file mode 100644 index d4cd8bf4..00000000 --- a/node_modules/.cache/nuxt/.nuxt/manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"6324e146-4419-48fd-9473-f44ec3cf0d83","timestamp":1771016374643,"prerendered":[]} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts b/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts index 0adeca68..cf2ec9f3 100644 --- a/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts +++ b/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts @@ -1,7 +1,7 @@ /// -/// /// /// +/// /// /// /// diff --git a/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts b/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts index 94ed6f42..8cefe6f5 100644 --- a/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts +++ b/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts @@ -1,7 +1,7 @@ /// -/// /// /// +/// /// /// /// diff --git a/node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.d.ts b/node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.d.ts deleted file mode 100644 index d9d266ce..00000000 --- a/node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -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/node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.json b/node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.json deleted file mode 100644 index 034ff697..00000000 --- a/node_modules/.cache/nuxt/.nuxt/schema/nuxt.schema.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "id": "#" -} \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs b/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs index f781f3d0..0e4dee3d 100644 --- a/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs +++ b/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs @@ -1,4 +1,4 @@ -// generated by the @nuxtjs/tailwindcss module at 2/13/2026, 9:59:34 PM +// generated by the @nuxtjs/tailwindcss module at 2/14/2026, 10:10:49 AM import "@nuxtjs/tailwindcss/config-ctx" import configMerger from "@nuxtjs/tailwindcss/merger"; diff --git a/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json b/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json index 4271c483..1ecc2739 100644 --- a/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json +++ b/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json @@ -104,7 +104,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json" + "./manifest/meta/6d3b88f2-3db7-437b-87fe-690483f96918.json" ], "#components": [ "./components" diff --git a/node_modules/.cache/nuxt/.nuxt/tsconfig.json b/node_modules/.cache/nuxt/.nuxt/tsconfig.json index af99d226..bac75b2c 100644 --- a/node_modules/.cache/nuxt/.nuxt/tsconfig.json +++ b/node_modules/.cache/nuxt/.nuxt/tsconfig.json @@ -104,7 +104,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json" + "./manifest/meta/6d3b88f2-3db7-437b-87fe-690483f96918.json" ], "#components": [ "./components" diff --git a/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json b/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json index 4e071b9b..d3e3287a 100644 --- a/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json +++ b/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json @@ -104,7 +104,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/6324e146-4419-48fd-9473-f44ec3cf0d83.json" + "./manifest/meta/6d3b88f2-3db7-437b-87fe-690483f96918.json" ], "#build": [ "." diff --git a/node_modules/.cache/nuxt/.nuxt/types/nitro-imports.d.ts b/node_modules/.cache/nuxt/.nuxt/types/nitro-imports.d.ts index 36c54207..f7d8c2af 100644 --- a/node_modules/.cache/nuxt/.nuxt/types/nitro-imports.d.ts +++ b/node_modules/.cache/nuxt/.nuxt/types/nitro-imports.d.ts @@ -15,11 +15,14 @@ declare global { const callNodeListener: typeof import('../../../../h3').callNodeListener const clearResponseHeaders: typeof import('../../../../h3').clearResponseHeaders const clearSession: typeof import('../../../../h3').clearSession + const closeDb: typeof import('../../../../../server/utils/mongodb').closeDb + const closeRedis: typeof import('../../../../../server/utils/redis').closeRedis const createApp: typeof import('../../../../h3').createApp const createAppEventHandler: typeof import('../../../../h3').createAppEventHandler const createError: typeof import('../../../../h3').createError const createEvent: typeof import('../../../../h3').createEvent const createEventStream: typeof import('../../../../h3').createEventStream + const createRedisClient: typeof import('../../../../../server/utils/redis').createRedisClient const createRouter: typeof import('../../../../h3').createRouter const defaultContentType: typeof import('../../../../h3').defaultContentType const defineAppConfig: typeof import('../../../../@nuxt/nitro-server/dist/runtime/utils/config').defineAppConfig @@ -47,12 +50,14 @@ declare global { const fromWebHandler: typeof import('../../../../h3').fromWebHandler const getAllRates: typeof import('../../../../../server/utils/vatRates').getAllRates const getCookie: typeof import('../../../../h3').getCookie + const getDb: typeof import('../../../../../server/utils/mongodb').getDb const getHeader: typeof import('../../../../h3').getHeader const getHeaders: typeof import('../../../../h3').getHeaders const getMethod: typeof import('../../../../h3').getMethod const getProxyRequestHeaders: typeof import('../../../../h3').getProxyRequestHeaders const getQuery: typeof import('../../../../h3').getQuery const getRateByCode: typeof import('../../../../../server/utils/vatRates').getRateByCode + const getRedis: typeof import('../../../../../server/utils/redis').getRedis const getRequestFingerprint: typeof import('../../../../h3').getRequestFingerprint const getRequestHeader: typeof import('../../../../h3').getRequestHeader const getRequestHeaders: typeof import('../../../../h3').getRequestHeaders @@ -83,6 +88,7 @@ declare global { const isStream: typeof import('../../../../h3').isStream const isWebResponse: typeof import('../../../../h3').isWebResponse const lazyEventHandler: typeof import('../../../../h3').lazyEventHandler + const logRequest: typeof import('../../../../../server/utils/requestLogger').logRequest const nitroPlugin: typeof import('../../../../nitropack/dist/runtime/internal/plugin').nitroPlugin const parseCookies: typeof import('../../../../h3').parseCookies const promisifyNodeListener: typeof import('../../../../h3').promisifyNodeListener @@ -135,6 +141,9 @@ declare global { export type { EventHandler, EventHandlerRequest, EventHandlerResponse, EventHandlerObject, H3EventContext } from '../../../../h3' import('../../../../h3') // @ts-ignore + export type { RequestLogEntry } from '../../../../../server/utils/requestLogger' + import('../../../../../server/utils/requestLogger') + // @ts-ignore export type { VatRateResponse } from '../../../../../server/utils/vatRates' import('../../../../../server/utils/vatRates') } @@ -152,4 +161,7 @@ export { defineTask, runTask } from 'nitropack/runtime/internal/task'; export { defineNitroErrorHandler } from 'nitropack/runtime/internal/error/utils'; export { buildAssetsURL as __buildAssetsURL, publicAssetsURL as __publicAssetsURL } from '/home/bennet/source/vat-api/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths'; export { defineAppConfig } from '/home/bennet/source/vat-api/node_modules/@nuxt/nitro-server/dist/runtime/utils/config'; +export { getDb, closeDb } from '/home/bennet/source/vat-api/server/utils/mongodb'; +export { getRedis, createRedisClient, closeRedis } from '/home/bennet/source/vat-api/server/utils/redis'; +export { logRequest } from '/home/bennet/source/vat-api/server/utils/requestLogger'; export { getAllRates, getRateByCode } from '/home/bennet/source/vat-api/server/utils/vatRates'; \ No newline at end of file diff --git a/node_modules/.cache/nuxt/.nuxt/types/nitro-routes.d.ts b/node_modules/.cache/nuxt/.nuxt/types/nitro-routes.d.ts index 86d90074..44d059f4 100644 --- a/node_modules/.cache/nuxt/.nuxt/types/nitro-routes.d.ts +++ b/node_modules/.cache/nuxt/.nuxt/types/nitro-routes.d.ts @@ -3,6 +3,15 @@ import type { Serialize, Simplify } from "nitropack/types"; declare module "nitropack/types" { type Awaited = T extends PromiseLike ? Awaited : T interface InternalApi { + '/api/admin/login': { + 'post': Simplify>>> + } + '/api/admin/requests': { + 'get': Simplify>>> + } + '/api/admin/stats': { + 'get': Simplify>>> + } '/api/v1/rates/:code': { 'get': Simplify>>> } diff --git a/node_modules/.cache/nuxt/.nuxt/types/runtime-config.d.ts b/node_modules/.cache/nuxt/.nuxt/types/runtime-config.d.ts index 52538c0d..0b5ca0c7 100644 --- a/node_modules/.cache/nuxt/.nuxt/types/runtime-config.d.ts +++ b/node_modules/.cache/nuxt/.nuxt/types/runtime-config.d.ts @@ -12,6 +12,10 @@ import { RuntimeConfig as UserRuntimeConfig, PublicRuntimeConfig as UserPublicRu vatstackApiKey: string, + db: string, + + adminPassword: string, + nitro: { envPrefix: string, }, diff --git a/node_modules/.cache/vite/client/deps/_metadata.json b/node_modules/.cache/vite/client/deps/_metadata.json index 5c0d8a84..841e27a2 100644 --- a/node_modules/.cache/vite/client/deps/_metadata.json +++ b/node_modules/.cache/vite/client/deps/_metadata.json @@ -1,25 +1,25 @@ { - "hash": "5d0f798f", + "hash": "e7d1c9fa", "configHash": "0abaf243", - "lockfileHash": "19c8bc86", - "browserHash": "a321d57f", + "lockfileHash": "00c2deb1", + "browserHash": "46083ee2", "optimized": { "errx": { "src": "../../../../errx/dist/index.js", "file": "errx.js", - "fileHash": "5dd32b92", + "fileHash": "7d74e3df", "needsInterop": false }, "@vue/devtools-core": { "src": "../../../../@vue/devtools-core/dist/index.js", "file": "@vue_devtools-core.js", - "fileHash": "307e8ff7", + "fileHash": "1702c1a1", "needsInterop": false }, "@vue/devtools-kit": { "src": "../../../../@vue/devtools-kit/dist/index.js", "file": "@vue_devtools-kit.js", - "fileHash": "90e11ab0", + "fileHash": "257d05dc", "needsInterop": false } }, diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index ad1d2994..cfae0553 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -753,6 +753,14 @@ "node": ">=18" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.4.6.tgz", + "integrity": "sha512-y+x3H1xBZd38n10NZF/rEBlvDOOMQ6LKUTHqr8R9VkJ+mmQOYtJFxIlkkK8fZrtOiL6VixbOBWMbZGBdal3Z1g==", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", @@ -1883,6 +1891,19 @@ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "license": "MIT" }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, + "node_modules/@types/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, "node_modules/@unhead/vue": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.4.tgz", @@ -2915,6 +2936,14 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bson": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-7.2.0.tgz", + "integrity": "sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -4883,7 +4912,6 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.9.3.tgz", "integrity": "sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==", - "license": "MIT", "dependencies": { "@ioredis/commands": "1.5.0", "cluster-key-slot": "^1.1.0", @@ -5713,6 +5741,11 @@ "node": ">= 0.6" } }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -5898,6 +5931,94 @@ "integrity": "sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==", "license": "MIT" }, + "node_modules/mongodb": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.1.0.tgz", + "integrity": "sha512-kMfnKunbolQYwCIyrkxNJFB4Ypy91pYqua5NargS/f8ODNSJxT03ZU3n1JqL4mCzbSih8tvmMEMLpKTT7x5gCg==", + "dependencies": { + "@mongodb-js/saslprep": "^1.3.0", + "bson": "^7.1.1", + "mongodb-connection-string-url": "^7.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.806.0", + "@mongodb-js/zstd": "^7.0.0", + "gcp-metadata": "^7.0.1", + "kerberos": "^7.0.0", + "mongodb-client-encryption": ">=7.0.0 <7.1.0", + "snappy": "^7.3.2", + "socks": "^2.8.6" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz", + "integrity": "sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==", + "dependencies": { + "@types/whatwg-url": "^13.0.0", + "whatwg-url": "^14.1.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -7462,6 +7583,14 @@ "node": ">= 6" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -8228,6 +8357,14 @@ "node": ">=0.10.0" } }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/speakingurl": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", diff --git a/nuxt.config.ts b/nuxt.config.ts index 66a52c5c..1512ff27 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -21,6 +21,9 @@ export default defineNuxtConfig({ runtimeConfig: { vatstackApiKey: '', + db: '', + redisUrl: '', + adminPassword: '', }, app: { diff --git a/package-lock.json b/package-lock.json index aed90a21..00c68c1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,8 @@ "hasInstallScript": true, "dependencies": { "@oxc-parser/binding-linux-x64-gnu": "^0.112.0", + "ioredis": "^5.9.3", + "mongodb": "^7.1.0", "nuxt": "^4.0.0", "vue": "^3.5.13", "vue-router": "^4.5.0" @@ -1169,6 +1171,14 @@ "node": ">=18" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.4.6.tgz", + "integrity": "sha512-y+x3H1xBZd38n10NZF/rEBlvDOOMQ6LKUTHqr8R9VkJ+mmQOYtJFxIlkkK8fZrtOiL6VixbOBWMbZGBdal3Z1g==", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", @@ -3682,6 +3692,19 @@ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "license": "MIT" }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, + "node_modules/@types/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, "node_modules/@unhead/vue": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.4.tgz", @@ -4714,6 +4737,14 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bson": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-7.2.0.tgz", + "integrity": "sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -6696,7 +6727,6 @@ "version": "5.9.3", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.9.3.tgz", "integrity": "sha512-VI5tMCdeoxZWU5vjHWsiE/Su76JGhBvWF1MJnV9ZtGltHk9BmD48oDq8Tj8haZ85aceXZMxLNDQZRVo5QKNgXA==", - "license": "MIT", "dependencies": { "@ioredis/commands": "1.5.0", "cluster-key-slot": "^1.1.0", @@ -7526,6 +7556,11 @@ "node": ">= 0.6" } }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -7711,6 +7746,94 @@ "integrity": "sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==", "license": "MIT" }, + "node_modules/mongodb": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.1.0.tgz", + "integrity": "sha512-kMfnKunbolQYwCIyrkxNJFB4Ypy91pYqua5NargS/f8ODNSJxT03ZU3n1JqL4mCzbSih8tvmMEMLpKTT7x5gCg==", + "dependencies": { + "@mongodb-js/saslprep": "^1.3.0", + "bson": "^7.1.1", + "mongodb-connection-string-url": "^7.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.806.0", + "@mongodb-js/zstd": "^7.0.0", + "gcp-metadata": "^7.0.1", + "kerberos": "^7.0.0", + "mongodb-client-encryption": ">=7.0.0 <7.1.0", + "snappy": "^7.3.2", + "socks": "^2.8.6" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz", + "integrity": "sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==", + "dependencies": { + "@types/whatwg-url": "^13.0.0", + "whatwg-url": "^14.1.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -9275,6 +9398,14 @@ "node": ">= 6" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, "node_modules/quansync": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", @@ -10041,6 +10172,14 @@ "node": ">=0.10.0" } }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/speakingurl": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", diff --git a/package.json b/package.json index 6ddbe953..468043d9 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,8 @@ }, "dependencies": { "@oxc-parser/binding-linux-x64-gnu": "^0.112.0", + "ioredis": "^5.9.3", + "mongodb": "^7.1.0", "nuxt": "^4.0.0", "vue": "^3.5.13", "vue-router": "^4.5.0" diff --git a/server/api/admin/login.post.ts b/server/api/admin/login.post.ts new file mode 100644 index 00000000..3c9d71d5 --- /dev/null +++ b/server/api/admin/login.post.ts @@ -0,0 +1,28 @@ +import { signToken } from "../../middleware/adminAuth"; + +export default defineEventHandler(async (event) => { + const body = await readBody<{ password?: string }>(event); + const adminPassword = useRuntimeConfig().adminPassword; + + if (!adminPassword) { + throw createError({ statusCode: 500, statusMessage: "Admin password not configured" }); + } + + if (!body?.password || body.password !== adminPassword) { + throw createError({ statusCode: 401, statusMessage: "Invalid password" }); + } + + const payload = Date.now().toString(36); + const signature = signToken(payload); + const token = `${payload}.${signature}`; + + setCookie(event, "admin-session", token, { + httpOnly: true, + secure: process.env.NODE_ENV === "production", + sameSite: "strict", + maxAge: 60 * 60 * 24, // 24 hours + path: "/", + }); + + return { ok: true }; +}); diff --git a/server/api/admin/requests.get.ts b/server/api/admin/requests.get.ts new file mode 100644 index 00000000..3c68afaf --- /dev/null +++ b/server/api/admin/requests.get.ts @@ -0,0 +1,31 @@ +export default defineEventHandler(async (event) => { + const query = getQuery(event); + const page = Math.max(1, parseInt(query.page as string) || 1); + const limit = Math.min(100, Math.max(1, parseInt(query.limit as string) || 50)); + const ip = (query.ip as string) || undefined; + + const db = await getDb(); + const collection = db.collection("requests"); + + const filter: Record = {}; + if (ip) filter.ip = ip; + + const [requests, total] = await Promise.all([ + collection + .find(filter) + .sort({ timestamp: -1 }) + .skip((page - 1) * limit) + .limit(limit) + .project({ _id: 0 }) + .toArray(), + collection.countDocuments(filter), + ]); + + return { + requests, + total, + page, + limit, + totalPages: Math.ceil(total / limit), + }; +}); diff --git a/server/api/admin/stats.get.ts b/server/api/admin/stats.get.ts new file mode 100644 index 00000000..85f76058 --- /dev/null +++ b/server/api/admin/stats.get.ts @@ -0,0 +1,54 @@ +export default defineEventHandler(async () => { + const db = await getDb(); + const collection = db.collection("requests"); + + const now = new Date(); + const last24h = new Date(now.getTime() - 24 * 60 * 60 * 1000); + const last7d = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000); + const last30d = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000); + + const [totalRequests24h, totalRequests7d, totalRequests30d, uniqueIPs, topIPs, requestsByHour] = + await Promise.all([ + collection.countDocuments({ timestamp: { $gte: last24h.toISOString() } }), + collection.countDocuments({ timestamp: { $gte: last7d.toISOString() } }), + collection.countDocuments({ timestamp: { $gte: last30d.toISOString() } }), + collection + .distinct("ip", { timestamp: { $gte: last24h.toISOString() } }) + .then((ips) => ips.length), + collection + .aggregate([ + { $match: { timestamp: { $gte: last24h.toISOString() } } }, + { + $group: { + _id: "$ip", + count: { $sum: 1 }, + lastSeen: { $max: "$timestamp" }, + }, + }, + { $sort: { count: -1 } }, + { $limit: 20 }, + { $project: { _id: 0, ip: "$_id", count: 1, lastSeen: 1 } }, + ]) + .toArray(), + collection + .aggregate([ + { $match: { timestamp: { $gte: last24h.toISOString() } } }, + { + $group: { + _id: { $substr: ["$timestamp", 11, 2] }, + count: { $sum: 1 }, + }, + }, + { $sort: { _id: 1 } }, + { $project: { _id: 0, hour: "$_id", count: 1 } }, + ]) + .toArray(), + ]); + + return { + totalRequests: { last24h: totalRequests24h, last7d: totalRequests7d, last30d: totalRequests30d }, + uniqueIPs, + topIPs, + requestsByHour, + }; +}); diff --git a/server/middleware/adminAuth.ts b/server/middleware/adminAuth.ts new file mode 100644 index 00000000..a16e2643 --- /dev/null +++ b/server/middleware/adminAuth.ts @@ -0,0 +1,33 @@ +import { createHmac, timingSafeEqual } from "node:crypto"; + +function getSecret(): string { + return useRuntimeConfig().adminPassword || "changeme"; +} + +export function signToken(payload: string): string { + return createHmac("sha256", getSecret()).update(payload).digest("hex"); +} + +export function verifyToken(payload: string, signature: string): boolean { + const expected = signToken(payload); + try { + return timingSafeEqual(Buffer.from(expected), Buffer.from(signature)); + } catch { + return false; + } +} + +export default defineEventHandler((event) => { + const path = getRequestURL(event).pathname; + if (!path.startsWith("/api/admin/") || path === "/api/admin/login") return; + + const cookie = getCookie(event, "admin-session"); + if (!cookie) { + throw createError({ statusCode: 401, statusMessage: "Unauthorized" }); + } + + const [payload, signature] = cookie.split("."); + if (!payload || !signature || !verifyToken(payload, signature)) { + throw createError({ statusCode: 401, statusMessage: "Unauthorized" }); + } +}); diff --git a/server/middleware/requestLogger.ts b/server/middleware/requestLogger.ts new file mode 100644 index 00000000..452c986c --- /dev/null +++ b/server/middleware/requestLogger.ts @@ -0,0 +1,19 @@ +export default defineEventHandler((event) => { + const path = getRequestURL(event).pathname; + if (!path.startsWith("/api/v1/rates")) return; + + const ip = getRequestIP(event, { xForwardedFor: true }) ?? "127.0.0.1"; + const method = event.method; + const userAgent = getRequestHeader(event, "user-agent") ?? ""; + + event.node.res.on("finish", () => { + logRequest({ + ip, + path, + method, + statusCode: event.node.res.statusCode, + userAgent, + timestamp: new Date().toISOString(), + }); + }); +}); diff --git a/server/plugins/logWorker.ts b/server/plugins/logWorker.ts new file mode 100644 index 00000000..33fa0451 --- /dev/null +++ b/server/plugins/logWorker.ts @@ -0,0 +1,66 @@ +import { createRedisClient, closeRedis } from "../utils/redis"; +import { getDb, closeDb } from "../utils/mongodb"; + +export default defineNitroPlugin((nitro) => { + let running = true; + let workerRedis: ReturnType | null = null; + + const worker = async () => { + try { + workerRedis = createRedisClient(); + const db = await getDb(); + const collection = db.collection("requests"); + + while (running) { + const batch: Record[] = []; + const deadline = Date.now() + 2000; + + // Blocking pop — waits up to 5s for an item + const item = await workerRedis.brpop("request-logs", 5); + if (item) { + try { + batch.push(JSON.parse(item[1])); + } catch {} + } + + // Drain up to 49 more items non-blocking + while (batch.length < 50) { + const next = await workerRedis.rpop("request-logs"); + if (!next) break; + try { + batch.push(JSON.parse(next)); + } catch {} + } + + if (batch.length > 0) { + try { + await collection.insertMany(batch); + } catch (err) { + console.error("[logWorker] MongoDB insert failed:", err); + } + } + + // If we haven't hit the deadline and batch was small, wait a bit + const remaining = deadline - Date.now(); + if (remaining > 0 && batch.length < 10) { + await new Promise((r) => setTimeout(r, remaining)); + } + } + } catch (err) { + console.error("[logWorker] Worker error:", err); + } + }; + + // Start worker in background + worker(); + + nitro.hooks.hook("close", async () => { + running = false; + if (workerRedis) { + await workerRedis.quit(); + workerRedis = null; + } + await closeRedis(); + await closeDb(); + }); +}); diff --git a/server/utils/mongodb.ts b/server/utils/mongodb.ts new file mode 100644 index 00000000..3b63462a --- /dev/null +++ b/server/utils/mongodb.ts @@ -0,0 +1,30 @@ +import { MongoClient, type Db } from "mongodb"; + +let client: MongoClient | null = null; +let db: Db | null = null; + +export async function getDb(): Promise { + if (db) return db; + + const uri = useRuntimeConfig().db; + if (!uri) throw new Error("NUXT_DB is not configured"); + + client = new MongoClient(uri); + await client.connect(); + db = client.db("vat-api"); + + // Create indexes for the requests collection + const requests = db.collection("requests"); + await requests.createIndex({ timestamp: -1 }); + await requests.createIndex({ ip: 1, timestamp: -1 }); + + return db; +} + +export async function closeDb(): Promise { + if (client) { + await client.close(); + client = null; + db = null; + } +} diff --git a/server/utils/redis.ts b/server/utils/redis.ts new file mode 100644 index 00000000..5bc8541e --- /dev/null +++ b/server/utils/redis.ts @@ -0,0 +1,24 @@ +import Redis from "ioredis"; + +let redis: Redis | null = null; + +function getRedisUrl(): string { + return useRuntimeConfig().redisUrl || "redis://localhost:6379"; +} + +export function getRedis(): Redis { + if (redis) return redis; + redis = new Redis(getRedisUrl(), { maxRetriesPerRequest: null }); + return redis; +} + +export function createRedisClient(): Redis { + return new Redis(getRedisUrl(), { maxRetriesPerRequest: null }); +} + +export async function closeRedis(): Promise { + if (redis) { + await redis.quit(); + redis = null; + } +} diff --git a/server/utils/requestLogger.ts b/server/utils/requestLogger.ts new file mode 100644 index 00000000..aff978b7 --- /dev/null +++ b/server/utils/requestLogger.ts @@ -0,0 +1,17 @@ +export interface RequestLogEntry { + ip: string; + path: string; + method: string; + statusCode: number; + userAgent: string; + timestamp: string; +} + +export function logRequest(data: RequestLogEntry): void { + try { + const redis = getRedis(); + redis.lpush("request-logs", JSON.stringify(data)).catch(() => {}); + } catch { + // Never let logging break API responses + } +}