From 52011606ff17b55ecaf24cdc35b13fe8b21d63f0 Mon Sep 17 00:00:00 2001 From: Roo Date: Thu, 25 Jun 2026 01:58:04 +0000 Subject: [PATCH] =?UTF-8?q?admin=20fel=C3=BClet=20fejleszt=C3=A9se=20gar?= =?UTF-8?q?=C3=A1zs,=20el=C5=91fizezt=C3=A9si=20csomagok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .roo/history.md | 586 +- backend/app/api/deps.py | 39 +- backend/app/api/v1/api.py | 9 +- backend/app/api/v1/endpoints/admin.py | 82 + .../api/v1/endpoints/admin_organizations.py | 346 + .../app/api/v1/endpoints/admin_packages.py | 131 +- .../app/api/v1/endpoints/admin_permissions.py | 212 + backend/app/api/v1/endpoints/auth.py | 31 + backend/app/api/v1/endpoints/expenses.py | 2 + backend/app/api/v1/endpoints/regions.py | 54 + backend/app/api/v1/endpoints/subscriptions.py | 186 +- backend/app/models/__init__.py | 4 +- backend/app/models/core_logic.py | 112 +- backend/app/models/fleet_finance/models.py | 10 + backend/app/models/identity/identity.py | 8 + backend/app/models/identity/social.py | 19 +- .../app/models/marketplace/organization.py | 6 + backend/app/models/marketplace/service.py | 4 + backend/app/schemas/asset_cost.py | 7 + backend/app/schemas/subscription.py | 12 + backend/app/services/provider_service.py | 114 +- backend/app/services/rbac_service.py | 321 + backend/app/services/subscription_service.py | 482 +- backend/app/tests/test_rbac_service.py | 186 + .../tests/active/test_deep_merge_fix.py | 274 + .../active/test_subscription_feature_flags.py | 139 + backend/scripts/migrate_providers.py | 190 + backend/scripts/seed_regions.py | 373 + ..._pricing_schema_audit_report_2026-06-24.md | 201 + frontend_admin/.nuxt/components.d.ts | 4 + frontend_admin/.nuxt/dev/index.mjs | 1228 +++- frontend_admin/.nuxt/dev/index.mjs.map | 2 +- .../.nuxt/dist/client/_nuxt/9W9VXtTt.js | 1 + .../.nuxt/dist/client/_nuxt/BFfxzM5G.js | 1 - .../.nuxt/dist/client/_nuxt/BO90Bn6x.js | 1 + .../.nuxt/dist/client/_nuxt/BW9w-mbE.js | 1 - .../.nuxt/dist/client/_nuxt/BoAo7BJa.js | 1 - .../.nuxt/dist/client/_nuxt/ByPKVH1D.js | 1 - .../.nuxt/dist/client/_nuxt/C3Ck-LNv.js | 4 - .../.nuxt/dist/client/_nuxt/C8yzOtqa.js | 1 + .../.nuxt/dist/client/_nuxt/CC4zKGJo.js | 1 + .../.nuxt/dist/client/_nuxt/CWA6Xjbg.js | 1 + .../.nuxt/dist/client/_nuxt/CgyjcGAF.js | 1 + .../.nuxt/dist/client/_nuxt/CqYPuxVf.js | 6 + .../dist/client/_nuxt/CqyNVJx6.js} | 2 +- .../.nuxt/dist/client/_nuxt/Cx40nPNe.js | 1 + .../.nuxt/dist/client/_nuxt/CyOWWS80.js | 1 - .../.nuxt/dist/client/_nuxt/DP_n9i02.js | 1 + .../.nuxt/dist/client/_nuxt/DWjNh9rV.js | 1 + .../.nuxt/dist/client/_nuxt/Da4aCGAe.js | 1 + .../.nuxt/dist/client/_nuxt/Di-57MrI.js | 1 - .../.nuxt/dist/client/_nuxt/DuYZ8wdr.js | 1 + .../.nuxt/dist/client/_nuxt/Oih3kTQ2.js | 1 - .../.nuxt/dist/client/_nuxt/QKJPEFuj.js | 1 - .../.nuxt/dist/client/_nuxt/XMkMKtwS.js | 1 - .../.nuxt/dist/client/_nuxt/ncKxzOzI.js | 5 + .../.nuxt/dist/client/_nuxt/usmOON9X.js | 1 - .../.nuxt/dist/client/_nuxt/zPyClsoP.js | 1 + .../{auth-D_CY0lMs.js => auth-BgwR5zMA.js} | 9 +- ...h-D_CY0lMs.js.map => auth-BgwR5zMA.js.map} | 2 +- .../server/_nuxt/auth-BgwR5zMA.js.map.json | 1 + .../server/_nuxt/auth-CRAMW6e4.js.map.json | 1 - .../server/_nuxt/auth-D_CY0lMs.js.map.json | 1 - .../{auth-CRAMW6e4.js => auth-mCjBoLcA.js} | 7 +- ...h-CRAMW6e4.js.map => auth-mCjBoLcA.js.map} | 2 +- .../server/_nuxt/auth-mCjBoLcA.js.map.json | 1 + .../dist/server/_nuxt/cookie-CWIsZYm7.js | 79 - .../dist/server/_nuxt/cookie-CWIsZYm7.js.map | 1 - .../server/_nuxt/cookie-CWIsZYm7.js.map.json | 1 - ...efault-DbJQlxCD.js => default-B9tlXlqE.js} | 124 +- .../dist/server/_nuxt/default-B9tlXlqE.js.map | 1 + .../server/_nuxt/default-B9tlXlqE.js.map.json | 1 + .../dist/server/_nuxt/default-DbJQlxCD.js.map | 1 - .../server/_nuxt/default-DbJQlxCD.js.map.json | 1 - .../.nuxt/dist/server/_nuxt/en-BScPj1A-.js | 116 + .../dist/server/_nuxt/en-BScPj1A-.js.map | 1 + .../dist/server/_nuxt/en-BScPj1A-.js.map.json | 1 + .../_nuxt/entry-styles-1.mjs-CF-ChPYj.js | 5 - .../_nuxt/entry-styles-1.mjs-CF-ChPYj.js.map | 1 - .../entry-styles-1.mjs-CF-ChPYj.js.map.json | 1 - .../_nuxt/entry-styles-1.mjs-DTfYoqFp.js | 5 + .../_nuxt/entry-styles-1.mjs-DTfYoqFp.js.map | 1 + .../entry-styles-1.mjs-DTfYoqFp.js.map.json | 1 + .../_nuxt/entry-styles-2.mjs-CM2W3GZ1.js | 5 + .../_nuxt/entry-styles-2.mjs-CM2W3GZ1.js.map | 1 + .../entry-styles-2.mjs-CM2W3GZ1.js.map.json | 1 + .../_nuxt/entry-styles-2.mjs-CntxBZab.js | 5 - .../_nuxt/entry-styles-2.mjs-CntxBZab.js.map | 1 - .../entry-styles-2.mjs-CntxBZab.js.map.json | 1 - .../server/_nuxt/entry-styles.BhrIOCGw.mjs | 8 - .../server/_nuxt/entry-styles.w3HlJ-9O.mjs | 8 + .../_nuxt/error-404-BDmq62MM.js.map.json | 1 - ...-404-BDmq62MM.js => error-404-C_elhLNc.js} | 11 +- ...q62MM.js.map => error-404-C_elhLNc.js.map} | 2 +- .../_nuxt/error-404-C_elhLNc.js.map.json | 1 + ...-500-gzzPk_-U.js => error-500-C6MJq2Cl.js} | 9 +- ...Pk_-U.js.map => error-500-C6MJq2Cl.js.map} | 2 +- .../_nuxt/error-500-C6MJq2Cl.js.map.json | 1 + .../_nuxt/error-500-gzzPk_-U.js.map.json | 1 - .../.nuxt/dist/server/_nuxt/hu-CoGcC81v.js | 116 + .../dist/server/_nuxt/hu-CoGcC81v.js.map | 1 + .../dist/server/_nuxt/hu-CoGcC81v.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/index-7zBAzpaD.js | 159 + .../dist/server/_nuxt/index-7zBAzpaD.js.map | 1 + .../server/_nuxt/index-7zBAzpaD.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/index-BPETUF7a.js | 311 + .../dist/server/_nuxt/index-BPETUF7a.js.map | 1 + .../server/_nuxt/index-BPETUF7a.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/index-ebkVtBaw.js | 160 + .../dist/server/_nuxt/index-ebkVtBaw.js.map | 1 + .../server/_nuxt/index-ebkVtBaw.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/index-nGH29Vk2.js | 55 - .../dist/server/_nuxt/index-nGH29Vk2.js.map | 1 - .../server/_nuxt/index-nGH29Vk2.js.map.json | 1 - .../{login-CLIOTi6c.js => login-BHmaTZZZ.js} | 26 +- ...-CLIOTi6c.js.map => login-BHmaTZZZ.js.map} | 2 +- .../server/_nuxt/login-BHmaTZZZ.js.map.json | 1 + .../server/_nuxt/login-CLIOTi6c.js.map.json | 1 - ...link-DNVrgHUL.js => nuxt-link-Cp-CAJwR.js} | 4 +- ...rgHUL.js.map => nuxt-link-Cp-CAJwR.js.map} | 2 +- ...ap.json => nuxt-link-Cp-CAJwR.js.map.json} | 2 +- .../dist/server/_nuxt/region-0mvXqaMM.js | 73 + .../dist/server/_nuxt/region-0mvXqaMM.js.map | 1 + .../server/_nuxt/region-0mvXqaMM.js.map.json | 1 + .../.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js | 21 - .../dist/server/_nuxt/v3-DnDMBKvA.js.map | 1 - .../dist/server/_nuxt/v3-DnDMBKvA.js.map.json | 1 - .../.nuxt/dist/server/client.manifest.mjs | 2 +- .../.nuxt/dist/server/client.precomputed.mjs | 2 +- frontend_admin/.nuxt/dist/server/server.mjs | 5975 ++++++++++++++++- .../.nuxt/dist/server/server.mjs.map | 2 +- .../.nuxt/dist/server/server.mjs.map.json | 2 +- frontend_admin/.nuxt/dist/server/styles.mjs | 2 +- frontend_admin/.nuxt/i18n-route-resources.mjs | 4 + frontend_admin/.nuxt/imports.d.ts | 4 + frontend_admin/.nuxt/manifest/latest.json | 2 +- .../30eed3bb-14ef-4661-b342-1d1b41361648.json | 1 - .../dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json | 1 + frontend_admin/.nuxt/manifest/meta/dev.json | 2 +- frontend_admin/.nuxt/nitro.json | 4 +- frontend_admin/.nuxt/nuxt.d.ts | 6 +- frontend_admin/.nuxt/tailwind/postcss.mjs | 2 +- frontend_admin/.nuxt/tsconfig.json | 43 +- frontend_admin/.nuxt/tsconfig.server.json | 34 + frontend_admin/.nuxt/types/build.d.ts | 1 + frontend_admin/.nuxt/types/components.d.ts | 4 + frontend_admin/.nuxt/types/i18n-plugin.d.ts | 115 + frontend_admin/.nuxt/types/imports.d.ts | 33 + frontend_admin/.nuxt/types/layouts.d.ts | 1 + frontend_admin/.nuxt/types/nitro-imports.d.ts | 23 +- frontend_admin/.nuxt/types/nitro-layouts.d.ts | 2 +- frontend_admin/.nuxt/types/nitro-routes.d.ts | 3 + frontend_admin/.nuxt/types/plugins.d.ts | 10 +- frontend_admin/.nuxt/types/schema.d.ts | 94 +- frontend_admin/.output/nitro.json | 2 +- .../.output/public/_nuxt/9W9VXtTt.js | 1 + .../.output/public/_nuxt/BFfxzM5G.js | 1 - .../.output/public/_nuxt/BO90Bn6x.js | 1 + .../.output/public/_nuxt/BW9w-mbE.js | 1 - .../.output/public/_nuxt/BoAo7BJa.js | 1 - .../.output/public/_nuxt/ByPKVH1D.js | 1 - .../.output/public/_nuxt/C3Ck-LNv.js | 4 - .../.output/public/_nuxt/C8yzOtqa.js | 1 + .../.output/public/_nuxt/CC4zKGJo.js | 1 + .../.output/public/_nuxt/CWA6Xjbg.js | 1 + .../.output/public/_nuxt/CgyjcGAF.js | 1 + .../.output/public/_nuxt/CqYPuxVf.js | 6 + .../public/_nuxt/CqyNVJx6.js} | 2 +- .../.output/public/_nuxt/Cx40nPNe.js | 1 + .../.output/public/_nuxt/CyOWWS80.js | 1 - .../.output/public/_nuxt/DP_n9i02.js | 1 + .../.output/public/_nuxt/DWjNh9rV.js | 1 + .../.output/public/_nuxt/Da4aCGAe.js | 1 + .../.output/public/_nuxt/Di-57MrI.js | 1 - .../.output/public/_nuxt/DuYZ8wdr.js | 1 + .../.output/public/_nuxt/Oih3kTQ2.js | 1 - .../.output/public/_nuxt/QKJPEFuj.js | 1 - .../.output/public/_nuxt/XMkMKtwS.js | 1 - .../.output/public/_nuxt/builds/latest.json | 2 +- .../30eed3bb-14ef-4661-b342-1d1b41361648.json | 1 - .../dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json | 1 + .../.output/public/_nuxt/builds/meta/dev.json | 2 +- .../.output/public/_nuxt/ncKxzOzI.js | 5 + .../.output/public/_nuxt/usmOON9X.js | 1 - .../.output/public/_nuxt/zPyClsoP.js | 1 + frontend_admin/.output/public/logo.svg | 99 + .../{auth-D_CY0lMs.mjs => auth-BgwR5zMA.mjs} | 11 +- .../server/chunks/build/auth-BgwR5zMA.mjs.map | 1 + .../server/chunks/build/auth-CRAMW6e4.mjs.map | 1 - .../server/chunks/build/auth-D_CY0lMs.mjs.map | 1 - .../{auth-CRAMW6e4.mjs => auth-mCjBoLcA.mjs} | 8 +- .../server/chunks/build/auth-mCjBoLcA.mjs.map | 1 + .../chunks/build/client.precomputed.mjs | 2 +- .../chunks/build/client.precomputed.mjs.map | 2 +- .../server/chunks/build/cookie-CWIsZYm7.mjs | 77 - .../chunks/build/cookie-CWIsZYm7.mjs.map | 1 - ...ault-DbJQlxCD.mjs => default-B9tlXlqE.mjs} | 114 +- .../chunks/build/default-B9tlXlqE.mjs.map | 1 + .../chunks/build/default-DbJQlxCD.mjs.map | 1 - .../server/chunks/build/en-BScPj1A-.mjs | 115 + .../server/chunks/build/en-BScPj1A-.mjs.map | 1 + .../chunks/build/entry-styles.BhrIOCGw.mjs | 14 - .../build/entry-styles.BhrIOCGw.mjs.map | 1 - .../chunks/build/entry-styles.w3HlJ-9O.mjs | 14 + .../build/entry-styles.w3HlJ-9O.mjs.map | 1 + .../chunks/build/error-404-BDmq62MM.mjs.map | 1 - ...04-BDmq62MM.mjs => error-404-C_elhLNc.mjs} | 11 +- .../chunks/build/error-404-C_elhLNc.mjs.map | 1 + ...00-gzzPk_-U.mjs => error-500-C6MJq2Cl.mjs} | 9 +- ..._-U.mjs.map => error-500-C6MJq2Cl.mjs.map} | 2 +- .../server/chunks/build/hu-CoGcC81v.mjs | 115 + .../server/chunks/build/hu-CoGcC81v.mjs.map | 1 + .../server/chunks/build/index-7zBAzpaD.mjs | 143 + .../chunks/build/index-7zBAzpaD.mjs.map | 1 + .../server/chunks/build/index-BPETUF7a.mjs | 302 + .../chunks/build/index-BPETUF7a.mjs.map | 1 + .../server/chunks/build/index-ebkVtBaw.mjs | 159 + .../chunks/build/index-ebkVtBaw.mjs.map | 1 + .../server/chunks/build/index-nGH29Vk2.mjs | 54 - .../chunks/build/index-nGH29Vk2.mjs.map | 1 - ...{login-CLIOTi6c.mjs => login-BHmaTZZZ.mjs} | 16 +- .../chunks/build/login-BHmaTZZZ.mjs.map | 1 + .../chunks/build/login-CLIOTi6c.mjs.map | 1 - ...nk-DNVrgHUL.mjs => nuxt-link-Cp-CAJwR.mjs} | 6 +- ...HUL.mjs.map => nuxt-link-Cp-CAJwR.mjs.map} | 2 +- .../server/chunks/build/region-0mvXqaMM.mjs | 78 + .../chunks/build/region-0mvXqaMM.mjs.map | 1 + .../.output/server/chunks/build/server.mjs | 5126 +++++++++++++- .../server/chunks/build/server.mjs.map | 2 +- .../.output/server/chunks/build/styles.mjs | 2 +- .../server/chunks/build/v3-DnDMBKvA.mjs | 22 - .../server/chunks/build/v3-DnDMBKvA.mjs.map | 1 - .../.output/server/chunks/nitro/nitro.mjs | 1284 +++- .../.output/server/chunks/nitro/nitro.mjs.map | 2 +- .../.output/server/chunks/routes/renderer.mjs | 34 +- .../server/chunks/routes/renderer.mjs.map | 2 +- frontend_admin/.output/server/index.mjs | 3 +- frontend_admin/.output/server/index.mjs.map | 2 +- .../node_modules/@vue/devtools-kit | 1 + .../@vue/devtools-api@8.1.3/dist/index.js | 2 + .../node_modules/@vue/devtools-kit | 1 + .../@vue/devtools-api@8.1.3/package.json | 34 + .../@vue/devtools-kit@7.7.9}/dist/index.cjs | 0 .../node_modules/@vue/devtools-shared | 1 + .../devtools-kit@7.7.9/node_modules/hookable | 1 + .../node_modules/perfect-debounce | 1 + .../@vue/devtools-kit@7.7.9}/package.json | 0 .../@vue/devtools-kit@8.1.3/dist/index.js | 5670 ++++++++++++++++ .../node_modules/@vue/devtools-shared | 1 + .../devtools-kit@8.1.3/node_modules/hookable | 1 + .../node_modules/perfect-debounce | 1 + .../@vue/devtools-kit@8.1.3/package.json | 43 + .../devtools-shared@7.7.9}/dist/index.cjs | 0 .../@vue/devtools-shared@7.7.9}/package.json | 0 .../@vue/devtools-shared@8.1.3/dist/index.js | 239 + .../@vue/devtools-shared@8.1.3/package.json | 32 + .../.nitro/hookable@5.5.3/dist/index.mjs | 290 + .../perfect-debounce@1.0.0}/dist/index.cjs | 0 .../perfect-debounce@1.0.0}/package.json | 0 .../perfect-debounce@2.1.0/dist/index.mjs | 89 + .../perfect-debounce@2.1.0/package.json | 41 + .../dist/devtools-EWN81iOl.mjs | 0 .../vue-router@4.6.4}/dist/vue-router.mjs | 0 .../node_modules/@vue/devtools-api | 1 + .../vue-router@4.6.4}/package.json | 0 .../vue-router@4.6.4}/vue-router.node.mjs | 0 .../dist/devtools-DCoWQoU_.js | 1034 +++ .../vue-router@5.1.0/dist/useApi-s_02lHjl.js | 181 + .../vue-router@5.1.0/dist/vue-router.js | 1499 +++++ .../node_modules/@vue/devtools-api | 1 + .../.nitro/vue-router@5.1.0/package.json | 226 + .../vue-router@5.1.0/vue-router.node.mjs | 2 + .../@intlify/core-base/dist/core-base.mjs | 1901 ++++++ .../@intlify/core-base/package.json | 78 + .../node_modules/@intlify/core/dist/core.mjs | 31 + .../node_modules/@intlify/core/package.json | 82 + .../node_modules/@intlify/h3/dist/index.mjs | 65 + .../node_modules/@intlify/h3/package.json | 122 + .../dist/message-compiler.mjs | 1552 +++++ .../@intlify/message-compiler/package.json | 79 + .../@intlify/shared/dist/shared.mjs | 281 + .../node_modules/@intlify/shared/package.json | 69 + .../node_modules/@intlify/utils/dist/h3.mjs | 89 + .../utils/dist/shared/utils.9f8159f5.mjs | 108 + .../node_modules/@intlify/utils/package.json | 129 + .../server/node_modules/@vue/devtools-api | 2 +- .../server/node_modules/@vue/devtools-kit | 1 + .../@vue/devtools-kit/node_modules/hookable | 1 - .../server/node_modules/@vue/devtools-shared | 1 + .../server/node_modules/birpc/dist/index.mjs | 291 + .../node_modules/cookie-es/dist/index.mjs | 268 + .../node_modules/cookie-es/package.json | 46 + .../server/node_modules/defu/dist/defu.mjs | 69 + .../server/node_modules/defu/package.json | 48 + .../server/node_modules/destr/dist/index.mjs | 72 + .../server/node_modules/destr/package.json | 47 + .../server/node_modules/h3/dist/index.mjs | 2498 +++++++ .../server/node_modules/h3/package.json | 75 + .../node_modules/iron-webcrypto/dist/index.js | 298 + .../node_modules/iron-webcrypto/package.json | 72 + .../dist/_polyfill/buffer/node.mjs | 1 + .../dist/_polyfill/events/node.mjs | 1 + .../node-mock-http/dist/index.mjs | 1 + .../node_modules/node-mock-http/package.json | 63 + .../server/node_modules/perfect-debounce | 1 + .../server/node_modules/radix3/dist/index.mjs | 262 + .../server/node_modules/radix3/package.json | 52 + .../uncrypto/dist/crypto.node.mjs | 16 + .../server/node_modules/uncrypto/package.json | 60 + .../vue-devtools-stub/dist/index.mjs | 11 + .../vue-devtools-stub/package.json | 41 + .../.output/server/node_modules/vue-router | 1 + .../vue-router/node_modules/@vue/devtools-api | 1 - frontend_admin/.output/server/package.json | 15 + frontend_admin/composables/useFormatter.ts | 162 + frontend_admin/i18n/locales/en.json | 141 + frontend_admin/i18n/locales/hu.json | 141 + frontend_admin/layouts/blank.vue | 5 + frontend_admin/layouts/default.vue | 142 +- frontend_admin/locales/en.json | 82 + frontend_admin/locales/hu.json | 82 + frontend_admin/middleware/auth.ts | 34 +- frontend_admin/nuxt.config.ts | 26 +- frontend_admin/package-lock.json | 4854 ++++++++++++- frontend_admin/package.json | 1 + frontend_admin/pages/garages/index.vue | 629 ++ frontend_admin/pages/login.vue | 4 + frontend_admin/pages/packages/index.vue | 1237 ++++ frontend_admin/pages/permissions/index.vue | 543 +- frontend_admin/public/logo.svg | 99 + frontend_admin/stores/region.ts | 108 + plans/logic_spec_p0_hybrid_vendor_refactor.md | 189 + tests/active/test_deep_merge_fix.py | 274 + .../active/test_subscription_feature_flags.py | 139 + 334 files changed, 46636 insertions(+), 1606 deletions(-) create mode 100644 backend/app/api/v1/endpoints/admin_organizations.py create mode 100644 backend/app/api/v1/endpoints/admin_permissions.py create mode 100644 backend/app/api/v1/endpoints/regions.py create mode 100644 backend/app/services/rbac_service.py create mode 100644 backend/app/tests/test_rbac_service.py create mode 100644 backend/backend/tests/active/test_deep_merge_fix.py create mode 100644 backend/backend/tests/active/test_subscription_feature_flags.py create mode 100644 backend/scripts/migrate_providers.py create mode 100644 backend/scripts/seed_regions.py create mode 100644 docs/p0_save_bug_pricing_schema_audit_report_2026-06-24.md create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/9W9VXtTt.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BFfxzM5G.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BO90Bn6x.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BW9w-mbE.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/BoAo7BJa.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/ByPKVH1D.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/C3Ck-LNv.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/C8yzOtqa.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/CC4zKGJo.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/CWA6Xjbg.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/CgyjcGAF.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/CqYPuxVf.js rename frontend_admin/{.output/public/_nuxt/Drr7KP9v.js => .nuxt/dist/client/_nuxt/CqyNVJx6.js} (98%) create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Cx40nPNe.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/CyOWWS80.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/DP_n9i02.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/DWjNh9rV.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Da4aCGAe.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Di-57MrI.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/DuYZ8wdr.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/Oih3kTQ2.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/QKJPEFuj.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/XMkMKtwS.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/ncKxzOzI.js delete mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/usmOON9X.js create mode 100644 frontend_admin/.nuxt/dist/client/_nuxt/zPyClsoP.js rename frontend_admin/.nuxt/dist/server/_nuxt/{auth-D_CY0lMs.js => auth-BgwR5zMA.js} (79%) rename frontend_admin/.nuxt/dist/server/_nuxt/{auth-D_CY0lMs.js.map => auth-BgwR5zMA.js.map} (68%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-BgwR5zMA.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-CRAMW6e4.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-D_CY0lMs.js.map.json rename frontend_admin/.nuxt/dist/server/_nuxt/{auth-CRAMW6e4.js => auth-mCjBoLcA.js} (93%) rename frontend_admin/.nuxt/dist/server/_nuxt/{auth-CRAMW6e4.js.map => auth-mCjBoLcA.js.map} (70%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/auth-mCjBoLcA.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js.map delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js.map.json rename frontend_admin/.nuxt/dist/server/_nuxt/{default-DbJQlxCD.js => default-B9tlXlqE.js} (57%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-B9tlXlqE.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-B9tlXlqE.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-DbJQlxCD.js.map delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/default-DbJQlxCD.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/en-BScPj1A-.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/en-BScPj1A-.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/en-BScPj1A-.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js.map delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-DTfYoqFp.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-DTfYoqFp.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-DTfYoqFp.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CM2W3GZ1.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CM2W3GZ1.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CM2W3GZ1.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js.map delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles.BhrIOCGw.mjs create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/entry-styles.w3HlJ-9O.mjs delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-BDmq62MM.js.map.json rename frontend_admin/.nuxt/dist/server/_nuxt/{error-404-BDmq62MM.js => error-404-C_elhLNc.js} (93%) rename frontend_admin/.nuxt/dist/server/_nuxt/{error-404-BDmq62MM.js.map => error-404-C_elhLNc.js.map} (91%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-404-C_elhLNc.js.map.json rename frontend_admin/.nuxt/dist/server/_nuxt/{error-500-gzzPk_-U.js => error-500-C6MJq2Cl.js} (94%) rename frontend_admin/.nuxt/dist/server/_nuxt/{error-500-gzzPk_-U.js.map => error-500-C6MJq2Cl.js.map} (91%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-C6MJq2Cl.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/error-500-gzzPk_-U.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/hu-CoGcC81v.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/hu-CoGcC81v.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/hu-CoGcC81v.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map.json create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map.json rename frontend_admin/.nuxt/dist/server/_nuxt/{login-CLIOTi6c.js => login-BHmaTZZZ.js} (92%) rename frontend_admin/.nuxt/dist/server/_nuxt/{login-CLIOTi6c.js.map => login-BHmaTZZZ.js.map} (86%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json rename frontend_admin/.nuxt/dist/server/_nuxt/{nuxt-link-DNVrgHUL.js => nuxt-link-Cp-CAJwR.js} (97%) rename frontend_admin/.nuxt/dist/server/_nuxt/{nuxt-link-DNVrgHUL.js.map => nuxt-link-Cp-CAJwR.js.map} (99%) rename frontend_admin/.nuxt/dist/server/_nuxt/{nuxt-link-DNVrgHUL.js.map.json => nuxt-link-Cp-CAJwR.js.map.json} (99%) create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map create mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map.json delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map delete mode 100644 frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json create mode 100644 frontend_admin/.nuxt/i18n-route-resources.mjs delete mode 100644 frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json create mode 100644 frontend_admin/.nuxt/manifest/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json create mode 100644 frontend_admin/.nuxt/types/i18n-plugin.d.ts create mode 100644 frontend_admin/.output/public/_nuxt/9W9VXtTt.js delete mode 100644 frontend_admin/.output/public/_nuxt/BFfxzM5G.js create mode 100644 frontend_admin/.output/public/_nuxt/BO90Bn6x.js delete mode 100644 frontend_admin/.output/public/_nuxt/BW9w-mbE.js delete mode 100644 frontend_admin/.output/public/_nuxt/BoAo7BJa.js delete mode 100644 frontend_admin/.output/public/_nuxt/ByPKVH1D.js delete mode 100644 frontend_admin/.output/public/_nuxt/C3Ck-LNv.js create mode 100644 frontend_admin/.output/public/_nuxt/C8yzOtqa.js create mode 100644 frontend_admin/.output/public/_nuxt/CC4zKGJo.js create mode 100644 frontend_admin/.output/public/_nuxt/CWA6Xjbg.js create mode 100644 frontend_admin/.output/public/_nuxt/CgyjcGAF.js create mode 100644 frontend_admin/.output/public/_nuxt/CqYPuxVf.js rename frontend_admin/{.nuxt/dist/client/_nuxt/Drr7KP9v.js => .output/public/_nuxt/CqyNVJx6.js} (98%) create mode 100644 frontend_admin/.output/public/_nuxt/Cx40nPNe.js delete mode 100644 frontend_admin/.output/public/_nuxt/CyOWWS80.js create mode 100644 frontend_admin/.output/public/_nuxt/DP_n9i02.js create mode 100644 frontend_admin/.output/public/_nuxt/DWjNh9rV.js create mode 100644 frontend_admin/.output/public/_nuxt/Da4aCGAe.js delete mode 100644 frontend_admin/.output/public/_nuxt/Di-57MrI.js create mode 100644 frontend_admin/.output/public/_nuxt/DuYZ8wdr.js delete mode 100644 frontend_admin/.output/public/_nuxt/Oih3kTQ2.js delete mode 100644 frontend_admin/.output/public/_nuxt/QKJPEFuj.js delete mode 100644 frontend_admin/.output/public/_nuxt/XMkMKtwS.js delete mode 100644 frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json create mode 100644 frontend_admin/.output/public/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json create mode 100644 frontend_admin/.output/public/_nuxt/ncKxzOzI.js delete mode 100644 frontend_admin/.output/public/_nuxt/usmOON9X.js create mode 100644 frontend_admin/.output/public/_nuxt/zPyClsoP.js create mode 100644 frontend_admin/.output/public/logo.svg rename frontend_admin/.output/server/chunks/build/{auth-D_CY0lMs.mjs => auth-BgwR5zMA.mjs} (79%) create mode 100644 frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs.map rename frontend_admin/.output/server/chunks/build/{auth-CRAMW6e4.mjs => auth-mCjBoLcA.mjs} (92%) create mode 100644 frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs delete mode 100644 frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs.map rename frontend_admin/.output/server/chunks/build/{default-DbJQlxCD.mjs => default-B9tlXlqE.mjs} (57%) create mode 100644 frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs create mode 100644 frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs delete mode 100644 frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs create mode 100644 frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs.map rename frontend_admin/.output/server/chunks/build/{error-404-BDmq62MM.mjs => error-404-C_elhLNc.mjs} (96%) create mode 100644 frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs.map rename frontend_admin/.output/server/chunks/build/{error-500-gzzPk_-U.mjs => error-500-C6MJq2Cl.mjs} (96%) rename frontend_admin/.output/server/chunks/build/{error-500-gzzPk_-U.mjs.map => error-500-C6MJq2Cl.mjs.map} (88%) create mode 100644 frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs create mode 100644 frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs create mode 100644 frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs create mode 100644 frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs.map create mode 100644 frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs create mode 100644 frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs delete mode 100644 frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs.map rename frontend_admin/.output/server/chunks/build/{login-CLIOTi6c.mjs => login-BHmaTZZZ.mjs} (93%) create mode 100644 frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs.map rename frontend_admin/.output/server/chunks/build/{nuxt-link-DNVrgHUL.mjs => nuxt-link-Cp-CAJwR.mjs} (96%) rename frontend_admin/.output/server/chunks/build/{nuxt-link-DNVrgHUL.mjs.map => nuxt-link-Cp-CAJwR.mjs.map} (98%) create mode 100644 frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs create mode 100644 frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs.map delete mode 100644 frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs delete mode 100644 frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs.map create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/node_modules/@vue/devtools-kit create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/dist/index.js create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/node_modules/@vue/devtools-kit create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/package.json rename frontend_admin/.output/server/node_modules/{@vue/devtools-kit => .nitro/@vue/devtools-kit@7.7.9}/dist/index.cjs (100%) create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/@vue/devtools-shared create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/hookable create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/perfect-debounce rename frontend_admin/.output/server/node_modules/{@vue/devtools-kit => .nitro/@vue/devtools-kit@7.7.9}/package.json (100%) create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/dist/index.js create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/@vue/devtools-shared create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/hookable create mode 120000 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/perfect-debounce create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/package.json rename frontend_admin/.output/server/node_modules/{@vue/devtools-shared => .nitro/@vue/devtools-shared@7.7.9}/dist/index.cjs (100%) rename frontend_admin/.output/server/node_modules/{@vue/devtools-shared => .nitro/@vue/devtools-shared@7.7.9}/package.json (100%) create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/dist/index.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/package.json create mode 100644 frontend_admin/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs rename frontend_admin/.output/server/node_modules/{perfect-debounce => .nitro/perfect-debounce@1.0.0}/dist/index.cjs (100%) rename frontend_admin/.output/server/node_modules/{perfect-debounce => .nitro/perfect-debounce@1.0.0}/package.json (100%) create mode 100644 frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json rename frontend_admin/.output/server/node_modules/{vue-router => .nitro/vue-router@4.6.4}/dist/devtools-EWN81iOl.mjs (100%) rename frontend_admin/.output/server/node_modules/{vue-router => .nitro/vue-router@4.6.4}/dist/vue-router.mjs (100%) create mode 120000 frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/node_modules/@vue/devtools-api rename frontend_admin/.output/server/node_modules/{vue-router => .nitro/vue-router@4.6.4}/package.json (100%) rename frontend_admin/.output/server/node_modules/{vue-router => .nitro/vue-router@4.6.4}/vue-router.node.mjs (100%) create mode 100644 frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/devtools-DCoWQoU_.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/useApi-s_02lHjl.js create mode 100644 frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/vue-router.js create mode 120000 frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/node_modules/@vue/devtools-api create mode 100644 frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/package.json create mode 100644 frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/vue-router.node.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/core-base/dist/core-base.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/core-base/package.json create mode 100644 frontend_admin/.output/server/node_modules/@intlify/core/dist/core.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/core/package.json create mode 100644 frontend_admin/.output/server/node_modules/@intlify/h3/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/h3/package.json create mode 100644 frontend_admin/.output/server/node_modules/@intlify/message-compiler/dist/message-compiler.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/message-compiler/package.json create mode 100644 frontend_admin/.output/server/node_modules/@intlify/shared/dist/shared.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/shared/package.json create mode 100644 frontend_admin/.output/server/node_modules/@intlify/utils/dist/h3.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs create mode 100644 frontend_admin/.output/server/node_modules/@intlify/utils/package.json create mode 120000 frontend_admin/.output/server/node_modules/@vue/devtools-kit delete mode 120000 frontend_admin/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable create mode 120000 frontend_admin/.output/server/node_modules/@vue/devtools-shared create mode 100644 frontend_admin/.output/server/node_modules/birpc/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/cookie-es/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/cookie-es/package.json create mode 100644 frontend_admin/.output/server/node_modules/defu/dist/defu.mjs create mode 100644 frontend_admin/.output/server/node_modules/defu/package.json create mode 100644 frontend_admin/.output/server/node_modules/destr/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/destr/package.json create mode 100644 frontend_admin/.output/server/node_modules/h3/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/h3/package.json create mode 100644 frontend_admin/.output/server/node_modules/iron-webcrypto/dist/index.js create mode 100644 frontend_admin/.output/server/node_modules/iron-webcrypto/package.json create mode 100644 frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs create mode 100644 frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs create mode 100644 frontend_admin/.output/server/node_modules/node-mock-http/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/node-mock-http/package.json create mode 120000 frontend_admin/.output/server/node_modules/perfect-debounce create mode 100644 frontend_admin/.output/server/node_modules/radix3/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/radix3/package.json create mode 100644 frontend_admin/.output/server/node_modules/uncrypto/dist/crypto.node.mjs create mode 100644 frontend_admin/.output/server/node_modules/uncrypto/package.json create mode 100644 frontend_admin/.output/server/node_modules/vue-devtools-stub/dist/index.mjs create mode 100644 frontend_admin/.output/server/node_modules/vue-devtools-stub/package.json create mode 120000 frontend_admin/.output/server/node_modules/vue-router delete mode 120000 frontend_admin/.output/server/node_modules/vue-router/node_modules/@vue/devtools-api create mode 100644 frontend_admin/composables/useFormatter.ts create mode 100644 frontend_admin/i18n/locales/en.json create mode 100644 frontend_admin/i18n/locales/hu.json create mode 100644 frontend_admin/layouts/blank.vue create mode 100644 frontend_admin/locales/en.json create mode 100644 frontend_admin/locales/hu.json create mode 100644 frontend_admin/pages/garages/index.vue create mode 100644 frontend_admin/pages/packages/index.vue create mode 100644 frontend_admin/public/logo.svg create mode 100644 frontend_admin/stores/region.ts create mode 100644 plans/logic_spec_p0_hybrid_vendor_refactor.md create mode 100644 tests/active/test_deep_merge_fix.py create mode 100644 tests/active/test_subscription_feature_flags.py diff --git a/.roo/history.md b/.roo/history.md index 27aeaad..e3c5949 100644 --- a/.roo/history.md +++ b/.roo/history.md @@ -1,428 +1,240 @@ -# Service Finder Fejlesztési Történet + 1 | # Service Finder Fejlesztési Történet + 2 | + 3 | ## 2026-06-21 - P0 Deep Audit: Database Consistency & Zombie API Hunt + 4 | + 5 | ### 🎯 Cél + 6 | Teljes körű adatbázis konzisztencia ellenőrzés és zombie API végpontok felderítése a `vehicle`, `finance`, `fleet_finance` sémákban, mielőtt a frontend fejlesztés elkezdődik. + 7 | + 8 | ### 🔧 Eredmények + 9 | +10 | **1. ADATBÁZIS TISZTASÁG:** ✅ PASS +11 | - API modul import: ✅ Sikeres (2 route: GET, POST) +12 | - Sync Engine: ✅ 1210 OK, 0 Fixed, 0 Extra +13 | - E2E test: ⚠️ Pre-existing conftest hiba (verification token timeout - nem kapcsolódó) +14 | +15 | ## 2026-06-23 - Cost Entry Wizard (CostEntryWizard.vue) - 4-lépéses Számla Űrlap +16 | +17 | ### 🎯 Cél +18 | 4-lépéses stepper wizard építése részletes számla/invoice költségek rögzítésére a CostsActionsCard-ból indíthatóan. +19 | +20 | ### 🔧 Módosított fájlok +21 | +22 | ## 2026-06-24 - P0 Fix & Enhance: Permissions Page Data Flow, Editing & i18n +23 | +24 | ### 🎯 Cél +25 | Permissions oldal adatáramlás javítása, szerkesztés/mentés funkció bevezetése, és @nuxtjs/i18n telepítése/konfigurálása. +26 | +27 | ### 🔧 Módosított fájlok +28 | - `frontend_admin/pages/permissions/index.vue` - Teljes átírás: client-side data fetch onMounted-ben, szerkeszthető toggle-ok (modifiedPermissions Map), PATCH mentés, toast notification, $t() hívások +29 | - `frontend_admin/nuxt.config.ts` - @nuxtjs/i18n modul hozzáadása, locales konfiguráció (hu/en) +30 | - `frontend_admin/i18n/locales/hu.json` - Magyar fordítási fájl (permissions oldal összes szövege) +31 | - `frontend_admin/i18n/locales/en.json` - Angol fordítási fájl +32 | +33 | ### ✅ Eredmények +34 | - Build: ✅ Sikeres (hu-DbjfOUfH.mjs, en-DnJ23n0t.mjs locale chunk-ok) +35 | - i18n modul: @nuxtjs/i18n v10.4.0 telepítve, no_prefix stratégiával +36 | - Szerkesztés: modified/original Map-ek, handleToggle, savePermissions (PATCH /admin/permissions/override/{org_id}) +37 | - Adatmentés: success/error toast notification auto-clear-el +38 | +39 | ## 2026-06-24 - P0 Execution: Wire Packages UI to Real Database +40 | +41 | ### 🎯 Cél +42 | A frontend_admin Packages oldal (packages/index.vue) mock adatok helyett valós API adatbázisból töltse a SubscriptionTier csomagokat. "Új Csomag Létrehozása" gomb és modal hozzáadása. +43 | +44 | ### 🔧 Módosított fájlok +45 | - `backend/app/schemas/subscription.py` - `tier_level` és `feature_capabilities` mezők hozzáadva a SubscriptionTierResponse, SubscriptionTierCreate, SubscriptionTierUpdate modellekhez +46 | - `backend/app/api/v1/endpoints/admin_packages.py` - create/update végpontok frissítve az új mezők kezelésére +47 | - `frontend_admin/pages/packages/index.vue` - Teljes átírás: mock adatok eltávolítva, fetchPackages() API hívás, create/edit/delete modal-ok, loading/error/empty állapotok, i18n támogatás +48 | - `frontend_admin/locales/hu.json` - packages i18n kulcsok (magyar) +49 | - `frontend_admin/locales/en.json` - packages i18n kulcsok (angol) +50 | +51 | ### ✅ Eredmények +52 | - Backend API: GET /api/v1/admin/packages → 200 OK, 10 tier (tier_level, feature_capabilities mezőkkel) +53 | - Frontend: mock adatok eltávolítva, valós API hívás onMounted-ben, loading/error/empty állapotok +54 | - CRUD: Létrehozás (POST), Szerkesztés (PATCH), Törlés (DELETE soft-delete) teljes körűen implementálva +55 | - i18n: Minden UI szöveg magyar és angol nyelven elérhető +56 | +57 | ## 2026-06-24 - P0 CRITICAL FIX: Deep Merge JSONB (Multi-zone Pricing Data Loss) +58 | +59 | ### 🎯 Cél +60 | Javítani a `PATCH /api/v1/admin/packages/{tier_id}` végpontot, hogy a `rules` JSONB oszlop frissítésekor a meglévő nested kulcsok (pl. `pricing_zones.HU`, `pricing_zones.US`, `lifecycle.available_until`) ne vesszenek el, ha a frontend csak egy részhalmazt küld (pl. csak `pricing_zones.DEFAULT`). +61 | +62 | ### 🔧 Módosított fájlok +63 | - `backend/app/api/v1/endpoints/admin_packages.py` — `deep_merge_dict()` függvény hozzáadva, `update_package` endpoint átírva deep merge szemantikára +64 | - `tests/active/test_deep_merge_fix.py` — Verifikációs teszt (unit + API PATCH) +65 | +66 | ### ✅ Eredmények +67 | - **Unit test:** ✅ PASS — `deep_merge_dict()` helyesen működik: nested dict-ek rekurzív merge, None értékek megőrzése, üres override megőrzése +68 | - **API test:** ✅ PASS — `private_pro_v1` (id=14) csomagon: HU, US, DEFAULT zónák mind megmaradtak a PATCH után, DEFAULT ára frissült, lifecycle.available_until megőrződött +69 | - **Sync Engine:** ✅ 1220 OK, 0 Fixed — adatbázis séma konzisztens +70 | - **Root cause:** A frontend `packages/index.vue` `rulesPayload` függvénye csak `pricing_zones.DEFAULT`-ot állítja elő, a backend pedig wholesale replace-t végzett → multi-zone adatvesztés -## 2026-06-21 - P0 Deep Audit: Database Consistency & Zombie API Hunt +## 2026-06-24 - P0 System Architecture: Global Region Config & Smart Pricing ### 🎯 Cél -Teljes körű adatbázis konzisztencia ellenőrzés és zombie API végpontok felderítése a `vehicle`, `finance`, `fleet_finance` sémákban, mielőtt a frontend fejlesztés elkezdődik. - -### 🔧 Eredmények - -**1. ADATBÁZIS TISZTASÁG:** ✅ PASS -- API modul import: ✅ Sikeres (2 route: GET, POST) -- Sync Engine: ✅ 1210 OK, 0 Fixed, 0 Extra -- E2E test: ⚠️ Pre-existing conftest hiba (verification token timeout - nem kapcsolódó) - -## 2026-06-23 - Cost Entry Wizard (CostEntryWizard.vue) - 4-lépéses Számla Űrlap - -### 🎯 Cél -4-lépéses stepper wizard építése részletes számla/invoice költségek rögzítésére a CostsActionsCard-ból indíthatóan. +Globális régió konfigurációs rendszer (RegionConfig modell + API) megvalósítása, frontend region store és formatter composable létrehozása, Smart Pricing Calculator beépítése a package edit modalba, valamint nyelvi preferencia perzisztálása a layoutban. ### 🔧 Módosított fájlok -- **`frontend/src/components/cost/CostEntryWizard.vue`** (ÚJ) - 4-step stepper wizard komponens -- **`frontend/src/components/dashboard/CostsActionsCard.vue`** - "🧾 Részletes Számla" gomb hozzáadva, CostEntryWizard import és modal state -- **`frontend/src/i18n/en.ts`** - costWizard i18n szekció hozzáadva -- **`frontend/src/i18n/hu.ts`** - costWizard i18n szekció hozzáadva +- `backend/app/models/core_logic.py` — `RegionConfig` osztály hozzáadva (`system.region_config` séma, mezők: country_code, name, currency, default_vat_rate, locale_code, timezone, is_active) +- `backend/app/models/__init__.py` — `RegionConfig` import hozzáadva +- `backend/app/api/v1/endpoints/regions.py` — **LÉTREHOZVA**: `GET /system/regions` publikus végpont +- `backend/app/api/v1/api.py` — regions router regisztrálva `/system` prefix-szel +- `backend/scripts/seed_regions.py` — **LÉTREHOZVA**: 3 régió seedelése (HU, GB, DEFAULT) +- `backend/app/api/v1/endpoints/auth.py` — `PATCH /auth/me/language` végpont hozzáadva nyelvi preferencia perzisztáláshoz +- `frontend_admin/stores/region.ts` — **LÉTREHOZVA**: Pinia store régiók lekérésére, aktív régió getterekkel (currency, locale, VAT, timezone) +- `frontend_admin/composables/useFormatter.ts` — **LÉTREHOZVA**: Lokalizált formatter (number, currency, date, datetime, percent, VAT számítás) +- `frontend_admin/pages/packages/index.vue` — Tabbed modal refaktor (Basic Info, Pricing, Features), per-régió árazási grid, Smart Pricing Calculator net/VAT/gross kijelzéssel +- `frontend_admin/layouts/default.vue` — Nyelvváltó perzisztálás PATCH hívással, region store inicializálás onMounted-ban -### 🧩 CostEntryWizard lépések -1. **Alapadatok**: Jármű (read-only), kategória cascade (fő+alkategória), dátum -2. **Pénzügyek**: Nettó összeg, ÁFA kulcs (0/5/10/20/27%), Bruttó összeg (GROSS-FIRST), Pénznem -3. **Admin & Szállító**: Dinamikus vendor autocomplete (GET /organizations?org_type=SERVICE_PROVIDER) szabad szöveges fallbackkel, számlaszám, számla dátuma, fizetési határidő -4. **Fájlok**: Drag & drop fájl feltöltő UI (csak UI szintű file picker) +### ✅ Eredmények +- **Sync Engine:** ✅ 1220 OK, 1 Fixed, 0 Shadow — `system.region_config` tábla létrejött +- **GET /api/v1/system/regions:** ✅ 200 — 3 régió (DEFAULT/EUR/0%, GB/GBP/20%, HU/HUF/27%) +- **PATCH /auth/me/language:** ✅ 200 — `preferred_language` perzisztálódik és visszaolvasható +- **Frontend build (admin):** ✅ Sikeres — `region-*.mjs` chunk generálódott +- **Adatbázis:** `country_code` VARCHAR(5)→VARCHAR(10) manuális ALTER a seed előtt -### 🔌 API Integráció -- POST `/expenses/` a `costStore.addExpense()`-on keresztül AssetCostBase payload-dal -- Payload tartalmazza: amount_gross (GROSS-FIRST), category_id, currency, date, data JSONB (net_amount, vat_rate, invoice_number, invoice_date, payment_deadline, vendor_id, vendor_name, file_names) - -### ✅ Verifikáció -- Vite build: ✅ Sikeres (253 modules, 6.94s) -- Gitea kártya: #277 - -## 2026-06-23 - Dashboard Cost Card Navigation Fix & Dedicated Costs Page +## 2026-06-25 - P0 CRITICAL SECURITY & UI FIX - RBAC Middleware & Mock Data Removal ### 🎯 Cél -A dashboard költség kártya üres területére kattintva és a "További költségek" gombbal is a költségek oldalra navigálás. Dedikált CostsView oldal létrehozása vissza gombbal és garázs háttérrel. +Szigorú frontend Route-Based Access Control (RBAC) bevezetése az admin middleware-ben, és a hardcoded mock email (`admin@servicefinder.hu`) eltávolítása a Topbar-ból. ### 🔧 Módosított fájlok -- **`frontend/src/views/costs/CostsView.vue`** (ÚJ) - Teljes költség oldal garázs háttérrel, vissza gombbal, költség táblázattal és paginációval -- **`frontend/src/router/index.ts`** - `/dashboard/costs` route hozzáadva a CostsView-hoz -- **`frontend/src/components/dashboard/CostsActionsCard.vue`** - Header bar kattinthatóvá téve + "További költségek" gomb átirányítva a `/dashboard/costs` oldalra -- **`frontend/src/layouts/PrivateLayout.vue`** - Hamburger menü "Költségek" navigáció `/dashboard/costs`-ra módosítva -- **`frontend/src/i18n/hu.ts`** - `costs.backToDashboard` kulcs hozzáadva -- **`frontend/src/i18n/en.ts`** - `costs.backToDashboard` kulcs hozzáadva +- `frontend_admin/middleware/auth.ts` — Teljes átírás: token cookie ellenőrzés után `authStore.fetchUser()` hívás, majd `authStore.user.role` ellenőrzés az allowed staff role-ok listája (`SUPERADMIN`, `ADMIN`, `MODERATOR`, `SALES_REP`, `SERVICE_MGR`) alapján. Ha a role nem staff szintű → `authStore.logout()` + `navigateTo('/login')`. +- `frontend_admin/layouts/default.vue` — `userEmail` computed fallback `'admin@servicefinder.hu'` → `'Ismeretlen Felhasználó'`, `userInitials` fallback `'AD'` → `'??'`, dropdown role label `'Administrator'` → dinamikus `authStore.userRole` alapú. -### ✅ Verifikáció -- Vite build: ✅ Sikeres (CostsView-DaFsqPnD.js chunk generálva) +### ✅ Eredmények +- **RBAC Middleware:** ✅ Standard USER role esetén a middleware kilépteti a felhasználót és a `/login` oldalra irányítja +- **Mock adatok eltávolítva:** ✅ `admin@servicefinder.hu` sehol sem szerepel hardcoded értékként +- **Auth Store:** ✅ Tiszta, nincs benne mock/default user adat +- **Minden admin oldal** (`index.vue`, `garages/index.vue`, `packages/index.vue`, `permissions/index.vue`) használja a `definePageMeta({ middleware: 'auth' })` direktívát -## 2026-06-23 - Hotfix: Backend Expenses GET / endpoint & AssetCost.organization FK fix +## 2026-06-25 - P0 Data Architecture: Populate Full EU Region Registry ### 🎯 Cél -Két kritikus backend hiba javítása: -1. A `GET /api/v1/expenses/` hívás 404-et adott (nem létezett `GET /` végpont), amit a reverse proxy 307-es HTTPS→HTTP átirányítással válaszolt, ami Mixed Content blokkolást okozott a böngészőben. -2. A backend indításkor `InvalidRequestError`-ral összeomlott az `AssetCost.organization` relationship hibás konfigurációja miatt (két FK ugyanarra a táblára, de a `foreign_keys` paraméter hiányzott). +A `system.region_config` tábla feltöltése mind a 27 EU tagállammal, plusz UK, Svájc és DEFAULT/Eurozone fallback rekorddal. Korábban csak 3 dummy/seed régió (HU, GB, DEFAULT) volt az adatbázisban. ### 🔧 Módosított fájlok -- **`backend/app/api/v1/endpoints/expenses.py`** - `GET /` végpont hozzáadva: list_all_expenses() - szervezet összes költségének listázása paginációval, Asset, CostCategory, Organization JOIN-okkal -- **`backend/app/models/fleet_finance/models.py`** - `AssetCost.organization` relationship javítva: `foreign_keys=[organization_id]` paraméter hozzáadva a kétértelmű FK kapcsolat feloldásához +- `backend/scripts/seed_regions.py` — Teljes átírás: 30 régiós adatbázis (27 EU + GB + CH + DEFAULT), UPSERT logika (meglévő rekordok frissítése, új rekordok beszúrása), pontos VAT kulcsok, devizanemek, locale kódok és időzónák minden országra. -### 🔧 Eredmények -- Backend konténer: ✅ Tisztán indul, nincs SQLAlchemy hiba -- Login: ✅ Működik (nem omlik össze) -- `GET /api/v1/expenses/`: ✅ Végpont elérhető, paginált költség listát ad vissza +### ✅ Eredmények +- **Seed futtatás:** ✅ 27 új régió létrehozva, 3 meglévő frissítve (HU, GB, DEFAULT) +- **API verifikáció:** ✅ `GET /api/v1/system/regions` → 30 régió visszaadva, minden adat helyes +- **UPSERT idempotencia:** ✅ A script többször is futtatható, frissíti a meglévő rekordokat ahelyett, hogy duplikációt okozna -## 2026-06-23 - Hotfix #2: Expenses API 307 redirect / Mixed Content - trailing slash fix +## 2026-06-25 - Garages CRM Wiring & Custom B2B Deals UI ### 🎯 Cél -A `GET /api/v1/expenses` hívás 307-es HTTPS→HTTP átirányítást kapott, mert a backend route `@router.get("/")` (perjellel) volt definiálva, de a frontend `/expenses` (perjel nélkül) hívta. A Starlette automatikus 307 redirect-je a külső openresty proxy miatt `http://` címmé alakult → Mixed Content blokk. +Garázsok (Organizations) CRM felületének teljes körű implementálása: backend API végpontok, frontend adattábla mock adatok nélkül, előfizetéskezelő modál egyedi lejárati dátumokkal (B2B deal-ekhez). -### 🔧 Módosított fájlok -- **`backend/app/api/v1/endpoints/expenses.py`** - `@router.get("/")` → `@router.get("")` (perjel eltávolítva a route-ból) +### 🔧 Módosított/Létrehozott fájlok -### 🔧 Eredmények -- Backend konténer: ✅ Tisztán indul -- `GET /api/v1/expenses` most direkt egyezik a route-tal → nincs 307 redirect → nincs Mixed Content +**1. `backend/app/api/v1/endpoints/admin_organizations.py`** (LÉTREHOZVA) +- `GET /admin/organizations` — Garázsok listázása előfizetési adatokkal, taglétszámmal, kereséssel, szűréssel, lapozással +- `PATCH /admin/organizations/{org_id}/subscription` — Előfizetés módosítása tier_id és opcionális expires_at megadásával +- Tömeges subscription és member_count lekérdezés (N+1 elkerülése) -## 2026-06-23 - Hotfix #3: Expenses API 500 Internal Server Error - AssetCost.cost_date → AssetCost.date +**2. `backend/app/api/v1/api.py`** (MÓDOSÍTVA) +- `admin_organizations` router regisztrációja + +**3. `frontend_admin/pages/garages/index.vue`** (ÁTÍRVA) +- Mock adatok eltávolítva, valós API hívások (`$fetch`) +- Statisztikai kártyák (összes, aktív, premium, enterprise) +- Keresés és szűrés (tier alapján) +- Adattábla: ID, cégnév, státusz, csomag, lejárat, műveletek +- Előfizetéskezelő modál: tier dropdown + egyéni datetime-local input +- Mentés utáni automatikus refresh + +**4. `frontend_admin/i18n/locales/hu.json`** (MÓDOSÍTVA) +- Garázs CRM-hez kapcsolódó összes magyar fordítás hozzáadva + +**5. `frontend_admin/i18n/locales/en.json`** (MÓDOSÍTVA) +- Garázs CRM-hez kapcsolódó összes angol fordítás hozzáadva + +### ✅ Teszt Eredmények +- Sync Engine: ✅ 1230 OK, 0 Fixed, 0 Extra (tökéletes szinkron) +- `GET /admin/organizations?limit=5`: ✅ 200 — 31 garázs, 5 visszaadva +- `GET /admin/packages?limit=5`: ✅ 200 — 5 tier elérhető +- `PATCH /admin/organizations/2406/subscription`: ✅ 200 — Celebro Kft. → corp_premium_v1, lejárat: 2027-06-25 +- Verifikáció: ✅ Tier és lejárati dátum helyesen perzisztálva + +## 2026-06-25 - P0 FIX & ENHANCE: Auth Token Missing & Duplicate Package Button ### 🎯 Cél -A `GET /api/v1/expenses` végpont 500-as hibát dobott: `AttributeError: type object 'AssetCost' has no attribute 'cost_date'`. Az `AssetCost` modellben a mező neve `date` (110. sor), de a kód `cost_date`-t használt. - -### 🔧 Módosított fájlok -- **`backend/app/api/v1/endpoints/expenses.py`** - 2 helyen javítva: - - 157. sor: `AssetCost.cost_date` → `AssetCost.date` - - 193. sor: `cost.cost_date.isoformat()` → `cost.date.isoformat()` - -### 🔧 Eredmények -- Backend konténer: ✅ Tisztán indul -- `GET /api/v1/expenses`: ✅ Várhatóan 200 OK (nem 500) - ---- - -## 2026-06-23: Dashboard üres AdPlacementWidget elrejtése - -### 🎯 Cél -A felhasználó kérésére: a dashboardon a "PRO" feliratú `SubscriptionStatusWidget` mellett egy üres csempe volt látható (`AdPlacementWidget`), mert nincs hirdetés beállítva a rendszerben. A kérés az volt, hogy rejtsük el ezt az üres csempét. - -### 🔧 Módosított fájlok -- **`frontend/src/components/dashboard/AdPlacementWidget.vue`** - `defineEmits` hozzáadva: `ads-loaded` esemény, amely jelzi a szülőnek, hogy van-e hirdetés (`hasAds: boolean`). Az esemény a `fetchAds` siker és hiba ágában is meghívásra kerül. -- **`frontend/src/views/DashboardView.vue`** - `adWidgetHasAds` ref hozzáadva (alapértelmezett: `false`). A hirdetési csempe wrapper `
`-je `v-if="adWidgetHasAds"` feltételt kapott, így csak akkor jelenik meg, ha az API ténylegesen adott vissza hirdetéseket. Az `@ads-loaded` esemény frissíti a ref értékét. - -### ✅ Verifikáció -- Frontend build: ✅ Sikeres (Vite build, 0 hiba) - -## 2026-06-23 - P0 Fix: cost_date vs date mezőnév mismatch + CostsView.vue upgrade - -### 🎯 Cél -Két produkciós hiba javítása a cost rögzítésben: -1. **P0 - 500 Internal Server Error** POST `/api/v1/expenses/` végponton: négyrétegű mezőnév-eltérés (`cost_date` vs `date`) a frontend, Pydantic séma, endpoint és SQLAlchemy model között. -2. **P1 - `/dashboard/costs` oldal** nem mutatott semmilyen információt és nem volt költség hozzáadási lehetőség. +1. Garázsok oldal "Not authenticated" hiba javítása — hiányzó Authorization header pótlása +2. "Másolás" (Duplicate) gomb implementálása a csomagok oldalon ### 🔧 Módosított fájlok -**Fix 1a - Backend endpoint** (`backend/app/api/v1/endpoints/expenses.py:464`): -- `cost_date=expense.cost_date` → `date=expense.cost_date` (SQLAlchemy model mezőneve `date`) +**1. `frontend_admin/pages/garages/index.vue`** (MÓDOSÍTVA) +- `getAuthHeaders()` helper hozzáadva — `access_token` cookie-ból olvassa a tokent +- `fetchGarages()` és `fetchTiers()` hívásokhoz `headers: getAuthHeaders()` hozzáadva +- `saveSubscription()` PATCH híváshoz `Authorization` header hozzáadva -**Fix 1b - Backend Pydantic schema** (`backend/app/schemas/asset_cost.py:37`): -- `validation_alias="date"` hozzáadva a `cost_date` mezőhöz, hogy mind a `date`, mind a `cost_date` kulcsot elfogadja +**2. `frontend_admin/pages/packages/index.vue`** (MÓDOSÍTVA) +- "Másolás" (Duplicate) gomb hozzáadva a kártya akcióihoz (Szerkesztés mellett, zöld színnel) +- `duplicatePackage(pkg)` függvény implementálva: + - Megnyitja a Create Modalt a kiválasztott csomag adataival előtöltve + - `id` mező törölve (új rekordként mentődik) + - Névhez `_copy` utótag fűzve, display_name-hez ` (másolat)` fűzve + - `is_default_fallback` false-ra állítva (nem duplikálható a visszaesési státusz) + - Árazási zónák, allowance-ok, feature_capabilities teljes körű másolása -**Fix 2 - Frontend CostsView.vue** (`frontend/src/views/costs/CostsView.vue`): -- Vezérlősáv hozzáadva járműszűrő dropdown-nal -- "➕ Új Költség" gomb hozzáadva -- CostEntryWizard integráció (modal formában) -- Mezőnevek javítva: `cost_type` → `category_name`, `amount` → `amount_gross`, `vehicle_label` → `vehicle_name` -- `useVehicleStore` importálva a járművek listájához +**3. `frontend_admin/i18n/locales/en.json`** (MÓDOSÍTVA) +- `packages.duplicate: "Duplicate"` kulcs hozzáadva -### ✅ Verifikáció -- Python szintaxis: ✅ asset_cost.py OK, expenses.py OK -- Backend indítás: ✅ Uvicorn fut, nincs hiba -- Frontend build: ✅ Sikeres (Vite build 6.77s, 0 hiba) -- Gitea kártyák: #278 (P0) és #279 (P1) lezárva +**4. `frontend_admin/i18n/locales/hu.json`** (MÓDOSÍTVA) +- `packages.duplicate: "Másolás"` kulcs hozzáadva -## 2026-06-23 - #280 Vizsgálat: Miért nem jelennek meg költségek? +### ✅ Domain Audit +- `backend/app/api/v1/endpoints/admin_organizations.py` végpont kizárólag core táblákat érint: + - `Organization`, `OrganizationMember`, `OrganizationSubscription`, `SubscriptionTier`, `User` + - Nincs scraped provider tábla lekérdezés — domain határok helyesek + +## 2026-06-25: P0 Audit - Domain Conflation in Expense/Cost Service Provider Flow + +**Gitea Card:** #291 +**Scope:** Backend +**Type:** Bug / Domain Conflation + +### Findings +Identified **6 code locations** causing domain conflation when `quick_add_provider()` creates `Organization()` (→ `fleet.organizations`) instead of `ServiceProvider()` (→ `marketplace.service_providers`): + +1. **PRIMARY (provider_service.py:507-550):** `quick_add_provider()` creates `Organization()` instead of `ServiceProvider()` +2. **SECONDARY (provider_service.py:561-570):** `ServiceProfile.organization_id` FK to incorrectly created fleet.organizations +3. **TERTIARY (provider_service.py:618-630):** Branch creation in fleet.branches for lightweight vendor +4. **QUATERNARY (provider_service.py:639-646):** OrganizationMember addition for creating user +5. **SYSTEMIC (fleet_finance/models.py:104-110):** `AssetCost.vendor_organization_id` FK references ONLY `fleet.organizations.id` +6. **STRUCTURAL (provider_service.py):** `search_providers()` UNION masks domain conflation + +### Outcome +- Report: `/opt/docker/docs/p0_domain_conflation_cost_provider_audit.md` (in roo-helper container) +- **No code changes made.** Awaiting Architect decision on refactoring approach. +- Refactoring Options proposed: A (flag in fleet), B (split to marketplace), C (hybrid - recommended) + +## 2026-06-25 - P0 Hybrid Vendor Refactor & Categorization (Option C) ### 🎯 Cél -Annak kivizsgálása, hogy az admin@profibot.hu teszt felhasználó miért nem lát költségeket. - -### 🔍 Vizsgálat -- `fleet_finance.asset_costs` táblában összesen **1 rekord** van (org_id=43, asset=PTB162 Mazda 2, 18118 HUF, "Finanszírozás") -- admin@profibot.hu (user_id=2) tagja: org 1 (Test Company), 57, 58, 62, 67 -- admin **NEM tagja** org 43-nak ("Accipe garage"), ahova az egyetlen költség tartozik -- admin szervezeteiben (1, 57, 58, 62, 67) összesen **0 db költség** van - -### ✅ Következtetés -**NINCS backend/frontend hiba.** A probléma egyszerű **adathiány**: -1. Nincs rögzítve költség admin egyetlen járművéhez sem -2. Az egyetlen DB-ben lévő költség egy másik szervezethez tartozik -3. A #278 és #279 javítások után most már lehetővé vált a költségrögzítés -- Dokumentáció: `/opt/docker/docs/cost_visibility_investigation_280.md` - -## 2026-06-23 - #281 Hotfix: Hiányos #278 javítás - expenses.py:533 new_cost.cost_date → new_cost.date - -### 🎯 Cél -A #278-as javítás hiányos volt: a konstruktor paramétert kijavítottuk (expenses.py:464: cost_date= → date=), de a response dict-ben (expenses.py:533) továbbra is `new_cost.cost_date`-et használtunk az SQLAlchemy AssetCost modellen, aminek a mezőneve `date`. Ez `AttributeError: 'AssetCost' object has no attribute 'cost_date'` hibát okozott minden POST /api/v1/expenses/ híváskor. - -### 🔧 Módosított fájlok -- **`backend/app/api/v1/endpoints/expenses.py:533`** - `new_cost.cost_date.isoformat()` → `new_cost.date.isoformat()` - -### ✅ Verifikáció -- Python szintaxis: ✅ OK -- Backend újraindítás: ✅ OK (Application startup complete) -- POST /api/v1/expenses/ teszt: ✅ **201 Created** - sikeres költség rögzítés a QWE432 járműre -- Response tartalmazza: `"date":"2026-06-23T13:07:34.785065+00:00"` (helyes) -- Gitea kártya: #281 lezárva - -## 2026-06-23 - P0 Fix: User 28 Data Anomaly Resolution - -### 🎯 Cél -User 28 (tester_pro@profibot.hu) adat-anomália javítása ORM szkript segítségével. - -### 🔧 Végrehajtott műveletek - -**A) Org 1 javítása:** `fleet.organizations` ID=1 org_type átállítva `fleet_owner` → `individual` - -**B) Tag hozzáadása:** `fleet.organization_members` rekord létrehozva: org=1, user=28, role=OWNER, status=active. Org 1 owner_id=28 beállítva. - -**C) Scope törlése:** User 28 `scope_level` visszaállítva `individual`-ra (NOT NULL constraint miatt), `scope_id` None-ra. - -**D) Fantom garázs törlése:** Org 68 ("Tester Garázsa") és hozzá tartozó OrganizationMember rekordok törlése. - -### ✅ Verifikáció -- Org 1: org_type=individual, owner_id=28 -- Org 1 Member: role=OWNER, status=active, is_verified=True -- User 28: scope_level=individual, scope_id=None -- Org 68: nem létezik (deleted) -- Ideiglenes szkript törölve: `backend/scripts/fix_user_28.py` - -## 2026-06-23 - P0 Cost Pipeline Visibility Audit (#282) - -### 🔍 Felfedezés -A `/dashboard/costs` oldal üres User 28 számára, annak ellenére, hogy Org 1-ben 5 db asset_cost rekord van (BMW123, QWE432). - -### 🐛 Gyökér Ok -A `GET /expenses/` endpoint (`backend/app/api/v1/endpoints/expenses.py:130-139`) a user első aktív tagságát használja org feloldáshoz (`.limit(1)` ORDER BY nélkül). User 28-nak 3 tagsága van: org 63 (ADMIN, nincs költség), org 21 (OWNER), org 1 (OWNER, 5 költség). Az első tagság org 63-ra mutat, ami üres. - -### 📄 Dokumentáció -`docs/cost_pipeline_audit.md` - Teljes pipeline audit a frontendtől a DB-ig. - -## 2026-06-23 - P0 Architecture Audit Fixes: Vendor Leak & Expense Priority - -### 🎯 Cél -Az Architect által auditált P0 hibák kijavítása: vendor org szivárgás megszüntetése, expense organization_id prioritás javítása, frontend payload kiegészítése vendor_organization_id-val. - -### 🔧 Módosított fájlok -- **`backend/app/services/provider_service.py`** (632-651. sor) - `quick_add_provider`: Eltávolítva az OrganizationMember létrehozás. A létrehozó user NEM lesz tagja a beszállító szervezetének. Owner_id=None marad. -- **`backend/app/api/v1/endpoints/expenses.py`** (398-429. sor) - `create_expense`: Átírva az organization_id feloldási prioritás: 1) asset.current_organization_id, 2) asset.owner_org_id, 3) user active org membership fallback. -- **`frontend/src/components/cost/CostEntryWizard.vue`** (690-714. sor) - `vendor_organization_id` és `external_vendor_name` root szintű payload mezők hozzáadva. -- **`frontend/src/stores/cost.ts`** - `AddExpensePayload` interface kiegészítve `vendor_organization_id` és `external_vendor_name` mezőkkel; `addExpense()` body-ba is átadva. - -### 🗄️ Adatbázis Cleanup -- **`backend/scripts/fix_vendor_leak.py`** (ideiglenes, futás után törölve) - - A) Törölve `fleet.organization_members` rekord (org_id=63, user_id=28) - phantom ADMIN jog megvonva - - B) Javítva `fleet_finance.asset_costs` rekord: organization_id=63 → 21, vendor_organization_id=63 beállítva - -### ✅ Verifikáció -- Backend restart: ✅ Sikeres -- Python syntax check: ✅ provider_service.py OK, expenses.py OK -- Vite build: ✅ Sikeres (255 modules, 6.97s) - -## 2026-06-23 - P0 Tenant Isolation & Vehicle Mapping Audit - -### Scope -Full-stack audit of vehicle dropdown tenant isolation failure in CostsView.vue - -### Elemzett fájlok -- `backend/app/api/v1/endpoints/assets.py` - GET /assets/vehicles (229-318) -- `frontend/src/views/costs/CostsView.vue` - Vehicle dropdown & org switch (330-565) -- `frontend/src/stores/vehicle.ts` - fetchVehicles() (141-158) -- `frontend/src/stores/auth.ts` - switchOrganization() & active_organization_id (687-717) -- `frontend/src/stores/cost.ts` - defense-in-depth org injection (71) - -### Adatbázis: tester_pro (User ID: 28) -- 2 organization: Test Company (ID:1, 19 vehicles) + Private_28 (ID:21, 6 vehicles) = 25 total -- Schema: identity.users, fleet.organization_members, fleet.organizations, vehicle.assets - -### Root Cause -Frontend cache staleness: vehicles load once in onMounted(), never refresh on org switch. The watch on active_organization_id only re-fetches costs, not vehicles. - -### Verdict -Backend filtering is correct (JWT scope_id). Database schema is correct. Fix requires adding `vehicleStore.fetchVehicles()` to the org switch watch in CostsView.vue:549. - -### Report -`docs/p0_tenant_isolation_vehicle_mapping_audit_report.md` - -## 2026-06-23 - P0 Tenant Isolation Fix: CostsView.vue org switch watcher - -### 🎯 Cél -Frontend tenant isolation fix: garázsváltáskor a CostsView.vue watch blokkja most már reseteli a jármű szűrőt (`selectedVehicleFilter.value = null`), újratölti a járműveket az új garázs scope-jával (`vehicleStore.fetchVehicles()`), és frissíti a költségeket. - -### 🔧 Módosított fájlok -- `frontend/src/views/costs/CostsView.vue` — watch blokk kiegészítése: jármű szűrő reset + vehicleStore.fetchVehicles() hívás - -### ✅ Verifikáció -- Vite build: ✅ Sikeres (0 hiba) -- `vehicleStore.fetchVehicles()` mindig küld GET kérést (nincs belső cache guard) - -## 2026-06-23 - P0 EXECUTION: UI Switcher, Subscription Widget & Menu Alignment - -### 🎯 Cél -A P0 audit riportban azonosított hibák kijavítása: garázsválasztó szűrés, előfizetés widget jármű limit megjelenítés, mobil menü igazítás, backend admin jogosultság javítás. - -### 🔧 Változtatások - -**1. HeaderCompanySwitcher.vue — Garázsválasztó javítás** -- Eltávolítva az `org_type !== 'individual'` szűrő a `companyOrganizations` computed property-ből -- Létrehozva új `individualOrganizations` computed property a privát garázsokhoz -- Dropdown most két csoportra van osztva: "👤 Saját garázsok" (individual) és "🏢 Céges garázsok" (business) -- Privát garázsokra kattintva `switchOrganization()` hívódik, majd `/dashboard` navigáció -- Eltávolítva a keménykódolt "Private Garage" gomb — helyette dinamikus lista - -**2. SubscriptionStatusWidget.vue — Jármű limit megjelenítés** -- Hozzáadva `useVehicleStore` import és `vehicleCount` computed property -- Hozzáadva `maxVehicles` computed property (org vagy user szintről) -- Második progress bar a jármű telítettséghez (🚗 Járművek: X / Y) -- Színkódolt sáv: zöld (<75%), sárga (75-90%), piros (>90%) -- Ha nincs limit (0 vagy null): "Korlátlan" felirat -- Dátum formázás és lejárati információ hozzáadva - -**3. PrivateLayout.vue — Mobil menü igazítás** -- "Költségek" gombhoz hozzáadva `justify-end` és `text-right` osztályok -- A gomb ikonja és szövege jobbra igazítva - -**4. organizations.py — Backend admin jogosultság javítás** -- `PUT /{org_id}/subscription` végpontról eltávolítva a `RequireSystemCapability(Capability.CAN_MANAGE_SUBSCRIPTIONS)` függőség -- Helyette `_check_org_admin_access(org_id, current_user.id, db)` hívás — így org ADMIN/OWNER is kezelheti a saját előfizetését - -**5. organization.ts — TypeScript típus javítás** -- `org_type` mező kötelezővé téve (eltávolítva a `?` optional flag) - -### ✅ Verifikáció -- Vite build: ✅ Sikeres (6.75s, 0 hiba) -- Backend Python szintaxis: ✅ Sikeres -- API konténer újraindítás: ✅ Sikeres - -## 2026-06-23 - P0 HOTFIX: Cost Wizard Edit Mode Bug (POST vs PUT) - -### 🎯 Cél -A CostEntryWizard szerkesztés módban POST helyett PUT hívást indítson, hogy ne hozzon létre duplikátumot. +Implementálni az Option C (Hybrid) architektúrát: `quick_add_provider()` mostantól `ServiceProvider`-t (`marketplace.service_providers`) hoz létre `Organization` helyett (`fleet.organizations`). A valódi garázsok (safe list: 13 ID) továbbra is Organization-ként maradnak. ### 🔧 Módosított fájlok -1. **`backend/app/schemas/asset_cost.py`** - Új `AssetCostUpdate` Pydantic schema (minden mező opcionális) -2. **`backend/app/api/v1/endpoints/expenses.py`** - Új `PUT /expenses/{expense_id}` végpont a meglévő költségrekordok módosítására -3. **`frontend/src/stores/cost.ts`** - Új `updateExpense(id, payload)` action a store-ban, ami `PUT /expenses/{id}`-t hív -4. **`frontend/src/components/cost/CostEntryWizard.vue`** - `handleSubmit()` logika javítva: ha `props.editCost.id` létezik, `updateExpense()`-t hív, egyébként `addExpense()`-t +**PHASE 1 - Schema Updates:** +- `backend/app/models/fleet_finance/models.py` — `service_provider_id` hozzáadva `AssetCost`-hoz + FK javítás (relációk indentálása) +- `backend/app/models/marketplace/service.py` — `service_provider_id` hozzáadva `ServiceProfile`-hoz +- `backend/app/models/identity/social.py` — `ServiceProvider` kiterjesztve 10 új mezővel (cím, kontakt) +- `unified_db_sync.py` futtatva → 10 új oszlop létrehozva az adatbázisban -### 🗑️ Adatbázis cleanup -- Duplikált rekord törölve: `55214098-74be-4261-a101-7fd9159e10d8` (asset_id=`deb42aea-1f48-4a70-85b5-ba451d005577`, amount_gross=5500.00) +**PHASE 2 - Refactor quick_add_provider():** +- `backend/app/services/provider_service.py` — `quick_add_provider()` átírva: `ServiceProvider` + `ServiceProfile` létrehozása (NO Organization, NO Branch, NO OrganizationMember) +- `backend/app/schemas/asset_cost.py` — `service_provider_id` hozzáadva a Pydantic modellekhez +- `backend/app/schemas/provider.py` — `ProviderQuickAddIn` kiegészítve új mezőkkel +- `backend/app/api/v1/endpoints/expenses.py` — `service_provider_id` átadva `AssetCost` creation-nél -### ✅ Verifikáció -- Vite build: ✅ Sikeres (7.09s, 255 module, 0 hiba) -- Backend Python AST parse: ✅ Sikeres (expenses.py, asset_cost.py) -- `AssetCostUpdate` schema import: ✅ Sikeres (14 field) -- Duplikátum törlés: ✅ Sikeres +**PHASE 3 - Data Migration:** +- `backend/scripts/migrate_providers.py` — Létrehozva: 7 Organization → ServiceProvider migrálva -## 2026-06-23 - P0 Final Polish: Wizard UX & Menu Alignment - -### 🎯 Cél -Három kritikus UI hiba javítása: dátum hydratáció Edit módban, Fizetési Mód logika és UI átrendezés, mobil menü jobbra igazítás. - -### 🔧 Módosított fájlok - -1. **`frontend/src/components/cost/CostEntryWizard.vue`** - - **Date Hydration Fix (watch block):** `form.invoiceDate` és `form.paymentDeadline` most már mindig érvényes `YYYY-MM-DD` stringet kap (vagy `''` ha null). Két forrást is ellenőriz: `data.invoice_date` (JSONB) és `editData.invoice_date` (top-level). Használ `rawDate.split('T')[0] || rawDate.slice(0, 10) || ''` fallback láncot. - - **Payment Method UI áthelyezés:** A `
`); + }); + _push(`

${ssrInterpolate(_ctx.$t("permissions.garages"))}

${ssrInterpolate(_ctx.$t("permissions.garages_desc"))}

`); + ssrRenderList(garagePerms, (perm) => { + _push(`
${ssrInterpolate(_ctx.$t(`permissions.perms.${perm.key}`))}
`); + }); + _push(`

${ssrInterpolate(_ctx.$t("permissions.feature_flags"))}

${ssrInterpolate(_ctx.$t("permissions.feature_flags_desc", { tier: featureFlags.value.tier || "free" }))}

`); + ssrRenderList(featureEntries.value, ([key, granted]) => { + _push(`
${ssrInterpolate(formatFeatureLabel(key))}${ssrInterpolate(key)}
`); + }); + _push(`

${ssrInterpolate(_ctx.$t("permissions.rbac_title"))}

${ssrInterpolate(_ctx.$t("permissions.rbac_desc"))}

`); + ssrRenderList(permissionMatrix.value, (role) => { + _push(``); + }); + _push(``); + ssrRenderList(allActions.value, (action) => { + _push(``); + ssrRenderList(permissionMatrix.value, (role) => { + _push(``); + }); + _push(``); + }); + _push(`
${ssrInterpolate(_ctx.$t("permissions.action"))}${ssrInterpolate(role.role)}
${ssrInterpolate(action)}`); + if (hasPermission(role, action)) { + _push(``); + } else { + _push(``); + } + _push(`
`); + if (hasModifications.value) { + _push(`
`); + } else { + _push(``); + } + _push(``); + } + _push(``); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/permissions/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=index-7zBAzpaD.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map new file mode 100644 index 0000000..6d4826c --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-7zBAzpaD.js","sources":["../../../../pages/permissions/index.vue"],"sourcesContent":["\n\n\n"],"names":["$t","_ssrRenderClass","_ssrInterpolate","_ssrRenderList"],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map.json new file mode 100644 index 0000000..01f8b27 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-7zBAzpaD.js.map.json @@ -0,0 +1 @@ +{"file":"index-7zBAzpaD.js","mappings":"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","names":["$t","_ssrRenderClass","_ssrInterpolate","_ssrRenderList"],"sources":["../../../../pages/permissions/index.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js b/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js new file mode 100644 index 0000000..7a08ab1 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js @@ -0,0 +1,311 @@ +import { defineComponent, ref, computed, reactive, unref, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer"; +import { u as useRegionStore } from "./region-0mvXqaMM.js"; +import "/app/node_modules/hookable/dist/index.mjs"; +import "/app/node_modules/klona/dist/index.mjs"; +import "../server.mjs"; +import "pinia"; +import "/app/node_modules/ofetch/dist/node.mjs"; +import "#internal/nuxt/paths"; +import "/app/node_modules/unctx/dist/index.mjs"; +import "/app/node_modules/h3/dist/index.mjs"; +import "/app/node_modules/defu/dist/defu.mjs"; +import "vue-router"; +import "/app/node_modules/ufo/dist/index.mjs"; +import "/app/node_modules/cookie-es/dist/index.mjs"; +import "/app/node_modules/destr/dist/index.mjs"; +import "/app/node_modules/ohash/dist/index.mjs"; +import "/app/node_modules/@unhead/vue/dist/index.mjs"; +import "@vue/devtools-api"; +function useFormatter() { + const regionStore = useRegionStore(); + function formatNumber(value, options) { + const locale = regionStore.activeLocale || "en-EU"; + try { + return new Intl.NumberFormat(locale, options).format(value); + } catch { + return new Intl.NumberFormat("en-EU", options).format(value); + } + } + function formatCurrency(value, currency, options) { + const locale = regionStore.activeLocale || "en-EU"; + const curr = currency || regionStore.activeCurrency || "EUR"; + try { + return new Intl.NumberFormat(locale, { + style: "currency", + currency: curr, + minimumFractionDigits: 2, + maximumFractionDigits: 2, + ...options + }).format(value); + } catch { + return `${value.toFixed(2)} ${curr}`; + } + } + function formatDate(date, options) { + const locale = regionStore.activeLocale || "en-EU"; + const timezone = regionStore.activeTimezone || "Europe/Brussels"; + const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date; + try { + return new Intl.DateTimeFormat(locale, { + timezone, + year: "numeric", + month: "2-digit", + day: "2-digit", + ...options + }).format(d); + } catch { + return d.toLocaleDateString("en-GB"); + } + } + function formatDateTime(date, options) { + const locale = regionStore.activeLocale || "en-EU"; + const timezone = regionStore.activeTimezone || "Europe/Brussels"; + const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date; + try { + return new Intl.DateTimeFormat(locale, { + timezone, + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + ...options + }).format(d); + } catch { + return d.toLocaleString("en-GB"); + } + } + function formatPercent(value, options) { + const locale = regionStore.activeLocale || "en-EU"; + try { + return new Intl.NumberFormat(locale, { + style: "percent", + minimumFractionDigits: 0, + maximumFractionDigits: 1, + ...options + }).format(value / 100); + } catch { + return `${value}%`; + } + } + function calculatePriceWithVat(netPrice, vatRate) { + const rate = vatRate ?? regionStore.activeVatRate ?? 0; + const vat = netPrice * (rate / 100); + const gross = netPrice + vat; + return { net: netPrice, vat, gross, vatRate: rate }; + } + function formatPriceWithVat(netPrice, vatRate, currency) { + const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate); + const curr = currency || regionStore.activeCurrency || "EUR"; + return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}`; + } + return { + formatNumber, + formatCurrency, + formatDate, + formatDateTime, + formatPercent, + calculatePriceWithVat, + formatPriceWithVat + }; +} +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const regionStore = useRegionStore(); + const { formatCurrency } = useFormatter(); + const tabs = [ + { key: "basic", label: "📋 Basic Info" }, + { key: "pricing", label: "💰 Pricing" }, + { key: "features", label: "⚡ Features" } + ]; + const activeTab = ref("basic"); + const activeTabLabel = computed(() => { + const tab = tabs.find((t) => t.key === activeTab.value); + return tab ? tab.label : ""; + }); + const packages = ref([]); + const loading = ref(true); + const error = ref(null); + const showModal = ref(false); + const showDeleteConfirm = ref(false); + const editingPackage = ref(null); + const deletingPackage = ref(null); + const isCreating = ref(false); + const saving = ref(false); + const saveNotification = ref(null); + const featureCapabilitiesError = ref(null); + const calcNetPrice = ref(0); + const calcVatRate = ref(27); + const calcCurrency = ref("EUR"); + const defaultForm = { + name: "", + display_name: "", + type: "private", + tier_level: 0, + monthly_price: 0, + yearly_price: 0, + currency: "EUR", + max_vehicles: 1, + max_garages: 1, + monthly_free_credits: 0, + subtitle: "", + badge: "", + is_custom: false, + is_default_fallback: false, + trial_days_on_signup: 0, + feature_capabilities_json: '{\n "ai_analysis": false,\n "priority_support": false,\n "api_access": false\n}', + pricing_zones: {} + }; + const form = reactive({ ...defaultForm }); + function getZonePrice(countryCode, period) { + const zone = form.pricing_zones[countryCode]; + if (!zone) return 0; + return period === "monthly" ? zone.monthly_price : zone.yearly_price; + } + function getZoneCurrency(countryCode) { + const zone = form.pricing_zones[countryCode]; + if (!zone) return "EUR"; + return zone.currency; + } + function getDisplayName(pkg) { + return pkg.rules?.display_name || pkg.name; + } + function getDescription(pkg) { + return pkg.rules?.marketing?.subtitle || pkg.rules?.marketing?.badge || ""; + } + function getFormattedPrice(pkg) { + const zones = pkg.rules?.pricing_zones; + const pricing = pkg.rules?.pricing; + if (zones && zones["DEFAULT"]) { + const p = zones["DEFAULT"]; + const currency = p.currency === "HUF" ? "Ft" : "€"; + return `${p.monthly_price} ${currency}`; + } + if (pricing) { + const currency = pricing.currency === "HUF" ? "Ft" : "€"; + return `${pricing.monthly_price} ${currency}`; + } + return "—"; + } + function getAllowance(pkg, key) { + const allowances = pkg.rules?.allowances; + if (!allowances) return "—"; + return allowances[key] ?? "—"; + } + function getTierColorClass(level) { + if (level >= 2) return "bg-purple-500/10 text-purple-400"; + if (level >= 1) return "bg-amber-500/10 text-amber-400"; + return "bg-slate-500/10 text-slate-400"; + } + function getTierIcon(level) { + if (level >= 2) return "🏢"; + if (level >= 1) return "⭐"; + return "🔓"; + } + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(_ctx.$t("packages.title"))}

${ssrInterpolate(_ctx.$t("packages.subtitle"))}

`); + if (loading.value) { + _push(`
${ssrInterpolate(_ctx.$t("packages.loading"))}
`); + } else if (error.value) { + _push(`

${ssrInterpolate(error.value)}

`); + } else if (packages.value.length === 0) { + _push(`

${ssrInterpolate(_ctx.$t("packages.no_packages"))}

${ssrInterpolate(_ctx.$t("packages.no_packages_desc"))}

`); + } else { + _push(`
`); + ssrRenderList(packages.value, (pkg) => { + _push(`
${getTierIcon(pkg.tier_level) ?? ""}

${ssrInterpolate(getDisplayName(pkg))}

${ssrInterpolate(pkg.name)}
`); + if (pkg.tier_level >= 1) { + _push(`${ssrInterpolate(_ctx.$t("packages.popular"))}`); + } else { + _push(``); + } + if (pkg.is_default_fallback) { + _push(` 🔒 ${ssrInterpolate(_ctx.$t("packages.fallback_badge"))}`); + } else { + _push(``); + } + if (pkg.trial_days_on_signup > 0) { + _push(` 🎯 ${ssrInterpolate(_ctx.$t("packages.trial_badge"))}: ${ssrInterpolate(pkg.trial_days_on_signup)}d `); + } else { + _push(``); + } + _push(`
${ssrInterpolate(getFormattedPrice(pkg))}/ ${ssrInterpolate(_ctx.$t("packages.month"))}

${ssrInterpolate(getDescription(pkg))}

${ssrInterpolate(_ctx.$t("packages.allowances"))}

${ssrInterpolate(_ctx.$t("packages.max_vehicles"))}${ssrInterpolate(getAllowance(pkg, "max_vehicles"))}
${ssrInterpolate(_ctx.$t("packages.max_garages"))}${ssrInterpolate(getAllowance(pkg, "max_garages"))}
${ssrInterpolate(_ctx.$t("packages.monthly_credits"))}${ssrInterpolate(getAllowance(pkg, "monthly_free_credits"))}
${ssrInterpolate(_ctx.$t("packages.tier_level"))}: ${ssrInterpolate(pkg.tier_level)}
`); + }); + _push(`
`); + } + if (showModal.value) { + _push(`

${ssrInterpolate(isCreating.value ? _ctx.$t("packages.create_title") : _ctx.$t("packages.edit_title") + ": " + getDisplayName(editingPackage.value))}

`); + ssrRenderList(tabs, (tab) => { + _push(``); + }); + _push(`
`); + if (activeTab.value === "basic") { + _push(`

${ssrInterpolate(_ctx.$t("packages.form_tier_level_hint"))}

${ssrInterpolate(_ctx.$t("packages.singleton_rules"))}

${ssrInterpolate(_ctx.$t("packages.form_trial_days_hint"))}

`); + } else { + _push(``); + } + if (activeTab.value === "pricing") { + _push(`

${ssrInterpolate(_ctx.$t("packages.per_region_pricing"))}

`); + ssrRenderList(unref(regionStore).regions, (region) => { + _push(``); + }); + _push(`
Region${ssrInterpolate(_ctx.$t("packages.form_monthly_price"))}${ssrInterpolate(_ctx.$t("packages.form_yearly_price"))}${ssrInterpolate(_ctx.$t("packages.form_currency"))}
${ssrInterpolate(region.country_code)}(${ssrInterpolate(region.currency)}, ${ssrInterpolate(region.default_vat_rate)}% VAT)

🧮 ${ssrInterpolate(_ctx.$t("packages.smart_calculator"))}

${ssrInterpolate(_ctx.$t("packages.calc_net"))}

${ssrInterpolate(unref(formatCurrency)(calcNetPrice.value, calcCurrency.value))}

${ssrInterpolate(_ctx.$t("packages.calc_vat"))} (${ssrInterpolate(calcVatRate.value)}%)

${ssrInterpolate(unref(formatCurrency)(calcNetPrice.value * (calcVatRate.value / 100), calcCurrency.value))}

${ssrInterpolate(_ctx.$t("packages.calc_gross"))}

${ssrInterpolate(unref(formatCurrency)(calcNetPrice.value * (1 + calcVatRate.value / 100), calcCurrency.value))}

`); + } else { + _push(``); + } + if (activeTab.value === "features") { + _push(`

${ssrInterpolate(_ctx.$t("packages.allowances"))}

${ssrInterpolate(_ctx.$t("packages.feature_capabilities"))}

${ssrInterpolate(_ctx.$t("packages.feature_capabilities_hint"))}

`); + if (featureCapabilitiesError.value) { + _push(`

${ssrInterpolate(featureCapabilitiesError.value)}

`); + } else { + _push(``); + } + _push(`
`); + } else { + _push(``); + } + _push(`
${ssrInterpolate(activeTabLabel.value)}
`); + if (saving.value) { + _push(``); + } else { + _push(``); + } + _push(` ${ssrInterpolate(isCreating.value ? _ctx.$t("packages.create") : _ctx.$t("packages.save"))}
`); + } else { + _push(``); + } + if (showDeleteConfirm.value && deletingPackage.value) { + _push(`

${ssrInterpolate(_ctx.$t("packages.delete_title"))}

${ssrInterpolate(_ctx.$t("packages.delete_confirm", { name: getDisplayName(deletingPackage.value) }))}

${ssrInterpolate(_ctx.$t("packages.delete_btn"))}
`); + } else { + _push(``); + } + if (saveNotification.value) { + _push(`
${ssrInterpolate(saveNotification.value.message)}
`); + } else { + _push(``); + } + _push(``); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/packages/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=index-BPETUF7a.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map new file mode 100644 index 0000000..ab3cbb0 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-BPETUF7a.js","sources":["../../../../composables/useFormatter.ts","../../../../pages/packages/index.vue"],"sourcesContent":["import { useRegionStore } from '~/stores/region'\n\n/**\n * 🌍 useFormatter Composable\n *\n * Provides locale-aware formatting utilities for numbers, currencies, dates,\n * and percentages. Uses the active region configuration from the RegionStore\n * to determine the appropriate locale, currency, and timezone.\n *\n * Falls back to 'en-EU' locale and 'EUR' currency if no region is configured.\n */\nexport function useFormatter() {\n const regionStore = useRegionStore()\n\n /**\n * Format a number according to the active locale.\n * Example: 1234567.89 → \"1,234,567.89\" (en) or \"1 234 567,89\" (hu)\n */\n function formatNumber(value: number, options?: Intl.NumberFormatOptions): string {\n const locale = regionStore.activeLocale || 'en-EU'\n try {\n return new Intl.NumberFormat(locale, options).format(value)\n } catch {\n return new Intl.NumberFormat('en-EU', options).format(value)\n }\n }\n\n /**\n * Format a currency value according to the active region's currency and locale.\n * Example: 1234.50 → \"€1,234.50\" (EUR/en) or \"3 456 Ft\" (HUF/hu)\n */\n function formatCurrency(\n value: number,\n currency?: string,\n options?: Intl.NumberFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n const curr = currency || regionStore.activeCurrency || 'EUR'\n try {\n return new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: curr,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n ...options,\n }).format(value)\n } catch {\n return `${value.toFixed(2)} ${curr}`\n }\n }\n\n /**\n * Format a date according to the active locale and timezone.\n * Example: 2026-06-24 → \"24/06/2026\" (en-GB) or \"2026. 06. 24.\" (hu-HU)\n */\n function formatDate(\n date: Date | string | number,\n options?: Intl.DateTimeFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n const timezone = regionStore.activeTimezone || 'Europe/Brussels'\n const d = typeof date === 'string' || typeof date === 'number' ? new Date(date) : date\n\n try {\n return new Intl.DateTimeFormat(locale, {\n timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n ...options,\n }).format(d)\n } catch {\n return d.toLocaleDateString('en-GB')\n }\n }\n\n /**\n * Format a datetime with time according to the active locale and timezone.\n * Example: \"2026-06-24T14:30:00Z\" → \"24/06/2026, 16:30\" (hu-HU/Budapest)\n */\n function formatDateTime(\n date: Date | string | number,\n options?: Intl.DateTimeFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n const timezone = regionStore.activeTimezone || 'Europe/Brussels'\n const d = typeof date === 'string' || typeof date === 'number' ? new Date(date) : date\n\n try {\n return new Intl.DateTimeFormat(locale, {\n timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n ...options,\n }).format(d)\n } catch {\n return d.toLocaleString('en-GB')\n }\n }\n\n /**\n * Format a percentage value.\n * Example: 27 → \"27%\" or 27.5 → \"27,5%\" (hu)\n */\n function formatPercent(\n value: number,\n options?: Intl.NumberFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n try {\n return new Intl.NumberFormat(locale, {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 1,\n ...options,\n }).format(value / 100)\n } catch {\n return `${value}%`\n }\n }\n\n /**\n * Calculate price including VAT for the active region.\n * VAT rate comes from the active region's default_vat_rate.\n */\n function calculatePriceWithVat(\n netPrice: number,\n vatRate?: number,\n ): { net: number; vat: number; gross: number; vatRate: number } {\n const rate = vatRate ?? regionStore.activeVatRate ?? 0\n const vat = netPrice * (rate / 100)\n const gross = netPrice + vat\n return { net: netPrice, vat, gross, vatRate: rate }\n }\n\n /**\n * Format a price range with VAT breakdown.\n * Example: (100, 27) → \"Net: €100.00 | VAT: €27.00 (27%) | Gross: €127.00\"\n */\n function formatPriceWithVat(\n netPrice: number,\n vatRate?: number,\n currency?: string,\n ): string {\n const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate)\n const curr = currency || regionStore.activeCurrency || 'EUR'\n return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}`\n }\n\n return {\n formatNumber,\n formatCurrency,\n formatDate,\n formatDateTime,\n formatPercent,\n calculatePriceWithVat,\n formatPriceWithVat,\n }\n}\n","\n\n"],"names":["$t","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_unref","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map.json new file mode 100644 index 0000000..4480a48 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-BPETUF7a.js.map.json @@ -0,0 +1 @@ +{"file":"index-BPETUF7a.js","mappings":"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","names":["$t","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_unref","_ssrRenderClass"],"sources":["../../../../composables/useFormatter.ts","../../../../pages/packages/index.vue"],"sourcesContent":["import { useRegionStore } from '~/stores/region'\n\n/**\n * 🌍 useFormatter Composable\n *\n * Provides locale-aware formatting utilities for numbers, currencies, dates,\n * and percentages. Uses the active region configuration from the RegionStore\n * to determine the appropriate locale, currency, and timezone.\n *\n * Falls back to 'en-EU' locale and 'EUR' currency if no region is configured.\n */\nexport function useFormatter() {\n const regionStore = useRegionStore()\n\n /**\n * Format a number according to the active locale.\n * Example: 1234567.89 → \"1,234,567.89\" (en) or \"1 234 567,89\" (hu)\n */\n function formatNumber(value: number, options?: Intl.NumberFormatOptions): string {\n const locale = regionStore.activeLocale || 'en-EU'\n try {\n return new Intl.NumberFormat(locale, options).format(value)\n } catch {\n return new Intl.NumberFormat('en-EU', options).format(value)\n }\n }\n\n /**\n * Format a currency value according to the active region's currency and locale.\n * Example: 1234.50 → \"€1,234.50\" (EUR/en) or \"3 456 Ft\" (HUF/hu)\n */\n function formatCurrency(\n value: number,\n currency?: string,\n options?: Intl.NumberFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n const curr = currency || regionStore.activeCurrency || 'EUR'\n try {\n return new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: curr,\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n ...options,\n }).format(value)\n } catch {\n return `${value.toFixed(2)} ${curr}`\n }\n }\n\n /**\n * Format a date according to the active locale and timezone.\n * Example: 2026-06-24 → \"24/06/2026\" (en-GB) or \"2026. 06. 24.\" (hu-HU)\n */\n function formatDate(\n date: Date | string | number,\n options?: Intl.DateTimeFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n const timezone = regionStore.activeTimezone || 'Europe/Brussels'\n const d = typeof date === 'string' || typeof date === 'number' ? new Date(date) : date\n\n try {\n return new Intl.DateTimeFormat(locale, {\n timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n ...options,\n }).format(d)\n } catch {\n return d.toLocaleDateString('en-GB')\n }\n }\n\n /**\n * Format a datetime with time according to the active locale and timezone.\n * Example: \"2026-06-24T14:30:00Z\" → \"24/06/2026, 16:30\" (hu-HU/Budapest)\n */\n function formatDateTime(\n date: Date | string | number,\n options?: Intl.DateTimeFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n const timezone = regionStore.activeTimezone || 'Europe/Brussels'\n const d = typeof date === 'string' || typeof date === 'number' ? new Date(date) : date\n\n try {\n return new Intl.DateTimeFormat(locale, {\n timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n ...options,\n }).format(d)\n } catch {\n return d.toLocaleString('en-GB')\n }\n }\n\n /**\n * Format a percentage value.\n * Example: 27 → \"27%\" or 27.5 → \"27,5%\" (hu)\n */\n function formatPercent(\n value: number,\n options?: Intl.NumberFormatOptions,\n ): string {\n const locale = regionStore.activeLocale || 'en-EU'\n try {\n return new Intl.NumberFormat(locale, {\n style: 'percent',\n minimumFractionDigits: 0,\n maximumFractionDigits: 1,\n ...options,\n }).format(value / 100)\n } catch {\n return `${value}%`\n }\n }\n\n /**\n * Calculate price including VAT for the active region.\n * VAT rate comes from the active region's default_vat_rate.\n */\n function calculatePriceWithVat(\n netPrice: number,\n vatRate?: number,\n ): { net: number; vat: number; gross: number; vatRate: number } {\n const rate = vatRate ?? regionStore.activeVatRate ?? 0\n const vat = netPrice * (rate / 100)\n const gross = netPrice + vat\n return { net: netPrice, vat, gross, vatRate: rate }\n }\n\n /**\n * Format a price range with VAT breakdown.\n * Example: (100, 27) → \"Net: €100.00 | VAT: €27.00 (27%) | Gross: €127.00\"\n */\n function formatPriceWithVat(\n netPrice: number,\n vatRate?: number,\n currency?: string,\n ): string {\n const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate)\n const curr = currency || regionStore.activeCurrency || 'EUR'\n return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}`\n }\n\n return {\n formatNumber,\n formatCurrency,\n formatDate,\n formatDateTime,\n formatPercent,\n calculatePriceWithVat,\n formatPriceWithVat,\n }\n}\n","\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js b/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js new file mode 100644 index 0000000..876e676 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js @@ -0,0 +1,160 @@ +import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderClass } from "vue/server-renderer"; +import "/app/node_modules/hookable/dist/index.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const searchQuery = ref(""); + const filterTier = ref("all"); + const openDropdownId = ref(null); + const saveNotification = ref(null); + const availableTiers = ["free", "premium", "enterprise"]; + const garages = reactive([ + { + id: 1, + companyName: "Kovács Autószerviz", + contactName: "Kovács István", + email: "kovacs@autoserviz.hu", + status: "active", + tier: "premium", + initials: "KA", + colorClass: "bg-amber-600" + }, + { + id: 2, + companyName: "Nagy Gépjárműjavító Kft.", + contactName: "Nagy Péter", + email: "info@nagygepjarmu.hu", + status: "active", + tier: "enterprise", + initials: "NG", + colorClass: "bg-purple-600" + }, + { + id: 3, + companyName: "Tóth Autó és Motorgarázs", + contactName: "Tóth Gábor", + email: "toth@garazs.hu", + status: "active", + tier: "free", + initials: "TA", + colorClass: "bg-slate-600" + }, + { + id: 4, + companyName: "Szabó Flottakezelő Kft.", + contactName: "Szabó Márta", + email: "szabo@flotta.hu", + status: "inactive", + tier: "premium", + initials: "SZ", + colorClass: "bg-amber-600" + }, + { + id: 5, + companyName: "Horváth Autótechnika", + contactName: "Horváth László", + email: "horvath@autotechnika.hu", + status: "suspended", + tier: "free", + initials: "HA", + colorClass: "bg-slate-600" + }, + { + id: 6, + companyName: "Kiss & Társa Szerviz", + contactName: "Kiss Anna", + email: "kiss@szerviz.hu", + status: "active", + tier: "enterprise", + initials: "KT", + colorClass: "bg-purple-600" + }, + { + id: 7, + companyName: "Molnár Autóház Kft.", + contactName: "Molnár Zoltán", + email: "molnar@autohaz.hu", + status: "active", + tier: "premium", + initials: "MA", + colorClass: "bg-amber-600" + }, + { + id: 8, + companyName: "Farkas Gépjármű Szerviz", + contactName: "Farkas Béla", + email: "farkas@gepjarmu.hu", + status: "inactive", + tier: "free", + initials: "FG", + colorClass: "bg-slate-600" + } + ]); + const activeCount = computed(() => garages.filter((g) => g.status === "active").length); + const premiumCount = computed(() => garages.filter((g) => g.tier === "premium").length); + const enterpriseCount = computed(() => garages.filter((g) => g.tier === "enterprise").length); + const filteredGarages = computed(() => { + return garages.filter((g) => { + if (searchQuery.value) { + const q = searchQuery.value.toLowerCase(); + const matchesSearch = g.companyName.toLowerCase().includes(q) || g.contactName.toLowerCase().includes(q) || g.email.toLowerCase().includes(q); + if (!matchesSearch) return false; + } + if (filterTier.value !== "all" && g.tier !== filterTier.value) return false; + return true; + }); + }); + function tierBadgeClass(tier) { + if (tier === "enterprise") return "bg-purple-500/20 text-purple-300"; + if (tier === "premium") return "bg-amber-500/20 text-amber-300"; + return "bg-slate-500/20 text-slate-300"; + } + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(_ctx.$t("garages.title"))}

${ssrInterpolate(_ctx.$t("garages.subtitle"))}

${ssrInterpolate(_ctx.$t("garages.total_garages"))}

${ssrInterpolate(garages.length)}

${ssrInterpolate(_ctx.$t("garages.active_garages"))}

${ssrInterpolate(activeCount.value)}

${ssrInterpolate(_ctx.$t("garages.premium_garages"))}

${ssrInterpolate(premiumCount.value)}

${ssrInterpolate(_ctx.$t("garages.enterprise_garages"))}

${ssrInterpolate(enterpriseCount.value)}

`); + ssrRenderList(filteredGarages.value, (garage) => { + _push(``); + }); + _push(`
ID${ssrInterpolate(_ctx.$t("garages.company_name"))}${ssrInterpolate(_ctx.$t("garages.email"))}${ssrInterpolate(_ctx.$t("garages.status"))}${ssrInterpolate(_ctx.$t("garages.current_package"))}${ssrInterpolate(_ctx.$t("garages.actions"))}
${ssrInterpolate(garage.id)}
${ssrInterpolate(garage.initials)}

${ssrInterpolate(garage.companyName)}

${ssrInterpolate(garage.contactName)}

${ssrInterpolate(garage.email)} ${ssrInterpolate(garage.status === "active" ? _ctx.$t("garages.active") : garage.status === "suspended" ? _ctx.$t("garages.suspended") : _ctx.$t("garages.inactive"))}
${ssrInterpolate(garage.tier)}
`); + if (openDropdownId.value === garage.id) { + _push(`
`); + ssrRenderList(availableTiers, (tier) => { + _push(``); + }); + _push(`
`); + } else { + _push(``); + } + _push(`
`); + if (filteredGarages.value.length === 0) { + _push(`

${ssrInterpolate(_ctx.$t("garages.no_results"))}

`); + } else { + _push(``); + } + _push(`
`); + if (saveNotification.value) { + _push(`
${ssrInterpolate(saveNotification.value.message)}
`); + } else { + _push(``); + } + _push(``); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/garages/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=index-ebkVtBaw.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map new file mode 100644 index 0000000..18d50b3 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-ebkVtBaw.js","sources":["../../../../pages/garages/index.vue"],"sourcesContent":["\n\n\n"],"names":["$t","_ssrInterpolate","_ssrRenderAttr","_ssrRenderList","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map.json new file mode 100644 index 0000000..009ed76 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/index-ebkVtBaw.js.map.json @@ -0,0 +1 @@ +{"file":"index-ebkVtBaw.js","mappings":"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","names":["$t","_ssrInterpolate","_ssrRenderAttr","_ssrRenderList","_ssrRenderClass"],"sources":["../../../../pages/garages/index.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js b/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js deleted file mode 100644 index 3f9de88..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js +++ /dev/null @@ -1,55 +0,0 @@ -import { defineComponent, useSSRContext } from "vue"; -import { ssrRenderAttrs, ssrRenderList, ssrInterpolate, ssrRenderClass } from "vue/server-renderer"; -import "/app/node_modules/hookable/dist/index.mjs"; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "index", - __ssrInlineRender: true, - setup(__props) { - const superadminPerms = [ - { key: "user_mgmt", label: "User Management", enabled: true }, - { key: "billing_admin", label: "Billing Administration", enabled: true }, - { key: "robot_config", label: "Robot Configuration", enabled: true }, - { key: "system_logs", label: "System Logs Access", enabled: true }, - { key: "api_keys", label: "API Key Management", enabled: false } - ]; - const garagePerms = [ - { key: "vehicle_crud", label: "Vehicle CRUD", enabled: true }, - { key: "service_booking", label: "Service Booking", enabled: true }, - { key: "customer_view", label: "Customer Data View", enabled: true }, - { key: "report_export", label: "Report Export", enabled: false }, - { key: "bulk_import", label: "Bulk Import", enabled: false } - ]; - const packagePerms = [ - { key: "premium_features", label: "Premium Features", enabled: true }, - { key: "analytics", label: "Analytics Dashboard", enabled: true }, - { key: "multi_garage", label: "Multi-Garage Support", enabled: false }, - { key: "white_label", label: "White Label Branding", enabled: false }, - { key: "api_access", label: "API Access", enabled: true } - ]; - return (_ctx, _push, _parent, _attrs) => { - _push(`

Jogosultság Kezelés

Permissions Management — Role-based access control matrix

This is the permissions management interface. The 3D Capability Matrix UI (Superadmin, Garages, and Packages toggles) will be implemented here in the next iteration.

Superadmin

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

`); - ssrRenderList(superadminPerms, (perm) => { - _push(`
${ssrInterpolate(perm.label)}${ssrInterpolate(perm.enabled ? "Enabled" : "Disabled")}
`); - }); - _push(`

Garages

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

`); - ssrRenderList(garagePerms, (perm) => { - _push(`
${ssrInterpolate(perm.label)}${ssrInterpolate(perm.enabled ? "Enabled" : "Disabled")}
`); - }); - _push(`

Packages

Subscription package permissions — feature toggles per plan tier.

`); - ssrRenderList(packagePerms, (perm) => { - _push(`
${ssrInterpolate(perm.label)}${ssrInterpolate(perm.enabled ? "Enabled" : "Disabled")}
`); - }); - _push(`

3D Capability Matrix

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

`); - }; - } -}); -const _sfc_setup = _sfc_main.setup; -_sfc_main.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/permissions/index.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -export { - _sfc_main as default -}; -//# sourceMappingURL=index-nGH29Vk2.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map deleted file mode 100644 index fa9790d..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-nGH29Vk2.js","sources":["../../../../pages/permissions/index.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderList","_ssrInterpolate","_ssrRenderClass"],"mappings":";;;;;;;AAqHA,UAAM,kBAAkB;AAAA,MACtB,EAAE,KAAK,aAAa,OAAO,mBAAmB,SAAS,KAAA;AAAA,MACvD,EAAE,KAAK,iBAAiB,OAAO,0BAA0B,SAAS,KAAA;AAAA,MAClE,EAAE,KAAK,gBAAgB,OAAO,uBAAuB,SAAS,KAAA;AAAA,MAC9D,EAAE,KAAK,eAAe,OAAO,sBAAsB,SAAS,KAAA;AAAA,MAC5D,EAAE,KAAK,YAAY,OAAO,sBAAsB,SAAS,MAAA;AAAA,IAAM;AAGjE,UAAM,cAAc;AAAA,MAClB,EAAE,KAAK,gBAAgB,OAAO,gBAAgB,SAAS,KAAA;AAAA,MACvD,EAAE,KAAK,mBAAmB,OAAO,mBAAmB,SAAS,KAAA;AAAA,MAC7D,EAAE,KAAK,iBAAiB,OAAO,sBAAsB,SAAS,KAAA;AAAA,MAC9D,EAAE,KAAK,iBAAiB,OAAO,iBAAiB,SAAS,MAAA;AAAA,MACzD,EAAE,KAAK,eAAe,OAAO,eAAe,SAAS,MAAA;AAAA,IAAM;AAG7D,UAAM,eAAe;AAAA,MACnB,EAAE,KAAK,oBAAoB,OAAO,oBAAoB,SAAS,KAAA;AAAA,MAC/D,EAAE,KAAK,aAAa,OAAO,uBAAuB,SAAS,KAAA;AAAA,MAC3D,EAAE,KAAK,gBAAgB,OAAO,wBAAwB,SAAS,MAAA;AAAA,MAC/D,EAAE,KAAK,eAAe,OAAO,wBAAwB,SAAS,MAAA;AAAA,MAC9D,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,KAAA;AAAA,IAAK;;;AA1G5BA,oBAAA,kBAAR,SAAI;qJAC0BC,eAAA,KAAK,KAAK,wBACKC,eAAA,CAAA,KAAK,UAAO,uCAAA,+BAAA,kCAAA,CAAA,MAC9DD,eAAA,KAAK,UAAO,YAAA,UAAA;;;AAuBCD,oBAAA,cAAR,SAAI;qJAC0BC,eAAA,KAAK,KAAK,wBACKC,eAAA,CAAA,KAAK,UAAO,uCAAA,+BAAA,kCAAA,CAAA,MAC9DD,eAAA,KAAK,UAAO,YAAA,UAAA;;;AAuBCD,oBAAA,eAAR,SAAI;qJAC0BC,eAAA,KAAK,KAAK,wBACKC,eAAA,CAAA,KAAK,UAAO,uCAAA,+BAAA,kCAAA,CAAA,MAC9DD,eAAA,KAAK,UAAO,YAAA,UAAA;;;;;;;;;;;;"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map.json deleted file mode 100644 index 001e686..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/index-nGH29Vk2.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"index-nGH29Vk2.js","mappings":";;;;;;;AAqHA,UAAM,kBAAkB;AAAA,MACtB,EAAE,KAAK,aAAa,OAAO,mBAAmB,SAAS,KAAA;AAAA,MACvD,EAAE,KAAK,iBAAiB,OAAO,0BAA0B,SAAS,KAAA;AAAA,MAClE,EAAE,KAAK,gBAAgB,OAAO,uBAAuB,SAAS,KAAA;AAAA,MAC9D,EAAE,KAAK,eAAe,OAAO,sBAAsB,SAAS,KAAA;AAAA,MAC5D,EAAE,KAAK,YAAY,OAAO,sBAAsB,SAAS,MAAA;AAAA,IAAM;AAGjE,UAAM,cAAc;AAAA,MAClB,EAAE,KAAK,gBAAgB,OAAO,gBAAgB,SAAS,KAAA;AAAA,MACvD,EAAE,KAAK,mBAAmB,OAAO,mBAAmB,SAAS,KAAA;AAAA,MAC7D,EAAE,KAAK,iBAAiB,OAAO,sBAAsB,SAAS,KAAA;AAAA,MAC9D,EAAE,KAAK,iBAAiB,OAAO,iBAAiB,SAAS,MAAA;AAAA,MACzD,EAAE,KAAK,eAAe,OAAO,eAAe,SAAS,MAAA;AAAA,IAAM;AAG7D,UAAM,eAAe;AAAA,MACnB,EAAE,KAAK,oBAAoB,OAAO,oBAAoB,SAAS,KAAA;AAAA,MAC/D,EAAE,KAAK,aAAa,OAAO,uBAAuB,SAAS,KAAA;AAAA,MAC3D,EAAE,KAAK,gBAAgB,OAAO,wBAAwB,SAAS,MAAA;AAAA,MAC/D,EAAE,KAAK,eAAe,OAAO,wBAAwB,SAAS,MAAA;AAAA,MAC9D,EAAE,KAAK,cAAc,OAAO,cAAc,SAAS,KAAA;AAAA,IAAK;;;AA1G5BA,oBAAA,kBAAR,SAAI;qJAC0BC,eAAA,KAAK,KAAK,wBACKC,eAAA,CAAA,KAAK,UAAO,uCAAA,+BAAA,kCAAA,CAAA,MAC9DD,eAAA,KAAK,UAAO,YAAA,UAAA;;;AAuBCD,oBAAA,cAAR,SAAI;qJAC0BC,eAAA,KAAK,KAAK,wBACKC,eAAA,CAAA,KAAK,UAAO,uCAAA,+BAAA,kCAAA,CAAA,MAC9DD,eAAA,KAAK,UAAO,YAAA,UAAA;;;AAuBCD,oBAAA,eAAR,SAAI;qJAC0BC,eAAA,KAAK,KAAK,wBACKC,eAAA,CAAA,KAAK,UAAO,uCAAA,+BAAA,kCAAA,CAAA,MAC9DD,eAAA,KAAK,UAAO,YAAA,UAAA;;;;;;;;;;;;","names":["_ssrRenderList","_ssrInterpolate","_ssrRenderClass"],"sources":["../../../../pages/permissions/index.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js b/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js similarity index 92% rename from frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js rename to frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js index 5dbd2d2..3a608fa 100644 --- a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js +++ b/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js @@ -1,22 +1,24 @@ -import { _ as __nuxt_component_0 } from "./nuxt-link-DNVrgHUL.js"; +import { _ as __nuxt_component_0 } from "./nuxt-link-Cp-CAJwR.js"; import { defineComponent, ref, mergeProps, unref, withCtx, createTextVNode, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderAttr, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderComponent } from "vue/server-renderer"; -import { u as useAuthStore, _ as _imports_0 } from "./auth-CRAMW6e4.js"; -import { u as useRouter } from "../server.mjs"; +import { publicAssetsURL } from "#internal/nuxt/paths"; +import { a as useRouter } from "../server.mjs"; +import { u as useAuthStore } from "./auth-mCjBoLcA.js"; import "/app/node_modules/ufo/dist/index.mjs"; import "/app/node_modules/defu/dist/defu.mjs"; -import "#internal/nuxt/paths"; -import "pinia"; -import "./cookie-CWIsZYm7.js"; -import "/app/node_modules/cookie-es/dist/index.mjs"; -import "/app/node_modules/h3/dist/index.mjs"; -import "/app/node_modules/destr/dist/index.mjs"; -import "/app/node_modules/ohash/dist/index.mjs"; -import "/app/node_modules/klona/dist/index.mjs"; import "/app/node_modules/ofetch/dist/node.mjs"; import "/app/node_modules/hookable/dist/index.mjs"; import "/app/node_modules/unctx/dist/index.mjs"; +import "/app/node_modules/h3/dist/index.mjs"; +import "pinia"; import "vue-router"; +import "/app/node_modules/klona/dist/index.mjs"; +import "/app/node_modules/cookie-es/dist/index.mjs"; +import "/app/node_modules/destr/dist/index.mjs"; +import "/app/node_modules/ohash/dist/index.mjs"; +import "/app/node_modules/@unhead/vue/dist/index.mjs"; +import "@vue/devtools-api"; +const _imports_0 = publicAssetsURL("/sf_logo.png"); const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "login", __ssrInlineRender: true, @@ -68,4 +70,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=login-CLIOTi6c.js.map +//# sourceMappingURL=login-BHmaTZZZ.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map similarity index 86% rename from frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map rename to frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map index 19b9785..fbed3a4 100644 --- a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map +++ b/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map @@ -1 +1 @@ -{"version":3,"file":"login-CLIOTi6c.js","sources":["../../../../pages/login.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderAttr","_unref","_ssrInterpolate","_ssrIncludeBooleanAttr","_push","_parent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+FA,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,EAAE;AACR,cAAA;AAEf,UAAM,YAAY,aAAA;;;mBAlGXA,eAAAC,WAAA,EAAA,OAAM,kEAAA,GAAiE,MAAA,CAAA,6HAMlEC,cAAA,OAAA,UAAkB;AAiBd,UAAAC,MAAA,SAAA,EAAU,OAAK;AAGlB,cAAA,6FAAAC,eAAAD,MAAA,SAAA,EAAU,KAAK,CAAA,QAAA;AAAA;;;sLAWLA,MAAA,KAAA,CAAK,0aAgBLA,MAAA,QAAA,CAAQ,oTAYRE,sBAAAF,MAAA,SAAA,EAAU,SAAS,IAAA,cAAA;AAItB,UAAAA,MAAA,SAAA,EAAU,WAAS;;;;;AASlB,YAAA,SAAAC,eAAAD,MAAA,SAAA,EAAU,YAAS,kBAAA,SAAA,CAAA,uDAAA;;QAMpB,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEW,GAAAG,QAAAC,UAAA,aAAA;;;;;8BAFoE,2BAE/E;AAAA,YAAA;AAAA;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"login-BHmaTZZZ.js","sources":["../../../../pages/login.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderAttr","_unref","_ssrInterpolate","_ssrIncludeBooleanAttr","_push","_parent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA+FA,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,EAAE;AACR,cAAA;AAEf,UAAM,YAAY,aAAA;;;mBAlGXA,eAAAC,WAAA,EAAA,OAAM,kEAAA,GAAiE,MAAA,CAAA,6HAMlEC,cAAA,OAAA,UAAkB;AAiBd,UAAAC,MAAA,SAAA,EAAU,OAAK;AAGlB,cAAA,6FAAAC,eAAAD,MAAA,SAAA,EAAU,KAAK,CAAA,QAAA;AAAA;;;sLAWLA,MAAA,KAAA,CAAK,0aAgBLA,MAAA,QAAA,CAAQ,oTAYRE,sBAAAF,MAAA,SAAA,EAAU,SAAS,IAAA,cAAA;AAItB,UAAAA,MAAA,SAAA,EAAU,WAAS;;;;;AASlB,YAAA,SAAAC,eAAAD,MAAA,SAAA,EAAU,YAAS,kBAAA,SAAA,CAAA,uDAAA;;QAMpB,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEW,GAAAG,QAAAC,UAAA,aAAA;;;;;8BAFoE,2BAE/E;AAAA,YAAA;AAAA;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map.json new file mode 100644 index 0000000..4e4797b --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js.map.json @@ -0,0 +1 @@ +{"file":"login-BHmaTZZZ.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA+FA,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,EAAE;AACR,cAAA;AAEf,UAAM,YAAY,aAAA;;;mBAlGXA,eAAAC,WAAA,EAAA,OAAM,kEAAA,GAAiE,MAAA,CAAA,6HAMlEC,cAAA,OAAA,UAAkB;AAiBd,UAAAC,MAAA,SAAA,EAAU,OAAK;AAGlB,cAAA,6FAAAC,eAAAD,MAAA,SAAA,EAAU,KAAK,CAAA,QAAA;AAAA;;;sLAWLA,MAAA,KAAA,CAAK,0aAgBLA,MAAA,QAAA,CAAQ,oTAYRE,sBAAAF,MAAA,SAAA,EAAU,SAAS,IAAA,cAAA;AAItB,UAAAA,MAAA,SAAA,EAAU,WAAS;;;;;AASlB,YAAA,SAAAC,eAAAD,MAAA,SAAA,EAAU,YAAS,kBAAA,SAAA,CAAA,uDAAA;;QAMpB,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEW,GAAAG,QAAAC,UAAA,aAAA;;;;;8BAFoE,2BAE/E;AAAA,YAAA;AAAA;;;;;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderAttr","_unref","_ssrInterpolate","_ssrIncludeBooleanAttr","_push","_parent"],"sources":["../../../../pages/login.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json deleted file mode 100644 index 3c7f6d1..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/login-CLIOTi6c.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"login-CLIOTi6c.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+FA,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,EAAE;AACR,cAAA;AAEf,UAAM,YAAY,aAAA;;;mBAlGXA,eAAAC,WAAA,EAAA,OAAM,kEAAA,GAAiE,MAAA,CAAA,6HAMlEC,cAAA,OAAA,UAAkB;AAiBd,UAAAC,MAAA,SAAA,EAAU,OAAK;AAGlB,cAAA,6FAAAC,eAAAD,MAAA,SAAA,EAAU,KAAK,CAAA,QAAA;AAAA;;;sLAWLA,MAAA,KAAA,CAAK,0aAgBLA,MAAA,QAAA,CAAQ,oTAYRE,sBAAAF,MAAA,SAAA,EAAU,SAAS,IAAA,cAAA;AAItB,UAAAA,MAAA,SAAA,EAAU,WAAS;;;;;AASlB,YAAA,SAAAC,eAAAD,MAAA,SAAA,EAAU,YAAS,kBAAA,SAAA,CAAA,uDAAA;;QAMpB,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEW,GAAAG,QAAAC,UAAA,aAAA;;;;;8BAFoE,2BAE/E;AAAA,YAAA;AAAA;;;;;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderAttr","_unref","_ssrInterpolate","_ssrIncludeBooleanAttr","_push","_parent"],"sources":["../../../../pages/login.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js similarity index 97% rename from frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js rename to frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js index cf9e5d2..e5986e2 100644 --- a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js +++ b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js @@ -1,6 +1,6 @@ import { defineComponent, shallowRef, h, resolveComponent, computed, unref } from "vue"; import { parseQuery, hasProtocol, joinURL, isScriptProtocol, withTrailingSlash, withoutTrailingSlash } from "/app/node_modules/ufo/dist/index.mjs"; -import { u as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, a as useNuxtApp, b as useRuntimeConfig, c as nuxtLinkDefaults } from "../server.mjs"; +import { a as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, f as useNuxtApp, g as useRuntimeConfig, h as nuxtLinkDefaults } from "../server.mjs"; import "/app/node_modules/defu/dist/defu.mjs"; const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); function sanitizeExternalHref(value) { @@ -304,4 +304,4 @@ function applyTrailingSlashBehavior(to, trailingSlash) { export { __nuxt_component_0 as _ }; -//# sourceMappingURL=nuxt-link-DNVrgHUL.js.map +//# sourceMappingURL=nuxt-link-Cp-CAJwR.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js.map similarity index 99% rename from frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map rename to frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js.map index 6e32339..a8b5573 100644 --- a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map +++ b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js.map @@ -1 +1 @@ -{"version":3,"file":"nuxt-link-DNVrgHUL.js","sources":["../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001f\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"nuxt-link-Cp-CAJwR.js","sources":["../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001f\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js.map.json similarity index 99% rename from frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json rename to frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js.map.json index f760ead..1c5263e 100644 --- a/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js.map.json +++ b/frontend_admin/.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js.map.json @@ -1 +1 @@ -{"file":"nuxt-link-DNVrgHUL.js","mappings":"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","names":[],"sources":["../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001f\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"version":3} \ No newline at end of file +{"file":"nuxt-link-Cp-CAJwR.js","mappings":"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","names":[],"sources":["../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001f\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js b/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js new file mode 100644 index 0000000..f6b6e20 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js @@ -0,0 +1,73 @@ +import { defineStore } from "pinia"; +import { ref, computed } from "vue"; +const useRegionStore = defineStore("region", () => { + const regions = ref([]); + const activeRegion = ref(null); + const isLoading = ref(false); + const error = ref(null); + const defaultRegion = computed(() => { + return regions.value.find((r) => r.country_code === "DEFAULT") || null; + }); + const regionMap = computed(() => { + const map = /* @__PURE__ */ new Map(); + for (const r of regions.value) { + map.set(r.country_code, r); + } + return map; + }); + const activeCurrency = computed(() => { + return activeRegion.value?.currency || defaultRegion.value?.currency || "EUR"; + }); + const activeLocale = computed(() => { + return activeRegion.value?.locale_code || defaultRegion.value?.locale_code || "en-EU"; + }); + const activeVatRate = computed(() => { + return activeRegion.value?.default_vat_rate ?? defaultRegion.value?.default_vat_rate ?? 0; + }); + const activeTimezone = computed(() => { + return activeRegion.value?.timezone || defaultRegion.value?.timezone || "Europe/Brussels"; + }); + async function fetchRegions() { + if (regions.value.length > 0) return; + isLoading.value = true; + error.value = null; + try { + const data = await $fetch("/api/v1/system/regions"); + regions.value = data || []; + } catch (err) { + error.value = err?.data?.detail || err?.message || "Failed to load regions"; + console.error("[RegionStore] Fetch error:", err); + } finally { + isLoading.value = false; + } + } + function setActiveRegion(countryCode) { + const found = regions.value.find((r) => r.country_code === countryCode); + activeRegion.value = found || defaultRegion.value; + } + function getRegion(countryCode) { + return regionMap.value.get(countryCode); + } + return { + // State + regions, + activeRegion, + isLoading, + error, + // Getters + defaultRegion, + regionMap, + activeCurrency, + activeLocale, + activeVatRate, + activeTimezone, + // Actions + fetchRegions, + setActiveRegion, + getRegion + }; +}); +export { + useRegionStore as u +}; +//# sourceMappingURL=region-0mvXqaMM.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map new file mode 100644 index 0000000..97f658e --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map @@ -0,0 +1 @@ +{"version":3,"file":"region-0mvXqaMM.js","sources":["../../../../stores/region.ts"],"sourcesContent":["import { defineStore } from 'pinia'\nimport { ref, computed } from 'vue'\n\nexport interface RegionConfig {\n country_code: string\n name: string\n currency: string\n default_vat_rate: number\n locale_code: string\n timezone: string\n is_active: boolean\n}\n\nexport const useRegionStore = defineStore('region', () => {\n // ── State ──────────────────────────────────────────────────────────\n const regions = ref([])\n const activeRegion = ref(null)\n const isLoading = ref(false)\n const error = ref(null)\n\n // ── Getters ────────────────────────────────────────────────────────\n const defaultRegion = computed(() => {\n return regions.value.find(r => r.country_code === 'DEFAULT') || null\n })\n\n const regionMap = computed(() => {\n const map = new Map()\n for (const r of regions.value) {\n map.set(r.country_code, r)\n }\n return map\n })\n\n const activeCurrency = computed(() => {\n return activeRegion.value?.currency || defaultRegion.value?.currency || 'EUR'\n })\n\n const activeLocale = computed(() => {\n return activeRegion.value?.locale_code || defaultRegion.value?.locale_code || 'en-EU'\n })\n\n const activeVatRate = computed(() => {\n return activeRegion.value?.default_vat_rate ?? defaultRegion.value?.default_vat_rate ?? 0\n })\n\n const activeTimezone = computed(() => {\n return activeRegion.value?.timezone || defaultRegion.value?.timezone || 'Europe/Brussels'\n })\n\n // ── Actions ────────────────────────────────────────────────────────\n\n /**\n * Fetch all active regions from the public API endpoint.\n * Called once on app initialization.\n */\n async function fetchRegions() {\n if (regions.value.length > 0) return // already loaded\n isLoading.value = true\n error.value = null\n\n try {\n const data = await $fetch('/api/v1/system/regions')\n regions.value = data || []\n } catch (err: any) {\n error.value = err?.data?.detail || err?.message || 'Failed to load regions'\n console.error('[RegionStore] Fetch error:', err)\n } finally {\n isLoading.value = false\n }\n }\n\n /**\n * Set the active region by country_code.\n * Falls back to DEFAULT if the code is not found.\n */\n function setActiveRegion(countryCode: string) {\n const found = regions.value.find(r => r.country_code === countryCode)\n activeRegion.value = found || defaultRegion.value\n }\n\n /**\n * Get a region config by country_code.\n */\n function getRegion(countryCode: string): RegionConfig | undefined {\n return regionMap.value.get(countryCode)\n }\n\n return {\n // State\n regions,\n activeRegion,\n isLoading,\n error,\n\n // Getters\n defaultRegion,\n regionMap,\n activeCurrency,\n activeLocale,\n activeVatRate,\n activeTimezone,\n\n // Actions\n fetchRegions,\n setActiveRegion,\n getRegion,\n }\n})\n"],"names":[],"mappings":";;AAaO,MAAM,iBAAiB,YAAY,UAAU,MAAM;AAExD,QAAM,UAAU,IAAoB,EAAE;AACtC,QAAM,eAAe,IAAyB,IAAI;AAClD,QAAM,YAAY,IAAI,KAAK;AAC3B,QAAM,QAAQ,IAAmB,IAAI;AAGrC,QAAM,gBAAgB,SAAS,MAAM;AACnC,WAAO,QAAQ,MAAM,KAAK,OAAK,EAAE,iBAAiB,SAAS,KAAK;AAAA,EAClE,CAAC;AAED,QAAM,YAAY,SAAS,MAAM;AAC/B,UAAM,0BAAU,IAAA;AAChB,eAAW,KAAK,QAAQ,OAAO;AAC7B,UAAI,IAAI,EAAE,cAAc,CAAC;AAAA,IAC3B;AACA,WAAO;AAAA,EACT,CAAC;AAED,QAAM,iBAAiB,SAAS,MAAM;AACpC,WAAO,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,EAC1E,CAAC;AAED,QAAM,eAAe,SAAS,MAAM;AAClC,WAAO,aAAa,OAAO,eAAe,cAAc,OAAO,eAAe;AAAA,EAChF,CAAC;AAED,QAAM,gBAAgB,SAAS,MAAM;AACnC,WAAO,aAAa,OAAO,oBAAoB,cAAc,OAAO,oBAAoB;AAAA,EAC1F,CAAC;AAED,QAAM,iBAAiB,SAAS,MAAM;AACpC,WAAO,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,EAC1E,CAAC;AAQD,iBAAe,eAAe;AAC5B,QAAI,QAAQ,MAAM,SAAS,EAAG;AAC9B,cAAU,QAAQ;AAClB,UAAM,QAAQ;AAEd,QAAI;AACF,YAAM,OAAO,MAAM,OAAuB,wBAAwB;AAClE,cAAQ,QAAQ,QAAQ,CAAA;AAAA,IAC1B,SAAS,KAAU;AACjB,YAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,WAAW;AACnD,cAAQ,MAAM,8BAA8B,GAAG;AAAA,IACjD,UAAA;AACE,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AAMA,WAAS,gBAAgB,aAAqB;AAC5C,UAAM,QAAQ,QAAQ,MAAM,KAAK,CAAA,MAAK,EAAE,iBAAiB,WAAW;AACpE,iBAAa,QAAQ,SAAS,cAAc;AAAA,EAC9C;AAKA,WAAS,UAAU,aAA+C;AAChE,WAAO,UAAU,MAAM,IAAI,WAAW;AAAA,EACxC;AAEA,SAAO;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ,CAAC;"} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map.json new file mode 100644 index 0000000..e237f36 --- /dev/null +++ b/frontend_admin/.nuxt/dist/server/_nuxt/region-0mvXqaMM.js.map.json @@ -0,0 +1 @@ +{"file":"region-0mvXqaMM.js","mappings":";;AAaO,MAAM,iBAAiB,YAAY,UAAU,MAAM;AAExD,QAAM,UAAU,IAAoB,EAAE;AACtC,QAAM,eAAe,IAAyB,IAAI;AAClD,QAAM,YAAY,IAAI,KAAK;AAC3B,QAAM,QAAQ,IAAmB,IAAI;AAGrC,QAAM,gBAAgB,SAAS,MAAM;AACnC,WAAO,QAAQ,MAAM,KAAK,OAAK,EAAE,iBAAiB,SAAS,KAAK;AAAA,EAClE,CAAC;AAED,QAAM,YAAY,SAAS,MAAM;AAC/B,UAAM,0BAAU,IAAA;AAChB,eAAW,KAAK,QAAQ,OAAO;AAC7B,UAAI,IAAI,EAAE,cAAc,CAAC;AAAA,IAC3B;AACA,WAAO;AAAA,EACT,CAAC;AAED,QAAM,iBAAiB,SAAS,MAAM;AACpC,WAAO,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,EAC1E,CAAC;AAED,QAAM,eAAe,SAAS,MAAM;AAClC,WAAO,aAAa,OAAO,eAAe,cAAc,OAAO,eAAe;AAAA,EAChF,CAAC;AAED,QAAM,gBAAgB,SAAS,MAAM;AACnC,WAAO,aAAa,OAAO,oBAAoB,cAAc,OAAO,oBAAoB;AAAA,EAC1F,CAAC;AAED,QAAM,iBAAiB,SAAS,MAAM;AACpC,WAAO,aAAa,OAAO,YAAY,cAAc,OAAO,YAAY;AAAA,EAC1E,CAAC;AAQD,iBAAe,eAAe;AAC5B,QAAI,QAAQ,MAAM,SAAS,EAAG;AAC9B,cAAU,QAAQ;AAClB,UAAM,QAAQ;AAEd,QAAI;AACF,YAAM,OAAO,MAAM,OAAuB,wBAAwB;AAClE,cAAQ,QAAQ,QAAQ,CAAA;AAAA,IAC1B,SAAS,KAAU;AACjB,YAAM,QAAQ,KAAK,MAAM,UAAU,KAAK,WAAW;AACnD,cAAQ,MAAM,8BAA8B,GAAG;AAAA,IACjD,UAAA;AACE,gBAAU,QAAQ;AAAA,IACpB;AAAA,EACF;AAMA,WAAS,gBAAgB,aAAqB;AAC5C,UAAM,QAAQ,QAAQ,MAAM,KAAK,CAAA,MAAK,EAAE,iBAAiB,WAAW;AACpE,iBAAa,QAAQ,SAAS,cAAc;AAAA,EAC9C;AAKA,WAAS,UAAU,aAA+C;AAChE,WAAO,UAAU,MAAM,IAAI,WAAW;AAAA,EACxC;AAEA,SAAO;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ,CAAC;","names":[],"sources":["../../../../stores/region.ts"],"sourcesContent":["import { defineStore } from 'pinia'\nimport { ref, computed } from 'vue'\n\nexport interface RegionConfig {\n country_code: string\n name: string\n currency: string\n default_vat_rate: number\n locale_code: string\n timezone: string\n is_active: boolean\n}\n\nexport const useRegionStore = defineStore('region', () => {\n // ── State ──────────────────────────────────────────────────────────\n const regions = ref([])\n const activeRegion = ref(null)\n const isLoading = ref(false)\n const error = ref(null)\n\n // ── Getters ────────────────────────────────────────────────────────\n const defaultRegion = computed(() => {\n return regions.value.find(r => r.country_code === 'DEFAULT') || null\n })\n\n const regionMap = computed(() => {\n const map = new Map()\n for (const r of regions.value) {\n map.set(r.country_code, r)\n }\n return map\n })\n\n const activeCurrency = computed(() => {\n return activeRegion.value?.currency || defaultRegion.value?.currency || 'EUR'\n })\n\n const activeLocale = computed(() => {\n return activeRegion.value?.locale_code || defaultRegion.value?.locale_code || 'en-EU'\n })\n\n const activeVatRate = computed(() => {\n return activeRegion.value?.default_vat_rate ?? defaultRegion.value?.default_vat_rate ?? 0\n })\n\n const activeTimezone = computed(() => {\n return activeRegion.value?.timezone || defaultRegion.value?.timezone || 'Europe/Brussels'\n })\n\n // ── Actions ────────────────────────────────────────────────────────\n\n /**\n * Fetch all active regions from the public API endpoint.\n * Called once on app initialization.\n */\n async function fetchRegions() {\n if (regions.value.length > 0) return // already loaded\n isLoading.value = true\n error.value = null\n\n try {\n const data = await $fetch('/api/v1/system/regions')\n regions.value = data || []\n } catch (err: any) {\n error.value = err?.data?.detail || err?.message || 'Failed to load regions'\n console.error('[RegionStore] Fetch error:', err)\n } finally {\n isLoading.value = false\n }\n }\n\n /**\n * Set the active region by country_code.\n * Falls back to DEFAULT if the code is not found.\n */\n function setActiveRegion(countryCode: string) {\n const found = regions.value.find(r => r.country_code === countryCode)\n activeRegion.value = found || defaultRegion.value\n }\n\n /**\n * Get a region config by country_code.\n */\n function getRegion(countryCode: string): RegionConfig | undefined {\n return regionMap.value.get(countryCode)\n }\n\n return {\n // State\n regions,\n activeRegion,\n isLoading,\n error,\n\n // Getters\n defaultRegion,\n regionMap,\n activeCurrency,\n activeLocale,\n activeVatRate,\n activeTimezone,\n\n // Actions\n fetchRegions,\n setActiveRegion,\n getRegion,\n }\n})\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js deleted file mode 100644 index 7442e98..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js +++ /dev/null @@ -1,21 +0,0 @@ -import { hasInjectionContext, inject } from "vue"; -import { useHead as useHead$1, headSymbol } from "/app/node_modules/@unhead/vue/dist/index.mjs"; -import { t as tryUseNuxtApp } from "../server.mjs"; -function injectHead(nuxtApp) { - const nuxt = nuxtApp || tryUseNuxtApp(); - return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => { - if (hasInjectionContext()) { - return inject(headSymbol); - } - }); -} -function useHead(input, options = {}) { - const head = injectHead(options.nuxt); - if (head) { - return useHead$1(input, { head, ...options }); - } -} -export { - useHead as u -}; -//# sourceMappingURL=v3-DnDMBKvA.js.map diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map deleted file mode 100644 index 24748fd..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v3-DnDMBKvA.js","sources":["../../../../node_modules/nuxt/dist/head/runtime/composables/v3.js"],"sourcesContent":["import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n"],"names":["headCore"],"mappings":";;;AAWO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,cAAa;AACrC,SAAO,MAAM,YAAY,QAAQ,MAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC7C;AACF;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json b/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json deleted file mode 100644 index 9f43164..0000000 --- a/frontend_admin/.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"v3-DnDMBKvA.js","mappings":";;;AAWO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,cAAa;AACrC,SAAO,MAAM,YAAY,QAAQ,MAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC7C;AACF;","names":["headCore"],"sources":["../../../../node_modules/nuxt/dist/head/runtime/composables/v3.js"],"sourcesContent":["import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/client.manifest.mjs b/frontend_admin/.nuxt/dist/server/client.manifest.mjs index cb5585c..365ff22 100644 --- a/frontend_admin/.nuxt/dist/server/client.manifest.mjs +++ b/frontend_admin/.nuxt/dist/server/client.manifest.mjs @@ -1 +1 @@ -export default ({"_BoAo7BJa.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BoAo7BJa.js",name:"cookie",imports:["node_modules/nuxt/dist/app/entry.js"]},"_ByPKVH1D.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"ByPKVH1D.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"_Di-57MrI.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Di-57MrI.js",name:"v3",imports:["node_modules/nuxt/dist/app/entry.js"]},"_QKJPEFuj.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"QKJPEFuj.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BW9w-mbE.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"middleware/auth.ts":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BFfxzM5G.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Oih3kTQ2.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:!0,preload:!0},"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"usmOON9X.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:!0,preload:!0},"node_modules/nuxt/dist/app/entry.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C3Ck-LNv.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["middleware/auth.ts","layouts/default.vue","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:!0,preload:!0},"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Drr7KP9v.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"pages/login.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"XMkMKtwS.js",name:"login",src:"pages/login.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"pages/permissions/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CyOWWS80.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]}}) \ No newline at end of file +export default ({"_CWA6Xjbg.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CWA6Xjbg.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js"]},"_DWjNh9rV.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DWjNh9rV.js",name:"region",imports:["node_modules/nuxt/dist/app/entry.js"]},"_Da4aCGAe.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Da4aCGAe.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"i18n/locales/en.json":{resourceType:"script",module:!0,prefetch:!1,preload:!1,file:"CgyjcGAF.js",name:"en",src:"i18n/locales/en.json",isDynamicEntry:!0},"i18n/locales/hu.json":{resourceType:"script",module:!0,prefetch:!1,preload:!1,file:"DP_n9i02.js",name:"hu",src:"i18n/locales/hu.json",isDynamicEntry:!0},"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CC4zKGJo.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js","_DWjNh9rV.js","_CWA6Xjbg.js"]},"middleware/auth.ts":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DuYZ8wdr.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C8yzOtqa.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js"],css:[]},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:!0,preload:!0},"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Cx40nPNe.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"],css:[]},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:!0,preload:!0},"node_modules/nuxt/dist/app/entry.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CqYPuxVf.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["middleware/auth.ts","layouts/default.vue","i18n/locales/hu.json","i18n/locales/en.json","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:!0,preload:!0},"pages/garages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"zPyClsoP.js",name:"index",src:"pages/garages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CqyNVJx6.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"pages/login.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"9W9VXtTt.js",name:"login",src:"pages/login.vue",isDynamicEntry:!0,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js","_CWA6Xjbg.js"]},"pages/packages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"ncKxzOzI.js",name:"index",src:"pages/packages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_DWjNh9rV.js"]},"pages/permissions/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BO90Bn6x.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]}}) \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/client.precomputed.mjs b/frontend_admin/.nuxt/dist/server/client.precomputed.mjs index e9d6604..ca848bc 100644 --- a/frontend_admin/.nuxt/dist/server/client.precomputed.mjs +++ b/frontend_admin/.nuxt/dist/server/client.precomputed.mjs @@ -1 +1 @@ -export default ((h,j,k,m,o)=>({dependencies:{"node_modules/nuxt/dist/app/entry.js":{scripts:{"node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C3Ck-LNv.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["middleware/auth.ts","layouts/default.vue","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]}},styles:{},preload:{"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_BoAo7BJa.js":{scripts:{},styles:{},preload:{"_BoAo7BJa.js":j={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BoAo7BJa.js",name:"cookie",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_ByPKVH1D.js":{scripts:{},styles:{},preload:{"_ByPKVH1D.js":k={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"ByPKVH1D.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_BoAo7BJa.js":j},prefetch:{}},"_Di-57MrI.js":{scripts:{},styles:{},preload:{"_Di-57MrI.js":m={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Di-57MrI.js",name:"v3",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_QKJPEFuj.js":{scripts:{},styles:{},preload:{"_QKJPEFuj.js":o={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"QKJPEFuj.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BW9w-mbE.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_ByPKVH1D.js":k,"_BoAo7BJa.js":j},prefetch:{}},"middleware/auth.ts":{scripts:{},styles:{},preload:{"middleware/auth.ts":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BFfxzM5G.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_BoAo7BJa.js":j},prefetch:{}},"node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Oih3kTQ2.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_Di-57MrI.js":m},prefetch:{}},"error-404.DL_4WIao.css":{scripts:{},styles:{},preload:{"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"usmOON9X.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"node_modules/nuxt/dist/app/entry.js":h,"_Di-57MrI.js":m},prefetch:{}},"error-500.I1Dtv2V5.css":{scripts:{},styles:{},preload:{"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"entry.KrfumMBl.css":{scripts:{},styles:{},preload:{"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/index.vue":{scripts:{},styles:{},preload:{"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Drr7KP9v.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/login.vue":{scripts:{},styles:{},preload:{"pages/login.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"XMkMKtwS.js",name:"login",src:"pages/login.vue",isDynamicEntry:!0,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_ByPKVH1D.js":k,"_BoAo7BJa.js":j},prefetch:{}},"pages/permissions/index.vue":{scripts:{},styles:{},preload:{"pages/permissions/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CyOWWS80.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}}},entrypoints:["node_modules/nuxt/dist/app/entry.js"],modules:{"_BoAo7BJa.js":{file:"BoAo7BJa.js",resourceType:"script",mimeType:void 0,module:!0},"_ByPKVH1D.js":{file:"ByPKVH1D.js",resourceType:"script",mimeType:void 0,module:!0},"_Di-57MrI.js":{file:"Di-57MrI.js",resourceType:"script",mimeType:void 0,module:!0},"_QKJPEFuj.js":{file:"QKJPEFuj.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/default.vue":{file:"BW9w-mbE.js",resourceType:"script",mimeType:void 0,module:!0},"middleware/auth.ts":{file:"BFfxzM5G.js",resourceType:"script",mimeType:void 0,module:!0},"node_modules/nuxt/dist/app/components/error-404.vue":{file:"Oih3kTQ2.js",resourceType:"script",mimeType:void 0,module:!0},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/components/error-500.vue":{file:"usmOON9X.js",resourceType:"script",mimeType:void 0,module:!0},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/entry.js":{file:"C3Ck-LNv.js",resourceType:"script",mimeType:void 0,module:!0},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/index.vue":{file:"Drr7KP9v.js",resourceType:"script",mimeType:void 0,module:!0},"pages/login.vue":{file:"XMkMKtwS.js",resourceType:"script",mimeType:void 0,module:!0},"pages/permissions/index.vue":{file:"CyOWWS80.js",resourceType:"script",mimeType:void 0,module:!0}}}))() \ No newline at end of file +export default ((h,j,k,m)=>({dependencies:{"node_modules/nuxt/dist/app/entry.js":{scripts:{"node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CqYPuxVf.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["middleware/auth.ts","layouts/default.vue","i18n/locales/hu.json","i18n/locales/en.json","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]}},styles:{},preload:{"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_CWA6Xjbg.js":{scripts:{},styles:{},preload:{"_CWA6Xjbg.js":j={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CWA6Xjbg.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_DWjNh9rV.js":{scripts:{},styles:{},preload:{"_DWjNh9rV.js":k={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DWjNh9rV.js",name:"region",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_Da4aCGAe.js":{scripts:{},styles:{},preload:{"_Da4aCGAe.js":m={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Da4aCGAe.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"i18n/locales/en.json":{scripts:{},styles:{},preload:{},prefetch:{}},"i18n/locales/hu.json":{scripts:{},styles:{},preload:{},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CC4zKGJo.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js","_DWjNh9rV.js","_CWA6Xjbg.js"]},"_Da4aCGAe.js":m,"node_modules/nuxt/dist/app/entry.js":h,"_DWjNh9rV.js":k,"_CWA6Xjbg.js":j},prefetch:{}},"middleware/auth.ts":{scripts:{},styles:{},preload:{"middleware/auth.ts":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DuYZ8wdr.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C8yzOtqa.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js"],css:[]},"_Da4aCGAe.js":m,"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"error-404.DL_4WIao.css":{scripts:{},styles:{},preload:{"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Cx40nPNe.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"],css:[]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"error-500.I1Dtv2V5.css":{scripts:{},styles:{},preload:{"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"entry.KrfumMBl.css":{scripts:{},styles:{},preload:{"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/garages/index.vue":{scripts:{},styles:{},preload:{"pages/garages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"zPyClsoP.js",name:"index",src:"pages/garages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/index.vue":{scripts:{},styles:{},preload:{"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CqyNVJx6.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/login.vue":{scripts:{},styles:{},preload:{"pages/login.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"9W9VXtTt.js",name:"login",src:"pages/login.vue",isDynamicEntry:!0,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js","_CWA6Xjbg.js"]},"_Da4aCGAe.js":m,"node_modules/nuxt/dist/app/entry.js":h,"_CWA6Xjbg.js":j},prefetch:{}},"pages/packages/index.vue":{scripts:{},styles:{},preload:{"pages/packages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"ncKxzOzI.js",name:"index",src:"pages/packages/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js","_DWjNh9rV.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_DWjNh9rV.js":k},prefetch:{}},"pages/permissions/index.vue":{scripts:{},styles:{},preload:{"pages/permissions/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BO90Bn6x.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:!0,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}}},entrypoints:["node_modules/nuxt/dist/app/entry.js"],modules:{"_CWA6Xjbg.js":{file:"CWA6Xjbg.js",resourceType:"script",mimeType:void 0,module:!0},"_DWjNh9rV.js":{file:"DWjNh9rV.js",resourceType:"script",mimeType:void 0,module:!0},"_Da4aCGAe.js":{file:"Da4aCGAe.js",resourceType:"script",mimeType:void 0,module:!0},"i18n/locales/en.json":{file:"CgyjcGAF.js",resourceType:"script",mimeType:void 0,module:!0},"i18n/locales/hu.json":{file:"DP_n9i02.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/default.vue":{file:"CC4zKGJo.js",resourceType:"script",mimeType:void 0,module:!0},"middleware/auth.ts":{file:"DuYZ8wdr.js",resourceType:"script",mimeType:void 0,module:!0},"node_modules/nuxt/dist/app/components/error-404.vue":{file:"C8yzOtqa.js",resourceType:"script",mimeType:void 0,module:!0},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/components/error-500.vue":{file:"Cx40nPNe.js",resourceType:"script",mimeType:void 0,module:!0},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/entry.js":{file:"CqYPuxVf.js",resourceType:"script",mimeType:void 0,module:!0},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/garages/index.vue":{file:"zPyClsoP.js",resourceType:"script",mimeType:void 0,module:!0},"pages/index.vue":{file:"CqyNVJx6.js",resourceType:"script",mimeType:void 0,module:!0},"pages/login.vue":{file:"9W9VXtTt.js",resourceType:"script",mimeType:void 0,module:!0},"pages/packages/index.vue":{file:"ncKxzOzI.js",resourceType:"script",mimeType:void 0,module:!0},"pages/permissions/index.vue":{file:"BO90Bn6x.js",resourceType:"script",mimeType:void 0,module:!0}}}))() \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/server.mjs b/frontend_admin/.nuxt/dist/server/server.mjs index 7f1ca2b..254553e 100644 --- a/frontend_admin/.nuxt/dist/server/server.mjs +++ b/frontend_admin/.nuxt/dist/server/server.mjs @@ -1,14 +1,20 @@ -import { shallowReactive, reactive, effectScope, getCurrentScope, hasInjectionContext, getCurrentInstance, inject, toRef, shallowRef, isReadonly, isRef, isShallow, isReactive, toRaw, defineComponent, createElementBlock, provide, cloneVNode, h, defineAsyncComponent, computed, unref, Suspense, nextTick, mergeProps, ref, Fragment, withCtx, createVNode, useSSRContext, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, createApp } from "vue"; +import * as Vue from "vue"; +import { shallowReactive, reactive, effectScope, getCurrentScope, hasInjectionContext, getCurrentInstance as getCurrentInstance$1, inject, toRef, shallowRef, isReadonly, isRef, isShallow, isReactive, toRaw, defineComponent, createElementBlock, provide, cloneVNode, h, ref, unref, onScopeDispose, computed, Fragment, createVNode, Text, defineAsyncComponent, Suspense, nextTick, mergeProps, withCtx, useSSRContext, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, createApp } from "vue"; import { $fetch as $fetch$1 } from "/app/node_modules/ofetch/dist/node.mjs"; import { baseURL } from "#internal/nuxt/paths"; import { createHooks } from "/app/node_modules/hookable/dist/index.mjs"; import { getContext, executeAsync } from "/app/node_modules/unctx/dist/index.mjs"; -import { sanitizeStatusCode, createError as createError$1 } from "/app/node_modules/h3/dist/index.mjs"; +import { sanitizeStatusCode, createError as createError$1, appendHeader, getRequestHeader, setCookie, getCookie, deleteCookie, getRequestURL } from "/app/node_modules/h3/dist/index.mjs"; import { shouldHydrate, setActivePinia, createPinia } from "pinia"; -import { defu } from "/app/node_modules/defu/dist/defu.mjs"; +import { defu, createDefu } from "/app/node_modules/defu/dist/defu.mjs"; import { START_LOCATION, createMemoryHistory, createRouter, useRoute as useRoute$1, RouterView } from "vue-router"; -import { hasProtocol, joinURL, parseURL, encodePath, decodePath, withQuery, isScriptProtocol } from "/app/node_modules/ufo/dist/index.mjs"; -import "/app/node_modules/klona/dist/index.mjs"; +import { hasProtocol, joinURL, parseURL, encodePath, decodePath, withQuery, isScriptProtocol, parsePath, parseQuery, withoutTrailingSlash } from "/app/node_modules/ufo/dist/index.mjs"; +import { klona } from "/app/node_modules/klona/dist/index.mjs"; +import { parse as parse$1 } from "/app/node_modules/cookie-es/dist/index.mjs"; +import destr from "/app/node_modules/destr/dist/index.mjs"; +import { isEqual } from "/app/node_modules/ohash/dist/index.mjs"; +import { useHead as useHead$1, headSymbol } from "/app/node_modules/@unhead/vue/dist/index.mjs"; +import { setupDevtoolsPlugin } from "@vue/devtools-api"; import { ssrRenderComponent, ssrRenderSuspense, ssrRenderVNode } from "vue/server-renderer"; if (!globalThis.$fetch) { globalThis.$fetch = $fetch$1.create({ @@ -212,7 +218,7 @@ function callWithNuxt(nuxt, setup, args) { function tryUseNuxtApp(id) { let nuxtAppInstance; if (hasInjectionContext()) { - nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt; + nuxtAppInstance = getCurrentInstance$1()?.appContext.app.$nuxt; } nuxtAppInstance ||= getNuxtAppCtx(id).tryUse(); return nuxtAppInstance || null; @@ -235,6 +241,9 @@ function defineGetter(obj, key, val) { } const LayoutMetaSymbol = /* @__PURE__ */ Symbol("layout-meta"); const PageRouteSymbol = /* @__PURE__ */ Symbol("route"); +function toArray$4(value) { + return Array.isArray(value) ? value : [value]; +} import.meta.url.replace(/\/app\/.*$/, "/"); const useRouter = () => { return useNuxtApp()?.$router; @@ -385,6 +394,20 @@ const createError = (error) => { }); return nuxtError; }; +function injectHead(nuxtApp) { + const nuxt = nuxtApp || tryUseNuxtApp(); + return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => { + if (hasInjectionContext()) { + return inject(headSymbol); + } + }); +} +function useHead(input, options = {}) { + const head = injectHead(options.nuxt); + if (head) { + return useHead$1(input, { head, ...options }); + } +} const matcher = (m, p) => { return []; }; @@ -433,7 +456,7 @@ const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defin nuxtApp.vueApp.use(head); } }); -function toArray$1(value) { +function toArray$3(value) { return Array.isArray(value) ? value : [value]; } const _routes = [ @@ -446,13 +469,25 @@ const _routes = [ { name: "login", path: "/login", - component: () => import("./_nuxt/login-CLIOTi6c.js") + component: () => import("./_nuxt/login-BHmaTZZZ.js") + }, + { + name: "garages", + path: "/garages", + meta: { "middleware": "auth" }, + component: () => import("./_nuxt/index-ebkVtBaw.js") + }, + { + name: "packages", + path: "/packages", + meta: { "middleware": "auth" }, + component: () => import("./_nuxt/index-BPETUF7a.js") }, { name: "permissions", path: "/permissions", meta: { "middleware": "auth" }, - component: () => import("./_nuxt/index-nGH29Vk2.js") + component: () => import("./_nuxt/index-7zBAzpaD.js") } ]; const _wrapInTransition = (props, children) => { @@ -480,7 +515,7 @@ function isChangingPage(to, from) { } return true; } -function toArray(value) { +function toArray$2(value) { return Array.isArray(value) ? value : [value]; } function _mergeTransitionProps(routeProps) { @@ -491,8 +526,8 @@ function _mergeTransitionProps(routeProps) { } _props.push({ ...prop, - onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0, - onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0 + onAfterLeave: prop.onAfterLeave ? toArray$2(prop.onAfterLeave) : void 0, + onBeforeLeave: prop.onBeforeLeave ? toArray$2(prop.onBeforeLeave) : void 0 }); } return defu(..._props); @@ -597,7 +632,7 @@ const globalMiddleware = [ manifest_45route_45rule ]; const namedMiddleware = { - auth: () => import("./_nuxt/auth-D_CY0lMs.js") + auth: () => import("./_nuxt/auth-BgwR5zMA.js") }; Object.assign(/* @__PURE__ */ Object.create(null), {}); const pageIslandRoutes = Object.assign(/* @__PURE__ */ Object.create(null), {}); @@ -716,7 +751,7 @@ const plugin$1 = /* @__PURE__ */ defineNuxtPlugin({ if (!componentMiddleware) { continue; } - for (const entry2 of toArray$1(componentMiddleware)) { + for (const entry2 of toArray$3(componentMiddleware)) { middlewareEntries.add(entry2); } } @@ -850,7 +885,7 @@ defineComponent({ ...false, setup(props, { slots, attrs }) { const mounted = shallowRef(false); - const vm = getCurrentInstance(); + const vm = getCurrentInstance$1(); if (vm) { vm._nuxtClientOnly = true; } @@ -873,6 +908,112 @@ defineComponent({ }; } }); +const useStateKeyPrefix = "$s"; +function useState(...args) { + const autoKey = typeof args[args.length - 1] === "string" ? args.pop() : void 0; + if (typeof args[0] !== "string") { + args.unshift(autoKey); + } + const [_key, init] = args; + if (!_key || typeof _key !== "string") { + throw new TypeError("[nuxt] [useState] key must be a string: " + _key); + } + if (init !== void 0 && typeof init !== "function") { + throw new Error("[nuxt] [useState] init must be a function: " + init); + } + const key = useStateKeyPrefix + _key; + const nuxtApp = useNuxtApp(); + const state = toRef(nuxtApp.payload.state, key); + if (state.value === void 0 && init) { + const initialValue = init(); + if (isRef(initialValue)) { + nuxtApp.payload.state[key] = initialValue; + return initialValue; + } + state.value = initialValue; + } + return state; +} +function useRequestEvent(nuxtApp) { + nuxtApp ||= useNuxtApp(); + return nuxtApp.ssrContext?.event; +} +function prerenderRoutes(path) { + if (!import.meta.prerender) { + return; + } + const paths = toArray$4(path); + appendHeader(useRequestEvent(), "x-nitro-prerender", paths.map((p) => encodeURIComponent(p)).join(", ")); +} +const CookieDefaults = { + path: "/", + watch: true, + decode: (val) => { + const decoded = decodeURIComponent(val); + const parsed = destr(decoded); + if (typeof parsed === "number" && (!Number.isFinite(parsed) || String(parsed) !== decoded)) { + return decoded; + } + return parsed; + }, + encode: (val) => encodeURIComponent(typeof val === "string" ? val : JSON.stringify(val)) +}; +function useCookie(name, _opts) { + const opts = { ...CookieDefaults, ..._opts }; + opts.filter ??= (key) => key === name; + const cookies = readRawCookies(opts) || {}; + let delay; + if (opts.maxAge !== void 0) { + delay = opts.maxAge * 1e3; + } else if (opts.expires) { + delay = opts.expires.getTime() - Date.now(); + } + const hasExpired = delay !== void 0 && delay <= 0; + const cookieValue = klona(hasExpired ? void 0 : cookies[name] ?? opts.default?.()); + const cookie = ref(cookieValue); + { + const nuxtApp = useNuxtApp(); + const writeFinalCookieValue = () => { + if (opts.readonly || isEqual(cookie.value, cookies[name])) { + return; + } + nuxtApp._cookies ||= {}; + if (name in nuxtApp._cookies) { + if (isEqual(cookie.value, nuxtApp._cookies[name])) { + return; + } + } + nuxtApp._cookies[name] = cookie.value; + writeServerCookie(useRequestEvent(nuxtApp), name, cookie.value, opts); + }; + const unhook = nuxtApp.hooks.hookOnce("app:rendered", writeFinalCookieValue); + nuxtApp.hooks.hookOnce("app:error", () => { + unhook(); + return writeFinalCookieValue(); + }); + } + return cookie; +} +function readRawCookies(opts = {}) { + { + return parse$1(getRequestHeader(useRequestEvent(), "cookie") || "", opts); + } +} +function writeServerCookie(event, name, value, opts = {}) { + if (event) { + if (value !== null && value !== void 0) { + return setCookie(event, name, value, opts); + } + if (getCookie(event, name) !== void 0) { + return deleteCookie(event, name, opts); + } + } +} +function useRequestURL(opts) { + { + return getRequestURL(useRequestEvent(), opts); + } +} const plugin = /* @__PURE__ */ defineNuxtPlugin({ name: "pinia", setup(nuxtApp) { @@ -899,16 +1040,5800 @@ const plugin = /* @__PURE__ */ defineNuxtPlugin({ const components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 = /* @__PURE__ */ defineNuxtPlugin({ name: "nuxt:global-components" }); +function warn(msg, err) { + if (typeof console !== "undefined") { + console.warn(`[intlify] ` + msg); + if (err) { + console.warn(err.stack); + } + } +} +const hasWarned = {}; +function warnOnce(msg) { + if (!hasWarned[msg]) { + hasWarned[msg] = true; + warn(msg); + } +} +const inBrowser = false; +if (process.env.NODE_ENV !== "production") ; +const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g; +function format$1(message, ...args) { + if (args.length === 1 && isObject(args[0])) { + args = args[0]; + } + if (!args || !args.hasOwnProperty) { + args = {}; + } + return message.replace(RE_ARGS, (match, identifier2) => { + return args.hasOwnProperty(identifier2) ? args[identifier2] : ""; + }); +} +const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name); +const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source }); +const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027"); +const isNumber = (val) => typeof val === "number" && isFinite(val); +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0; +const assign = Object.assign; +const _create = Object.create; +const create = (obj = null) => _create(obj); +let _globalThis; +const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : create()); +}; +function escapeHtml(rawText) { + return rawText.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/").replace(/=/g, "="); +} +function escapeAttributeValue(value) { + return value.replace(/&(?![a-zA-Z0-9#]{2,6};)/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">"); +} +function sanitizeTranslatedHtml(html) { + html = html.replace(/(\w+)\s*=\s*"([^"]*)"/g, (_, attrName, attrValue) => `${attrName}="${escapeAttributeValue(attrValue)}"`); + html = html.replace(/(\w+)\s*=\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`); + const eventHandlerPattern = /\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi; + if (eventHandlerPattern.test(html)) { + if (process.env.NODE_ENV !== "production") { + warn("Potentially dangerous event handlers detected in translation. Consider removing onclick, onerror, etc. from your translation messages."); + } + html = html.replace(/(\s+)(on)(\w+\s*=)/gi, "$1on$3"); + } + const javascriptUrlPattern = [ + // In href, src, action, formaction attributes + /(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi, + // In style attributes within url() + /(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi + ]; + javascriptUrlPattern.forEach((pattern) => { + html = html.replace(pattern, "$1javascript:"); + }); + return html; +} +const hasOwnProperty = Object.prototype.hasOwnProperty; +function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); +} +const isArray = Array.isArray; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isBoolean = (val) => typeof val === "boolean"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const toDisplayString = (val) => { + return val == null ? "" : isArray(val) || isPlainObject(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val); +}; +function join(items, separator2 = "") { + return items.reduce((str, item, index) => index === 0 ? str + item : str + separator2 + item, ""); +} +const RANGE = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + const lines = source.split(/\r?\n/); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + 1; + if (count >= start) { + for (let j = i - RANGE; j <= i + RANGE || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push(`${line}${" ".repeat(3 - String(line).length)}| ${lines[j]}`); + const lineLength = lines[j].length; + if (j === i) { + const pad = start - (count - lineLength) + 1; + const length = Math.max(1, end > count ? lineLength - pad : end - start); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + 1; + } + } + break; + } + } + return res.join("\n"); +} +function createEmitter() { + const events = /* @__PURE__ */ new Map(); + const emitter = { + events, + on(event, handler) { + const handlers = events.get(event); + const added = handlers && handlers.push(handler); + if (!added) { + events.set(event, [handler]); + } + }, + off(event, handler) { + const handlers = events.get(event); + if (handlers) { + handlers.splice(handlers.indexOf(handler) >>> 0, 1); + } + }, + emit(event, payload) { + (events.get(event) || []).slice().map((handler) => handler(payload)); + (events.get("*") || []).slice().map((handler) => handler(event, payload)); + } + }; + return emitter; +} +const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val); +function deepCopy(src, des) { + if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { + throw new Error("Invalid value"); + } + const stack = [{ src, des }]; + while (stack.length) { + const { src: src2, des: des2 } = stack.pop(); + Object.keys(src2).forEach((key) => { + if (key === "__proto__") { + return; + } + if (isObject(src2[key]) && !isObject(des2[key])) { + des2[key] = Array.isArray(src2[key]) ? [] : create(); + } + if (isNotObjectOrIsArray(des2[key]) || isNotObjectOrIsArray(src2[key])) { + des2[key] = src2[key]; + } else { + stack.push({ src: src2[key], des: des2[key] }); + } + }); + } +} +function localeHead$1(options, currentLanguage = options.getCurrentLanguage(), currentDirection = options.getCurrentDirection()) { + const metaObject = { + htmlAttrs: {}, + link: [], + meta: [] + }; + if (options.dir) { + metaObject.htmlAttrs.dir = currentDirection; + } + if (options.lang && currentLanguage) { + metaObject.htmlAttrs.lang = currentLanguage; + } + if (options.seo) { + const alternateLinks = getHreflangLinks(options); + metaObject.link = metaObject.link.concat( + alternateLinks, + getCanonicalLink(options) + ); + metaObject.meta = metaObject.meta.concat( + getOgUrl(options), + getCurrentOgLocale(options), + getAlternateOgLocales( + options, + options.locales.map((x) => x.language || x.code) + ) + ); + } + return metaObject; +} +function createLocaleMap(locales) { + const localeMap = /* @__PURE__ */ new Map(); + for (const locale of locales) { + if (!locale.language) { + console.warn("Locale `language` ISO code is required to generate alternate link"); + continue; + } + const [language, region] = locale.language.split("-"); + if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) { + localeMap.set(language, locale); + } + localeMap.set(locale.language, locale); + } + return localeMap; +} +function getHreflangLinks(options) { + if (!options.hreflangLinks) { + return []; + } + const links = []; + const localeMap = createLocaleMap(options.locales); + for (const [language, locale] of localeMap.entries()) { + const link = getHreflangLink(language, locale, options); + if (!link) { + continue; + } + links.push(link); + if (options.defaultLocale && options.defaultLocale === locale.code && links[0].hreflang !== "x-default") { + links.unshift( + { [options.key]: "i18n-xd", rel: "alternate", href: link.href, hreflang: "x-default" } + ); + } + } + return links; +} +function getHreflangLink(language, locale, options, routeWithoutQuery = options.strictCanonicals ? options.getRouteWithoutQuery() : void 0) { + const localePath2 = options.getLocalizedRoute(locale.code, routeWithoutQuery); + if (!localePath2) { + return void 0; + } + const href = withQuery( + hasProtocol(localePath2) ? localePath2 : joinURL(options.baseUrl, localePath2), + options.strictCanonicals ? getCanonicalQueryParams(options) : {} + ); + return { [options.key]: `i18n-alt-${language}`, rel: "alternate", href, hreflang: language }; +} +function getCanonicalUrl(options, route = options.getCurrentRoute()) { + const currentRoute = options.getLocaleRoute( + Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) }) + ); + if (!currentRoute) { + return ""; + } + return withQuery(joinURL(options.baseUrl, currentRoute.path), getCanonicalQueryParams(options)); +} +function getCanonicalLink(options, href = getCanonicalUrl(options)) { + if (!href) { + return []; + } + return [{ [options.key]: "i18n-can", rel: "canonical", href }]; +} +function getCanonicalQueryParams(options, route = options.getCurrentRoute()) { + const currentRoute = options.getLocaleRoute( + Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) }) + ); + const currentRouteQuery = currentRoute?.query ?? {}; + const params = {}; + for (const param of options.canonicalQueries.filter((x) => x in currentRouteQuery)) { + params[param] ??= []; + for (const val of toArray$1(currentRouteQuery[param])) { + params[param].push(val || ""); + } + } + return params; +} +function getOgUrl(options, href = getCanonicalUrl(options)) { + if (!href) { + return []; + } + return [ + { [options.key]: "i18n-og-url", property: "og:url", content: href } + ]; +} +function getCurrentOgLocale(options, currentLanguage = options.getCurrentLanguage()) { + if (!currentLanguage) { + return []; + } + return [ + { [options.key]: "i18n-og", property: "og:locale", content: formatOgLanguage(currentLanguage) } + ]; +} +function getAlternateOgLocales(options, languages, currentLanguage = options.getCurrentLanguage()) { + const alternateLocales = languages.filter((locale) => locale && locale !== currentLanguage); + return alternateLocales.map( + (locale) => ({ + [options.key]: `i18n-og-alt-${locale}`, + property: "og:locale:alternate", + content: formatOgLanguage(locale) + }) + ); +} +function formatOgLanguage(val = "") { + return val.replace(/-/g, "_"); +} +function toArray$1(value) { + return Array.isArray(value) ? value : [value]; +} +function localePath(ctx, route, locale = ctx.getLocale()) { + if (isString(route) && hasProtocol(route, { acceptRelative: true })) { + return route; + } + try { + return resolveRoute(ctx, route, locale).fullPath; + } catch { + return ""; + } +} +function localeRoute(ctx, route, locale = ctx.getLocale()) { + try { + return resolveRoute(ctx, route, locale); + } catch { + return; + } +} +function normalizeRawLocation(route) { + if (!isString(route)) { + return assign({}, route); + } + if (route[0] === "/") { + const { pathname: path, search, hash } = parsePath(route); + return { path, query: parseQuery(search), hash }; + } + return { name: route }; +} +function resolveRoute(ctx, route, locale) { + const normalized = normalizeRawLocation(route); + const resolved = ctx.router.resolve(ctx.resolveLocalizedRouteObject(normalized, locale)); + if (resolved.name) { + return resolved; + } + return ctx.router.resolve(route); +} +function switchLocalePath(ctx, locale, route = ctx.router.currentRoute.value) { + const name = ctx.getRouteBaseName(route); + if (!name) { + return ""; + } + const routeCopy = { + name, + params: assign( + {}, + route.params, + ctx.getLocalizedDynamicParams(locale) + ), + fullPath: route.fullPath, + query: route.query, + hash: route.hash, + path: route.path, + meta: route.meta + }; + const path = localePath(ctx, routeCopy, locale); + return ctx.afterSwitchLocalePath(path, locale); +} +function createHeadContext(ctx, config, locale = ctx.getLocale(), locales = ctx.getLocales(), baseUrl = ctx.getBaseUrl()) { + const currentLocale = locales.find((l) => l.code === locale) || {}; + const canonicalQueries = typeof config.seo === "object" && config.seo?.canonicalQueries || []; + if (!baseUrl && true && true) { + console.warn("I18n `baseUrl` is required to generate valid SEO tag links."); + } + return { + ...config, + key: "id", + locales, + baseUrl, + canonicalQueries, + hreflangLinks: ctx.routingOptions.hreflangLinks, + defaultLocale: ctx.routingOptions.defaultLocale, + strictCanonicals: ctx.routingOptions.strictCanonicals, + getRouteBaseName: ctx.getRouteBaseName, + getCurrentRoute: () => ctx.router.currentRoute.value, + getCurrentLanguage: () => currentLocale.language, + getCurrentDirection: () => currentLocale.dir || "ltr", + getLocaleRoute: (route) => localeRoute(ctx, route), + getLocalizedRoute: (locale2, route) => switchLocalePath(ctx, locale2, route), + getRouteWithoutQuery: () => { + try { + return assign({}, ctx.router.resolve({ query: {} }), { meta: ctx.router.currentRoute.value.meta }); + } catch { + return void 0; + } + } + }; +} +function localeHead(ctx, { dir = true, lang = true, seo = true }) { + return localeHead$1(createHeadContext(ctx, { dir, lang, seo })); +} +function parseAcceptLanguage(value) { + return value.split(",").map((tag) => tag.split(";")[0]).filter( + (tag) => !(tag === "*" || tag === "") + ); +} +function createPathIndexLanguageParser(index = 0) { + return (path) => { + const rawPath = typeof path === "string" ? path : path.pathname; + const normalizedPath = rawPath.split("?")[0]; + const parts = normalizedPath.split("/"); + if (parts[0] === "") { + parts.shift(); + } + return parts.length > index ? parts[index] || "" : ""; + }; +} +const separator = "___"; +function normalizeRouteName(routeName) { + if (typeof routeName === "string") { + return routeName; + } + if (routeName != null) { + return routeName.toString(); + } + return ""; +} +function getRouteBaseName(route) { + return normalizeRouteName(typeof route === "object" ? route?.name : route).split(separator)[0]; +} +const pathLanguageParser = createPathIndexLanguageParser(0); +const getLocaleFromRoutePath = (path) => pathLanguageParser(path); +const getLocaleFromRouteName = (name) => name.split(separator).at(1) ?? ""; +function normalizeInput(input) { + return typeof input !== "object" ? String(input) : String(input?.name || input?.path || ""); +} +function getLocaleFromRoute(route) { + const input = normalizeInput(route); + if (input[0] === "/") { + return getLocaleFromRoutePath(input); + } + const fromName = getLocaleFromRouteName(input); + if (fromName) { + return fromName; + } + if (typeof route === "object" && route?.path) { + return getLocaleFromRoutePath(String(route.path)); + } + return ""; +} +function createLocaleRouteNameGetter(defaultLocale) { + { + return (routeName) => normalizeRouteName(routeName); + } +} +function createLocalizedRouteByPathResolver(router) { + { + return (route) => route; + } +} +const localeCodes = [ + "hu", + "en" +]; +const localeLoaders = { + hu: [ + { + key: "locale_hu_46json_ee06c965", + load: () => import( + "./_nuxt/hu-CoGcC81v.js" + /* webpackChunkName: "locale_hu_46json_ee06c965" */ + ), + cache: true + } + ], + en: [ + { + key: "locale_en_46json_0b63539c", + load: () => import( + "./_nuxt/en-BScPj1A-.js" + /* webpackChunkName: "locale_en_46json_0b63539c" */ + ), + cache: true + } + ] +}; +const vueI18nConfigs = []; +const normalizedLocales = [ + { + code: "hu", + iso: "hu-HU", + name: "Magyar", + language: void 0 + }, + { + code: "en", + iso: "en-GB", + name: "English", + language: void 0 + } +]; +const cacheMessages = /* @__PURE__ */ new Map(); +const merger = createDefu((obj, key, value) => { + if (key === "messages" || key === "datetimeFormats" || key === "numberFormats") { + obj[key] ??= create(null); + deepCopy(value, obj[key]); + return true; + } +}); +async function loadVueI18nOptions(vueI18nConfigs2) { + const nuxtApp = useNuxtApp(); + let vueI18nOptions = { messages: create(null) }; + for (const configFile of vueI18nConfigs2) { + const resolver = await configFile().then((x) => isModule(x) ? x.default : x); + const resolved = isFunction(resolver) ? await nuxtApp.runWithContext(() => resolver()) : resolver; + vueI18nOptions = merger(create(null), resolved, vueI18nOptions); + } + vueI18nOptions.fallbackLocale ??= false; + return vueI18nOptions; +} +const isModule = (val) => toTypeString(val) === "[object Module]"; +async function getLocaleMessages$1(locale, loader) { + const nuxtApp = useNuxtApp(); + try { + const getter = await nuxtApp.runWithContext(loader.load).then((x) => isModule(x) ? x.default : x); + return isFunction(getter) ? await nuxtApp.runWithContext(() => getter(locale)) : getter; + } catch (e) { + throw new Error(`Failed loading locale (${locale}): ` + e.message); + } +} +async function getLocaleMessagesMergedCached(locale, loaders = []) { + const nuxtApp = useNuxtApp(); + const messages = await Promise.all(loaders.map(async (loader) => { + const cached = getCachedMessages(loader); + const messages2 = cached || await nuxtApp.runWithContext(() => getLocaleMessages$1(locale, loader)); + if (!cached && loader.cache !== false) { + cacheMessages.set(loader.key, { ttl: Date.now() + 86400 * 1e3, value: messages2 }); + } + return messages2; + })); + const merged = {}; + for (const message of messages) { + deepCopy(message, merged); + } + return merged; +} +function getCachedMessages(loader) { + if (loader.cache === false) { + return; + } + const cache2 = cacheMessages.get(loader.key); + if (cache2 == null) { + return; + } + return cache2.ttl > Date.now() ? cache2.value : void 0; +} +function getI18nTarget(i18n) { + return i18n != null && "global" in i18n && "mode" in i18n ? i18n.global : i18n; +} +function getComposer$3(i18n) { + const target = getI18nTarget(i18n); + return "__composer" in target ? target.__composer : target; +} +function useRuntimeI18n(nuxtApp, event) { + if (!nuxtApp) { + return (/* @__PURE__ */ useRuntimeConfig()).public.i18n; + } + return nuxtApp.$config.public.i18n; +} +function useI18nDetection(nuxtApp) { + const detectBrowserLanguage = useRuntimeI18n(nuxtApp).detectBrowserLanguage; + const detect = detectBrowserLanguage || {}; + return { + ...detect, + enabled: !!detectBrowserLanguage, + cookieKey: detect.cookieKey || "i18n_redirected" + }; +} +function resolveRootRedirect(config) { + if (!config) { + return void 0; + } + return { + path: "/" + (isString(config) ? config : config.path).replace(/^\//, ""), + code: !isString(config) && config.statusCode || 302 + }; +} +function toArray(value) { + return Array.isArray(value) ? value : [value]; +} +function matchDomainLocale(locales, host, pathLocale) { + const normalizeDomain = (domain = "") => domain.replace(/https?:\/\//, ""); + const matches = locales.filter( + (locale) => normalizeDomain(locale.domain) === host || toArray(locale.domains).includes(host) + ); + if (matches.length <= 1) { + return matches[0]?.code; + } + return ( + // match by current path locale + matches.find((l) => l.code === pathLocale)?.code || matches.find((l) => l.defaultForDomains?.includes(host) ?? l.domainDefault)?.code + ); +} +function domainFromLocale(domainLocales, url, locale) { + const lang = normalizedLocales.find((x) => x.code === locale); + const domain = domainLocales?.[locale]?.domain || lang?.domain || lang?.domains?.find((v) => v === url.host); + if (!domain) { + return; + } + if (hasProtocol(domain, { strict: true })) { + return domain; + } + return url.protocol + "//" + domain; +} +function getDefaultLocaleForDomain(host) { + return normalizedLocales.find((l) => !!l.defaultForDomains?.includes(host))?.code; +} +const isSupportedLocale = (locale) => localeCodes.includes(locale || ""); +const resolveSupportedLocale = (locale) => isSupportedLocale(locale) ? locale : void 0; +var define_I18N_LOCALE_HASHES_default$1 = { hu: "349b7781", en: "349b7781" }; +const useLocaleConfigs = () => useState( + "i18n:cached-locale-configs", + () => void 0 +); +const useResolvedLocale = () => useState("i18n:resolved-locale", () => ""); +function useI18nCookie({ cookieCrossOrigin, cookieDomain, cookieSecure, cookieKey }) { + const date = /* @__PURE__ */ new Date(); + return useCookie(cookieKey || "i18n_redirected", { + path: "/", + readonly: false, + expires: new Date(date.setDate(date.getDate() + 365)), + sameSite: cookieCrossOrigin ? "none" : "lax", + domain: cookieDomain || void 0, + secure: cookieCrossOrigin || cookieSecure + }); +} +function createNuxtI18nContext(nuxt, vueI18n, defaultLocale) { + const i18n = getI18nTarget(vueI18n); + const runtimeI18n = useRuntimeI18n(nuxt); + const detectConfig = useI18nDetection(nuxt); + const serverLocaleConfigs = useLocaleConfigs(); + const localeCookie = useI18nCookie(detectConfig); + const loadMap = /* @__PURE__ */ new Set(); + const getLocaleConfig = (locale) => serverLocaleConfigs.value[locale]; + const getDomainFromLocale = (locale) => domainFromLocale(runtimeI18n.domainLocales, useRequestURL({ xForwardedHost: true }), locale); + const baseUrl = createBaseUrlGetter(nuxt, runtimeI18n.baseUrl); + const resolvedLocale = useResolvedLocale(); + if (nuxt.ssrContext?.event?.context?.nuxtI18n?.detectLocale) { + resolvedLocale.value = nuxt.ssrContext.event.context.nuxtI18n.detectLocale; + } + const loadMessagesFromClient = async (locale) => { + const locales = getLocaleConfig(locale)?.fallbacks ?? []; + if (!locales.includes(locale)) { + locales.push(locale); + } + for (const k of locales) { + const msg = await nuxt.runWithContext(() => getLocaleMessagesMergedCached(k, localeLoaders[k])); + i18n.mergeLocaleMessage(k, msg); + } + }; + const loadMessagesFromServer = async (locale) => { + if (locale in localeLoaders === false) { + return; + } + const headers = getLocaleConfig(locale)?.cacheable ? {} : { "Cache-Control": "no-cache" }; + const prefix = ""; + const url = joinURL(prefix, "/_i18n", define_I18N_LOCALE_HASHES_default$1[locale], locale, "messages.json"); + const messages = await $fetch(url, { headers }); + for (const k of Object.keys(messages)) { + i18n.mergeLocaleMessage(k, messages[k]); + } + }; + const ctx = { + vueI18n, + initial: true, + preloaded: false, + config: runtimeI18n, + rootRedirect: resolveRootRedirect(runtimeI18n.rootRedirect), + redirectStatusCode: runtimeI18n.redirectStatusCode ?? 302, + dynamicResourcesSSG: false, + getDefaultLocale: () => defaultLocale, + getLocale: () => unref(i18n.locale), + setLocale: async (locale) => { + const oldLocale = ctx.getLocale(); + if (locale === oldLocale || !isSupportedLocale(locale)) { + return; + } + if (isRef(i18n.locale)) { + i18n.locale.value = locale; + } else { + i18n.locale = locale; + } + await nuxt.callHook("i18n:localeSwitched", { newLocale: locale, oldLocale }); + resolvedLocale.value = locale; + }, + setLocaleSuspend: async (locale) => { + if (!isSupportedLocale(locale)) { + return; + } + ctx.vueI18n.__pendingLocale = locale; + ctx.vueI18n.__pendingLocalePromise = new Promise((resolve) => { + ctx.vueI18n.__resolvePendingLocalePromise = async () => { + ctx.setCookieLocale(locale); + await ctx.setLocale(locale); + ctx.vueI18n.__pendingLocale = void 0; + resolve(); + }; + }); + { + await ctx.vueI18n.__resolvePendingLocalePromise?.(); + } + }, + getLocales: () => unref(i18n.locales).map((x) => isString(x) ? { code: x } : x), + setCookieLocale: (locale) => { + if (detectConfig.useCookie && isSupportedLocale(locale)) { + localeCookie.value = locale; + } + }, + getBaseUrl: (locale) => { + if (locale) { + return joinURL(getDomainFromLocale(locale) || baseUrl(), nuxt.$config.app.baseURL); + } + return joinURL(baseUrl(), nuxt.$config.app.baseURL); + }, + loadMessages: async (locale) => { + if (nuxt.isHydrating && loadMap.has(locale)) { + return; + } + try { + return ctx.dynamicResourcesSSG || false ? await loadMessagesFromClient(locale) : await loadMessagesFromServer(locale); + } catch (e) { + console.warn(`Failed to load messages for locale "${locale}"`, e); + } finally { + loadMap.add(locale); + } + }, + composableCtx: void 0 + }; + ctx.composableCtx = createComposableContext(ctx, nuxt); + return ctx; +} +function useNuxtI18nContext(nuxt) { + if (nuxt._nuxtI18n == null) { + throw new Error("Nuxt I18n context has not been set up yet."); + } + return nuxt._nuxtI18n; +} +function matchBrowserLocale(locales, browserLocales) { + const matchedLocales = []; + for (const [index, browserCode] of browserLocales.entries()) { + const matchedLocale = locales.find((l) => l.language?.toLowerCase() === browserCode.toLowerCase()); + if (matchedLocale) { + matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length }); + break; + } + } + for (const [index, browserCode] of browserLocales.entries()) { + const languageCode = browserCode.split("-")[0].toLowerCase(); + const matchedLocale = locales.find((l) => l.language?.split("-")[0].toLowerCase() === languageCode); + if (matchedLocale) { + matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length }); + break; + } + } + return matchedLocales; +} +function compareBrowserLocale(a, b) { + if (a.score === b.score) { + return b.code.length - a.code.length; + } + return b.score - a.score; +} +function findBrowserLocale(locales, browserLocales) { + const matchedLocales = matchBrowserLocale( + locales.map((l) => ({ code: l.code, language: l.language || l.code })), + browserLocales + ); + return matchedLocales.sort(compareBrowserLocale).at(0)?.code ?? ""; +} +const getCookieLocale = (event, cookieName) => getCookie(event, cookieName) || void 0; +const getRouteLocale = (event, route) => getLocaleFromRoute(route); +const getHeaderLocale = (event) => findBrowserLocale(normalizedLocales, parseAcceptLanguage(getRequestHeader(event, "accept-language") || "")); +const getHostLocale = (event, path, domainLocales) => { + const host = getRequestURL(event, { xForwardedHost: true }).host; + const locales = normalizedLocales.map((l) => ({ + ...l, + domain: domainLocales[l.code]?.domain ?? l.domain + })); + return matchDomainLocale(locales, host, getLocaleFromRoutePath(path)); +}; +const useDetectors = (event, config, nuxtApp) => { + if (!event) { + throw new Error("H3Event is required for server-side locale detection"); + } + const runtimeI18n = useRuntimeI18n(nuxtApp); + return { + cookie: () => getCookieLocale(event, config.cookieKey), + header: () => getHeaderLocale(event), + navigator: () => void 0, + host: (path) => getHostLocale(event, path, runtimeI18n.domainLocales), + route: (path) => getRouteLocale(event, path) + }; +}; +const isRouteLocationPathRaw = (val) => !!val.path && !val.name; +function useComposableContext(nuxtApp) { + const context = nuxtApp?._nuxtI18n?.composableCtx; + if (!context) { + throw new Error( + "i18n context is not initialized. Ensure the i18n plugin is installed and the composable is used within a Vue component or setup function." + ); + } + return context; +} +const formatTrailingSlash = withoutTrailingSlash; +function createComposableContext(ctx, nuxtApp = useNuxtApp()) { + const router = useRouter(); + useDetectors(useRequestEvent(), useI18nDetection(nuxtApp), nuxtApp); + const defaultLocale = ctx.getDefaultLocale(); + const getLocalizedRouteName = createLocaleRouteNameGetter(); + function resolveLocalizedRouteByName(route, locale) { + route.name = getRouteBaseName(route.name || router.currentRoute.value); + const localizedName = getLocalizedRouteName(route.name, locale); + if (router.hasRoute(localizedName)) { + route.name = localizedName; + } + route.name = localizedName; + return route; + } + const routeByPathResolver = createLocalizedRouteByPathResolver(); + function resolveLocalizedRouteByPath(input, locale) { + const route = routeByPathResolver(input, locale); + const baseName = getRouteBaseName(route); + if (baseName) { + const localizedName = getLocalizedRouteName(baseName, locale); + if (router.hasRoute(localizedName)) { + route.name = localizedName; + return route; + } + route.name = localizedName; + return route; + } + route.path = formatTrailingSlash(route.path, true); + return route; + } + const composableCtx = { + router, + _head: void 0, + get head() { + this._head ??= useHead({}); + return this._head; + }, + metaState: { htmlAttrs: {}, meta: [], link: [] }, + seoSettings: { + dir: false, + lang: false, + seo: false + }, + localePathPayload: getLocalePathPayload(), + routingOptions: { + defaultLocale, + strictCanonicals: ctx.config.experimental.alternateLinkCanonicalQueries ?? true, + hreflangLinks: false + }, + getLocale: ctx.getLocale, + getLocales: ctx.getLocales, + getBaseUrl: ctx.getBaseUrl, + getRouteBaseName, + getRouteLocalizedParams: () => router.currentRoute.value.meta["nuxtI18nInternal"] ?? {}, + getLocalizedDynamicParams: (locale) => { + return composableCtx.getRouteLocalizedParams()?.[locale]; + }, + afterSwitchLocalePath: (path, locale) => { + composableCtx.getRouteLocalizedParams(); + return path; + }, + resolveLocalizedRouteObject: (route, locale) => { + return isRouteLocationPathRaw(route) ? resolveLocalizedRouteByPath(route, locale) : resolveLocalizedRouteByName(route, locale); + } + }; + return composableCtx; +} +function getLocalePathPayload(nuxtApp = useNuxtApp()) { + return JSON.parse("{}"); +} +async function loadAndSetLocale(nuxtApp, locale) { + const ctx = useNuxtI18nContext(nuxtApp); + const oldLocale = ctx.getLocale(); + if (locale === oldLocale && !ctx.initial && (!ctx.vueI18n.__pendingLocale || ctx.vueI18n.__pendingLocale === locale)) { + return locale; + } + const data = { oldLocale, newLocale: locale, initialSetup: ctx.initial, context: nuxtApp }; + let override = await nuxtApp.callHook("i18n:beforeLocaleSwitch", data); + if (override != null && false) { + console.warn("[nuxt-i18n] Do not return in `i18n:beforeLocaleSwitch`, mutate `data.newLocale` instead."); + } + override ??= data.newLocale; + if (isSupportedLocale(override)) { + locale = override; + } + await ctx.loadMessages(locale); + await ctx.setLocaleSuspend(locale); + return locale; +} +function skipDetect(detect, path, pathLocale) { + { + return false; + } +} +function detectLocale(nuxtApp, route) { + const detectConfig = useI18nDetection(nuxtApp); + const detectors = useDetectors(useRequestEvent(nuxtApp), detectConfig, nuxtApp); + const ctx = useNuxtI18nContext(nuxtApp); + const path = isString(route) ? route : route.path; + function* detect() { + if (ctx.initial && detectConfig.enabled && !skipDetect(detectConfig, path, detectors.route(path))) { + yield detectors.cookie(); + yield detectors.header(); + yield detectors.navigator(); + yield detectConfig.fallbackLocale; + } + } + for (const detected of detect()) { + if (detected && isSupportedLocale(detected)) { + return detected; + } + } + return ctx.getLocale() || ctx.getDefaultLocale() || ""; +} +function navigate(nuxtApp, to, locale) { + { + return; + } +} +function createBaseUrlGetter(nuxt, baseUrl, defaultLocale, getDomainFromLocale) { + if (isFunction(baseUrl)) { + return () => baseUrl(nuxt); + } + return () => { + return baseUrl ?? ""; + }; +} +function createPosition(line, column, offset) { + return { line, column, offset }; +} +function createLocation(start, end, source) { + const loc = { start, end }; + return loc; +} +const CompileErrorCodes = { + // tokenizer error codes + EXPECTED_TOKEN: 1, + INVALID_TOKEN_IN_PLACEHOLDER: 2, + UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3, + UNKNOWN_ESCAPE_SEQUENCE: 4, + INVALID_UNICODE_ESCAPE_SEQUENCE: 5, + UNBALANCED_CLOSING_BRACE: 6, + UNTERMINATED_CLOSING_BRACE: 7, + EMPTY_PLACEHOLDER: 8, + NOT_ALLOW_NEST_PLACEHOLDER: 9, + INVALID_LINKED_FORMAT: 10, + // parser error codes + MUST_HAVE_MESSAGES_IN_PLURAL: 11, + UNEXPECTED_EMPTY_LINKED_MODIFIER: 12, + UNEXPECTED_EMPTY_LINKED_KEY: 13, + UNEXPECTED_LEXICAL_ANALYSIS: 14, + // generator error codes + UNHANDLED_CODEGEN_NODE_TYPE: 15, + // minifier error codes + UNHANDLED_MINIFIER_NODE_TYPE: 16 +}; +const COMPILE_ERROR_CODES_EXTEND_POINT = 17; +const errorMessages$2 = { + // tokenizer error messages + [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`, + [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`, + [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`, + [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\{0}`, + [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`, + [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`, + [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`, + [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`, + [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`, + [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`, + // parser error messages + [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`, + [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`, + // generator error messages + [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`, + // minimizer error messages + [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'` +}; +function createCompileError(code, loc, options = {}) { + const { domain, messages, args } = options; + const msg = process.env.NODE_ENV !== "production" ? format$1((messages || errorMessages$2)[code] || "", ...args || []) : code; + const error = new SyntaxError(String(msg)); + error.code = code; + if (loc) { + error.location = loc; + } + error.domain = domain; + return error; +} +function defaultOnError(error) { + throw error; +} +const RE_HTML_TAG = /<\/?[\w\s="/.':;#-\/]+>/; +const detectHtmlTag = (source) => RE_HTML_TAG.test(source); +const CHAR_SP = " "; +const CHAR_CR = "\r"; +const CHAR_LF = "\n"; +const CHAR_LS = String.fromCharCode(8232); +const CHAR_PS = String.fromCharCode(8233); +function createScanner(str) { + const _buf = str; + let _index = 0; + let _line = 1; + let _column = 1; + let _peekOffset = 0; + const isCRLF = (index2) => _buf[index2] === CHAR_CR && _buf[index2 + 1] === CHAR_LF; + const isLF = (index2) => _buf[index2] === CHAR_LF; + const isPS = (index2) => _buf[index2] === CHAR_PS; + const isLS = (index2) => _buf[index2] === CHAR_LS; + const isLineEnd = (index2) => isCRLF(index2) || isLF(index2) || isPS(index2) || isLS(index2); + const index = () => _index; + const line = () => _line; + const column = () => _column; + const peekOffset = () => _peekOffset; + const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset]; + const currentChar = () => charAt(_index); + const currentPeek = () => charAt(_index + _peekOffset); + function next() { + _peekOffset = 0; + if (isLineEnd(_index)) { + _line++; + _column = 0; + } + if (isCRLF(_index)) { + _index++; + } + _index++; + _column++; + return _buf[_index]; + } + function peek() { + if (isCRLF(_index + _peekOffset)) { + _peekOffset++; + } + _peekOffset++; + return _buf[_index + _peekOffset]; + } + function reset() { + _index = 0; + _line = 1; + _column = 1; + _peekOffset = 0; + } + function resetPeek(offset = 0) { + _peekOffset = offset; + } + function skipToPeek() { + const target = _index + _peekOffset; + while (target !== _index) { + next(); + } + _peekOffset = 0; + } + return { + index, + line, + column, + peekOffset, + charAt, + currentChar, + currentPeek, + next, + peek, + reset, + resetPeek, + skipToPeek + }; +} +const EOF = void 0; +const DOT = "."; +const LITERAL_DELIMITER = "'"; +const ERROR_DOMAIN$3 = "tokenizer"; +function createTokenizer(source, options = {}) { + const location = options.location !== false; + const _scnr = createScanner(source); + const currentOffset = () => _scnr.index(); + const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index()); + const _initLoc = currentPosition(); + const _initOffset = currentOffset(); + const _context = { + currentType: 13, + offset: _initOffset, + startLoc: _initLoc, + endLoc: _initLoc, + lastType: 13, + lastOffset: _initOffset, + lastStartLoc: _initLoc, + lastEndLoc: _initLoc, + braceNest: 0, + inLinked: false, + text: "" + }; + const context = () => _context; + const { onError } = options; + function emitError(code, pos, offset, ...args) { + const ctx = context(); + pos.column += offset; + pos.offset += offset; + if (onError) { + const loc = location ? createLocation(ctx.startLoc, pos) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$3, + args + }); + onError(err); + } + } + function getToken(context2, type, value) { + context2.endLoc = currentPosition(); + context2.currentType = type; + const token = { type }; + if (location) { + token.loc = createLocation(context2.startLoc, context2.endLoc); + } + if (value != null) { + token.value = value; + } + return token; + } + const getEndToken = (context2) => getToken( + context2, + 13 + /* TokenTypes.EOF */ + ); + function eat(scnr, ch) { + if (scnr.currentChar() === ch) { + scnr.next(); + return ch; + } else { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + return ""; + } + } + function peekSpaces(scnr) { + let buf = ""; + while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) { + buf += scnr.currentPeek(); + scnr.peek(); + } + return buf; + } + function skipSpaces(scnr) { + const buf = peekSpaces(scnr); + scnr.skipToPeek(); + return buf; + } + function isIdentifierStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc === 95; + } + function isNumberStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; + } + function isNamedIdentifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isListIdentifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ch = scnr.currentPeek() === "-" ? scnr.peek() : scnr.currentPeek(); + const ret = isNumberStart(ch); + scnr.resetPeek(); + return ret; + } + function isLiteralStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === LITERAL_DELIMITER; + scnr.resetPeek(); + return ret; + } + function isLinkedDotStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 7) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === "."; + scnr.resetPeek(); + return ret; + } + function isLinkedModifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 8) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isLinkedDelimiterStart(scnr, context2) { + const { currentType } = context2; + if (!(currentType === 7 || currentType === 11)) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === ":"; + scnr.resetPeek(); + return ret; + } + function isLinkedReferStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 9) { + return false; + } + const fn = () => { + const ch = scnr.currentPeek(); + if (ch === "{") { + return isIdentifierStart(scnr.peek()); + } else if (ch === "@" || ch === "|" || ch === ":" || ch === "." || ch === CHAR_SP || !ch) { + return false; + } else if (ch === CHAR_LF) { + scnr.peek(); + return fn(); + } else { + return isTextStart(scnr, false); + } + }; + const ret = fn(); + scnr.resetPeek(); + return ret; + } + function isPluralStart(scnr) { + peekSpaces(scnr); + const ret = scnr.currentPeek() === "|"; + scnr.resetPeek(); + return ret; + } + function isTextStart(scnr, reset = true) { + const fn = (hasSpace = false, prev = "") => { + const ch = scnr.currentPeek(); + if (ch === "{") { + return hasSpace; + } else if (ch === "@" || !ch) { + return hasSpace; + } else if (ch === "|") { + return !(prev === CHAR_SP || prev === CHAR_LF); + } else if (ch === CHAR_SP) { + scnr.peek(); + return fn(true, CHAR_SP); + } else if (ch === CHAR_LF) { + scnr.peek(); + return fn(true, CHAR_LF); + } else { + return true; + } + }; + const ret = fn(); + reset && scnr.resetPeek(); + return ret; + } + function takeChar(scnr, fn) { + const ch = scnr.currentChar(); + if (ch === EOF) { + return EOF; + } + if (fn(ch)) { + scnr.next(); + return ch; + } + return null; + } + function isIdentifier(ch) { + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc >= 48 && cc <= 57 || // 0-9 + cc === 95 || // _ + cc === 36; + } + function takeIdentifierChar(scnr) { + return takeChar(scnr, isIdentifier); + } + function isNamedIdentifier(ch) { + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc >= 48 && cc <= 57 || // 0-9 + cc === 95 || // _ + cc === 36 || // $ + cc === 45; + } + function takeNamedIdentifierChar(scnr) { + return takeChar(scnr, isNamedIdentifier); + } + function isDigit(ch) { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; + } + function takeDigit(scnr) { + return takeChar(scnr, isDigit); + } + function isHexDigit(ch) { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57 || // 0-9 + cc >= 65 && cc <= 70 || // A-F + cc >= 97 && cc <= 102; + } + function takeHexDigit(scnr) { + return takeChar(scnr, isHexDigit); + } + function getDigits(scnr) { + let ch = ""; + let num = ""; + while (ch = takeDigit(scnr)) { + num += ch; + } + return num; + } + function readText(scnr) { + let buf = ""; + while (true) { + const ch = scnr.currentChar(); + if (ch === "\\") { + const nextCh = scnr.peek(); + if (nextCh === "{" || nextCh === "}" || nextCh === "@" || nextCh === "|" || nextCh === "\\") { + buf += ch + nextCh; + scnr.next(); + scnr.next(); + } else { + scnr.resetPeek(); + buf += ch; + scnr.next(); + } + } else if (ch === "{" || ch === "}" || ch === "@" || ch === "|" || !ch) { + break; + } else if (ch === CHAR_SP || ch === CHAR_LF) { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } else if (isPluralStart(scnr)) { + break; + } else { + buf += ch; + scnr.next(); + } + } else { + buf += ch; + scnr.next(); + } + } + return buf; + } + function readNamedIdentifier(scnr) { + skipSpaces(scnr); + let ch = ""; + let name = ""; + while (ch = takeNamedIdentifierChar(scnr)) { + name += ch; + } + const currentChar = scnr.currentChar(); + if (currentChar && currentChar !== "}" && currentChar !== EOF && currentChar !== CHAR_SP && currentChar !== CHAR_LF && currentChar !== " ") { + const invalidPart = readInvalidIdentifier(scnr); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart); + return name + invalidPart; + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return name; + } + function readListIdentifier(scnr) { + skipSpaces(scnr); + let value = ""; + if (scnr.currentChar() === "-") { + scnr.next(); + value += `-${getDigits(scnr)}`; + } else { + value += getDigits(scnr); + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return value; + } + function isLiteral2(ch) { + return ch !== LITERAL_DELIMITER && ch !== CHAR_LF; + } + function readLiteral(scnr) { + skipSpaces(scnr); + eat(scnr, `'`); + let ch = ""; + let literal = ""; + while (ch = takeChar(scnr, isLiteral2)) { + if (ch === "\\") { + literal += readEscapeSequence(scnr); + } else { + literal += ch; + } + } + const current = scnr.currentChar(); + if (current === CHAR_LF || current === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0); + if (current === CHAR_LF) { + scnr.next(); + eat(scnr, `'`); + } + return literal; + } + eat(scnr, `'`); + return literal; + } + function readEscapeSequence(scnr) { + const ch = scnr.currentChar(); + switch (ch) { + case "\\": + case `'`: + scnr.next(); + return `\\${ch}`; + case "u": + return readUnicodeEscapeSequence(scnr, ch, 4); + case "U": + return readUnicodeEscapeSequence(scnr, ch, 6); + default: + emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch); + return ""; + } + } + function readUnicodeEscapeSequence(scnr, unicode, digits) { + eat(scnr, unicode); + let sequence = ""; + for (let i = 0; i < digits; i++) { + const ch = takeHexDigit(scnr); + if (!ch) { + emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`); + break; + } + sequence += ch; + } + return `\\${unicode}${sequence}`; + } + function isInvalidIdentifier(ch) { + return ch !== "{" && ch !== "}" && ch !== CHAR_SP && ch !== CHAR_LF; + } + function readInvalidIdentifier(scnr) { + skipSpaces(scnr); + let ch = ""; + let identifiers = ""; + while (ch = takeChar(scnr, isInvalidIdentifier)) { + identifiers += ch; + } + return identifiers; + } + function readLinkedModifier(scnr) { + let ch = ""; + let name = ""; + while (ch = takeIdentifierChar(scnr)) { + name += ch; + } + return name; + } + function readLinkedRefer(scnr) { + const fn = (buf) => { + const ch = scnr.currentChar(); + if (ch === "{" || ch === "@" || ch === "|" || ch === "(" || ch === ")" || !ch) { + return buf; + } else if (ch === CHAR_SP) { + return buf; + } else if (ch === CHAR_LF || ch === DOT) { + buf += ch; + scnr.next(); + return fn(buf); + } else { + buf += ch; + scnr.next(); + return fn(buf); + } + }; + return fn(""); + } + function readPlural(scnr) { + skipSpaces(scnr); + const plural = eat( + scnr, + "|" + /* TokenChars.Pipe */ + ); + skipSpaces(scnr); + return plural; + } + function readTokenInPlaceholder(scnr, context2) { + let token = null; + const ch = scnr.currentChar(); + switch (ch) { + case "{": + if (context2.braceNest >= 1) { + emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken( + context2, + 2, + "{" + /* TokenChars.BraceLeft */ + ); + skipSpaces(scnr); + context2.braceNest++; + return token; + case "}": + if (context2.braceNest > 0 && context2.currentType === 2) { + emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken( + context2, + 3, + "}" + /* TokenChars.BraceRight */ + ); + context2.braceNest--; + context2.braceNest > 0 && skipSpaces(scnr); + if (context2.inLinked && context2.braceNest === 0) { + context2.inLinked = false; + } + return token; + case "@": + if (context2.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = readTokenInLinked(scnr, context2) || getEndToken(context2); + context2.braceNest = 0; + return token; + default: { + let validNamedIdentifier = true; + let validListIdentifier = true; + let validLiteral = true; + if (isPluralStart(scnr)) { + if (context2.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (context2.braceNest > 0 && (context2.currentType === 4 || context2.currentType === 5 || context2.currentType === 6)) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + context2.braceNest = 0; + return readToken(scnr, context2); + } + if (validNamedIdentifier = isNamedIdentifierStart(scnr, context2)) { + token = getToken(context2, 4, readNamedIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if (validListIdentifier = isListIdentifierStart(scnr, context2)) { + token = getToken(context2, 5, readListIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if (validLiteral = isLiteralStart(scnr, context2)) { + token = getToken(context2, 6, readLiteral(scnr)); + skipSpaces(scnr); + return token; + } + if (!validNamedIdentifier && !validListIdentifier && !validLiteral) { + token = getToken(context2, 12, readInvalidIdentifier(scnr)); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value); + skipSpaces(scnr); + return token; + } + break; + } + } + return token; + } + function readTokenInLinked(scnr, context2) { + const { currentType } = context2; + let token = null; + const ch = scnr.currentChar(); + if ((currentType === 7 || currentType === 8 || currentType === 11 || currentType === 9) && (ch === CHAR_LF || ch === CHAR_SP)) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + switch (ch) { + case "@": + scnr.next(); + token = getToken( + context2, + 7, + "@" + /* TokenChars.LinkedAlias */ + ); + context2.inLinked = true; + return token; + case ".": + skipSpaces(scnr); + scnr.next(); + return getToken( + context2, + 8, + "." + /* TokenChars.LinkedDot */ + ); + case ":": + skipSpaces(scnr); + scnr.next(); + return getToken( + context2, + 9, + ":" + /* TokenChars.LinkedDelimiter */ + ); + default: + if (isPluralStart(scnr)) { + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (isLinkedDotStart(scnr, context2) || isLinkedDelimiterStart(scnr, context2)) { + skipSpaces(scnr); + return readTokenInLinked(scnr, context2); + } + if (isLinkedModifierStart(scnr, context2)) { + skipSpaces(scnr); + return getToken(context2, 11, readLinkedModifier(scnr)); + } + if (isLinkedReferStart(scnr, context2)) { + skipSpaces(scnr); + if (ch === "{") { + return readTokenInPlaceholder(scnr, context2) || token; + } else { + return getToken(context2, 10, readLinkedRefer(scnr)); + } + } + if (currentType === 7) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + context2.braceNest = 0; + context2.inLinked = false; + return readToken(scnr, context2); + } + } + function readToken(scnr, context2) { + let token = { + type: 13 + /* TokenTypes.EOF */ + }; + if (context2.braceNest > 0) { + return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); + } + if (context2.inLinked) { + return readTokenInLinked(scnr, context2) || getEndToken(context2); + } + const ch = scnr.currentChar(); + switch (ch) { + case "{": + return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); + case "}": + emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0); + scnr.next(); + return getToken( + context2, + 3, + "}" + /* TokenChars.BraceRight */ + ); + case "@": + return readTokenInLinked(scnr, context2) || getEndToken(context2); + default: { + if (isPluralStart(scnr)) { + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (isTextStart(scnr)) { + return getToken(context2, 0, readText(scnr)); + } + break; + } + } + return token; + } + function nextToken() { + const { currentType, offset, startLoc, endLoc } = _context; + _context.lastType = currentType; + _context.lastOffset = offset; + _context.lastStartLoc = startLoc; + _context.lastEndLoc = endLoc; + _context.offset = currentOffset(); + _context.startLoc = currentPosition(); + if (_scnr.currentChar() === EOF) { + return getToken( + _context, + 13 + /* TokenTypes.EOF */ + ); + } + return readToken(_scnr, _context); + } + return { + nextToken, + currentOffset, + currentPosition, + context + }; +} +const ERROR_DOMAIN$2 = "parser"; +const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g; +const TEXT_ESCAPES = /\\([\\@{}|])/g; +function fromTextEscapeSequence(_match, char) { + return char; +} +function fromEscapeSequence(match, codePoint4, codePoint6) { + switch (match) { + case `\\\\`: + return `\\`; + // eslint-disable-next-line no-useless-escape + case `\\'`: + return `'`; + default: { + const codePoint = parseInt(codePoint4 || codePoint6, 16); + if (codePoint <= 55295 || codePoint >= 57344) { + return String.fromCodePoint(codePoint); + } + return "�"; + } + } +} +function createParser(options = {}) { + const location = options.location !== false; + const { onError } = options; + function emitError(tokenzer, code, start, offset, ...args) { + const end = tokenzer.currentPosition(); + end.offset += offset; + end.column += offset; + if (onError) { + const loc = location ? createLocation(start, end) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$2, + args + }); + onError(err); + } + } + function startNode(type, offset, loc) { + const node = { type }; + if (location) { + node.start = offset; + node.end = offset; + node.loc = { start: loc, end: loc }; + } + return node; + } + function endNode(node, offset, pos, type) { + if (location) { + node.end = offset; + if (node.loc) { + node.loc.end = pos; + } + } + } + function parseText(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(3, context.offset, context.startLoc); + node.value = value.replace(TEXT_ESCAPES, fromTextEscapeSequence); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseList(tokenizer, index) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(5, offset, loc); + node.index = parseInt(index, 10); + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseNamed(tokenizer, key) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(4, offset, loc); + node.key = key; + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLiteral(tokenizer, value) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(9, offset, loc); + node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence); + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinkedModifier(tokenizer) { + const token = tokenizer.nextToken(); + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(8, offset, loc); + if (token.type !== 11) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0); + node.value = ""; + endNode(node, offset, loc); + return { + nextConsumeToken: token, + node + }; + } + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.value = token.value || ""; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node + }; + } + function parseLinkedKey(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(7, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinked(tokenizer) { + const context = tokenizer.context(); + const linkedNode = startNode(6, context.offset, context.startLoc); + let token = tokenizer.nextToken(); + if (token.type === 8) { + const parsed = parseLinkedModifier(tokenizer); + linkedNode.modifier = parsed.node; + token = parsed.nextConsumeToken || tokenizer.nextToken(); + } + if (token.type !== 9) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + token = tokenizer.nextToken(); + if (token.type === 2) { + token = tokenizer.nextToken(); + } + switch (token.type) { + case 10: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLinkedKey(tokenizer, token.value || ""); + break; + case 4: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseNamed(tokenizer, token.value || ""); + break; + case 5: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseList(tokenizer, token.value || ""); + break; + case 6: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLiteral(tokenizer, token.value || ""); + break; + default: { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0); + const nextContext = tokenizer.context(); + const emptyLinkedKeyNode = startNode(7, nextContext.offset, nextContext.startLoc); + emptyLinkedKeyNode.value = ""; + endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc); + linkedNode.key = emptyLinkedKeyNode; + endNode(linkedNode, nextContext.offset, nextContext.startLoc); + return { + nextConsumeToken: token, + node: linkedNode + }; + } + } + endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node: linkedNode + }; + } + function parseMessage(tokenizer) { + const context = tokenizer.context(); + const startOffset = context.currentType === 1 ? tokenizer.currentOffset() : context.offset; + const startLoc = context.currentType === 1 ? context.endLoc : context.startLoc; + const node = startNode(2, startOffset, startLoc); + node.items = []; + let nextToken = null; + do { + const token = nextToken || tokenizer.nextToken(); + nextToken = null; + switch (token.type) { + case 0: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseText(tokenizer, token.value || "")); + break; + case 5: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseList(tokenizer, token.value || "")); + break; + case 4: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseNamed(tokenizer, token.value || "")); + break; + case 6: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseLiteral(tokenizer, token.value || "")); + break; + case 7: { + const parsed = parseLinked(tokenizer); + node.items.push(parsed.node); + nextToken = parsed.nextConsumeToken || null; + break; + } + } + } while (context.currentType !== 13 && context.currentType !== 1); + const endOffset = context.currentType === 1 ? context.lastOffset : tokenizer.currentOffset(); + const endLoc = context.currentType === 1 ? context.lastEndLoc : tokenizer.currentPosition(); + endNode(node, endOffset, endLoc); + return node; + } + function parsePlural(tokenizer, offset, loc, msgNode) { + const context = tokenizer.context(); + let hasEmptyMessage = msgNode.items.length === 0; + const node = startNode(1, offset, loc); + node.cases = []; + node.cases.push(msgNode); + do { + const msg = parseMessage(tokenizer); + if (!hasEmptyMessage) { + hasEmptyMessage = msg.items.length === 0; + } + node.cases.push(msg); + } while (context.currentType !== 13); + if (hasEmptyMessage) { + emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseResource(tokenizer) { + const context = tokenizer.context(); + const { offset, startLoc } = context; + const msgNode = parseMessage(tokenizer); + if (context.currentType === 13) { + return msgNode; + } else { + return parsePlural(tokenizer, offset, startLoc, msgNode); + } + } + function parse2(source) { + const tokenizer = createTokenizer(source, assign({}, options)); + const context = tokenizer.context(); + const node = startNode(0, context.offset, context.startLoc); + if (location && node.loc) { + node.loc.source = source; + } + node.body = parseResource(tokenizer); + if (options.onCacheKey) { + node.cacheKey = options.onCacheKey(source); + } + if (context.currentType !== 13) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || ""); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + return { parse: parse2 }; +} +function getTokenCaption(token) { + if (token.type === 13) { + return "EOF"; + } + const name = (token.value || "").replace(/\r?\n/gu, "\\n"); + return name.length > 10 ? name.slice(0, 9) + "…" : name; +} +function createTransformer(ast, options = {}) { + const _context = { + ast, + helpers: /* @__PURE__ */ new Set() + }; + const context = () => _context; + const helper = (name) => { + _context.helpers.add(name); + return name; + }; + return { context, helper }; +} +function traverseNodes(nodes, transformer) { + for (let i = 0; i < nodes.length; i++) { + traverseNode(nodes[i], transformer); + } +} +function traverseNode(node, transformer) { + switch (node.type) { + case 1: + traverseNodes(node.cases, transformer); + transformer.helper( + "plural" + /* HelperNameMap.PLURAL */ + ); + break; + case 2: + traverseNodes(node.items, transformer); + break; + case 6: { + const linked = node; + traverseNode(linked.key, transformer); + transformer.helper( + "linked" + /* HelperNameMap.LINKED */ + ); + transformer.helper( + "type" + /* HelperNameMap.TYPE */ + ); + break; + } + case 5: + transformer.helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ); + transformer.helper( + "list" + /* HelperNameMap.LIST */ + ); + break; + case 4: + transformer.helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ); + transformer.helper( + "named" + /* HelperNameMap.NAMED */ + ); + break; + } +} +function transform(ast, options = {}) { + const transformer = createTransformer(ast); + transformer.helper( + "normalize" + /* HelperNameMap.NORMALIZE */ + ); + ast.body && traverseNode(ast.body, transformer); + const context = transformer.context(); + ast.helpers = Array.from(context.helpers); +} +function optimize(ast) { + const body = ast.body; + if (body.type === 2) { + optimizeMessageNode(body); + } else { + body.cases.forEach((c) => optimizeMessageNode(c)); + } + return ast; +} +function optimizeMessageNode(message) { + if (message.items.length === 1) { + const item = message.items[0]; + if (item.type === 3 || item.type === 9) { + message.static = item.value; + delete item.value; + } + } else { + const values = []; + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (!(item.type === 3 || item.type === 9)) { + break; + } + if (item.value == null) { + break; + } + values.push(item.value); + } + if (values.length === message.items.length) { + message.static = join(values); + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (item.type === 3 || item.type === 9) { + delete item.value; + } + } + } + } +} +const ERROR_DOMAIN$1 = "minifier"; +function minify(node) { + node.t = node.type; + switch (node.type) { + case 0: { + const resource = node; + minify(resource.body); + resource.b = resource.body; + delete resource.body; + break; + } + case 1: { + const plural = node; + const cases = plural.cases; + for (let i = 0; i < cases.length; i++) { + minify(cases[i]); + } + plural.c = cases; + delete plural.cases; + break; + } + case 2: { + const message = node; + const items = message.items; + for (let i = 0; i < items.length; i++) { + minify(items[i]); + } + message.i = items; + delete message.items; + if (message.static) { + message.s = message.static; + delete message.static; + } + break; + } + case 3: + case 9: + case 8: + case 7: { + const valueNode = node; + if (valueNode.value) { + valueNode.v = valueNode.value; + delete valueNode.value; + } + break; + } + case 6: { + const linked = node; + minify(linked.key); + linked.k = linked.key; + delete linked.key; + if (linked.modifier) { + minify(linked.modifier); + linked.m = linked.modifier; + delete linked.modifier; + } + break; + } + case 5: { + const list = node; + list.i = list.index; + delete list.index; + break; + } + case 4: { + const named = node; + named.k = named.key; + delete named.key; + break; + } + default: + if (process.env.NODE_ENV !== "production") { + throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, { + domain: ERROR_DOMAIN$1, + args: [node.type] + }); + } + } + delete node.type; +} +const ERROR_DOMAIN = "parser"; +function createCodeGenerator(ast, options) { + const { filename, breakLineCode, needIndent: _needIndent } = options; + const location = options.location !== false; + const _context = { + filename, + code: "", + column: 1, + line: 1, + offset: 0, + map: void 0, + breakLineCode, + needIndent: _needIndent, + indentLevel: 0 + }; + if (location && ast.loc) { + _context.source = ast.loc.source; + } + const context = () => _context; + function push(code, node) { + _context.code += code; + } + function _newline(n, withBreakLine = true) { + const _breakLineCode = withBreakLine ? breakLineCode : ""; + push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode); + } + function indent(withNewLine = true) { + const level = ++_context.indentLevel; + withNewLine && _newline(level); + } + function deindent(withNewLine = true) { + const level = --_context.indentLevel; + withNewLine && _newline(level); + } + function newline() { + _newline(_context.indentLevel); + } + const helper = (key) => `_${key}`; + const needIndent = () => _context.needIndent; + return { + context, + push, + indent, + deindent, + newline, + helper, + needIndent + }; +} +function generateLinkedNode(generator, node) { + const { helper } = generator; + generator.push(`${helper( + "linked" + /* HelperNameMap.LINKED */ + )}(`); + generateNode(generator, node.key); + if (node.modifier) { + generator.push(`, `); + generateNode(generator, node.modifier); + generator.push(`, _type`); + } else { + generator.push(`, undefined, _type`); + } + generator.push(`)`); +} +function generateMessageNode(generator, node) { + const { helper, needIndent } = generator; + generator.push(`${helper( + "normalize" + /* HelperNameMap.NORMALIZE */ + )}([`); + generator.indent(needIndent()); + const length = node.items.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.items[i]); + if (i === length - 1) { + break; + } + generator.push(", "); + } + generator.deindent(needIndent()); + generator.push("])"); +} +function generatePluralNode(generator, node) { + const { helper, needIndent } = generator; + if (node.cases.length > 1) { + generator.push(`${helper( + "plural" + /* HelperNameMap.PLURAL */ + )}([`); + generator.indent(needIndent()); + const length = node.cases.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.cases[i]); + if (i === length - 1) { + break; + } + generator.push(", "); + } + generator.deindent(needIndent()); + generator.push(`])`); + } +} +function generateResource(generator, node) { + if (node.body) { + generateNode(generator, node.body); + } else { + generator.push("null"); + } +} +function generateNode(generator, node) { + const { helper } = generator; + switch (node.type) { + case 0: + generateResource(generator, node); + break; + case 1: + generatePluralNode(generator, node); + break; + case 2: + generateMessageNode(generator, node); + break; + case 6: + generateLinkedNode(generator, node); + break; + case 8: + generator.push(JSON.stringify(node.value), node); + break; + case 7: + generator.push(JSON.stringify(node.value), node); + break; + case 5: + generator.push(`${helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + )}(${helper( + "list" + /* HelperNameMap.LIST */ + )}(${node.index}))`, node); + break; + case 4: + generator.push(`${helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + )}(${helper( + "named" + /* HelperNameMap.NAMED */ + )}(${JSON.stringify(node.key)}))`, node); + break; + case 9: + generator.push(JSON.stringify(node.value), node); + break; + case 3: + generator.push(JSON.stringify(node.value), node); + break; + default: + if (process.env.NODE_ENV !== "production") { + throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, { + domain: ERROR_DOMAIN, + args: [node.type] + }); + } + } +} +const generate = (ast, options = {}) => { + const mode = isString(options.mode) ? options.mode : "normal"; + const filename = isString(options.filename) ? options.filename : "message.intl"; + !!options.sourceMap; + const breakLineCode = options.breakLineCode != null ? options.breakLineCode : mode === "arrow" ? ";" : "\n"; + const needIndent = options.needIndent ? options.needIndent : mode !== "arrow"; + const helpers = ast.helpers || []; + const generator = createCodeGenerator(ast, { + filename, + breakLineCode, + needIndent + }); + generator.push(mode === "normal" ? `function __msg__ (ctx) {` : `(ctx) => {`); + generator.indent(needIndent); + if (helpers.length > 0) { + generator.push(`const { ${join(helpers.map((s) => `${s}: _${s}`), ", ")} } = ctx`); + generator.newline(); + } + generator.push(`return `); + generateNode(generator, ast); + generator.deindent(needIndent); + generator.push(`}`); + delete ast.helpers; + const { code, map } = generator.context(); + return { + ast, + code, + map: map ? map.toJSON() : void 0 + // eslint-disable-line @typescript-eslint/no-explicit-any + }; +}; +function baseCompile$1(source, options = {}) { + const assignedOptions = assign({}, options); + const jit = !!assignedOptions.jit; + const enalbeMinify = !!assignedOptions.minify; + const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize; + const parser = createParser(assignedOptions); + const ast = parser.parse(source); + if (!jit) { + transform(ast, assignedOptions); + return generate(ast, assignedOptions); + } else { + enambeOptimize && optimize(ast); + enalbeMinify && minify(ast); + return { ast, code: "" }; + } +} +function isMessageAST(val) { + return isObject(val) && resolveType(val) === 0 && (hasOwn(val, "b") || hasOwn(val, "body")); +} +const PROPS_BODY = ["b", "body"]; +function resolveBody(node) { + return resolveProps(node, PROPS_BODY); +} +const PROPS_CASES = ["c", "cases"]; +function resolveCases(node) { + return resolveProps(node, PROPS_CASES, []); +} +const PROPS_STATIC = ["s", "static"]; +function resolveStatic(node) { + return resolveProps(node, PROPS_STATIC); +} +const PROPS_ITEMS = ["i", "items"]; +function resolveItems(node) { + return resolveProps(node, PROPS_ITEMS, []); +} +const PROPS_TYPE = ["t", "type"]; +function resolveType(node) { + return resolveProps(node, PROPS_TYPE); +} +const PROPS_VALUE = ["v", "value"]; +function resolveValue$1(node, type) { + const resolved = resolveProps(node, PROPS_VALUE); + if (resolved != null) { + return resolved; + } else { + throw createUnhandleNodeError(type); + } +} +const PROPS_MODIFIER = ["m", "modifier"]; +function resolveLinkedModifier(node) { + return resolveProps(node, PROPS_MODIFIER); +} +const PROPS_KEY = ["k", "key"]; +function resolveLinkedKey(node) { + const resolved = resolveProps(node, PROPS_KEY); + if (resolved) { + return resolved; + } else { + throw createUnhandleNodeError( + 6 + /* NodeTypes.Linked */ + ); + } +} +function resolveProps(node, props, defaultValue) { + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (hasOwn(node, prop) && node[prop] != null) { + return node[prop]; + } + } + return defaultValue; +} +const AST_NODE_PROPS_KEYS = [ + ...PROPS_BODY, + ...PROPS_CASES, + ...PROPS_STATIC, + ...PROPS_ITEMS, + ...PROPS_KEY, + ...PROPS_MODIFIER, + ...PROPS_VALUE, + ...PROPS_TYPE +]; +function createUnhandleNodeError(type) { + return new Error(`unhandled node type: ${type}`); +} +function format(ast) { + const msg = (ctx) => formatParts(ctx, ast); + return msg; +} +function formatParts(ctx, ast) { + const body = resolveBody(ast); + if (body == null) { + throw createUnhandleNodeError( + 0 + /* NodeTypes.Resource */ + ); + } + const type = resolveType(body); + if (type === 1) { + const plural = body; + const cases = resolveCases(plural); + return ctx.plural(cases.reduce((messages, c) => [ + ...messages, + formatMessageParts(ctx, c) + ], [])); + } else { + return formatMessageParts(ctx, body); + } +} +function formatMessageParts(ctx, node) { + const static_ = resolveStatic(node); + if (static_ != null) { + return ctx.type === "text" ? static_ : ctx.normalize([static_]); + } else { + const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []); + return ctx.normalize(messages); + } +} +function formatMessagePart(ctx, node) { + const type = resolveType(node); + switch (type) { + case 3: { + return resolveValue$1(node, type); + } + case 9: { + return resolveValue$1(node, type); + } + case 4: { + const named = node; + if (hasOwn(named, "k") && named.k) { + return ctx.interpolate(ctx.named(named.k)); + } + if (hasOwn(named, "key") && named.key) { + return ctx.interpolate(ctx.named(named.key)); + } + throw createUnhandleNodeError(type); + } + case 5: { + const list = node; + if (hasOwn(list, "i") && isNumber(list.i)) { + return ctx.interpolate(ctx.list(list.i)); + } + if (hasOwn(list, "index") && isNumber(list.index)) { + return ctx.interpolate(ctx.list(list.index)); + } + throw createUnhandleNodeError(type); + } + case 6: { + const linked = node; + const modifier = resolveLinkedModifier(linked); + const key = resolveLinkedKey(linked); + return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : void 0, ctx.type); + } + case 7: { + return resolveValue$1(node, type); + } + case 8: { + return resolveValue$1(node, type); + } + default: + throw new Error(`unhandled node on format message part: ${type}`); + } +} +const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`; +function checkHtmlMessage(source, warnHtmlMessage) { + if (warnHtmlMessage && detectHtmlTag(source)) { + warn(format$1(WARN_MESSAGE, { source })); + } +} +const defaultOnCacheKey = (message) => message; +let compileCache = create(); +function baseCompile(message, options = {}) { + let detectError = false; + const onError = options.onError || defaultOnError; + options.onError = (err) => { + detectError = true; + onError(err); + }; + return { ...baseCompile$1(message, options), detectError }; +} +// @__NO_SIDE_EFFECTS__ +function compile(message, context) { + if (isString(message)) { + const warnHtmlMessage = isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true; + process.env.NODE_ENV !== "production" && checkHtmlMessage(message, warnHtmlMessage); + const onCacheKey = context.onCacheKey || defaultOnCacheKey; + const cacheKey = onCacheKey(message); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + const { ast, detectError } = baseCompile(message, { + ...context, + location: process.env.NODE_ENV !== "production", + jit: true + }); + const msg = format(ast); + return !detectError ? compileCache[cacheKey] = msg : msg; + } else { + if (process.env.NODE_ENV !== "production" && !isMessageAST(message)) { + warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`); + return (() => message); + } + const cacheKey = message.cacheKey; + if (cacheKey) { + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + return compileCache[cacheKey] = format(message); + } else { + return format(message); + } + } +} +let devtools = null; +function setDevToolsHook(hook) { + devtools = hook; +} +function initI18nDevTools(i18n, version, meta) { + devtools && devtools.emit("i18n:init", { + timestamp: Date.now(), + i18n, + version, + meta + }); +} +const translateDevTools = /* @__PURE__ */ createDevToolsHook("function:translate"); +function createDevToolsHook(hook) { + return (payloads) => devtools && devtools.emit(hook, payloads); +} +const CoreErrorCodes = { + INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT, + // 17 + INVALID_DATE_ARGUMENT: 18, + INVALID_ISO_DATE_ARGUMENT: 19, + NOT_SUPPORT_NON_STRING_MESSAGE: 20, + NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21, + NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22, + NOT_SUPPORT_LOCALE_TYPE: 23 +}; +const CORE_ERROR_CODES_EXTEND_POINT = 24; +function createCoreError(code) { + return createCompileError(code, null, process.env.NODE_ENV !== "production" ? { messages: errorMessages$1 } : void 0); +} +const errorMessages$1 = { + [CoreErrorCodes.INVALID_ARGUMENT]: "Invalid arguments", + [CoreErrorCodes.INVALID_DATE_ARGUMENT]: "The date provided is an invalid Date object.Make sure your Date represents a valid date.", + [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: "The argument provided is not a valid ISO date string", + [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: "Not support non-string message", + [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: "cannot support promise value", + [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: "cannot support async function", + [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: "cannot support locale type" +}; +function getLocale(context, options) { + return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale); +} +let _resolveLocale; +function resolveLocale(locale) { + if (isString(locale)) { + return locale; + } else { + if (isFunction(locale)) { + if (locale.resolvedOnce && _resolveLocale != null) { + return _resolveLocale; + } else if (locale.constructor.name === "Function") { + const resolve = locale(); + if (isPromise(resolve)) { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE); + } + return _resolveLocale = resolve; + } else { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION); + } + } else { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE); + } + } +} +function fallbackWithSimple(ctx, fallback, start) { + return [.../* @__PURE__ */ new Set([ + start, + ...isArray(fallback) ? fallback : isObject(fallback) ? Object.keys(fallback) : isString(fallback) ? [fallback] : [start] + ])]; +} +function fallbackWithLocaleChain(ctx, fallback, start) { + const startLocale = isString(start) ? start : DEFAULT_LOCALE; + const context = ctx; + if (!context.__localeChainCache) { + context.__localeChainCache = /* @__PURE__ */ new Map(); + } + let chain = context.__localeChainCache.get(startLocale); + if (!chain) { + chain = []; + let block = [start]; + while (isArray(block)) { + block = appendBlockToChain(chain, block, fallback); + } + const defaults = isArray(fallback) || !isPlainObject(fallback) ? fallback : fallback["default"] ? fallback["default"] : null; + block = isString(defaults) ? [defaults] : defaults; + if (isArray(block)) { + appendBlockToChain(chain, block, false); + } + context.__localeChainCache.set(startLocale, chain); + } + return chain; +} +function appendBlockToChain(chain, block, blocks) { + let follow = true; + for (let i = 0; i < block.length && isBoolean(follow); i++) { + const locale = block[i]; + if (isString(locale)) { + follow = appendLocaleToChain(chain, block[i], blocks); + } + } + return follow; +} +function appendLocaleToChain(chain, locale, blocks) { + let follow; + const tokens = locale.split("-"); + do { + const target = tokens.join("-"); + follow = appendItemToChain(chain, target, blocks); + tokens.splice(-1, 1); + } while (tokens.length && follow === true); + return follow; +} +function appendItemToChain(chain, target, blocks) { + let follow = false; + if (!chain.includes(target)) { + follow = true; + if (target) { + follow = target[target.length - 1] !== "!"; + const locale = target.replace(/!/g, ""); + chain.push(locale); + if ((isArray(blocks) || isPlainObject(blocks)) && blocks[locale]) { + follow = blocks[locale]; + } + } + } + return follow; +} +const pathStateMachine = []; +pathStateMachine[ + 0 + /* States.BEFORE_PATH */ +] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 0 + /* States.BEFORE_PATH */ + ], + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4 + /* States.IN_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7 + /* States.AFTER_PATH */ + ] +}; +pathStateMachine[ + 1 + /* States.IN_PATH */ +] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 1 + /* States.IN_PATH */ + ], + [ + "." + /* PathCharTypes.DOT */ + ]: [ + 2 + /* States.BEFORE_IDENT */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4 + /* States.IN_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7 + /* States.AFTER_PATH */ + ] +}; +pathStateMachine[ + 2 + /* States.BEFORE_IDENT */ +] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 2 + /* States.BEFORE_IDENT */ + ], + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "0" + /* PathCharTypes.ZERO */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ] +}; +pathStateMachine[ + 3 + /* States.IN_IDENT */ +] = { + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "0" + /* PathCharTypes.ZERO */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 1, + 1 + /* Actions.PUSH */ + ], + [ + "." + /* PathCharTypes.DOT */ + ]: [ + 2, + 1 + /* Actions.PUSH */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4, + 1 + /* Actions.PUSH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7, + 1 + /* Actions.PUSH */ + ] +}; +pathStateMachine[ + 4 + /* States.IN_SUB_PATH */ +] = { + [ + "'" + /* PathCharTypes.SINGLE_QUOTE */ + ]: [ + 5, + 0 + /* Actions.APPEND */ + ], + [ + '"' + /* PathCharTypes.DOUBLE_QUOTE */ + ]: [ + 6, + 0 + /* Actions.APPEND */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4, + 2 + /* Actions.INC_SUB_PATH_DEPTH */ + ], + [ + "]" + /* PathCharTypes.RIGHT_BRACKET */ + ]: [ + 1, + 3 + /* Actions.PUSH_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ] +}; +pathStateMachine[ + 5 + /* States.IN_SINGLE_QUOTE */ +] = { + [ + "'" + /* PathCharTypes.SINGLE_QUOTE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 5, + 0 + /* Actions.APPEND */ + ] +}; +pathStateMachine[ + 6 + /* States.IN_DOUBLE_QUOTE */ +] = { + [ + '"' + /* PathCharTypes.DOUBLE_QUOTE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 6, + 0 + /* Actions.APPEND */ + ] +}; +const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; +function isLiteral(exp) { + return literalValueRE.test(exp); +} +function stripQuotes(str) { + const a = str.charCodeAt(0); + const b = str.charCodeAt(str.length - 1); + return a === b && (a === 34 || a === 39) ? str.slice(1, -1) : str; +} +function getPathCharType(ch) { + if (ch === void 0 || ch === null) { + return "o"; + } + const code = ch.charCodeAt(0); + switch (code) { + case 91: + // [ + case 93: + // ] + case 46: + // . + case 34: + // " + case 39: + return ch; + case 95: + // _ + case 36: + // $ + case 45: + return "i"; + case 9: + // Tab (HT) + case 10: + // Newline (LF) + case 13: + // Return (CR) + case 160: + // No-break space (NBSP) + case 65279: + // Byte Order Mark (BOM) + case 8232: + // Line Separator (LS) + case 8233: + return "w"; + } + return "i"; +} +function formatSubPath(path) { + const trimmed = path.trim(); + if (path.charAt(0) === "0" && isNaN(parseInt(path))) { + return false; + } + return isLiteral(trimmed) ? stripQuotes(trimmed) : "*" + trimmed; +} +function parse(path) { + const keys = []; + let index = -1; + let mode = 0; + let subPathDepth = 0; + let c; + let key; + let newChar; + let type; + let transition; + let action; + let typeMap; + const actions = []; + actions[ + 0 + /* Actions.APPEND */ + ] = () => { + if (key === void 0) { + key = newChar; + } else { + key += newChar; + } + }; + actions[ + 1 + /* Actions.PUSH */ + ] = () => { + if (key !== void 0) { + keys.push(key); + key = void 0; + } + }; + actions[ + 2 + /* Actions.INC_SUB_PATH_DEPTH */ + ] = () => { + actions[ + 0 + /* Actions.APPEND */ + ](); + subPathDepth++; + }; + actions[ + 3 + /* Actions.PUSH_SUB_PATH */ + ] = () => { + if (subPathDepth > 0) { + subPathDepth--; + mode = 4; + actions[ + 0 + /* Actions.APPEND */ + ](); + } else { + subPathDepth = 0; + if (key === void 0) { + return false; + } + key = formatSubPath(key); + if (key === false) { + return false; + } else { + actions[ + 1 + /* Actions.PUSH */ + ](); + } + } + }; + function maybeUnescapeQuote() { + const nextChar = path[index + 1]; + if (mode === 5 && nextChar === "'" || mode === 6 && nextChar === '"') { + index++; + newChar = "\\" + nextChar; + actions[ + 0 + /* Actions.APPEND */ + ](); + return true; + } + } + while (mode !== null) { + index++; + c = path[index]; + if (c === "\\" && maybeUnescapeQuote()) { + continue; + } + type = getPathCharType(c); + typeMap = pathStateMachine[mode]; + transition = typeMap[type] || typeMap[ + "l" + /* PathCharTypes.ELSE */ + ] || 8; + if (transition === 8) { + return; + } + mode = transition[0]; + if (transition[1] !== void 0) { + action = actions[transition[1]]; + if (action) { + newChar = c; + if (action() === false) { + return; + } + } + } + if (mode === 7) { + return keys; + } + } +} +const cache = /* @__PURE__ */ new Map(); +function resolveWithKeyValue(obj, path) { + return isObject(obj) ? obj[path] : null; +} +function resolveValue(obj, path) { + if (!isObject(obj)) { + return null; + } + let hit = cache.get(path); + if (!hit) { + hit = parse(path); + if (hit) { + cache.set(path, hit); + } + } + if (!hit) { + return null; + } + const len = hit.length; + let last = obj; + let i = 0; + while (i < len) { + const key = hit[i]; + if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) { + return null; + } + if (!isObject(last)) { + return null; + } + if (!hasOwn(last, key)) { + return null; + } + const val = last[key]; + if (val === void 0) { + return null; + } + if (isFunction(last)) { + return null; + } + last = val; + i++; + } + return last; +} +const CoreWarnCodes = { + NOT_FOUND_KEY: 1, + FALLBACK_TO_TRANSLATE: 2, + CANNOT_FORMAT_NUMBER: 3, + FALLBACK_TO_NUMBER_FORMAT: 4, + CANNOT_FORMAT_DATE: 5, + FALLBACK_TO_DATE_FORMAT: 6, + EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7, + INVALID_NUMBER_ARGUMENT: 8, + INVALID_DATE_ARGUMENT: 9 +}; +const CORE_WARN_CODES_EXTEND_POINT = 10; +const warnMessages$1 = { + [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`, + [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`, + [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`, + [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`, + [CoreWarnCodes.INVALID_NUMBER_ARGUMENT]: `Invalid argument for number formatting: expected a number but received '{value}'.`, + [CoreWarnCodes.INVALID_DATE_ARGUMENT]: `Invalid argument for datetime formatting: expected a Date, number, or ISO string but received '{value}'.` +}; +function getWarnMessage$1(code, ...args) { + return format$1(warnMessages$1[code], ...args); +} +const VERSION$1 = "11.4.2"; +const NOT_REOSLVED = -1; +const DEFAULT_LOCALE = "en-US"; +const MISSING_RESOLVE_VALUE = ""; +const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`; +function getDefaultLinkedModifiers() { + return { + upper: (val, type) => { + return type === "text" && isString(val) ? val.toUpperCase() : type === "vnode" && isObject(val) && "__v_isVNode" in val ? val.children.toUpperCase() : val; + }, + lower: (val, type) => { + return type === "text" && isString(val) ? val.toLowerCase() : type === "vnode" && isObject(val) && "__v_isVNode" in val ? val.children.toLowerCase() : val; + }, + capitalize: (val, type) => { + return type === "text" && isString(val) ? capitalize(val) : type === "vnode" && isObject(val) && "__v_isVNode" in val ? capitalize(val.children) : val; + } + }; +} +let _compiler; +function registerMessageCompiler(compiler) { + _compiler = compiler; +} +let _resolver; +function registerMessageResolver(resolver) { + _resolver = resolver; +} +let _fallbacker; +function registerLocaleFallbacker(fallbacker) { + _fallbacker = fallbacker; +} +let _additionalMeta = null; +const setAdditionalMeta = /* @__NO_SIDE_EFFECTS__ */ (meta) => { + _additionalMeta = meta; +}; +const getAdditionalMeta = /* @__NO_SIDE_EFFECTS__ */ () => _additionalMeta; +let _fallbackContext = null; +const setFallbackContext = (context) => { + _fallbackContext = context; +}; +const getFallbackContext = () => _fallbackContext; +let _cid = 0; +function createCoreContext(options = {}) { + const onWarn = isFunction(options.onWarn) ? options.onWarn : warn; + const version = isString(options.version) ? options.version : VERSION$1; + const locale = isString(options.locale) || isFunction(options.locale) ? options.locale : DEFAULT_LOCALE; + const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale; + const fallbackLocale = isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || isString(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale; + const messages = isPlainObject(options.messages) ? options.messages : createResources(_locale); + const datetimeFormats = isPlainObject(options.datetimeFormats) ? options.datetimeFormats : createResources(_locale); + const numberFormats = isPlainObject(options.numberFormats) ? options.numberFormats : createResources(_locale); + const modifiers = assign(create(), options.modifiers, getDefaultLinkedModifiers()); + const pluralRules = options.pluralRules || create(); + const missing = isFunction(options.missing) ? options.missing : null; + const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + const fallbackFormat = !!options.fallbackFormat; + const unresolving = !!options.unresolving; + const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + const processor = isPlainObject(options.processor) ? options.processor : null; + const warnHtmlMessage = isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + const escapeParameter = !!options.escapeParameter; + const messageCompiler = isFunction(options.messageCompiler) ? options.messageCompiler : _compiler; + if (process.env.NODE_ENV !== "production" && true && true && isFunction(options.messageCompiler)) { + warnOnce(getWarnMessage$1(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER)); + } + const messageResolver = isFunction(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue; + const localeFallbacker = isFunction(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple; + const fallbackContext = isObject(options.fallbackContext) ? options.fallbackContext : void 0; + const internalOptions = options; + const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : /* @__PURE__ */ new Map(); + const __numberFormatters = isObject(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : /* @__PURE__ */ new Map(); + const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {}; + _cid++; + const context = { + version, + cid: _cid, + locale, + fallbackLocale, + messages, + modifiers, + pluralRules, + missing, + missingWarn, + fallbackWarn, + fallbackFormat, + unresolving, + postTranslation, + processor, + warnHtmlMessage, + escapeParameter, + messageCompiler, + messageResolver, + localeFallbacker, + fallbackContext, + onWarn, + __meta + }; + { + context.datetimeFormats = datetimeFormats; + context.numberFormats = numberFormats; + context.__datetimeFormatters = __datetimeFormatters; + context.__numberFormatters = __numberFormatters; + } + if (process.env.NODE_ENV !== "production") { + context.__v_emitter = internalOptions.__v_emitter != null ? internalOptions.__v_emitter : void 0; + } + if (process.env.NODE_ENV !== "production" || false) { + initI18nDevTools(context, version, __meta); + } + return context; +} +const createResources = (locale) => ({ [locale]: create() }); +function isTranslateFallbackWarn(fallback, key) { + return fallback instanceof RegExp ? fallback.test(key) : fallback; +} +function isTranslateMissingWarn(missing, key) { + return missing instanceof RegExp ? missing.test(key) : missing; +} +function handleMissing(context, key, locale, missingWarn, type) { + const { missing, onWarn } = context; + if (process.env.NODE_ENV !== "production") { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("missing", { + locale, + key, + type, + groupId: `${type}:${key}` + }); + } + } + if (missing !== null) { + const ret = missing(context, locale, key, type); + return isString(ret) ? ret : key; + } else { + if (process.env.NODE_ENV !== "production" && isTranslateMissingWarn(missingWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.NOT_FOUND_KEY, { key, locale })); + } + return key; + } +} +function updateFallbackLocale(ctx, locale, fallback) { + const context = ctx; + context.__localeChainCache = /* @__PURE__ */ new Map(); + ctx.localeFallbacker(ctx, fallback, locale); +} +function isAlmostSameLocale(locale, compareLocale) { + if (locale === compareLocale) + return false; + return locale.split("-")[0] === compareLocale.split("-")[0]; +} +function isImplicitFallback(targetLocale, locales) { + const index = locales.indexOf(targetLocale); + if (index === -1) { + return false; + } + for (let i = index + 1; i < locales.length; i++) { + if (isAlmostSameLocale(targetLocale, locales[i])) { + return true; + } + } + return false; +} +const intlDefined = typeof Intl !== "undefined"; +const Availabilities = { + dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== "undefined", + numberFormat: intlDefined && typeof Intl.NumberFormat !== "undefined" +}; +function datetime(context, ...args) { + const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __datetimeFormatters } = context; + if (process.env.NODE_ENV !== "production" && !Availabilities.dateTimeFormat) { + onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_DATE)); + return MISSING_RESOLVE_VALUE; + } + if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) { + if (process.env.NODE_ENV !== "production") { + onWarn(getWarnMessage$1(CoreWarnCodes.INVALID_DATE_ARGUMENT, { + value: String(args[0]) + })); + } + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseDateTimeArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, + locale + ); + if (!isString(key) || key === "") { + return new Intl.DateTimeFormat(locale.replace(/!/g, ""), overrides).format(value); + } + let datetimeFormat = {}; + let targetLocale; + let format2 = null; + let from = locale; + let to = null; + const type = "datetime format"; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if (process.env.NODE_ENV !== "production" && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, { + key, + target: targetLocale + })); + } + if (process.env.NODE_ENV !== "production" && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback", { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + datetimeFormat = datetimeFormats[targetLocale] || {}; + format2 = datetimeFormat[key]; + if (isPlainObject(format2)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); + from = to; + } + if (!isPlainObject(format2) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __datetimeFormatters.get(id); + if (!formatter) { + formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format2, overrides)); + __datetimeFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); +} +const DATETIME_FORMAT_OPTIONS_KEYS = [ + "localeMatcher", + "weekday", + "era", + "year", + "month", + "day", + "hour", + "minute", + "second", + "timeZoneName", + "formatMatcher", + "hour12", + "timeZone", + "dateStyle", + "timeStyle", + "calendar", + "dayPeriod", + "numberingSystem", + "hourCycle", + "fractionalSecondDigits" +]; +function parseDateTimeArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = create(); + let overrides = create(); + let value; + if (isString(arg1)) { + const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/); + if (!matches) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + const dateTime = matches[3] ? matches[3].trim().startsWith("T") ? `${matches[1].trim()}${matches[3].trim()}` : `${matches[1].trim()}T${matches[3].trim()}` : matches[1].trim(); + value = new Date(dateTime); + try { + value.toISOString(); + } catch { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + } else if (isDate(arg1)) { + if (isNaN(arg1.getTime())) { + throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT); + } + value = arg1; + } else if (isNumber(arg1)) { + value = arg1; + } else { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + if (isString(arg2)) { + options.key = arg2; + } else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach((key) => { + if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || "", value, options, overrides]; +} +function clearDateTimeFormat(ctx, locale, format2) { + const context = ctx; + for (const key in format2) { + const id = `${locale}__${key}`; + if (!context.__datetimeFormatters.has(id)) { + continue; + } + context.__datetimeFormatters.delete(id); + } +} +function number(context, ...args) { + const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __numberFormatters } = context; + if (process.env.NODE_ENV !== "production" && !Availabilities.numberFormat) { + onWarn(getWarnMessage$1(CoreWarnCodes.CANNOT_FORMAT_NUMBER)); + return MISSING_RESOLVE_VALUE; + } + if (!isNumber(args[0])) { + if (process.env.NODE_ENV !== "production") { + onWarn(getWarnMessage$1(CoreWarnCodes.INVALID_NUMBER_ARGUMENT, { + value: String(args[0]) + })); + } + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseNumberArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, + locale + ); + if (!isString(key) || key === "") { + return new Intl.NumberFormat(locale.replace(/!/g, ""), overrides).format(value); + } + let numberFormat = {}; + let targetLocale; + let format2 = null; + let from = locale; + let to = null; + const type = "number format"; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if (process.env.NODE_ENV !== "production" && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, { + key, + target: targetLocale + })); + } + if (process.env.NODE_ENV !== "production" && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit("fallback", { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + numberFormat = numberFormats[targetLocale] || {}; + format2 = numberFormat[key]; + if (isPlainObject(format2)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); + from = to; + } + if (!isPlainObject(format2) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __numberFormatters.get(id); + if (!formatter) { + formatter = new Intl.NumberFormat(targetLocale, assign({}, format2, overrides)); + __numberFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); +} +const NUMBER_FORMAT_OPTIONS_KEYS = [ + "localeMatcher", + "style", + "currency", + "currencyDisplay", + "currencySign", + "useGrouping", + "minimumIntegerDigits", + "minimumFractionDigits", + "maximumFractionDigits", + "minimumSignificantDigits", + "maximumSignificantDigits", + "compactDisplay", + "notation", + "signDisplay", + "unit", + "unitDisplay", + "roundingMode", + "roundingPriority", + "roundingIncrement", + "trailingZeroDisplay" +]; +function parseNumberArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = create(); + let overrides = create(); + if (!isNumber(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const value = arg1; + if (isString(arg2)) { + options.key = arg2; + } else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach((key) => { + if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || "", value, options, overrides]; +} +function clearNumberFormat(ctx, locale, format2) { + const context = ctx; + for (const key in format2) { + const id = `${locale}__${key}`; + if (!context.__numberFormatters.has(id)) { + continue; + } + context.__numberFormatters.delete(id); + } +} +const DEFAULT_MODIFIER = (str) => str; +const DEFAULT_MESSAGE = (ctx) => ""; +const DEFAULT_MESSAGE_DATA_TYPE = "text"; +const DEFAULT_NORMALIZE = (values) => values.length === 0 ? "" : join(values); +const DEFAULT_INTERPOLATE = toDisplayString; +function pluralDefault(choice, choicesLength) { + choice = Math.abs(choice); + if (choicesLength === 2) { + return choice === 1 ? 0 : 1; + } + return Math.min(choice, 2); +} +function getPluralIndex(options) { + const index = isNumber(options.pluralIndex) ? options.pluralIndex : -1; + return isNumber(options.named?.count) ? options.named.count : isNumber(options.named?.n) ? options.named.n : index; +} +function createMessageContext(options = {}) { + const locale = options.locale; + const pluralIndex = getPluralIndex(options); + const pluralRule = isString(locale) && isFunction(options.pluralRules?.[locale]) ? options.pluralRules[locale] : pluralDefault; + const orgPluralRule = pluralRule === pluralDefault ? void 0 : pluralDefault; + const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)]; + const _list = options.list || []; + const list = (index) => _list[index]; + const _named = options.named || create(); + if (isNumber(options.pluralIndex)) { + _named.count ||= options.pluralIndex; + _named.n ||= options.pluralIndex; + } + const named = (key) => _named[key]; + function message(key, useLinked) { + const msg = isFunction(options.messages) ? options.messages(key, !!useLinked) : isObject(options.messages) ? options.messages[key] : false; + return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg; + } + const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER; + const normalize = isFunction(options.processor?.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE; + const interpolate = isFunction(options.processor?.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE; + const type = isString(options.processor?.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE; + const linked = (key, ...args) => { + const [arg1, arg2] = args; + let type2 = "text"; + let modifier = ""; + if (args.length === 1) { + if (isObject(arg1)) { + modifier = arg1.modifier || modifier; + type2 = arg1.type || type2; + } else if (isString(arg1)) { + modifier = arg1 || modifier; + } + } else if (args.length === 2) { + if (isString(arg1)) { + modifier = arg1 || modifier; + } + if (isString(arg2)) { + type2 = arg2 || type2; + } + } + const ret = message(key, true)(ctx); + const resolved = ret === "" || ret === void 0 ? key : ret; + const msg = ( + // The message in vnode resolved with linked are returned as an array by processor.nomalize + type2 === "vnode" && isArray(resolved) && modifier ? resolved[0] : resolved + ); + return modifier ? _modifier(modifier)(msg, type2) : msg; + }; + const ctx = { + [ + "list" + /* HelperNameMap.LIST */ + ]: list, + [ + "named" + /* HelperNameMap.NAMED */ + ]: named, + [ + "plural" + /* HelperNameMap.PLURAL */ + ]: plural, + [ + "linked" + /* HelperNameMap.LINKED */ + ]: linked, + [ + "message" + /* HelperNameMap.MESSAGE */ + ]: message, + [ + "type" + /* HelperNameMap.TYPE */ + ]: type, + [ + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ]: interpolate, + [ + "normalize" + /* HelperNameMap.NORMALIZE */ + ]: normalize, + [ + "values" + /* HelperNameMap.VALUES */ + ]: assign(create(), _list, _named) + }; + return ctx; +} +const NOOP_MESSAGE_FUNCTION = () => ""; +const isMessageFunction = (val) => isFunction(val); +function translate(context, ...args) { + const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context; + const [key, options] = parseTranslateArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const escapeParameter = isBoolean(options.escapeParameter) ? options.escapeParameter : context.escapeParameter; + const resolvedMessage = !!options.resolvedMessage; + const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) ? !isBoolean(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat ? !messageCompiler ? () => key : key : null; + const enableDefaultMsg = fallbackFormat || defaultMsgOrKey != null && (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey)); + const locale = getLocale(context, options); + escapeParameter && escapeParams(options); + let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) : [ + key, + locale, + messages[locale] || create() + ]; + let format2 = formatScope; + let cacheBaseKey = key; + if (!resolvedMessage && !(isString(format2) || isMessageAST(format2) || isMessageFunction(format2))) { + if (enableDefaultMsg) { + format2 = defaultMsgOrKey; + cacheBaseKey = format2; + } + } + if (!resolvedMessage && (!(isString(format2) || isMessageAST(format2) || isMessageFunction(format2)) || !isString(targetLocale))) { + return unresolving ? NOT_REOSLVED : key; + } + if (process.env.NODE_ENV !== "production" && isString(format2) && context.messageCompiler == null) { + warn(`The message format compilation is not supported in this build. Because message compiler isn't included. You need to pre-compilation all message format. So translate function return '${key}'.`); + return key; + } + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = !isMessageFunction(format2) ? compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) : format2; + if (occurred) { + return format2; + } + const ctxOptions = getMessageContextOptions(context, targetLocale, message, options); + const msgContext = createMessageContext(ctxOptions); + const messaged = evaluateMessage(context, msg, msgContext); + let ret = postTranslation ? postTranslation(messaged, key) : messaged; + if (escapeParameter && isString(ret)) { + ret = sanitizeTranslatedHtml(ret); + } + if (process.env.NODE_ENV !== "production" || false) { + const payloads = { + timestamp: Date.now(), + key: isString(key) ? key : isMessageFunction(format2) ? format2.key : "", + locale: targetLocale || (isMessageFunction(format2) ? format2.locale : ""), + format: isString(format2) ? format2 : isMessageFunction(format2) ? format2.source : "", + message: ret + }; + payloads.meta = assign({}, context.__meta, /* @__PURE__ */ getAdditionalMeta() || {}); + translateDevTools(payloads); + } + return ret; +} +function escapeParams(options) { + if (isArray(options.list)) { + options.list = options.list.map((item) => isString(item) ? escapeHtml(item) : item); + } else if (isObject(options.named)) { + Object.keys(options.named).forEach((key) => { + if (isString(options.named[key])) { + options.named[key] = escapeHtml(options.named[key]); + } + }); + } +} +function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) { + const { messages, onWarn, messageResolver: resolveValue2, localeFallbacker } = context; + const locales = localeFallbacker(context, fallbackLocale, locale); + let message = create(); + let targetLocale; + let format2 = null; + let from = locale; + let to = null; + const type = "translate"; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if (process.env.NODE_ENV !== "production" && locale !== targetLocale && !isAlmostSameLocale(locale, targetLocale) && isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage$1(CoreWarnCodes.FALLBACK_TO_TRANSLATE, { + key, + target: targetLocale + })); + } + const emitter = process.env.NODE_ENV !== "production" ? context.__v_emitter : void 0; + if (process.env.NODE_ENV !== "production" && locale !== targetLocale) { + if (emitter) { + emitter.emit("fallback", { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + message = messages[targetLocale] || create(); + if (process.env.NODE_ENV !== "production" && inBrowser) ; + if ((format2 = resolveValue2(message, key)) === null) { + format2 = message[key]; + } + if (process.env.NODE_ENV !== "production" && inBrowser) ; + if (isString(format2) || isMessageAST(format2) || isMessageFunction(format2)) { + break; + } + if (!isImplicitFallback(targetLocale, locales)) { + const missingRet = handleMissing( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + key, + targetLocale, + missingWarn, + type + ); + if (missingRet !== key) { + format2 = missingRet; + } + } + from = to; + } + return [format2, targetLocale, message]; +} +function compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) { + const { messageCompiler, warnHtmlMessage } = context; + if (isMessageFunction(format2)) { + const msg2 = format2; + msg2.locale = msg2.locale || targetLocale; + msg2.key = msg2.key || key; + return msg2; + } + if (messageCompiler == null) { + const msg2 = (() => format2); + msg2.locale = targetLocale; + msg2.key = key; + return msg2; + } + process.env.NODE_ENV !== "production" ? context.__v_emitter : void 0; + if (process.env.NODE_ENV !== "production" && inBrowser) ; + const msg = messageCompiler(format2, getCompileContext(context, targetLocale, cacheBaseKey, format2, warnHtmlMessage, onError)); + if (process.env.NODE_ENV !== "production" && inBrowser) ; + msg.locale = targetLocale; + msg.key = key; + msg.source = format2; + return msg; +} +function evaluateMessage(context, msg, msgCtx) { + process.env.NODE_ENV !== "production" ? context.__v_emitter : void 0; + if (process.env.NODE_ENV !== "production" && inBrowser) ; + const messaged = msg(msgCtx); + if (process.env.NODE_ENV !== "production" && inBrowser) ; + return messaged; +} +function parseTranslateArgs(...args) { + const [arg1, arg2, arg3] = args; + const options = create(); + if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const key = isNumber(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1; + if (isNumber(arg2)) { + options.plural = arg2; + } else if (isString(arg2)) { + options.default = arg2; + } else if (isPlainObject(arg2) && !isEmptyObject(arg2)) { + options.named = arg2; + } else if (isArray(arg2)) { + options.list = arg2; + } + if (isNumber(arg3)) { + options.plural = arg3; + } else if (isString(arg3)) { + options.default = arg3; + } else if (isPlainObject(arg3)) { + assign(options, arg3); + } + return [key, options]; +} +function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) { + return { + locale, + key, + warnHtmlMessage, + onError: (err) => { + onError && onError(err); + if (process.env.NODE_ENV !== "production") { + const _source = getSourceForCodeFrame(source); + const codeFrame = err.location && _source && generateCodeFrame(_source, err.location.start.offset, err.location.end.offset); + const emitter = context.__v_emitter; + if (emitter && _source) { + emitter.emit("compile-error", { + message: _source, + error: err.message, + start: err.location && err.location.start.offset, + end: err.location && err.location.end.offset, + groupId: `${"translate"}:${key}` + }); + } + const message = `Message compilation error: ${err.message}`; + throw new SyntaxError(codeFrame ? `${message} +${codeFrame}` : message); + } + throw err; + }, + onCacheKey: (source2) => generateFormatCacheKey(locale, key, source2) + }; +} +function getSourceForCodeFrame(source) { + if (isString(source)) { + return source; + } else { + if (source.loc && source.loc.source) { + return source.loc.source; + } + } +} +function getMessageContextOptions(context, locale, message, options) { + const { modifiers, pluralRules, messageResolver: resolveValue2, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context; + const resolveMessage = (key, useLinked) => { + let val = resolveValue2(message, key); + if (val == null && (fallbackContext || useLinked)) { + const [format2, , message2] = resolveMessageFormat( + fallbackContext || context, + // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context + key, + locale, + fallbackLocale, + fallbackWarn, + missingWarn + ); + val = format2 ?? resolveValue2(message2, key); + } + if (isString(val) || isMessageAST(val)) { + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = compileMessageFormat(context, key, locale, val, key, onError); + return !occurred ? msg : NOOP_MESSAGE_FUNCTION; + } else if (isMessageFunction(val)) { + return val; + } else { + return NOOP_MESSAGE_FUNCTION; + } + }; + const ctxOptions = { + locale, + modifiers, + pluralRules, + messages: resolveMessage + }; + if (context.processor) { + ctxOptions.processor = context.processor; + } + if (options.list) { + ctxOptions.list = options.list; + } + if (options.named) { + ctxOptions.named = options.named; + } + if (isNumber(options.plural)) { + ctxOptions.pluralIndex = options.plural; + } + return ctxOptions; +} +const VERSION = "11.4.2"; +const I18nErrorCodes = { + // composer module errors + UNEXPECTED_RETURN_TYPE: CORE_ERROR_CODES_EXTEND_POINT, + // 24 + // legacy module errors + INVALID_ARGUMENT: 25, + // i18n module errors + MUST_BE_CALL_SETUP_TOP: 26, + NOT_INSTALLED: 27, + // directive module errors + REQUIRED_VALUE: 28, + INVALID_VALUE: 29, + // vue-devtools errors + CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: 30, + NOT_INSTALLED_WITH_PROVIDE: 31, + // unexpected error + UNEXPECTED_ERROR: 32, + // not compatible legacy vue-i18n constructor + NOT_COMPATIBLE_LEGACY_VUE_I18N: 33, + // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly + NOT_AVAILABLE_COMPOSITION_IN_LEGACY: 34 +}; +function createI18nError(code, ...args) { + return createCompileError(code, null, process.env.NODE_ENV !== "production" ? { messages: errorMessages, args } : void 0); +} +const errorMessages = { + [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: "Unexpected return type in composer", + [I18nErrorCodes.INVALID_ARGUMENT]: "Invalid argument", + [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: "Must be called at the top of a `setup` function", + [I18nErrorCodes.NOT_INSTALLED]: "Need to install with `app.use` function", + [I18nErrorCodes.UNEXPECTED_ERROR]: "Unexpected error", + [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`, + [I18nErrorCodes.INVALID_VALUE]: `Invalid value`, + [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`, + [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: "Need to install with `provide` function", + [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: "Not compatible legacy VueI18n.", + [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: "Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly" +}; +const TranslateVNodeSymbol = /* @__PURE__ */ makeSymbol("__translateVNode"); +const DatetimePartsSymbol = /* @__PURE__ */ makeSymbol("__datetimeParts"); +const NumberPartsSymbol = /* @__PURE__ */ makeSymbol("__numberParts"); +const EnableEmitter = /* @__PURE__ */ makeSymbol("__enableEmitter"); +const DisableEmitter = /* @__PURE__ */ makeSymbol("__disableEmitter"); +const SetPluralRulesSymbol = makeSymbol("__setPluralRules"); +const InejctWithOptionSymbol = /* @__PURE__ */ makeSymbol("__injectWithOption"); +const DisposeSymbol = /* @__PURE__ */ makeSymbol("__dispose"); +const I18nWarnCodes = { + FALLBACK_TO_ROOT: CORE_WARN_CODES_EXTEND_POINT, + // 10 + NOT_FOUND_PARENT_SCOPE: CORE_WARN_CODES_EXTEND_POINT + 1, + IGNORE_OBJ_FLATTEN: CORE_WARN_CODES_EXTEND_POINT + 2, + /** + * @deprecated will be removed at vue-i18n v12 + */ + DEPRECATE_LEGACY_MODE: CORE_WARN_CODES_EXTEND_POINT + 3, + /** + * @deprecated will be removed at vue-i18n v12 + */ + DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE: CORE_WARN_CODES_EXTEND_POINT + 4, + // duplicate `useI18n` calling + DUPLICATE_USE_I18N_CALLING: CORE_WARN_CODES_EXTEND_POINT + 5 +}; +const warnMessages = { + [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`, + [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`, + [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`, + /** + * @deprecated will be removed at vue-i18n v12 + */ + [I18nWarnCodes.DEPRECATE_LEGACY_MODE]: `Legacy API mode has been deprecated in v11. Use Composition API mode instead. +About how to use the Composition API mode, see https://vue-i18n.intlify.dev/guide/advanced/composition.html`, + /** + * @deprecated will be removed at vue-i18n v12 + */ + [I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE]: `'v-t' has been deprecated in v11. Use translate APIs ('t' or '$t') instead.`, + [I18nWarnCodes.DUPLICATE_USE_I18N_CALLING]: "Duplicate `useI18n` calling by local scope. Please don't call it on local scope, due to it does not work properly in component." +}; +function getWarnMessage(code, ...args) { + return format$1(warnMessages[code], ...args); +} +function handleFlatJson(obj) { + if (!isObject(obj)) { + return obj; + } + if (isMessageAST(obj)) { + return obj; + } + for (const key in obj) { + if (!hasOwn(obj, key)) { + continue; + } + if (!key.includes(".")) { + if (isObject(obj[key])) { + handleFlatJson(obj[key]); + } + } else { + const subKeys = key.split("."); + const lastIndex = subKeys.length - 1; + let currentObj = obj; + let hasStringValue = false; + for (let i = 0; i < lastIndex; i++) { + if (subKeys[i] === "__proto__") { + throw new Error(`unsafe key: ${subKeys[i]}`); + } + if (!(subKeys[i] in currentObj)) { + currentObj[subKeys[i]] = create(); + } + if (!isObject(currentObj[subKeys[i]])) { + process.env.NODE_ENV !== "production" && warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, { + key: subKeys[i] + })); + hasStringValue = true; + break; + } + currentObj = currentObj[subKeys[i]]; + } + if (!hasStringValue) { + if (!isMessageAST(currentObj)) { + currentObj[subKeys[lastIndex]] = obj[key]; + delete obj[key]; + } else { + if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) { + delete obj[key]; + } + } + } + if (!isMessageAST(currentObj)) { + const target = currentObj[subKeys[lastIndex]]; + if (isObject(target)) { + handleFlatJson(target); + } + } + } + } + return obj; +} +function getLocaleMessages(locale, options) { + const { messages, __i18n, messageResolver, flatJson } = options; + const ret = isPlainObject(messages) ? messages : isArray(__i18n) ? create() : { [locale]: create() }; + if (isArray(__i18n)) { + __i18n.forEach((custom) => { + if ("locale" in custom && "resource" in custom) { + const { locale: locale2, resource } = custom; + if (locale2) { + ret[locale2] = ret[locale2] || create(); + deepCopy(resource, ret[locale2]); + } else { + deepCopy(resource, ret); + } + } else { + isString(custom) && deepCopy(JSON.parse(custom), ret); + } + }); + } + if (messageResolver == null && flatJson) { + for (const key in ret) { + if (hasOwn(ret, key)) { + handleFlatJson(ret[key]); + } + } + } + return ret; +} +function getComponentOptions(instance) { + return instance.type; +} +function adjustI18nResources(gl, options, componentOptions) { + let messages = isObject(options.messages) ? options.messages : create(); + if ("__i18nGlobal" in componentOptions) { + messages = getLocaleMessages(gl.locale.value, { + messages, + __i18n: componentOptions.__i18nGlobal + }); + } + const locales = Object.keys(messages); + if (locales.length) { + locales.forEach((locale) => { + gl.mergeLocaleMessage(locale, messages[locale]); + }); + } + { + if (isObject(options.datetimeFormats)) { + const locales2 = Object.keys(options.datetimeFormats); + if (locales2.length) { + locales2.forEach((locale) => { + gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]); + }); + } + } + if (isObject(options.numberFormats)) { + const locales2 = Object.keys(options.numberFormats); + if (locales2.length) { + locales2.forEach((locale) => { + gl.mergeNumberFormat(locale, options.numberFormats[locale]); + }); + } + } + } +} +function createTextNode(key) { + return createVNode(Text, null, key, 0); +} +function getCurrentInstance() { + const key = "currentInstance"; + if (key in Vue) { + return Vue[key]; + } else { + return Vue.getCurrentInstance(); + } +} +const DEVTOOLS_META = "__INTLIFY_META__"; +const NOOP_RETURN_ARRAY = () => []; +const NOOP_RETURN_FALSE = () => false; +let composerID = 0; +function defineCoreMissingHandler(missing) { + return ((ctx, locale, key, type) => { + return missing(locale, key, getCurrentInstance() || void 0, type); + }); +} +const getMetaInfo = /* @__NO_SIDE_EFFECTS__ */ () => { + const instance = getCurrentInstance(); + let meta = null; + return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) ? { [DEVTOOLS_META]: meta } : null; +}; +function createComposer(options = {}) { + const { __root, __injectWithOption } = options; + const _isGlobal = __root === void 0; + const flatJson = options.flatJson; + const _ref = shallowRef; + let _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : true; + const _locale = _ref( + // prettier-ignore + __root && _inheritLocale ? __root.locale.value : isString(options.locale) ? options.locale : DEFAULT_LOCALE + ); + const _fallbackLocale = _ref( + // prettier-ignore + __root && _inheritLocale ? __root.fallbackLocale.value : isString(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value + ); + const _messages = _ref(getLocaleMessages(_locale.value, options)); + const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} }); + const _numberFormats = _ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} }); + let _missingWarn = __root ? __root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + let _fallbackWarn = __root ? __root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + let _fallbackRoot = __root ? __root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; + let _fallbackFormat = !!options.fallbackFormat; + let _missing = isFunction(options.missing) ? options.missing : null; + let _runtimeMissing = isFunction(options.missing) ? defineCoreMissingHandler(options.missing) : null; + let _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + let _warnHtmlMessage = __root ? __root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + let _escapeParameter = !!options.escapeParameter; + const _modifiers = __root ? __root.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {}; + let _pluralRules = options.pluralRules || __root && __root.pluralRules; + let _context; + const getCoreContext = () => { + _isGlobal && setFallbackContext(null); + const ctxOptions = { + version: VERSION, + locale: _locale.value, + fallbackLocale: _fallbackLocale.value, + messages: _messages.value, + modifiers: _modifiers, + pluralRules: _pluralRules, + missing: _runtimeMissing === null ? void 0 : _runtimeMissing, + missingWarn: _missingWarn, + fallbackWarn: _fallbackWarn, + fallbackFormat: _fallbackFormat, + unresolving: true, + postTranslation: _postTranslation === null ? void 0 : _postTranslation, + warnHtmlMessage: _warnHtmlMessage, + escapeParameter: _escapeParameter, + messageResolver: options.messageResolver, + messageCompiler: options.messageCompiler, + __meta: { framework: "vue" } + }; + { + ctxOptions.datetimeFormats = _datetimeFormats.value; + ctxOptions.numberFormats = _numberFormats.value; + ctxOptions.__datetimeFormatters = isPlainObject(_context) ? _context.__datetimeFormatters : void 0; + ctxOptions.__numberFormatters = isPlainObject(_context) ? _context.__numberFormatters : void 0; + } + if (process.env.NODE_ENV !== "production") { + ctxOptions.__v_emitter = isPlainObject(_context) ? _context.__v_emitter : void 0; + } + const ctx = createCoreContext(ctxOptions); + _isGlobal && setFallbackContext(ctx); + return ctx; + }; + _context = getCoreContext(); + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + function trackReactivityValues() { + return [ + _locale.value, + _fallbackLocale.value, + _messages.value, + _datetimeFormats.value, + _numberFormats.value + ]; + } + const locale = computed({ + get: () => _locale.value, + set: (val) => { + _context.locale = val; + _locale.value = val; + } + }); + const fallbackLocale = computed({ + get: () => _fallbackLocale.value, + set: (val) => { + _context.fallbackLocale = val; + _fallbackLocale.value = val; + updateFallbackLocale(_context, _locale.value, val); + } + }); + const messages = computed(() => _messages.value); + const datetimeFormats = /* @__PURE__ */ computed(() => _datetimeFormats.value); + const numberFormats = /* @__PURE__ */ computed(() => _numberFormats.value); + function getPostTranslationHandler() { + return isFunction(_postTranslation) ? _postTranslation : null; + } + function setPostTranslationHandler(handler) { + _postTranslation = handler; + _context.postTranslation = handler; + } + function getMissingHandler() { + return _missing; + } + function setMissingHandler(handler) { + if (handler !== null) { + _runtimeMissing = defineCoreMissingHandler(handler); + } + _missing = handler; + _context.missing = _runtimeMissing; + } + function isResolvedTranslateMessage(type, arg) { + return type !== "translate" || !arg.resolvedMessage; + } + const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => { + trackReactivityValues(); + let ret; + try { + if (process.env.NODE_ENV !== "production" || false) { + /* @__PURE__ */ setAdditionalMeta(/* @__PURE__ */ getMetaInfo()); + } + if (!_isGlobal) { + _context.fallbackContext = __root ? getFallbackContext() : void 0; + } + ret = fn(_context); + } finally { + if (process.env.NODE_ENV !== "production" || false) ; + if (!_isGlobal) { + _context.fallbackContext = void 0; + } + } + if (warnType !== "translate exists" && // for not `te` (e.g `t`) + isNumber(ret) && ret === NOT_REOSLVED || warnType === "translate exists" && !ret) { + const [key, arg2] = argumentParser(); + if (process.env.NODE_ENV !== "production" && __root && isString(key) && isResolvedTranslateMessage(warnType, arg2)) { + if (_fallbackRoot && (isTranslateFallbackWarn(_fallbackWarn, key) || isTranslateMissingWarn(_missingWarn, key))) { + warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, { + key, + type: warnType + })); + } + if (process.env.NODE_ENV !== "production") { + const { __v_emitter: emitter } = _context; + if (emitter && _fallbackRoot) { + emitter.emit("fallback", { + type: warnType, + key, + to: "global", + groupId: `${warnType}:${key}` + }); + } + } + } + return __root && _fallbackRoot ? fallbackSuccess(__root) : fallbackFail(key); + } else if (successCondition(ret)) { + return ret; + } else { + throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE); + } + }; + function t(...args) { + return wrapWithDeps((context) => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), "translate", (root) => Reflect.apply(root.t, root, [...args]), (key) => key, (val) => isString(val)); + } + function rt(...args) { + const [arg1, arg2, arg3] = args; + if (arg3 && !isObject(arg3)) { + throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); + } + return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]); + } + function d(...args) { + return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString(val) || isArray(val)); + } + function n(...args) { + return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString(val) || isArray(val)); + } + function normalize(values) { + return values.map((val) => isString(val) || isNumber(val) || isBoolean(val) ? createTextNode(String(val)) : val); + } + const interpolate = (val) => val; + const processor = { + normalize, + interpolate, + type: "vnode" + }; + function translateVNode(...args) { + return wrapWithDeps((context) => { + let ret; + const _context2 = context; + try { + _context2.processor = processor; + ret = Reflect.apply(translate, null, [_context2, ...args]); + } finally { + _context2.processor = null; + } + return ret; + }, () => parseTranslateArgs(...args), "translate", (root) => root[TranslateVNodeSymbol](...args), (key) => [createTextNode(key)], (val) => isArray(val)); + } + function numberParts(...args) { + return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString(val) || isArray(val)); + } + function datetimeParts(...args) { + return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString(val) || isArray(val)); + } + function setPluralRules(rules) { + _pluralRules = rules; + _context.pluralRules = _pluralRules; + } + function te(key, locale2) { + return wrapWithDeps(() => { + if (!key) { + return false; + } + const targetLocale = isString(locale2) ? locale2 : _locale.value; + const locales = isString(locale2) ? [targetLocale] : fallbackWithLocaleChain(_context, _fallbackLocale.value, targetLocale); + for (let i = 0; i < locales.length; i++) { + const message = getLocaleMessage(locales[i]); + let resolved = _context.messageResolver(message, key); + if (resolved === null) { + resolved = message[key]; + } + if (isMessageAST(resolved) || isMessageFunction(resolved) || isString(resolved)) { + return true; + } + } + return false; + }, () => [key], "translate exists", (root) => { + return Reflect.apply(root.te, root, [key, locale2]); + }, NOOP_RETURN_FALSE, (val) => isBoolean(val)); + } + function resolveMessages(key) { + let messages2 = null; + const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value); + for (let i = 0; i < locales.length; i++) { + const targetLocaleMessages = _messages.value[locales[i]] || {}; + const messageValue = _context.messageResolver(targetLocaleMessages, key); + if (messageValue != null) { + messages2 = messageValue; + break; + } + } + return messages2; + } + function tm(key) { + const messages2 = resolveMessages(key); + return messages2 != null ? messages2 : __root ? __root.tm(key) || {} : {}; + } + function getLocaleMessage(locale2) { + return _messages.value[locale2] || {}; + } + function setLocaleMessage(locale2, message) { + if (flatJson) { + const _message = { [locale2]: message }; + for (const key in _message) { + if (hasOwn(_message, key)) { + handleFlatJson(_message[key]); + } + } + message = _message[locale2]; + } + _messages.value[locale2] = message; + _context.messages = _messages.value; + } + function mergeLocaleMessage(locale2, message) { + _messages.value[locale2] = _messages.value[locale2] || {}; + const _message = { [locale2]: message }; + if (flatJson) { + for (const key in _message) { + if (hasOwn(_message, key)) { + handleFlatJson(_message[key]); + } + } + } + message = _message[locale2]; + deepCopy(message, _messages.value[locale2]); + _context.messages = _messages.value; + } + function getDateTimeFormat(locale2) { + return _datetimeFormats.value[locale2] || {}; + } + function setDateTimeFormat(locale2, format2) { + _datetimeFormats.value[locale2] = format2; + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale2, format2); + } + function mergeDateTimeFormat(locale2, format2) { + _datetimeFormats.value[locale2] = assign(_datetimeFormats.value[locale2] || {}, format2); + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale2, format2); + } + function getNumberFormat(locale2) { + return _numberFormats.value[locale2] || {}; + } + function setNumberFormat(locale2, format2) { + _numberFormats.value[locale2] = format2; + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale2, format2); + } + function mergeNumberFormat(locale2, format2) { + _numberFormats.value[locale2] = assign(_numberFormats.value[locale2] || {}, format2); + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale2, format2); + } + composerID++; + const composer = { + id: composerID, + locale, + fallbackLocale, + get inheritLocale() { + return _inheritLocale; + }, + set inheritLocale(val) { + _inheritLocale = val; + if (val && __root) { + _locale.value = __root.locale.value; + _fallbackLocale.value = __root.fallbackLocale.value; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }, + get availableLocales() { + return Object.keys(_messages.value).sort(); + }, + messages, + get modifiers() { + return _modifiers; + }, + get pluralRules() { + return _pluralRules || {}; + }, + get isGlobal() { + return _isGlobal; + }, + get missingWarn() { + return _missingWarn; + }, + set missingWarn(val) { + _missingWarn = val; + _context.missingWarn = _missingWarn; + }, + get fallbackWarn() { + return _fallbackWarn; + }, + set fallbackWarn(val) { + _fallbackWarn = val; + _context.fallbackWarn = _fallbackWarn; + }, + get fallbackRoot() { + return _fallbackRoot; + }, + set fallbackRoot(val) { + _fallbackRoot = val; + }, + get fallbackFormat() { + return _fallbackFormat; + }, + set fallbackFormat(val) { + _fallbackFormat = val; + _context.fallbackFormat = _fallbackFormat; + }, + get warnHtmlMessage() { + return _warnHtmlMessage; + }, + set warnHtmlMessage(val) { + _warnHtmlMessage = val; + _context.warnHtmlMessage = val; + }, + get escapeParameter() { + return _escapeParameter; + }, + set escapeParameter(val) { + _escapeParameter = val; + _context.escapeParameter = val; + }, + t, + getLocaleMessage, + setLocaleMessage, + mergeLocaleMessage, + getPostTranslationHandler, + setPostTranslationHandler, + getMissingHandler, + setMissingHandler, + [SetPluralRulesSymbol]: setPluralRules + }; + { + composer.datetimeFormats = datetimeFormats; + composer.numberFormats = numberFormats; + composer.rt = rt; + composer.te = te; + composer.tm = tm; + composer.d = d; + composer.n = n; + composer.getDateTimeFormat = getDateTimeFormat; + composer.setDateTimeFormat = setDateTimeFormat; + composer.mergeDateTimeFormat = mergeDateTimeFormat; + composer.getNumberFormat = getNumberFormat; + composer.setNumberFormat = setNumberFormat; + composer.mergeNumberFormat = mergeNumberFormat; + composer[InejctWithOptionSymbol] = __injectWithOption; + composer[TranslateVNodeSymbol] = translateVNode; + composer[DatetimePartsSymbol] = datetimeParts; + composer[NumberPartsSymbol] = numberParts; + } + if (process.env.NODE_ENV !== "production") { + composer[EnableEmitter] = (emitter) => { + _context.__v_emitter = emitter; + }; + composer[DisableEmitter] = () => { + _context.__v_emitter = void 0; + }; + } + return composer; +} +const VUE_I18N_COMPONENT_TYPES = "vue-i18n: composer properties"; +const VueDevToolsLabels = { + "vue-devtools-plugin-vue-i18n": "Vue I18n DevTools", + "vue-i18n-resource-inspector": "Vue I18n DevTools", + "vue-i18n-timeline": "Vue I18n" +}; +const VueDevToolsPlaceholders = { + "vue-i18n-resource-inspector": "Search for scopes ..." +}; +const VueDevToolsTimelineColors = { + "vue-i18n-timeline": 16764185 +}; +let devtoolsApi; +async function enableDevTools(app, i18n) { + return new Promise((resolve, reject) => { + try { + setupDevtoolsPlugin({ + id: "vue-devtools-plugin-vue-i18n", + label: VueDevToolsLabels["vue-devtools-plugin-vue-i18n"], + packageName: "vue-i18n", + homepage: "https://vue-i18n.intlify.dev", + logo: "https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png", + componentStateTypes: [VUE_I18N_COMPONENT_TYPES], + app + // eslint-disable-line @typescript-eslint/no-explicit-any + }, (api) => { + devtoolsApi = api; + api.on.visitComponentTree(({ componentInstance, treeNode }) => { + updateComponentTreeTags(componentInstance, treeNode, i18n); + }); + api.on.inspectComponent(({ componentInstance, instanceData }) => { + if (componentInstance.__VUE_I18N__ && instanceData) { + if (i18n.mode === "legacy") { + if (componentInstance.__VUE_I18N__ !== i18n.global.__composer) { + inspectComposer(instanceData, componentInstance.__VUE_I18N__); + } + } else { + inspectComposer(instanceData, componentInstance.__VUE_I18N__); + } + } + }); + api.addInspector({ + id: "vue-i18n-resource-inspector", + label: VueDevToolsLabels["vue-i18n-resource-inspector"], + icon: "language", + treeFilterPlaceholder: VueDevToolsPlaceholders["vue-i18n-resource-inspector"] + }); + api.on.getInspectorTree((payload) => { + if (payload.app === app && payload.inspectorId === "vue-i18n-resource-inspector") { + registerScope(payload, i18n); + } + }); + const roots = /* @__PURE__ */ new Map(); + api.on.getInspectorState(async (payload) => { + if (payload.app === app && payload.inspectorId === "vue-i18n-resource-inspector") { + api.unhighlightElement(); + inspectScope(payload, i18n); + if (payload.nodeId === "global") { + if (!roots.has(payload.app)) { + const [root] = await api.getComponentInstances(payload.app); + roots.set(payload.app, root); + } + api.highlightElement(roots.get(payload.app)); + } else { + const instance = getComponentInstance(payload.nodeId, i18n); + instance && api.highlightElement(instance); + } + } + }); + api.on.editInspectorState((payload) => { + if (payload.app === app && payload.inspectorId === "vue-i18n-resource-inspector") { + editScope(payload, i18n); + } + }); + api.addTimelineLayer({ + id: "vue-i18n-timeline", + label: VueDevToolsLabels["vue-i18n-timeline"], + color: VueDevToolsTimelineColors["vue-i18n-timeline"] + }); + resolve(true); + }); + } catch (e) { + console.error(e); + reject(false); + } + }); +} +function getI18nScopeLable(instance) { + return instance.type.name || instance.type.displayName || instance.type.__file || "Anonymous"; +} +function updateComponentTreeTags(instance, treeNode, i18n) { + const global2 = i18n.mode === "composition" ? i18n.global : i18n.global.__composer; + if (instance && instance.__VUE_I18N__) { + if (instance.__VUE_I18N__ !== global2) { + const tag = { + label: `i18n (${getI18nScopeLable(instance)} Scope)`, + textColor: 0, + backgroundColor: 16764185 + }; + treeNode.tags.push(tag); + } + } +} +function inspectComposer(instanceData, composer) { + const type = VUE_I18N_COMPONENT_TYPES; + instanceData.state.push({ + type, + key: "locale", + editable: true, + value: composer.locale.value + }); + instanceData.state.push({ + type, + key: "availableLocales", + editable: false, + value: composer.availableLocales + }); + instanceData.state.push({ + type, + key: "fallbackLocale", + editable: true, + value: composer.fallbackLocale.value + }); + instanceData.state.push({ + type, + key: "inheritLocale", + editable: true, + value: composer.inheritLocale + }); + instanceData.state.push({ + type, + key: "messages", + editable: false, + value: getLocaleMessageValue(composer.messages.value) + }); + { + instanceData.state.push({ + type, + key: "datetimeFormats", + editable: false, + value: composer.datetimeFormats.value + }); + instanceData.state.push({ + type, + key: "numberFormats", + editable: false, + value: composer.numberFormats.value + }); + } +} +function getLocaleMessageValue(messages) { + const value = {}; + Object.keys(messages).forEach((key) => { + const v = messages[key]; + if (isFunction(v) && "source" in v) { + value[key] = getMessageFunctionDetails(v); + } else if (isMessageAST(v) && v.loc && v.loc.source) { + value[key] = v.loc.source; + } else if (isObject(v)) { + value[key] = getLocaleMessageValue(v); + } else { + value[key] = v; + } + }); + return value; +} +const ESC = { + "<": "<", + ">": ">", + '"': """, + "&": "&" +}; +function escape(s) { + return s.replace(/[<>"&]/g, escapeChar); +} +function escapeChar(a) { + return ESC[a] || a; +} +function getMessageFunctionDetails(func) { + const argString = func.source ? `("${escape(func.source)}")` : `(?)`; + return { + _custom: { + type: "function", + display: `ƒ ${argString}` + } + }; +} +function registerScope(payload, i18n) { + payload.rootNodes.push({ + id: "global", + label: "Global Scope" + }); + const global2 = i18n.mode === "composition" ? i18n.global : i18n.global.__composer; + for (const [keyInstance, instance] of i18n.__instances) { + const composer = i18n.mode === "composition" ? instance : instance.__composer; + if (global2 === composer) { + continue; + } + payload.rootNodes.push({ + id: composer.id.toString(), + label: `${getI18nScopeLable(keyInstance)} Scope` + }); + } +} +function getComponentInstance(nodeId, i18n) { + let instance = null; + if (nodeId !== "global") { + for (const [component, composer] of i18n.__instances.entries()) { + if (composer.id.toString() === nodeId) { + instance = component; + break; + } + } + } + return instance; +} +function getComposer$2(nodeId, i18n) { + if (nodeId === "global") { + return i18n.mode === "composition" ? i18n.global : i18n.global.__composer; + } else { + const instance = Array.from(i18n.__instances.values()).find((item) => item.id.toString() === nodeId); + if (instance) { + return i18n.mode === "composition" ? instance : instance.__composer; + } else { + return null; + } + } +} +function inspectScope(payload, i18n) { + const composer = getComposer$2(payload.nodeId, i18n); + if (composer) { + payload.state = makeScopeInspectState(composer); + } + return null; +} +function makeScopeInspectState(composer) { + const state = {}; + const localeType = "Locale related info"; + const localeStates = [ + { + type: localeType, + key: "locale", + editable: true, + value: composer.locale.value + }, + { + type: localeType, + key: "fallbackLocale", + editable: true, + value: composer.fallbackLocale.value + }, + { + type: localeType, + key: "availableLocales", + editable: false, + value: composer.availableLocales + }, + { + type: localeType, + key: "inheritLocale", + editable: true, + value: composer.inheritLocale + } + ]; + state[localeType] = localeStates; + const localeMessagesType = "Locale messages info"; + const localeMessagesStates = [ + { + type: localeMessagesType, + key: "messages", + editable: false, + value: getLocaleMessageValue(composer.messages.value) + } + ]; + state[localeMessagesType] = localeMessagesStates; + { + const datetimeFormatsType = "Datetime formats info"; + const datetimeFormatsStates = [ + { + type: datetimeFormatsType, + key: "datetimeFormats", + editable: false, + value: composer.datetimeFormats.value + } + ]; + state[datetimeFormatsType] = datetimeFormatsStates; + const numberFormatsType = "Datetime formats info"; + const numberFormatsStates = [ + { + type: numberFormatsType, + key: "numberFormats", + editable: false, + value: composer.numberFormats.value + } + ]; + state[numberFormatsType] = numberFormatsStates; + } + return state; +} +function addTimelineEvent(event, payload) { + if (devtoolsApi) { + let groupId; + if (payload && "groupId" in payload) { + groupId = payload.groupId; + delete payload.groupId; + } + devtoolsApi.addTimelineEvent({ + layerId: "vue-i18n-timeline", + event: { + title: event, + groupId, + time: Date.now(), + meta: {}, + data: payload || {}, + logType: event === "compile-error" ? "error" : event === "fallback" || event === "missing" ? "warning" : "default" + } + }); + } +} +function editScope(payload, i18n) { + const composer = getComposer$2(payload.nodeId, i18n); + if (composer) { + const [field] = payload.path; + if (field === "locale" && isString(payload.state.value)) { + composer.locale.value = payload.state.value; + } else if (field === "fallbackLocale" && (isString(payload.state.value) || isArray(payload.state.value) || isObject(payload.state.value))) { + composer.fallbackLocale.value = payload.state.value; + } else if (field === "inheritLocale" && isBoolean(payload.state.value)) { + composer.inheritLocale = payload.state.value; + } + } +} +const baseFormatProps = { + tag: { + type: [String, Object] + }, + locale: { + type: String + }, + scope: { + type: String, + // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050 + validator: (val) => val === "parent" || val === "global", + default: "parent" + /* ComponentI18nScope */ + }, + i18n: { + type: Object + } +}; +function getInterpolateArg({ slots }, keys) { + if (keys.length === 1 && keys[0] === "default") { + const ret = slots.default ? slots.default() : []; + return ret.reduce((slot, current) => { + return [ + ...slot, + // prettier-ignore + ...current.type === Fragment ? current.children : [current] + ]; + }, []); + } else { + return keys.reduce((arg, key) => { + const slot = slots[key]; + if (slot) { + arg[key] = slot(); + } + return arg; + }, create()); + } +} +function getFragmentableTag() { + return Fragment; +} +const TranslationImpl = /* @__PURE__ */ defineComponent({ + /* eslint-disable */ + name: "i18n-t", + props: assign({ + keypath: { + type: String, + required: true + }, + plural: { + type: [Number, String], + validator: (val) => isNumber(val) || !isNaN(val) + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const { slots, attrs } = context; + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return () => { + const renderChildren = () => { + const keys = Object.keys(slots).filter((key) => key[0] !== "_"); + const options = create(); + if (props.locale) { + options.locale = props.locale; + } + if (props.plural !== void 0) { + options.plural = isString(props.plural) ? +props.plural : props.plural; + } + const arg = getInterpolateArg(context, keys); + return i18n[TranslateVNodeSymbol](props.keypath, arg, options); + }; + const assignedAttrs = assign(create(), attrs); + const tag = isString(props.tag) || isObject(props.tag) ? props.tag : getFragmentableTag(); + return isObject(tag) ? h(tag, assignedAttrs, { default: renderChildren }) : h(tag, assignedAttrs, renderChildren()); + }; + } +}); +const Translation = TranslationImpl; +function isVNode(target) { + return isArray(target) && !isString(target[0]); +} +function renderFormatter(props, context, slotKeys, partFormatter) { + const { slots, attrs } = context; + return () => { + const renderChildren = () => { + const options = { part: true }; + let overrides = create(); + if (props.locale) { + options.locale = props.locale; + } + if (isString(props.format)) { + options.key = props.format; + } else if (isObject(props.format)) { + if (isString(props.format.key)) { + options.key = props.format.key; + } + overrides = Object.keys(props.format).reduce((options2, prop) => { + return slotKeys.includes(prop) ? assign(create(), options2, { [prop]: props.format[prop] }) : options2; + }, create()); + } + const parts = partFormatter(...[props.value, options, overrides]); + let children = [options.key]; + if (isArray(parts)) { + children = parts.map((part, index) => { + const slot = slots[part.type]; + const node = slot ? slot({ [part.type]: part.value, index, parts }) : [part.value]; + if (isVNode(node)) { + node[0].key = `${part.type}-${index}`; + } + return node; + }); + } else if (isString(parts)) { + children = [parts]; + } + return children; + }; + const assignedAttrs = assign(create(), attrs); + const tag = isString(props.tag) || isObject(props.tag) ? props.tag : getFragmentableTag(); + return isObject(tag) ? h(tag, assignedAttrs, { default: renderChildren }) : h(tag, assignedAttrs, renderChildren()); + }; +} +const NumberFormatImpl = /* @__PURE__ */ defineComponent({ + /* eslint-disable */ + name: "i18n-n", + props: assign({ + value: { + type: Number, + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[NumberPartsSymbol](...args) + )); + } +}); +const NumberFormat = NumberFormatImpl; +function getComposer$1(i18n, instance) { + const i18nInternal = i18n; + if (i18n.mode === "composition") { + return i18nInternal.__getInstance(instance) || i18n.global; + } else { + const vueI18n = i18nInternal.__getInstance(instance); + return vueI18n != null ? vueI18n.__composer : i18n.global.__composer; + } +} +function vTDirective(i18n) { + const _process = (binding) => { + if (process.env.NODE_ENV !== "production") { + warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE)); + } + const { instance, value } = binding; + if (!instance || !instance.$) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const composer = getComposer$1(i18n, instance.$); + const parsedValue = parseValue(value); + return [ + Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]), + composer + ]; + }; + const register = (el, binding) => { + const [textContent, composer] = _process(binding); + el.__composer = composer; + el.textContent = textContent; + }; + const unregister = (el) => { + if (el.__composer) { + el.__composer = void 0; + delete el.__composer; + } + }; + const update = (el, { value }) => { + if (el.__composer) { + const composer = el.__composer; + const parsedValue = parseValue(value); + el.textContent = Reflect.apply(composer.t, composer, [ + ...makeParams(parsedValue) + ]); + } + }; + const getSSRProps = (binding) => { + const [textContent] = _process(binding); + return { textContent }; + }; + return { + created: register, + unmounted: unregister, + beforeUpdate: update, + getSSRProps + }; +} +function parseValue(value) { + if (isString(value)) { + return { path: value }; + } else if (isPlainObject(value)) { + if (!("path" in value)) { + throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, "path"); + } + return value; + } else { + throw createI18nError(I18nErrorCodes.INVALID_VALUE); + } +} +function makeParams(value) { + const { path, locale, args, choice, plural } = value; + const options = {}; + const named = args || {}; + if (isString(locale)) { + options.locale = locale; + } + if (isNumber(choice)) { + options.plural = choice; + } + if (isNumber(plural)) { + options.plural = plural; + } + return [path, named, options]; +} +function apply(app, i18n, ...options) { + const pluginOptions = isPlainObject(options[0]) ? options[0] : {}; + const globalInstall = isBoolean(pluginOptions.globalInstall) ? pluginOptions.globalInstall : true; + if (globalInstall) { + [Translation.name, "I18nT"].forEach((name) => app.component(name, Translation)); + [NumberFormat.name, "I18nN"].forEach((name) => app.component(name, NumberFormat)); + [DatetimeFormat.name, "I18nD"].forEach((name) => app.component(name, DatetimeFormat)); + } + { + app.directive("t", vTDirective(i18n)); + } +} +const I18nInjectionKey = /* @__PURE__ */ makeSymbol("global-vue-i18n"); +function createI18n(options = {}) { + const __legacyMode = false; + if (process.env.NODE_ENV !== "production" && __legacyMode) ; + const __globalInjection = isBoolean(options.globalInjection) ? options.globalInjection : true; + const __instances = /* @__PURE__ */ new Map(); + const [globalScope, __global] = createGlobal(options); + const symbol = /* @__PURE__ */ makeSymbol(process.env.NODE_ENV !== "production" ? "vue-i18n" : ""); + function __getInstance(component) { + return __instances.get(component) || null; + } + function __setInstance(component, instance) { + __instances.set(component, instance); + } + function __deleteInstance(component) { + __instances.delete(component); + } + const i18n = { + // mode + get mode() { + return "composition"; + }, + // install plugin + async install(app, ...options2) { + if ((process.env.NODE_ENV !== "production" || false) && true) { + app.__VUE_I18N__ = i18n; + } + app.__VUE_I18N_SYMBOL__ = symbol; + app.provide(app.__VUE_I18N_SYMBOL__, i18n); + if (isPlainObject(options2[0])) { + const opts = options2[0]; + i18n.__composerExtend = opts.__composerExtend; + i18n.__vueI18nExtend = opts.__vueI18nExtend; + } + let globalReleaseHandler = null; + if (__globalInjection) { + globalReleaseHandler = injectGlobalFields(app, i18n.global); + } + { + apply(app, i18n, ...options2); + } + const unmountApp = app.unmount; + app.unmount = () => { + globalReleaseHandler && globalReleaseHandler(); + i18n.dispose(); + unmountApp(); + }; + if ((process.env.NODE_ENV !== "production" || false) && true) { + const ret = await enableDevTools(app, i18n); + if (!ret) { + throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN); + } + const emitter = createEmitter(); + { + const _composer = __global; + _composer[EnableEmitter] && _composer[EnableEmitter](emitter); + } + emitter.on("*", addTimelineEvent); + } + }, + // global accessor + get global() { + return __global; + }, + dispose() { + globalScope.stop(); + }, + // @internal + __instances, + // @internal + __getInstance, + // @internal + __setInstance, + // @internal + __deleteInstance + }; + return i18n; +} +function useI18n(options = {}) { + const instance = getCurrentInstance(); + if (instance == null) { + throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP); + } + if (!instance.isCE && instance.appContext.app != null && !instance.appContext.app.__VUE_I18N_SYMBOL__) { + throw createI18nError(I18nErrorCodes.NOT_INSTALLED); + } + const i18n = getI18nInstance(instance); + const gl = getGlobalComposer(i18n); + const componentOptions = getComponentOptions(instance); + const scope = getScope(options, componentOptions); + if (scope === "global") { + adjustI18nResources(gl, options, componentOptions); + return gl; + } + if (scope === "parent") { + let composer2 = getComposer(i18n, instance, options.__useComponent); + if (composer2 == null) { + if (process.env.NODE_ENV !== "production") { + warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE)); + } + composer2 = gl; + } + return composer2; + } + if (scope === "isolated") { + if (i18n.mode !== "composition") { + throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY); + } + const i18nInternalIso = i18n; + const composerOptions = assign({}, options); + const parentComposer = getComposer(i18n, instance); + composerOptions.__root = parentComposer || gl; + const composer2 = createComposer(composerOptions); + if (i18nInternalIso.__composerExtend) { + composer2[DisposeSymbol] = i18nInternalIso.__composerExtend(composer2); + } + let emitter = null; + if ((process.env.NODE_ENV !== "production" || false) && true) { + emitter = createEmitter(); + const _composer = composer2; + _composer[EnableEmitter] && _composer[EnableEmitter](emitter); + emitter.on("*", addTimelineEvent); + } + const currentScope = getCurrentScope(); + if (currentScope) { + onScopeDispose(() => { + if ((process.env.NODE_ENV !== "production" || false) && true) { + emitter && emitter.off("*", addTimelineEvent); + const _composer = composer2; + _composer[DisableEmitter] && _composer[DisableEmitter](); + } + const dispose = composer2[DisposeSymbol]; + if (dispose) { + dispose(); + delete composer2[DisposeSymbol]; + } + }); + } + return composer2; + } + const i18nInternal = i18n; + let composer = i18nInternal.__getInstance(instance); + if (composer == null) { + const composerOptions = assign({}, options); + if ("__i18n" in componentOptions) { + composerOptions.__i18n = componentOptions.__i18n; + } + if (gl) { + composerOptions.__root = gl; + } + composer = createComposer(composerOptions); + if (i18nInternal.__composerExtend) { + composer[DisposeSymbol] = i18nInternal.__composerExtend(composer); + } + i18nInternal.__setInstance(instance, composer); + } else { + if (process.env.NODE_ENV !== "production" && scope === "local") { + warn(getWarnMessage(I18nWarnCodes.DUPLICATE_USE_I18N_CALLING)); + } + } + return composer; +} +function createGlobal(options, legacyMode) { + const scope = effectScope(); + const obj = scope.run(() => createComposer(options)); + if (obj == null) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + return [scope, obj]; +} +function getI18nInstance(instance) { + const i18n = inject(!instance.isCE ? instance.appContext.app.__VUE_I18N_SYMBOL__ : I18nInjectionKey); + if (!i18n) { + throw createI18nError(!instance.isCE ? I18nErrorCodes.UNEXPECTED_ERROR : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE); + } + return i18n; +} +function getScope(options, componentOptions) { + return isEmptyObject(options) ? "__i18n" in componentOptions ? "local" : "global" : !options.useScope ? "local" : options.useScope; +} +function getGlobalComposer(i18n) { + return i18n.mode === "composition" ? i18n.global : i18n.global.__composer; +} +function getComposer(i18n, target, useComponent = false) { + let composer = null; + const root = target.root; + let current = getParentComponentInstance(target, useComponent); + while (current != null) { + const i18nInternal = i18n; + if (i18n.mode === "composition") { + composer = i18nInternal.__getInstance(current); + } + if (composer != null) { + break; + } + if (root === current) { + break; + } + current = current.parent; + } + return composer; +} +function getParentComponentInstance(target, useComponent = false) { + if (target == null) { + return null; + } + return !useComponent ? target.parent : target.vnode.ctx || target.parent; +} +const globalExportProps = [ + "locale", + "fallbackLocale", + "availableLocales" +]; +const globalExportMethods = ["t", "rt", "d", "n", "tm", "te"]; +function injectGlobalFields(app, composer) { + const i18n = /* @__PURE__ */ Object.create(null); + globalExportProps.forEach((prop) => { + const desc = Object.getOwnPropertyDescriptor(composer, prop); + if (!desc) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const wrap = isRef(desc.value) ? { + get() { + return desc.value.value; + }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + set(val) { + desc.value.value = val; + } + } : { + get() { + return desc.get && desc.get(); + } + }; + Object.defineProperty(i18n, prop, wrap); + }); + app.config.globalProperties.$i18n = i18n; + globalExportMethods.forEach((method) => { + const desc = Object.getOwnPropertyDescriptor(composer, method); + if (!desc || !desc.value) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + Object.defineProperty(app.config.globalProperties, `$${method}`, desc); + }); + const dispose = () => { + delete app.config.globalProperties.$i18n; + globalExportMethods.forEach((method) => { + delete app.config.globalProperties[`$${method}`]; + }); + }; + return dispose; +} +const DatetimeFormatImpl = /* @__PURE__ */ defineComponent({ + /* eslint-disable */ + name: "i18n-d", + props: assign({ + value: { + type: [Number, Date], + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[DatetimePartsSymbol](...args) + )); + } +}); +const DatetimeFormat = DatetimeFormatImpl; +registerMessageCompiler(compile); +registerMessageResolver(resolveValue); +registerLocaleFallbacker(fallbackWithLocaleChain); +if (process.env.NODE_ENV !== "production" || false) { + const target = getGlobalThis(); + target.__INTLIFY__ = true; + setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__); +} +if (process.env.NODE_ENV !== "production") ; +function useRouteBaseName(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (route) => { + if (route == null) { + return; + } + return common.getRouteBaseName(route) || void 0; + }; +} +function useLocalePath(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (route, locale) => localePath(common, route, locale); +} +function useLocaleRoute(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (route, locale) => localeRoute(common, route, locale); +} +function useSwitchLocalePath(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (locale) => switchLocalePath(common, locale); +} +const identifier = "nuxt-i18n-slp"; +const switchLocalePathLinkWrapperExpr = new RegExp( + [``, `.+?`, ``].join(""), + "g" +); +const switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:switch-locale-path-ssr", + dependsOn: ["i18n:plugin"], + setup(_nuxt) { + const nuxt = useNuxtApp(_nuxt._id); + const switchLocalePath2 = useSwitchLocalePath(nuxt); + nuxt.hook("app:rendered", (ctx) => { + if (ctx.renderResult?.html == null) { + return; + } + ctx.renderResult.html = ctx.renderResult.html.replaceAll( + switchLocalePathLinkWrapperExpr, + (match, p1) => { + const encoded = encodeURI(switchLocalePath2(p1 ?? "")); + return match.replace( + /href="([^"]+)"/, + `href="${encoded || "#"}" ${""}` + ); + } + ); + }); + } +}); +const route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:route-locale-detect", + dependsOn: ["i18n:plugin"], + async setup(_nuxt) { + let __temp, __restore; + const nuxt = useNuxtApp(_nuxt._id); + const ctx = useNuxtI18nContext(nuxt); + const resolvedLocale = useResolvedLocale(); + [__temp, __restore] = executeAsync(() => nuxt.runWithContext( + () => loadAndSetLocale( + nuxt, + ctx.initial && resolvedLocale.value || detectLocale(nuxt, nuxt.$router.currentRoute.value) + ) + )), await __temp, __restore(); + { + return; + } + } +}); +const preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24 = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:preload", + dependsOn: ["i18n:plugin"], + async setup(_nuxt) { + { + return; + } + } +}); +function extendI18n(i18n, { extendComposer, extendComposerInstance }) { + const scope = effectScope(); + const installI18n = i18n.install.bind(i18n); + i18n.install = (app, ...options) => { + const pluginOptions = assign({}, options[0]); + pluginOptions.__composerExtend = (c) => { + extendComposerInstance(c, getComposer$3(i18n)); + return () => { + }; + }; + if (i18n.mode === "legacy") { + pluginOptions.__vueI18nExtend = (vueI18n) => { + extendComposerInstance(vueI18n, getComposer$3(vueI18n)); + return () => { + }; + }; + } + Reflect.apply(installI18n, i18n, [app, pluginOptions]); + const globalComposer = getComposer$3(i18n); + scope.run(() => { + extendComposer(globalComposer); + if (i18n.mode === "legacy" && "__composer" in i18n.global) { + extendComposerInstance(i18n.global, getComposer$3(i18n.global)); + } + }); + if (i18n.mode === "composition" && app.config.globalProperties.$i18n != null) { + extendComposerInstance(app.config.globalProperties.$i18n, globalComposer); + } + if (app.unmount) { + const unmountApp = app.unmount.bind(app); + app.unmount = () => { + scope.stop(); + unmountApp(); + }; + } + }; +} +const setupVueI18nOptions = async (defaultLocale) => { + const options = await loadVueI18nOptions(vueI18nConfigs); + options.locale = defaultLocale || options.locale || "en-US"; + options.defaultLocale = defaultLocale; + options.fallbackLocale ??= false; + options.messages ??= {}; + for (const locale of localeCodes) { + options.messages[locale] ??= {}; + } + return options; +}; +var define_I18N_LOCALE_HASHES_default = { hu: "349b7781", en: "349b7781" }; +const i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin", + parallel: false, + async setup(_nuxt) { + let __temp, __restore; + Object.defineProperty(_nuxt.versions, "nuxtI18n", { get: () => "10.4.0" }); + const nuxt = useNuxtApp(_nuxt._id); + const runtimeI18n = useRuntimeI18n(nuxt); + const preloadedOptions = nuxt.ssrContext?.event?.context?.nuxtI18n?.vueI18nOptions; + const _defaultLocale = getDefaultLocaleForDomain(useRequestURL({ xForwardedHost: true }).host) || runtimeI18n.defaultLocale || ""; + const optionsI18n = preloadedOptions || ([__temp, __restore] = executeAsync(() => setupVueI18nOptions(_defaultLocale)), __temp = await __temp, __restore(), __temp); + const localeConfigs = useLocaleConfigs(); + { + localeConfigs.value = useRequestEvent().context.nuxtI18n?.localeConfigs || {}; + } + prerenderRoutes(localeCodes.map((locale) => `${"/_i18n"}/${define_I18N_LOCALE_HASHES_default[locale]}/${locale}/messages.json`)); + const i18n = createI18n(optionsI18n); + const detectors = useDetectors(useRequestEvent(nuxt), useI18nDetection(nuxt), nuxt); + const ctx = createNuxtI18nContext(nuxt, i18n, optionsI18n.defaultLocale); + nuxt._nuxtI18n = ctx; + extendI18n(i18n, { + extendComposer(composer) { + composer.locales = computed(() => runtimeI18n.locales); + composer.localeCodes = computed(() => localeCodes); + const _baseUrl = ref(ctx.getBaseUrl()); + composer.baseUrl = computed(() => _baseUrl.value); + composer.strategy = "no_prefix"; + composer.localeProperties = computed( + () => normalizedLocales.find((l) => l.code === composer.locale.value) || { code: composer.locale.value } + ); + composer.setLocale = async (locale) => { + await loadAndSetLocale(nuxt, locale); + await nuxt.runWithContext(() => navigate(nuxt, nuxt.$router.currentRoute.value)); + }; + composer.loadLocaleMessages = ctx.loadMessages; + composer.differentDomains = false; + composer.defaultLocale = optionsI18n.defaultLocale; + composer.getBrowserLocale = () => resolveSupportedLocale(detectors.header()); + composer.getLocaleCookie = () => resolveSupportedLocale(detectors.cookie()); + composer.setLocaleCookie = ctx.setCookieLocale; + composer.finalizePendingLocaleChange = async () => { + if (!i18n.__pendingLocale) { + return; + } + await i18n.__resolvePendingLocalePromise?.(); + }; + composer.waitForPendingLocaleChange = async () => { + await i18n?.__pendingLocalePromise; + }; + }, + extendComposerInstance(instance, c) { + const props = [ + ["locales", () => c.locales], + ["localeCodes", () => c.localeCodes], + ["baseUrl", () => c.baseUrl], + ["strategy", () => "no_prefix"], + ["localeProperties", () => c.localeProperties], + ["setLocale", () => (locale) => Reflect.apply(c.setLocale, c, [locale])], + ["loadLocaleMessages", () => (locale) => Reflect.apply(c.loadLocaleMessages, c, [locale])], + ["differentDomains", () => false], + ["defaultLocale", () => c.defaultLocale], + ["getBrowserLocale", () => () => Reflect.apply(c.getBrowserLocale, c, [])], + ["getLocaleCookie", () => () => Reflect.apply(c.getLocaleCookie, c, [])], + ["setLocaleCookie", () => (locale) => Reflect.apply(c.setLocaleCookie, c, [locale])], + ["finalizePendingLocaleChange", () => () => Reflect.apply(c.finalizePendingLocaleChange, c, [])], + ["waitForPendingLocaleChange", () => () => Reflect.apply(c.waitForPendingLocaleChange, c, [])] + ]; + for (const [key, get] of props) { + Object.defineProperty(instance, key, { get }); + } + } + }); + nuxt.vueApp.use(i18n); + Object.defineProperty(nuxt, "$i18n", { get: () => getI18nTarget(i18n) }); + nuxt.provide("localeHead", (options) => localeHead(nuxt._nuxtI18n.composableCtx, options)); + nuxt.provide("localePath", useLocalePath(nuxt)); + nuxt.provide("localeRoute", useLocaleRoute(nuxt)); + nuxt.provide("routeBaseName", useRouteBaseName(nuxt)); + nuxt.provide("getRouteBaseName", useRouteBaseName(nuxt)); + nuxt.provide("switchLocalePath", useSwitchLocalePath(nuxt)); + } +}); +const ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:ssg-detect", + dependsOn: ["i18n:plugin", "i18n:plugin:route-locale-detect"], + enforce: "post", + setup(_nuxt) { + { + return; + } + } +}); const plugins = [ payloadPlugin, unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU, plugin$1, revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms, plugin, - components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 + components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4, + switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw, + route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U, + preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24, + i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM, + ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs ]; const layouts = { - default: defineAsyncComponent(() => import("./_nuxt/default-DbJQlxCD.js").then((m) => m.default || m)) + default: defineAsyncComponent(() => import("./_nuxt/default-B9tlXlqE.js").then((m) => m.default || m)) }; const routeRulesMatcher = _routeRulesMatcher; const LayoutLoader = defineComponent({ @@ -1190,8 +7115,8 @@ const _sfc_main$1 = { const statusText = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error"); const description = _error.message || _error.toString(); const stack = void 0; - const _Error404 = defineAsyncComponent(() => import("./_nuxt/error-404-BDmq62MM.js")); - const _Error = defineAsyncComponent(() => import("./_nuxt/error-500-gzzPk_-U.js")); + const _Error404 = defineAsyncComponent(() => import("./_nuxt/error-404-C_elhLNc.js")); + const _Error = defineAsyncComponent(() => import("./_nuxt/error-500-C6MJq2Cl.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)); @@ -1284,15 +7209,17 @@ let entry; const entry_default = ((ssrContext) => entry(ssrContext)); export { _export_sfc as _, - useNuxtApp as a, - useRuntimeConfig as b, - nuxtLinkDefaults as c, + useRouter as a, + useCookie as b, + useI18n as c, defineNuxtRouteMiddleware as d, entry_default as default, encodeRoutePath as e, + useNuxtApp as f, + useRuntimeConfig as g, + nuxtLinkDefaults as h, navigateTo as n, resolveRouteObject as r, - tryUseNuxtApp as t, - useRouter as u + useHead as u }; //# sourceMappingURL=server.mjs.map diff --git a/frontend_admin/.nuxt/dist/server/server.mjs.map b/frontend_admin/.nuxt/dist/server/server.mjs.map index b06de1e..c45e8fb 100644 --- a/frontend_admin/.nuxt/dist/server/server.mjs.map +++ b/frontend_admin/.nuxt/dist/server/server.mjs.map @@ -1 +1 @@ -{"version":3,"file":"server.mjs","sources":["../../../virtual:nuxt:%2Fapp%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fmiddleware.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.islands.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../node_modules/nuxt/dist/app/components/client-only.js","../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.plugin.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fplugins.server.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Flayouts.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[]}\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as indexndqPXFtP262szLmLJV4PriPTgAg5k_457f05QyTfosBXQMeta } from \"/app/pages/index.vue?macro=true\";\nimport { default as loginKGJhNRZhH4FU_45RnHfId5ZCGRhKzPnQPbdAbdNd47TwsMeta } from \"/app/pages/login.vue?macro=true\";\nimport { default as indexmFHuXm1TRDyTx4rDob8_G9bfnp43YCs_HCFMFiG56X4Meta } from \"/app/pages/permissions/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/index.vue\")\n },\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(\"/app/pages/login.vue\")\n },\n {\n name: \"permissions\",\n path: \"/permissions\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/permissions/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/app/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/app/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/app/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {\n auth: () => import(\"/app/middleware/auth.ts\")\n}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createElementBlock, defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(ctx._.vnode.el, STATIC_DIV);\n };\n } else {\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M from \"/app/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/app/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/app/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/app/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs from \"/app/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/app/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M,\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n default: defineAsyncComponent(() => import(\"/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n\n\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"names":["$fetch","plugin","provide","plugins","createH3Error","routeRulesMatcher","toArray","__executeAsync","entry","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,9,10,11,12,13,14,16,17,19,20,23,24,25,26,27,31,32,33,35,36,37]} \ No newline at end of file +{"version":3,"file":"server.mjs","sources":["../../../virtual:nuxt:%2Fapp%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../node_modules/nuxt/dist/head/runtime/composables/v3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fmiddleware.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.islands.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../node_modules/nuxt/dist/app/components/client-only.js","../../../node_modules/nuxt/dist/app/composables/state.js","../../../node_modules/nuxt/dist/app/composables/ssr.js","../../../node_modules/nuxt/dist/app/composables/cookie.js","../../../node_modules/nuxt/dist/app/composables/url.js","../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.plugin.mjs","../../../node_modules/@intlify/shared/dist/shared.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/head.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/routing.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/head.js","../../../node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/routing.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fi18n-options.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/messages.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/compatibility.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/utils.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/domain.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/locales.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/context.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/browser.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/detection.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/utils.js","../../../node_modules/@intlify/message-compiler/dist/message-compiler.mjs","../../../node_modules/@intlify/core-base/dist/core-base.mjs","../../../node_modules/vue-i18n/dist/vue-i18n.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/switch-locale-path-ssr.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/route-locale-detect.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/preload.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/i18n.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/vue-i18n.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/i18n.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/ssg-detect.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fplugins.server.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Flayouts.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[]}\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as indexndqPXFtP262szLmLJV4PriPTgAg5k_457f05QyTfosBXQMeta } from \"/app/pages/index.vue?macro=true\";\nimport { default as loginKGJhNRZhH4FU_45RnHfId5ZCGRhKzPnQPbdAbdNd47TwsMeta } from \"/app/pages/login.vue?macro=true\";\nimport { default as indexmGB0sc77z4nVdouTyxGPwq1E4nqHwF5EhzkXRcpUofYMeta } from \"/app/pages/garages/index.vue?macro=true\";\nimport { default as index4QOTtNxyMkSDhg1SvMqdYexX0LysiSHughzzK0HxGl0Meta } from \"/app/pages/packages/index.vue?macro=true\";\nimport { default as indexmFHuXm1TRDyTx4rDob8_G9bfnp43YCs_HCFMFiG56X4Meta } from \"/app/pages/permissions/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/index.vue\")\n },\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(\"/app/pages/login.vue\")\n },\n {\n name: \"garages\",\n path: \"/garages\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/garages/index.vue\")\n },\n {\n name: \"packages\",\n path: \"/packages\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/packages/index.vue\")\n },\n {\n name: \"permissions\",\n path: \"/permissions\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/permissions/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/app/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/app/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/app/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {\n auth: () => import(\"/app/middleware/auth.ts\")\n}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createElementBlock, defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(ctx._.vnode.el, STATIC_DIV);\n };\n } else {\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { isRef, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nconst useStateKeyPrefix = \"$s\";\nexport function useState(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [_key, init] = args;\n if (!_key || typeof _key !== \"string\") {\n throw new TypeError(\"[nuxt] [useState] key must be a string: \" + _key);\n }\n if (init !== void 0 && typeof init !== \"function\") {\n throw new Error(\"[nuxt] [useState] init must be a function: \" + init);\n }\n const key = useStateKeyPrefix + _key;\n const nuxtApp = useNuxtApp();\n const state = toRef(nuxtApp.payload.state, key);\n if (state.value === void 0 && init) {\n const initialValue = init();\n if (isRef(initialValue)) {\n nuxtApp.payload.state[key] = initialValue;\n return initialValue;\n }\n state.value = initialValue;\n }\n return state;\n}\nexport function clearNuxtState(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.state).filter((key) => key.startsWith(useStateKeyPrefix)).map((key) => key.substring(useStateKeyPrefix.length));\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const _key of _keys) {\n const key = useStateKeyPrefix + _key;\n if (key in nuxtApp.payload.state) {\n nuxtApp.payload.state[key] = void 0;\n }\n }\n}\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { customRef, getCurrentScope, nextTick, onScopeDispose, ref, watch } from \"vue\";\nimport { parse, serialize } from \"cookie-es\";\nimport { deleteCookie, getCookie, getRequestHeader, setCookie } from \"h3\";\nimport destr from \"destr\";\nimport { isEqual } from \"ohash\";\nimport { klona } from \"klona\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRequestEvent } from \"./ssr.js\";\nimport { cookieStore } from \"#build/nuxt.config.mjs\";\nconst CookieDefaults = {\n path: \"/\",\n watch: true,\n decode: (val) => {\n const decoded = decodeURIComponent(val);\n const parsed = destr(decoded);\n if (typeof parsed === \"number\" && (!Number.isFinite(parsed) || String(parsed) !== decoded)) {\n return decoded;\n }\n return parsed;\n },\n encode: (val) => encodeURIComponent(typeof val === \"string\" ? val : JSON.stringify(val))\n};\nconst store = import.meta.client && cookieStore ? globalThis.cookieStore : void 0;\nexport function useCookie(name, _opts) {\n const opts = { ...CookieDefaults, ..._opts };\n opts.filter ??= (key) => key === name;\n const cookies = readRawCookies(opts) || {};\n let delay;\n if (opts.maxAge !== void 0) {\n delay = opts.maxAge * 1e3;\n } else if (opts.expires) {\n delay = opts.expires.getTime() - Date.now();\n }\n const hasExpired = delay !== void 0 && delay <= 0;\n const shouldSetInitialClientCookie = import.meta.client && (hasExpired || cookies[name] === void 0 || cookies[name] === null);\n const cookieValue = klona(hasExpired ? void 0 : cookies[name] ?? opts.default?.());\n const cookie = import.meta.client && delay && !hasExpired ? cookieRef(cookieValue, delay, opts.watch && opts.watch !== \"shallow\") : ref(cookieValue);\n if (import.meta.dev && hasExpired) {\n console.warn(`[nuxt] not setting cookie \\`${name}\\` as it has already expired.`);\n }\n if (import.meta.client) {\n let channel = null;\n try {\n if (!store && typeof BroadcastChannel !== \"undefined\") {\n channel = new BroadcastChannel(`nuxt:cookies:${name}`);\n }\n } catch {\n }\n const callback = (force = false) => {\n if (!force) {\n if (opts.readonly || isEqual(cookie.value, cookies[name])) {\n return;\n }\n }\n writeClientCookie(name, cookie.value, opts);\n cookies[name] = klona(cookie.value);\n channel?.postMessage({ value: opts.encode(cookie.value) });\n };\n const handleChange = (data) => {\n const value = data.refresh ? readRawCookies(opts)?.[name] : opts.decode(data.value);\n watchPaused = true;\n cookie.value = value;\n cookies[name] = klona(value);\n nextTick(() => {\n watchPaused = false;\n });\n };\n let watchPaused = false;\n const hasScope = !!getCurrentScope();\n if (hasScope) {\n onScopeDispose(() => {\n watchPaused = true;\n callback();\n channel?.close();\n });\n }\n if (store) {\n const changeHandler = (event) => {\n const changedCookie = event.changed.find((c) => c.name === name);\n const removedCookie = event.deleted.find((c) => c.name === name);\n if (changedCookie) {\n handleChange({ value: changedCookie.value });\n }\n if (removedCookie) {\n handleChange({ value: null });\n }\n };\n store.addEventListener(\"change\", changeHandler);\n if (hasScope) {\n onScopeDispose(() => store.removeEventListener(\"change\", changeHandler));\n }\n } else if (channel) {\n channel.onmessage = ({ data }) => handleChange(data);\n }\n if (opts.watch) {\n watch(\n cookie,\n () => {\n if (watchPaused) {\n return;\n }\n callback();\n },\n { deep: opts.watch !== \"shallow\" }\n );\n }\n if (shouldSetInitialClientCookie) {\n callback(shouldSetInitialClientCookie);\n }\n } else if (import.meta.server) {\n const nuxtApp = useNuxtApp();\n const writeFinalCookieValue = () => {\n if (opts.readonly || isEqual(cookie.value, cookies[name])) {\n return;\n }\n nuxtApp._cookies ||= {};\n if (name in nuxtApp._cookies) {\n if (isEqual(cookie.value, nuxtApp._cookies[name])) {\n return;\n }\n if (import.meta.dev) {\n console.warn(`[nuxt] cookie \\`${name}\\` was previously set to \\`${opts.encode(nuxtApp._cookies[name])}\\` and is being overridden to \\`${opts.encode(cookie.value)}\\`. This may cause unexpected issues.`);\n }\n }\n nuxtApp._cookies[name] = cookie.value;\n writeServerCookie(useRequestEvent(nuxtApp), name, cookie.value, opts);\n };\n const unhook = nuxtApp.hooks.hookOnce(\"app:rendered\", writeFinalCookieValue);\n nuxtApp.hooks.hookOnce(\"app:error\", () => {\n unhook();\n return writeFinalCookieValue();\n });\n }\n return cookie;\n}\nexport function refreshCookie(name) {\n if (import.meta.server || store || typeof BroadcastChannel === \"undefined\") {\n return;\n }\n try {\n const channel = new BroadcastChannel(`nuxt:cookies:${name}`);\n channel.postMessage({ refresh: true });\n channel.close();\n } catch {\n }\n}\nfunction readRawCookies(opts = {}) {\n if (import.meta.server) {\n return parse(getRequestHeader(useRequestEvent(), \"cookie\") || \"\", opts);\n } else if (import.meta.client) {\n return parse(document.cookie, opts);\n }\n}\nfunction serializeCookie(name, value, opts = {}) {\n if (value === null || value === void 0) {\n return serialize(name, value, { ...opts, maxAge: -1 });\n }\n return serialize(name, value, opts);\n}\nfunction writeClientCookie(name, value, opts = {}) {\n if (import.meta.client) {\n document.cookie = serializeCookie(name, value, opts);\n }\n}\nfunction writeServerCookie(event, name, value, opts = {}) {\n if (event) {\n if (value !== null && value !== void 0) {\n return setCookie(event, name, value, opts);\n }\n if (getCookie(event, name) !== void 0) {\n return deleteCookie(event, name, opts);\n }\n }\n}\nconst MAX_TIMEOUT_DELAY = 2147483647;\nfunction cookieRef(value, delay, shouldWatch) {\n let timeout;\n let unsubscribe;\n let elapsed = 0;\n const internalRef = shouldWatch ? ref(value) : { value };\n if (getCurrentScope()) {\n onScopeDispose(() => {\n unsubscribe?.();\n clearTimeout(timeout);\n });\n }\n return customRef((track, trigger) => {\n if (shouldWatch) {\n unsubscribe = watch(internalRef, trigger);\n }\n function scheduleTimeout() {\n const timeRemaining = delay - elapsed;\n const timeoutLength = timeRemaining < MAX_TIMEOUT_DELAY ? timeRemaining : MAX_TIMEOUT_DELAY;\n timeout = setTimeout(() => {\n elapsed += timeoutLength;\n if (elapsed < delay) {\n return scheduleTimeout();\n }\n internalRef.value = void 0;\n trigger();\n }, timeoutLength);\n }\n function createExpirationTimeout() {\n elapsed = 0;\n clearTimeout(timeout);\n scheduleTimeout();\n }\n return {\n get() {\n track();\n return internalRef.value;\n },\n set(newValue) {\n createExpirationTimeout();\n internalRef.value = newValue;\n trigger();\n }\n };\n });\n}\n","import { getRequestURL } from \"h3\";\nimport { useRequestEvent } from \"./ssr.js\";\nexport function useRequestURL(opts) {\n if (import.meta.server) {\n return getRequestURL(useRequestEvent(), opts);\n }\n return new URL(globalThis.location.href);\n}\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","/*!\n * shared v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\nif ((process.env.NODE_ENV !== 'production')) {\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nconst _create = Object.create;\nconst create = (obj = null) => _create(obj);\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : create()));\n};\nfunction escapeHtml(rawText) {\n return rawText\n .replace(/&/g, '&') // escape `&` first to avoid double escaping\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/\\//g, '/') // escape `/` to prevent closing tags or JavaScript URLs\n .replace(/=/g, '='); // escape `=` to prevent attribute injection\n}\nfunction escapeAttributeValue(value) {\n return value\n .replace(/&(?![a-zA-Z0-9#]{2,6};)/g, '&') // escape unescaped `&`\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n}\nfunction sanitizeTranslatedHtml(html) {\n // Escape dangerous characters in attribute values\n // Process attributes with double quotes\n html = html.replace(/(\\w+)\\s*=\\s*\"([^\"]*)\"/g, (_, attrName, attrValue) => `${attrName}=\"${escapeAttributeValue(attrValue)}\"`);\n // Process attributes with single quotes\n html = html.replace(/(\\w+)\\s*=\\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);\n // Detect and neutralize event handler attributes\n const eventHandlerPattern = /\\s*on\\w+\\s*=\\s*[\"']?[^\"'>]+[\"']?/gi;\n if (eventHandlerPattern.test(html)) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('Potentially dangerous event handlers detected in translation. ' +\n 'Consider removing onclick, onerror, etc. from your translation messages.');\n }\n // Neutralize event handler attributes by escaping 'on'\n html = html.replace(/(\\s+)(on)(\\w+\\s*=)/gi, '$1on$3');\n }\n // Disable javascript: URLs in various contexts\n const javascriptUrlPattern = [\n // In href, src, action, formaction attributes\n /(\\s+(?:href|src|action|formaction)\\s*=\\s*[\"']?)\\s*javascript:/gi,\n // In style attributes within url()\n /(style\\s*=\\s*[\"'][^\"']*url\\s*\\(\\s*)javascript:/gi\n ];\n javascriptUrlPattern.forEach(pattern => {\n html = html.replace(pattern, '$1javascript:');\n });\n return html;\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\nconst isSymbol = (val) => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || [])\n .slice()\n .map(handler => handler(payload));\n (events.get('*') || [])\n .slice()\n .map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\n\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{ src, des }];\n while (stack.length) {\n const { src, des } = stack.pop();\n // using `Object.keys` which skips prototype properties\n Object.keys(src).forEach(key => {\n if (key === '__proto__') {\n return;\n }\n // if src[key] is an object/array, set des[key]\n // to empty object/array to prevent setting by reference\n if (isObject(src[key]) && !isObject(des[key])) {\n des[key] = Array.isArray(src[key]) ? [] : create();\n }\n if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n }\n else {\n // src[key] and des[key] are both objects, merge them\n stack.push({ src: src[key], des: des[key] });\n }\n });\n }\n}\n\nexport { assign, create, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, sanitizeTranslatedHtml, toDisplayString, toTypeString, warn, warnOnce };\n","import { hasProtocol, joinURL, withQuery } from \"ufo\";\nconst strictSeo = __I18N_STRICT_SEO__;\nexport function localeHead(options, currentLanguage = options.getCurrentLanguage(), currentDirection = options.getCurrentDirection()) {\n const metaObject = {\n htmlAttrs: {},\n link: [],\n meta: []\n };\n if (options.dir) {\n metaObject.htmlAttrs.dir = currentDirection;\n }\n if (options.lang && currentLanguage) {\n metaObject.htmlAttrs.lang = currentLanguage;\n }\n if (options.seo) {\n const alternateLinks = getHreflangLinks(options);\n metaObject.link = metaObject.link.concat(\n alternateLinks,\n getCanonicalLink(options)\n );\n metaObject.meta = metaObject.meta.concat(\n getOgUrl(options),\n getCurrentOgLocale(options),\n getAlternateOgLocales(\n options,\n strictSeo ? alternateLinks.map((x) => x.hreflang).filter((x) => x !== \"x-default\") : options.locales.map((x) => x.language || x.code)\n )\n );\n }\n return metaObject;\n}\nfunction createLocaleMap(locales) {\n const localeMap = /* @__PURE__ */ new Map();\n for (const locale of locales) {\n if (!locale.language) {\n console.warn(\"Locale `language` ISO code is required to generate alternate link\");\n continue;\n }\n const [language, region] = locale.language.split(\"-\");\n if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) {\n localeMap.set(language, locale);\n }\n localeMap.set(locale.language, locale);\n }\n return localeMap;\n}\nfunction getHreflangLinks(options) {\n if (!options.hreflangLinks) {\n return [];\n }\n const links = [];\n const localeMap = createLocaleMap(options.locales);\n for (const [language, locale] of localeMap.entries()) {\n const link = getHreflangLink(language, locale, options);\n if (!link) {\n continue;\n }\n links.push(link);\n if (options.defaultLocale && options.defaultLocale === locale.code && links[0].hreflang !== \"x-default\") {\n links.unshift(\n strictSeo ? { rel: \"alternate\", href: link.href, hreflang: \"x-default\" } : { [options.key]: \"i18n-xd\", rel: \"alternate\", href: link.href, hreflang: \"x-default\" }\n );\n }\n }\n return links;\n}\nfunction getHreflangLink(language, locale, options, routeWithoutQuery = options.strictCanonicals ? options.getRouteWithoutQuery() : void 0) {\n const localePath = options.getLocalizedRoute(locale.code, routeWithoutQuery);\n if (!localePath) {\n return void 0;\n }\n const href = withQuery(\n hasProtocol(localePath) ? localePath : joinURL(options.baseUrl, localePath),\n options.strictCanonicals ? getCanonicalQueryParams(options) : {}\n );\n return strictSeo ? { rel: \"alternate\", href, hreflang: language } : { [options.key]: `i18n-alt-${language}`, rel: \"alternate\", href, hreflang: language };\n}\nfunction getCanonicalUrl(options, route = options.getCurrentRoute()) {\n const currentRoute = options.getLocaleRoute(\n Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) })\n );\n if (!currentRoute) {\n return \"\";\n }\n return withQuery(joinURL(options.baseUrl, currentRoute.path), getCanonicalQueryParams(options));\n}\nfunction getCanonicalLink(options, href = getCanonicalUrl(options)) {\n if (!href) {\n return [];\n }\n return [strictSeo ? { rel: \"canonical\", href } : { [options.key]: \"i18n-can\", rel: \"canonical\", href }];\n}\nfunction getCanonicalQueryParams(options, route = options.getCurrentRoute()) {\n const currentRoute = options.getLocaleRoute(\n Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) })\n );\n const currentRouteQuery = currentRoute?.query ?? {};\n const params = {};\n for (const param of options.canonicalQueries.filter((x) => x in currentRouteQuery)) {\n params[param] ??= [];\n for (const val of toArray(currentRouteQuery[param])) {\n params[param].push(val || \"\");\n }\n }\n return params;\n}\nfunction getOgUrl(options, href = getCanonicalUrl(options)) {\n if (!href) {\n return [];\n }\n return [\n strictSeo ? { property: \"og:url\", content: href } : { [options.key]: \"i18n-og-url\", property: \"og:url\", content: href }\n ];\n}\nfunction getCurrentOgLocale(options, currentLanguage = options.getCurrentLanguage()) {\n if (!currentLanguage) {\n return [];\n }\n return [\n strictSeo ? { property: \"og:locale\", content: formatOgLanguage(currentLanguage) } : { [options.key]: \"i18n-og\", property: \"og:locale\", content: formatOgLanguage(currentLanguage) }\n ];\n}\nfunction getAlternateOgLocales(options, languages, currentLanguage = options.getCurrentLanguage()) {\n const alternateLocales = languages.filter((locale) => locale && locale !== currentLanguage);\n return alternateLocales.map(\n (locale) => strictSeo ? {\n property: \"og:locale:alternate\",\n content: formatOgLanguage(locale)\n } : {\n [options.key]: `i18n-og-alt-${locale}`,\n property: \"og:locale:alternate\",\n content: formatOgLanguage(locale)\n }\n );\n}\nfunction formatOgLanguage(val = \"\") {\n return val.replace(/-/g, \"_\");\n}\nfunction toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","import { hasProtocol, parsePath, parseQuery } from \"ufo\";\nimport { assign, isString } from \"@intlify/shared\";\nexport function localePath(ctx, route, locale = ctx.getLocale()) {\n if (isString(route) && hasProtocol(route, { acceptRelative: true })) {\n return route;\n }\n try {\n return resolveRoute(ctx, route, locale).fullPath;\n } catch {\n return \"\";\n }\n}\nexport function localeRoute(ctx, route, locale = ctx.getLocale()) {\n try {\n return resolveRoute(ctx, route, locale);\n } catch {\n return;\n }\n}\nfunction normalizeRawLocation(route) {\n if (!isString(route)) {\n return assign({}, route);\n }\n if (route[0] === \"/\") {\n const { pathname: path, search, hash } = parsePath(route);\n return { path, query: parseQuery(search), hash };\n }\n return { name: route };\n}\nfunction resolveRoute(ctx, route, locale) {\n const normalized = normalizeRawLocation(route);\n const resolved = ctx.router.resolve(ctx.resolveLocalizedRouteObject(normalized, locale));\n if (resolved.name) {\n return resolved;\n }\n return ctx.router.resolve(route);\n}\nexport function switchLocalePath(ctx, locale, route = ctx.router.currentRoute.value) {\n const name = ctx.getRouteBaseName(route);\n if (!name) {\n return \"\";\n }\n const routeCopy = {\n name,\n params: assign(\n {},\n route.params,\n ctx.getLocalizedDynamicParams(locale)\n ),\n fullPath: route.fullPath,\n query: route.query,\n hash: route.hash,\n path: route.path,\n meta: route.meta\n };\n const path = localePath(ctx, routeCopy, locale);\n return ctx.afterSwitchLocalePath(path, locale);\n}\n","import { computed, getCurrentScope, onScopeDispose, ref, useHead, useRequestEvent, watch } from \"#imports\";\nimport { assign } from \"@intlify/shared\";\nimport { localeHead as _localeHead } from \"#i18n-kit/head\";\nimport { localeRoute, switchLocalePath } from \"./routing.js\";\nfunction createHeadContext(ctx, config, locale = ctx.getLocale(), locales = ctx.getLocales(), baseUrl = ctx.getBaseUrl()) {\n const currentLocale = locales.find((l) => l.code === locale) || { code: locale };\n const canonicalQueries = typeof config.seo === \"object\" && config.seo?.canonicalQueries || [];\n if (!baseUrl && !__DIFFERENT_DOMAINS__ && !__MULTI_DOMAIN_LOCALES__) {\n if (__I18N_STRICT_SEO__) {\n throw new Error(\"I18n `baseUrl` is required to generate valid SEO tag links.\");\n }\n console.warn(\"I18n `baseUrl` is required to generate valid SEO tag links.\");\n }\n return {\n ...config,\n key: __I18N_STRICT_SEO__ ? \"key\" : \"id\",\n locales,\n baseUrl,\n canonicalQueries,\n hreflangLinks: ctx.routingOptions.hreflangLinks,\n defaultLocale: ctx.routingOptions.defaultLocale,\n strictCanonicals: __I18N_STRICT_SEO__ || ctx.routingOptions.strictCanonicals,\n getRouteBaseName: ctx.getRouteBaseName,\n getCurrentRoute: () => ctx.router.currentRoute.value,\n getCurrentLanguage: () => currentLocale.language,\n getCurrentDirection: () => currentLocale.dir || __DEFAULT_DIRECTION__,\n getLocaleRoute: (route) => localeRoute(ctx, route),\n getLocalizedRoute: (locale2, route) => switchLocalePath(ctx, locale2, route),\n getRouteWithoutQuery: () => {\n try {\n return assign({}, ctx.router.resolve({ query: {} }), { meta: ctx.router.currentRoute.value.meta });\n } catch {\n return void 0;\n }\n }\n };\n}\nexport function localeHead(ctx, { dir = true, lang = true, seo = true }) {\n return _localeHead(createHeadContext(ctx, { dir, lang, seo }));\n}\nexport function _useLocaleHead(ctx, options) {\n const metaObject = ref(_localeHead(createHeadContext(ctx, options)));\n if (import.meta.client) {\n const unsub = watch([() => ctx.router.currentRoute.value, () => ctx.getLocale()], () => {\n metaObject.value = _localeHead(createHeadContext(ctx, options));\n __I18N_STRICT_SEO__ && ctx.head?.patch(metaObject.value);\n });\n if (getCurrentScope()) {\n onScopeDispose(unsub);\n }\n }\n __I18N_STRICT_SEO__ && ctx.head?.patch(metaObject.value);\n return metaObject;\n}\nexport function _useSetI18nParams(ctx, seo, router = ctx.router) {\n const head = __I18N_STRICT_SEO__ ? ctx.head : useHead({});\n const evt = __I18N_STRICT_SEO__ && import.meta.server && useRequestEvent();\n const _i18nParams = ref({});\n const i18nParams = computed({\n get() {\n return router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__];\n },\n set(val) {\n _i18nParams.value = val;\n router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__] = val;\n if (evt && evt?.context.nuxtI18n?.slp) {\n evt.context.nuxtI18n.slp = val;\n }\n }\n });\n const unsub = watch(\n () => router.currentRoute.value.fullPath,\n () => {\n router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__] = _i18nParams.value;\n __I18N_STRICT_SEO__ && updateState();\n }\n );\n if (getCurrentScope()) {\n onScopeDispose(unsub);\n }\n function updateState() {\n ctx.metaState = _localeHead(createHeadContext(ctx, ctxOptions.value));\n head?.patch(ctx.metaState);\n }\n const ctxOptions = ref({\n ...ctx.seoSettings,\n key: __I18N_STRICT_SEO__ ? \"key\" : \"id\",\n seo: seo ?? ctx.seoSettings.seo\n });\n return function(params) {\n i18nParams.value = { ...params };\n __I18N_STRICT_SEO__ && updateState();\n if (!__I18N_STRICT_SEO__) {\n const val = _localeHead(createHeadContext(ctx, ctxOptions.value));\n head?.patch(val);\n }\n };\n}\n","const objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nfunction isURL(val) {\n return toTypeString(val) === \"[object URL]\";\n}\nfunction isURLSearchParams(val) {\n return toTypeString(val) === \"[object URLSearchParams]\";\n}\nfunction isLocale(val) {\n return toTypeString(val) === \"[object Intl.Locale]\";\n}\nfunction toLocale(val) {\n return isLocale(val) ? val : new Intl.Locale(val);\n}\nfunction validateLangTag(lang) {\n try {\n Intl.getCanonicalLocales(lang);\n return true;\n } catch {\n return false;\n }\n}\nfunction parseAcceptLanguage(value) {\n return value.split(\",\").map((tag) => tag.split(\";\")[0]).filter(\n (tag) => !(tag === \"*\" || tag === \"\")\n );\n}\nfunction normalizeLanguageName(langName) {\n const [lang] = langName.split(\".\");\n return lang.replace(/_/g, \"-\");\n}\nfunction createPathIndexLanguageParser(index = 0) {\n return (path) => {\n const rawPath = typeof path === \"string\" ? path : path.pathname;\n const normalizedPath = rawPath.split(\"?\")[0];\n const parts = normalizedPath.split(\"/\");\n if (parts[0] === \"\") {\n parts.shift();\n }\n return parts.length > index ? parts[index] || \"\" : \"\";\n };\n}\nlet pathLanguageParser = /* @__PURE__ */ createPathIndexLanguageParser();\nfunction registerPathLanguageParser(parser) {\n pathLanguageParser = parser;\n}\n\nconst DEFAULT_LANG_TAG = \"en-US\";\nconst DEFAULT_COOKIE_NAME = \"i18n_locale\";\nconst ACCEPT_LANGUAGE_HEADER = \"accept-language\";\n\nfunction parseDefaultHeader(input) {\n return [input];\n}\nfunction getHeaderLanguagesWithGetter(getter, {\n name = ACCEPT_LANGUAGE_HEADER,\n parser = parseDefaultHeader\n} = {}) {\n const langString = getter();\n return langString ? name === ACCEPT_LANGUAGE_HEADER ? parser === parseDefaultHeader ? parseAcceptLanguage(langString) : parser(langString) : parser(langString) : [];\n}\nfunction getLocaleWithGetter(getter) {\n return toLocale(getter());\n}\nfunction validateLocale(locale) {\n if (!(isLocale(locale) || typeof locale === \"string\" && validateLangTag(locale))) {\n throw new SyntaxError(`locale is invalid: ${locale.toString()}`);\n }\n}\nfunction mapToLocaleFromLanguageTag(getter, ...args) {\n return Reflect.apply(getter, null, args).map(\n (lang) => getLocaleWithGetter(() => lang)\n );\n}\nfunction getExistCookies(name, getter) {\n let setCookies = getter();\n if (!Array.isArray(setCookies)) {\n setCookies = [setCookies];\n }\n setCookies = setCookies.filter(\n (cookieValue) => cookieValue && !cookieValue.startsWith(name + \"=\")\n );\n return setCookies;\n}\nfunction getPathLanguage(path, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) {\n return (parser || pathLanguageParser)(path) || lang;\n}\nfunction getPathLocale(path, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) {\n return new Intl.Locale(getPathLanguage(path, { lang, parser }));\n}\nfunction getURLSearchParams(input) {\n if (isURLSearchParams(input)) {\n return input;\n } else if (isURL(input)) {\n return input.searchParams;\n } else {\n return new URLSearchParams(input);\n }\n}\nfunction getQueryLanguage(query, { lang = DEFAULT_LANG_TAG, name = \"lang\" } = {}) {\n const queryParams = getURLSearchParams(query);\n return queryParams.get(name) || lang;\n}\nfunction getQueryLocale(query, { lang = DEFAULT_LANG_TAG, name = \"locale\" } = {}) {\n return new Intl.Locale(getQueryLanguage(query, { lang, name }));\n}\n\nexport { ACCEPT_LANGUAGE_HEADER as A, DEFAULT_LANG_TAG as D, getLocaleWithGetter as a, DEFAULT_COOKIE_NAME as b, getExistCookies as c, getPathLocale as d, pathLanguageParser as e, getQueryLocale as f, getHeaderLanguagesWithGetter as g, createPathIndexLanguageParser as h, isLocale as i, parseAcceptLanguage as j, validateLangTag as k, mapToLocaleFromLanguageTag as m, normalizeLanguageName as n, parseDefaultHeader as p, registerPathLanguageParser as r, validateLocale as v };\n","import { createPathIndexLanguageParser } from \"@intlify/utils\";\nconst separator = __ROUTE_NAME_SEPARATOR__ || \"___\";\nconst defaultSuffix = __ROUTE_NAME_DEFAULT_SUFFIX__ || \"default\";\nexport const defaultRouteNameSuffix = separator + defaultSuffix;\nexport function normalizeRouteName(routeName) {\n if (typeof routeName === \"string\") {\n return routeName;\n }\n if (routeName != null) {\n return routeName.toString();\n }\n return \"\";\n}\nexport function getRouteBaseName(route) {\n return normalizeRouteName(typeof route === \"object\" ? route?.name : route).split(separator)[0];\n}\nexport function getLocalizedRouteName(routeName, locale, isDefault) {\n return !isDefault ? routeName + separator + locale : routeName + separator + locale + defaultRouteNameSuffix;\n}\nconst pathLanguageParser = createPathIndexLanguageParser(0);\nexport const getLocaleFromRoutePath = (path) => pathLanguageParser(path);\nexport const getLocaleFromRouteName = (name) => name.split(separator).at(1) ?? \"\";\nfunction normalizeInput(input) {\n return typeof input !== \"object\" ? String(input) : String(input?.name || input?.path || \"\");\n}\nexport function getLocaleFromRoute(route) {\n const input = normalizeInput(route);\n if (input[0] === \"/\") {\n return getLocaleFromRoutePath(input);\n }\n const fromName = getLocaleFromRouteName(input);\n if (fromName) {\n return fromName;\n }\n if (typeof route === \"object\" && route?.path) {\n return getLocaleFromRoutePath(String(route.path));\n }\n return \"\";\n}\n","import { assign } from \"@intlify/shared\";\nimport { getLocalizedRouteName, normalizeRouteName } from \"#i18n-kit/routing\";\nexport function createLocaleRouteNameGetter(defaultLocale) {\n if (!__I18N_ROUTING__ && !__DIFFERENT_DOMAINS__) {\n return (routeName) => normalizeRouteName(routeName);\n }\n if (__I18N_STRATEGY__ === \"prefix_and_default\") {\n return (name, locale) => getLocalizedRouteName(normalizeRouteName(name), locale, locale === defaultLocale);\n }\n return (name, locale) => getLocalizedRouteName(normalizeRouteName(name), locale, false);\n}\nexport function createLocalizedRouteByPathResolver(router) {\n if (!__I18N_ROUTING__) {\n return (route) => route;\n }\n if (__I18N_STRATEGY__ === \"prefix\") {\n return (route, locale) => {\n const targetPath = \"/\" + locale + (route.path === \"/\" ? \"\" : route.path);\n const _route = router.options.routes.find((r) => r.path === targetPath);\n if (_route != null) {\n return router.resolve(assign({}, route, _route, { path: targetPath }));\n }\n return route;\n };\n }\n return (route) => router.resolve(route);\n}\n","// @ts-nocheck\n\nexport const localeCodes = [\n \"hu\",\n \"en\"\n]\nexport const localeLoaders = {\n hu: [\n {\n key: \"locale_hu_46json_ee06c965\",\n load: () => import(\"#nuxt-i18n/ee06c965\" /* webpackChunkName: \"locale_hu_46json_ee06c965\" */),\n cache: true\n }\n ],\n en: [\n {\n key: \"locale_en_46json_0b63539c\",\n load: () => import(\"#nuxt-i18n/0b63539c\" /* webpackChunkName: \"locale_en_46json_0b63539c\" */),\n cache: true\n }\n ]\n}\nexport const vueI18nConfigs = []\nexport const normalizedLocales = [\n {\n code: \"hu\",\n iso: \"hu-HU\",\n name: \"Magyar\",\n language: undefined\n },\n {\n code: \"en\",\n iso: \"en-GB\",\n name: \"English\",\n language: undefined\n }\n]\n\n","import { create, deepCopy, isFunction, toTypeString } from \"@intlify/shared\";\nimport { useNuxtApp } from \"#app\";\nimport { createDefu } from \"defu\";\nconst cacheMessages = /* @__PURE__ */ new Map();\nconst merger = createDefu((obj, key, value) => {\n if (key === \"messages\" || key === \"datetimeFormats\" || key === \"numberFormats\") {\n obj[key] ??= create(null);\n deepCopy(value, obj[key]);\n return true;\n }\n});\nexport async function loadVueI18nOptions(vueI18nConfigs) {\n const nuxtApp = useNuxtApp();\n let vueI18nOptions = { messages: create(null) };\n for (const configFile of vueI18nConfigs) {\n const resolver = await configFile().then((x) => isModule(x) ? x.default : x);\n const resolved = isFunction(resolver) ? await nuxtApp.runWithContext(() => resolver()) : resolver;\n vueI18nOptions = merger(create(null), resolved, vueI18nOptions);\n }\n vueI18nOptions.fallbackLocale ??= false;\n return vueI18nOptions;\n}\nconst isModule = (val) => toTypeString(val) === \"[object Module]\";\nasync function getLocaleMessages(locale, loader) {\n const nuxtApp = useNuxtApp();\n try {\n const getter = await nuxtApp.runWithContext(loader.load).then((x) => isModule(x) ? x.default : x);\n return isFunction(getter) ? await nuxtApp.runWithContext(() => getter(locale)) : getter;\n } catch (e) {\n throw new Error(`Failed loading locale (${locale}): ` + e.message);\n }\n}\nexport async function getLocaleMessagesMerged(locale, loaders = []) {\n const nuxtApp = useNuxtApp();\n const messages = await Promise.all(\n loaders.map((loader) => nuxtApp.runWithContext(() => getLocaleMessages(locale, loader)))\n );\n const merged = {};\n for (const message of messages) {\n deepCopy(message, merged);\n }\n return merged;\n}\nexport async function getLocaleMessagesMergedCached(locale, loaders = []) {\n const nuxtApp = useNuxtApp();\n const messages = await Promise.all(loaders.map(async (loader) => {\n const cached = getCachedMessages(loader);\n const messages2 = cached || await nuxtApp.runWithContext(() => getLocaleMessages(locale, loader));\n if (!cached && loader.cache !== false) {\n cacheMessages.set(loader.key, { ttl: Date.now() + __I18N_CACHE_LIFETIME__ * 1e3, value: messages2 });\n }\n return messages2;\n }));\n const merged = {};\n for (const message of messages) {\n deepCopy(message, merged);\n }\n return merged;\n}\nfunction getCachedMessages(loader) {\n if (!__I18N_CACHE__) {\n return;\n }\n if (loader.cache === false) {\n return;\n }\n const cache = cacheMessages.get(loader.key);\n if (cache == null) {\n return;\n }\n return __I18N_CACHE_LIFETIME__ === 0 || cache.ttl > Date.now() ? cache.value : void 0;\n}\n","export function getI18nTarget(i18n) {\n return i18n != null && \"global\" in i18n && \"mode\" in i18n ? i18n.global : i18n;\n}\nexport function getComposer(i18n) {\n const target = getI18nTarget(i18n);\n return \"__composer\" in target ? target.__composer : target;\n}\n","import { useRuntimeConfig } from \"#imports\";\nimport { isString } from \"@intlify/shared\";\nexport function useRuntimeI18n(nuxtApp, event) {\n if (!nuxtApp) {\n return useRuntimeConfig(event).public.i18n;\n }\n return nuxtApp.$config.public.i18n;\n}\nexport function useI18nDetection(nuxtApp) {\n const detectBrowserLanguage = useRuntimeI18n(nuxtApp).detectBrowserLanguage;\n const detect = detectBrowserLanguage || {};\n return {\n ...detect,\n enabled: !!detectBrowserLanguage,\n cookieKey: detect.cookieKey || __DEFAULT_COOKIE_KEY__\n };\n}\nexport function resolveRootRedirect(config) {\n if (!config) {\n return void 0;\n }\n return {\n path: \"/\" + (isString(config) ? config : config.path).replace(/^\\//, \"\"),\n code: !isString(config) && config.statusCode || 302\n };\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","import { hasProtocol } from \"ufo\";\nimport { normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { toArray } from \"./utils.js\";\nexport function matchDomainLocale(locales, host, pathLocale) {\n const normalizeDomain = (domain = \"\") => domain.replace(/https?:\\/\\//, \"\");\n const matches = locales.filter(\n (locale) => normalizeDomain(locale.domain) === host || toArray(locale.domains).includes(host)\n );\n if (matches.length <= 1) {\n return matches[0]?.code;\n }\n return (\n // match by current path locale\n matches.find((l) => l.code === pathLocale)?.code || matches.find((l) => l.defaultForDomains?.includes(host) ?? l.domainDefault)?.code\n );\n}\nexport function domainFromLocale(domainLocales, url, locale) {\n const lang = normalizedLocales.find((x) => x.code === locale);\n const domain = domainLocales?.[locale]?.domain || lang?.domain || lang?.domains?.find((v) => v === url.host);\n if (!domain) {\n import.meta.dev && console.warn(\"[nuxt-i18n] Could not find domain name for locale \" + locale);\n return;\n }\n if (hasProtocol(domain, { strict: true })) {\n return domain;\n }\n return url.protocol + \"//\" + domain;\n}\n","import { localeCodes, localeLoaders, normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { isArray, isString } from \"@intlify/shared\";\nexport function createLocaleConfigs(fallbackLocale) {\n const localeConfigs = {};\n for (const locale of localeCodes) {\n const fallbacks = getFallbackLocaleCodes(fallbackLocale, [locale]);\n const cacheable = isLocaleWithFallbacksCacheable(locale, fallbacks);\n localeConfigs[locale] = { fallbacks, cacheable };\n }\n return localeConfigs;\n}\nfunction getFallbackLocaleCodes(fallback, locales) {\n if (fallback === false) {\n return [];\n }\n if (isArray(fallback)) {\n return fallback;\n }\n let fallbackLocales = [];\n if (isString(fallback)) {\n if (locales.every((locale) => locale !== fallback)) {\n fallbackLocales.push(fallback);\n }\n return fallbackLocales;\n }\n const targets = [...locales, \"default\"];\n for (const locale of targets) {\n if (locale in fallback == false) {\n continue;\n }\n fallbackLocales = [...fallbackLocales, ...fallback[locale].filter(Boolean)];\n }\n return fallbackLocales;\n}\nexport function isLocaleCacheable(locale) {\n return localeLoaders[locale] != null && localeLoaders[locale].every((loader) => loader.cache !== false);\n}\nexport function isLocaleWithFallbacksCacheable(locale, fallbackLocales) {\n return isLocaleCacheable(locale) && fallbackLocales.every((fallbackLocale) => isLocaleCacheable(fallbackLocale));\n}\nexport function getDefaultLocaleForDomain(host) {\n return normalizedLocales.find((l) => !!l.defaultForDomains?.includes(host))?.code;\n}\nexport const isSupportedLocale = (locale) => localeCodes.includes(locale || \"\");\nexport const resolveSupportedLocale = (locale) => isSupportedLocale(locale) ? locale : void 0;\n","import { isRef, unref } from \"vue\";\nimport { useCookie, useRequestURL, useState } from \"#imports\";\nimport { localeLoaders } from \"#build/i18n-options.mjs\";\nimport { getLocaleMessagesMergedCached } from \"./shared/messages.js\";\nimport { createBaseUrlGetter, createComposableContext } from \"./utils.js\";\nimport { getI18nTarget } from \"./compatibility.js\";\nimport { domainFromLocale } from \"./shared/domain.js\";\nimport { isSupportedLocale } from \"./shared/locales.js\";\nimport { resolveRootRedirect, useI18nDetection, useRuntimeI18n } from \"./shared/utils.js\";\nimport { joinURL } from \"ufo\";\nimport { isString } from \"@intlify/shared\";\nexport const useLocaleConfigs = () => useState(\n \"i18n:cached-locale-configs\",\n () => void 0\n);\nexport const useResolvedLocale = () => useState(\"i18n:resolved-locale\", () => \"\");\nfunction useI18nCookie({ cookieCrossOrigin, cookieDomain, cookieSecure, cookieKey }) {\n const date = /* @__PURE__ */ new Date();\n return useCookie(cookieKey || __DEFAULT_COOKIE_KEY__, {\n path: \"/\",\n readonly: false,\n expires: new Date(date.setDate(date.getDate() + 365)),\n sameSite: cookieCrossOrigin ? \"none\" : \"lax\",\n domain: cookieDomain || void 0,\n secure: cookieCrossOrigin || cookieSecure\n });\n}\nexport function createNuxtI18nContext(nuxt, vueI18n, defaultLocale) {\n const i18n = getI18nTarget(vueI18n);\n const runtimeI18n = useRuntimeI18n(nuxt);\n const detectConfig = useI18nDetection(nuxt);\n const serverLocaleConfigs = useLocaleConfigs();\n const localeCookie = useI18nCookie(detectConfig);\n const loadMap = /* @__PURE__ */ new Set();\n const getLocaleConfig = (locale) => serverLocaleConfigs.value[locale];\n const getDomainFromLocale = (locale) => domainFromLocale(runtimeI18n.domainLocales, useRequestURL({ xForwardedHost: true }), locale);\n const baseUrl = createBaseUrlGetter(nuxt, runtimeI18n.baseUrl, defaultLocale, getDomainFromLocale);\n const resolvedLocale = useResolvedLocale();\n if (__I18N_SERVER_REDIRECT__ && import.meta.server && nuxt.ssrContext?.event?.context?.nuxtI18n?.detectLocale) {\n resolvedLocale.value = nuxt.ssrContext.event.context.nuxtI18n.detectLocale;\n }\n const loadMessagesFromClient = async (locale) => {\n const locales = getLocaleConfig(locale)?.fallbacks ?? [];\n if (!locales.includes(locale)) {\n locales.push(locale);\n }\n for (const k of locales) {\n const msg = await nuxt.runWithContext(() => getLocaleMessagesMergedCached(k, localeLoaders[k]));\n i18n.mergeLocaleMessage(k, msg);\n }\n };\n const loadMessagesFromServer = async (locale) => {\n if (locale in localeLoaders === false) {\n return;\n }\n const headers = getLocaleConfig(locale)?.cacheable ? {} : { \"Cache-Control\": \"no-cache\" };\n const prefix = import.meta.client && __I18N_CDN__ ? nuxt.$config.app.cdnURL || \"\" : \"\";\n const url = joinURL(prefix, __I18N_SERVER_ROUTE__, __I18N_LOCALE_HASHES__[locale], locale, \"messages.json\");\n const messages = await $fetch(url, { headers });\n for (const k of Object.keys(messages)) {\n i18n.mergeLocaleMessage(k, messages[k]);\n }\n };\n const ctx = {\n vueI18n,\n initial: true,\n preloaded: false,\n config: runtimeI18n,\n rootRedirect: resolveRootRedirect(runtimeI18n.rootRedirect),\n redirectStatusCode: runtimeI18n.redirectStatusCode ?? 302,\n dynamicResourcesSSG: !__IS_SSR__ || !__I18N_FULL_STATIC__ && (import.meta.prerender || __IS_SSG__),\n getDefaultLocale: () => defaultLocale,\n getLocale: () => unref(i18n.locale),\n setLocale: async (locale) => {\n const oldLocale = ctx.getLocale();\n if (locale === oldLocale || !isSupportedLocale(locale)) {\n return;\n }\n if (isRef(i18n.locale)) {\n i18n.locale.value = locale;\n } else {\n i18n.locale = locale;\n }\n await nuxt.callHook(\"i18n:localeSwitched\", { newLocale: locale, oldLocale });\n resolvedLocale.value = locale;\n },\n setLocaleSuspend: async (locale) => {\n if (!isSupportedLocale(locale)) {\n return;\n }\n ctx.vueI18n.__pendingLocale = locale;\n ctx.vueI18n.__pendingLocalePromise = new Promise((resolve) => {\n ctx.vueI18n.__resolvePendingLocalePromise = async () => {\n ctx.setCookieLocale(locale);\n await ctx.setLocale(locale);\n ctx.vueI18n.__pendingLocale = void 0;\n resolve();\n };\n });\n if (import.meta.server || nuxt.isHydrating || !ctx.config.skipSettingLocaleOnNavigate) {\n await ctx.vueI18n.__resolvePendingLocalePromise?.();\n }\n },\n getLocales: () => unref(i18n.locales).map((x) => isString(x) ? { code: x } : x),\n setCookieLocale: (locale) => {\n if (detectConfig.useCookie && isSupportedLocale(locale)) {\n localeCookie.value = locale;\n }\n },\n getBaseUrl: (locale) => {\n if (locale) {\n return joinURL(getDomainFromLocale(locale) || baseUrl(), nuxt.$config.app.baseURL);\n }\n return joinURL(baseUrl(), nuxt.$config.app.baseURL);\n },\n loadMessages: async (locale) => {\n if (nuxt.isHydrating && loadMap.has(locale)) {\n return;\n }\n try {\n return ctx.dynamicResourcesSSG || import.meta.dev ? await loadMessagesFromClient(locale) : await loadMessagesFromServer(locale);\n } catch (e) {\n console.warn(`Failed to load messages for locale \"${locale}\"`, e);\n } finally {\n loadMap.add(locale);\n }\n },\n composableCtx: void 0\n };\n ctx.composableCtx = createComposableContext(ctx, nuxt);\n return ctx;\n}\nexport function useNuxtI18nContext(nuxt) {\n if (nuxt._nuxtI18n == null) {\n throw new Error(\"Nuxt I18n context has not been set up yet.\");\n }\n return nuxt._nuxtI18n;\n}\n","function matchBrowserLocale(locales, browserLocales) {\n const matchedLocales = [];\n for (const [index, browserCode] of browserLocales.entries()) {\n const matchedLocale = locales.find((l) => l.language?.toLowerCase() === browserCode.toLowerCase());\n if (matchedLocale) {\n matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length });\n break;\n }\n }\n for (const [index, browserCode] of browserLocales.entries()) {\n const languageCode = browserCode.split(\"-\")[0].toLowerCase();\n const matchedLocale = locales.find((l) => l.language?.split(\"-\")[0].toLowerCase() === languageCode);\n if (matchedLocale) {\n matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length });\n break;\n }\n }\n return matchedLocales;\n}\nfunction compareBrowserLocale(a, b) {\n if (a.score === b.score) {\n return b.code.length - a.code.length;\n }\n return b.score - a.score;\n}\nexport function findBrowserLocale(locales, browserLocales) {\n const matchedLocales = matchBrowserLocale(\n locales.map((l) => ({ code: l.code, language: l.language || l.code })),\n browserLocales\n );\n return matchedLocales.sort(compareBrowserLocale).at(0)?.code ?? \"\";\n}\n","import { getCookie, getRequestHeader, getRequestURL } from \"h3\";\nimport { normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { getLocaleFromRoute, getLocaleFromRoutePath } from \"#i18n-kit/routing\";\nimport { findBrowserLocale } from \"#i18n-kit/browser\";\nimport { parseAcceptLanguage } from \"@intlify/utils\";\nimport { matchDomainLocale } from \"./domain.js\";\nimport { useRuntimeI18n } from \"../shared/utils.js\";\nimport { useCookie } from \"#app\";\nconst getCookieLocale = (event, cookieName) => (import.meta.client ? useCookie(cookieName).value : getCookie(event, cookieName)) || void 0;\nconst getRouteLocale = (event, route) => getLocaleFromRoute(route);\nconst getHeaderLocale = (event) => findBrowserLocale(normalizedLocales, parseAcceptLanguage(getRequestHeader(event, \"accept-language\") || \"\"));\nconst getNavigatorLocale = (event) => findBrowserLocale(normalizedLocales, navigator.languages);\nconst getHostLocale = (event, path, domainLocales) => {\n const host = import.meta.client ? new URL(window.location.href).host : getRequestURL(event, { xForwardedHost: true }).host;\n const locales = normalizedLocales.map((l) => ({\n ...l,\n domain: domainLocales[l.code]?.domain ?? l.domain\n }));\n return matchDomainLocale(locales, host, getLocaleFromRoutePath(path));\n};\nexport const useDetectors = (event, config, nuxtApp) => {\n if (import.meta.server && !event) {\n throw new Error(\"H3Event is required for server-side locale detection\");\n }\n const runtimeI18n = useRuntimeI18n(nuxtApp);\n return {\n cookie: () => getCookieLocale(event, config.cookieKey),\n header: () => import.meta.server ? getHeaderLocale(event) : void 0,\n navigator: () => import.meta.client ? getNavigatorLocale(event) : void 0,\n host: (path) => getHostLocale(event, path, runtimeI18n.domainLocales),\n route: (path) => getRouteLocale(event, path)\n };\n};\n","import { isEqual, joinURL, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { isFunction, isString } from \"@intlify/shared\";\nimport { navigateTo, useHead, useNuxtApp, useRequestEvent, useRequestURL, useRouter } from \"#imports\";\nimport { createLocaleRouteNameGetter, createLocalizedRouteByPathResolver } from \"./routing/utils.js\";\nimport { getRouteBaseName } from \"#i18n-kit/routing\";\nimport {\n localePath,\n switchLocalePath\n} from \"./routing/routing.js\";\nimport { useNuxtI18nContext } from \"./context.js\";\nimport { getDefaultLocaleForDomain, isSupportedLocale } from \"./shared/locales.js\";\nimport { useDetectors } from \"./shared/detection.js\";\nimport { useI18nDetection } from \"./shared/utils.js\";\nexport const isRouteLocationPathRaw = (val) => !!val.path && !val.name;\nexport function useComposableContext(nuxtApp) {\n const context = nuxtApp?._nuxtI18n?.composableCtx;\n if (!context) {\n throw new Error(\n \"i18n context is not initialized. Ensure the i18n plugin is installed and the composable is used within a Vue component or setup function.\"\n );\n }\n return context;\n}\nconst formatTrailingSlash = __TRAILING_SLASH__ ? withTrailingSlash : withoutTrailingSlash;\nexport function createComposableContext(ctx, nuxtApp = useNuxtApp()) {\n const router = useRouter();\n const detectors = useDetectors(useRequestEvent(), useI18nDetection(nuxtApp), nuxtApp);\n const defaultLocale = ctx.getDefaultLocale();\n const getLocalizedRouteName = createLocaleRouteNameGetter(defaultLocale);\n function resolveLocalizedRouteByName(route, locale) {\n route.name = getRouteBaseName(route.name || router.currentRoute.value);\n const localizedName = getLocalizedRouteName(route.name, locale);\n if (router.hasRoute(localizedName)) {\n route.name = localizedName;\n if (__I18N_COMPACT_ROUTES__ && route.params) {\n delete route.params.locale;\n }\n } else if (__I18N_COMPACT_ROUTES__ && isSupportedLocale(locale) && getCompactRouteNames().has(route.name)) {\n route.params = { ...route.params || {}, locale };\n return route;\n }\n route.name = localizedName;\n return route;\n }\n const routeByPathResolver = createLocalizedRouteByPathResolver(router);\n let compactRouteRecords;\n function getCompactRouteNames() {\n if (compactRouteRecords) {\n return compactRouteRecords;\n }\n compactRouteRecords = /* @__PURE__ */ new Set();\n if (__I18N_COMPACT_ROUTES__) {\n for (const r of router.getRoutes()) {\n if (r.name != null && /^\\/:locale\\(/.test(r.path)) {\n compactRouteRecords.add(String(r.name));\n }\n }\n }\n return compactRouteRecords;\n }\n function resolveLocalizedRouteByPath(input, locale) {\n const route = routeByPathResolver(input, locale);\n const baseName = getRouteBaseName(route);\n if (baseName) {\n const localizedName = getLocalizedRouteName(baseName, locale);\n if (router.hasRoute(localizedName)) {\n route.name = localizedName;\n return route;\n }\n if (__I18N_COMPACT_ROUTES__ && getCompactRouteNames().has(baseName)) {\n const compacted = route;\n compacted.name = baseName;\n compacted.params = { ...compacted.params || {}, locale };\n return compacted;\n }\n route.name = localizedName;\n return route;\n }\n if (prefixable(locale, defaultLocale)) {\n route.path = \"/\" + locale + route.path;\n }\n route.path = formatTrailingSlash(route.path, true);\n return route;\n }\n const composableCtx = {\n router,\n _head: void 0,\n get head() {\n this._head ??= useHead({});\n return this._head;\n },\n metaState: { htmlAttrs: {}, meta: [], link: [] },\n seoSettings: {\n dir: __I18N_STRICT_SEO__,\n lang: __I18N_STRICT_SEO__,\n seo: __I18N_STRICT_SEO__\n },\n localePathPayload: getLocalePathPayload(),\n routingOptions: {\n defaultLocale,\n strictCanonicals: ctx.config.experimental.alternateLinkCanonicalQueries ?? true,\n hreflangLinks: !(!__I18N_ROUTING__ && !__DIFFERENT_DOMAINS__)\n },\n getLocale: ctx.getLocale,\n getLocales: ctx.getLocales,\n getBaseUrl: ctx.getBaseUrl,\n getRouteBaseName,\n getRouteLocalizedParams: () => router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__] ?? {},\n getLocalizedDynamicParams: (locale) => {\n if (__I18N_STRICT_SEO__ && import.meta.client && nuxtApp.isHydrating && composableCtx.localePathPayload) {\n return composableCtx.localePathPayload[locale] || {};\n }\n return composableCtx.getRouteLocalizedParams()?.[locale];\n },\n afterSwitchLocalePath: (path, locale) => {\n const params = composableCtx.getRouteLocalizedParams();\n if (__I18N_STRICT_SEO__ && locale && Object.keys(params).length && !params[locale]) {\n return \"\";\n }\n if (__MULTI_DOMAIN_LOCALES__ && __I18N_STRATEGY__ === \"prefix_except_default\") {\n const defaultLocale2 = getDefaultLocaleForDomain(useRequestURL({ xForwardedHost: true }).host);\n if (locale !== defaultLocale2 || detectors.route(path) !== defaultLocale2) {\n return path;\n }\n return path.slice(locale.length + 1);\n }\n if (__DIFFERENT_DOMAINS__) {\n return joinURL(ctx.getBaseUrl(locale), path);\n }\n return path;\n },\n resolveLocalizedRouteObject: (route, locale) => {\n return isRouteLocationPathRaw(route) ? resolveLocalizedRouteByPath(route, locale) : resolveLocalizedRouteByName(route, locale);\n }\n };\n return composableCtx;\n}\nfunction getLocalePathPayload(nuxtApp = useNuxtApp()) {\n const payload = import.meta.client && document.querySelector(`[data-nuxt-i18n-slp=\"${nuxtApp._id}\"]`)?.textContent;\n return JSON.parse(payload || \"{}\");\n}\nexport async function loadAndSetLocale(nuxtApp, locale) {\n const ctx = useNuxtI18nContext(nuxtApp);\n const oldLocale = ctx.getLocale();\n if (locale === oldLocale && !ctx.initial && (!ctx.vueI18n.__pendingLocale || ctx.vueI18n.__pendingLocale === locale)) {\n return locale;\n }\n const data = { oldLocale, newLocale: locale, initialSetup: ctx.initial, context: nuxtApp };\n let override = await nuxtApp.callHook(\"i18n:beforeLocaleSwitch\", data);\n if (override != null && import.meta.dev) {\n console.warn(\"[nuxt-i18n] Do not return in `i18n:beforeLocaleSwitch`, mutate `data.newLocale` instead.\");\n }\n override ??= data.newLocale;\n if (isSupportedLocale(override)) {\n locale = override;\n }\n await ctx.loadMessages(locale);\n await ctx.setLocaleSuspend(locale);\n return locale;\n}\nfunction skipDetect(detect, path, pathLocale) {\n if (!__I18N_ROUTING__) {\n return false;\n }\n if (detect.redirectOn === \"root\" && path !== \"/\") {\n return true;\n }\n if (detect.redirectOn === \"no prefix\" && !detect.alwaysRedirect && isSupportedLocale(pathLocale)) {\n return true;\n }\n return false;\n}\nexport function detectLocale(nuxtApp, route) {\n const detectConfig = useI18nDetection(nuxtApp);\n const detectors = useDetectors(useRequestEvent(nuxtApp), detectConfig, nuxtApp);\n const ctx = useNuxtI18nContext(nuxtApp);\n const path = isString(route) ? route : route.path;\n function* detect() {\n if (ctx.initial && detectConfig.enabled && !skipDetect(detectConfig, path, detectors.route(path))) {\n yield detectors.cookie();\n yield detectors.header();\n yield detectors.navigator();\n yield detectConfig.fallbackLocale;\n }\n if (__DIFFERENT_DOMAINS__ || __MULTI_DOMAIN_LOCALES__) {\n yield detectors.host(path);\n }\n if (__I18N_ROUTING__) {\n yield detectors.route(route);\n }\n }\n for (const detected of detect()) {\n if (detected && isSupportedLocale(detected)) {\n return detected;\n }\n }\n return ctx.getLocale() || ctx.getDefaultLocale() || \"\";\n}\nexport function navigate(nuxtApp, to, locale) {\n if (!__I18N_ROUTING__ || __DIFFERENT_DOMAINS__) {\n return;\n }\n const ctx = useNuxtI18nContext(nuxtApp);\n const _ctx = useComposableContext(nuxtApp);\n if (to.path === \"/\" && ctx.rootRedirect) {\n return navigateTo(localePath(_ctx, ctx.rootRedirect.path, locale), { redirectCode: ctx.rootRedirect.code });\n }\n if (ctx.vueI18n.__pendingLocale && useNuxtApp()._processingMiddleware) {\n return;\n }\n const detectors = useDetectors(useRequestEvent(), useI18nDetection(nuxtApp), nuxtApp);\n if (detectors.route(to) === locale) {\n return;\n }\n const destination = switchLocalePath(_ctx, locale, to) || localePath(_ctx, to.fullPath, locale);\n if (isEqual(destination, to.fullPath)) {\n return;\n }\n return navigateTo(destination, { redirectCode: ctx.redirectStatusCode });\n}\nexport function prefixable(currentLocale, defaultLocale) {\n return !__DIFFERENT_DOMAINS__ && __I18N_ROUTING__ && (currentLocale !== defaultLocale || __I18N_STRATEGY__ === \"prefix\");\n}\nexport function createBaseUrlGetter(nuxt, baseUrl, defaultLocale, getDomainFromLocale) {\n if (isFunction(baseUrl)) {\n import.meta.dev && console.warn(\"[nuxt-i18n] Configuring baseUrl as a function is deprecated and will be removed in v11.\");\n return () => baseUrl(nuxt);\n }\n return () => {\n if (__DIFFERENT_DOMAINS__ && defaultLocale) {\n return (getDomainFromLocale(defaultLocale) || baseUrl) ?? \"\";\n }\n return baseUrl ?? \"\";\n };\n}\n","/*!\n * message-compiler v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, join, isString } from '@intlify/shared';\n\nconst LOCATION_STUB = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n};\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16\n};\n// Special value for higher-order compilers to pick up the last code\n// to avoid collision of error codes.\n// This should always be kept as the last item.\nconst COMPILE_ERROR_CODES_EXTEND_POINT = 17;\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = (process.env.NODE_ENV !== 'production')\n ? format((messages || errorMessages)[code] || '', ...(args || []))\n : code;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 13 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 13 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 13 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 7 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '') => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return hasSpace;\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 || // $\n cc === 45 // -\n );\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readText(scnr) {\n let buf = '';\n while (true) {\n const ch = scnr.currentChar();\n if (ch === '\\\\') {\n const nextCh = scnr.peek();\n if (nextCh === \"{\" /* TokenChars.BraceLeft */ ||\n nextCh === \"}\" /* TokenChars.BraceRight */ ||\n nextCh === \"@\" /* TokenChars.LinkedAlias */ ||\n nextCh === \"|\" /* TokenChars.Pipe */ ||\n nextCh === '\\\\') {\n buf += ch + nextCh;\n scnr.next();\n scnr.next();\n }\n else {\n scnr.resetPeek();\n buf += ch;\n scnr.next();\n }\n }\n else if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n // Check if takeNamedIdentifierChar stoped because of invalid characters\n const currentChar = scnr.currentChar();\n if (currentChar &&\n currentChar !== '}' &&\n currentChar !== EOF &&\n currentChar !== CHAR_SP &&\n currentChar !== CHAR_LF &&\n currentChar !== '\\u3000') {\n const invalidPart = readInvalidIdentifier(scnr);\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart);\n return name + invalidPart;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default: {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 4 /* TokenTypes.Named */ ||\n context.currentType === 5 /* TokenTypes.List */ ||\n context.currentType === 6 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 4 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 12 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 8 /* TokenTypes.LinkedDot */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */ ||\n currentType === 9 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 7 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 8 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 11 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 10 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 7 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 13 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default: {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 13 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\n// Text context escape sequences: \\\\, \\@, \\{, \\}, \\|\nconst TEXT_ESCAPES = /\\\\([\\\\@{}|])/g;\nfunction fromTextEscapeSequence(_match, char) {\n return char;\n}\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value.replace(TEXT_ESCAPES, fromTextEscapeSequence);\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 11 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 8 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 9 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 10 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default: {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 7 /* TokenTypes.LinkedAlias */: {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 13 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 13 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 13 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 13 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 13 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */: {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */: {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */: {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */: {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n if ((process.env.NODE_ENV !== 'production')) {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n if ((process.env.NODE_ENV !== 'production')) {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {}) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nexport { COMPILE_ERROR_CODES_EXTEND_POINT, CompileErrorCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages };\n","/*!\n * core-base v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, isObject, hasOwn, isNumber, create, isString, isBoolean, warn, format as format$1, isFunction, isPromise, isArray, isPlainObject, assign, isRegExp, warnOnce, isDate, isEmptyObject, join, toDisplayString, sanitizeTranslatedHtml, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey } from '@intlify/shared';\nimport { detectHtmlTag, defaultOnError, baseCompile as baseCompile$1, COMPILE_ERROR_CODES_EXTEND_POINT, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\n\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n}\n\nfunction isMessageAST(val) {\n return (isObject(val) &&\n resolveType(val) === 0 &&\n (hasOwn(val, 'b') || hasOwn(val, 'body')));\n}\nconst PROPS_BODY = ['b', 'body'];\nfunction resolveBody(node) {\n return resolveProps(node, PROPS_BODY);\n}\nconst PROPS_CASES = ['c', 'cases'];\nfunction resolveCases(node) {\n return resolveProps(node, PROPS_CASES, []);\n}\nconst PROPS_STATIC = ['s', 'static'];\nfunction resolveStatic(node) {\n return resolveProps(node, PROPS_STATIC);\n}\nconst PROPS_ITEMS = ['i', 'items'];\nfunction resolveItems(node) {\n return resolveProps(node, PROPS_ITEMS, []);\n}\nconst PROPS_TYPE = ['t', 'type'];\nfunction resolveType(node) {\n return resolveProps(node, PROPS_TYPE);\n}\nconst PROPS_VALUE = ['v', 'value'];\nfunction resolveValue$1(node, type) {\n const resolved = resolveProps(node, PROPS_VALUE);\n if (resolved != null) {\n return resolved;\n }\n else {\n throw createUnhandleNodeError(type);\n }\n}\nconst PROPS_MODIFIER = ['m', 'modifier'];\nfunction resolveLinkedModifier(node) {\n return resolveProps(node, PROPS_MODIFIER);\n}\nconst PROPS_KEY = ['k', 'key'];\nfunction resolveLinkedKey(node) {\n const resolved = resolveProps(node, PROPS_KEY);\n if (resolved) {\n return resolved;\n }\n else {\n throw createUnhandleNodeError(6 /* NodeTypes.Linked */);\n }\n}\nfunction resolveProps(node, props, defaultValue) {\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (hasOwn(node, prop) && node[prop] != null) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return node[prop];\n }\n }\n return defaultValue;\n}\nconst AST_NODE_PROPS_KEYS = [\n ...PROPS_BODY,\n ...PROPS_CASES,\n ...PROPS_STATIC,\n ...PROPS_ITEMS,\n ...PROPS_KEY,\n ...PROPS_MODIFIER,\n ...PROPS_VALUE,\n ...PROPS_TYPE\n];\nfunction createUnhandleNodeError(type) {\n return new Error(`unhandled node type: ${type}`);\n}\n\nfunction format(ast) {\n const msg = (ctx) => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = resolveBody(ast);\n if (body == null) {\n throw createUnhandleNodeError(0 /* NodeTypes.Resource */);\n }\n const type = resolveType(body);\n if (type === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = resolveCases(plural);\n return ctx.plural(cases.reduce((messages, c) => [\n ...messages,\n formatMessageParts(ctx, c)\n ], []));\n }\n else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const static_ = resolveStatic(node);\n if (static_ != null) {\n return ctx.type === 'text'\n ? static_\n : ctx.normalize([static_]);\n }\n else {\n const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = resolveType(node);\n switch (type) {\n case 3 /* NodeTypes.Text */: {\n return resolveValue$1(node, type);\n }\n case 9 /* NodeTypes.Literal */: {\n return resolveValue$1(node, type);\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n if (hasOwn(named, 'k') && named.k) {\n return ctx.interpolate(ctx.named(named.k));\n }\n if (hasOwn(named, 'key') && named.key) {\n return ctx.interpolate(ctx.named(named.key));\n }\n throw createUnhandleNodeError(type);\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n if (hasOwn(list, 'i') && isNumber(list.i)) {\n return ctx.interpolate(ctx.list(list.i));\n }\n if (hasOwn(list, 'index') && isNumber(list.index)) {\n return ctx.interpolate(ctx.list(list.index));\n }\n throw createUnhandleNodeError(type);\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n const modifier = resolveLinkedModifier(linked);\n const key = resolveLinkedKey(linked);\n return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n }\n case 7 /* NodeTypes.LinkedKey */: {\n return resolveValue$1(node, type);\n }\n case 8 /* NodeTypes.LinkedModifier */: {\n return resolveValue$1(node, type);\n }\n default:\n throw new Error(`unhandled node on format message part: ${type}`);\n }\n}\n\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && detectHtmlTag(source)) {\n warn(format$1(WARN_MESSAGE, { source }));\n }\n}\nconst defaultOnCacheKey = (message) => message;\nlet compileCache = create();\nfunction clearCompileCache() {\n compileCache = create();\n}\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || defaultOnError;\n options.onError = (err) => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return { ...baseCompile$1(message, options), detectError };\n}\n/* #__NO_SIDE_EFFECTS__ */\nfunction compile(message, context) {\n if ((!__INTLIFY_DROP_MESSAGE_COMPILER__) &&\n isString(message)) {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const { ast, detectError } = baseCompile(message, {\n ...context,\n location: (process.env.NODE_ENV !== 'production'),\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !isMessageAST(message)) {\n warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return (() => message);\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return (compileCache[cacheKey] =\n format(message));\n }\n else {\n return format(message);\n }\n }\n}\n\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools &&\n devtools.emit('i18n:init', {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = \n/* #__PURE__*/ createDevToolsHook('function:translate');\nfunction createDevToolsHook(hook) {\n return (payloads) => devtools && devtools.emit(hook, payloads);\n}\n\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT, // 17\n INVALID_DATE_ARGUMENT: 18,\n INVALID_ISO_DATE_ARGUMENT: 19,\n NOT_SUPPORT_NON_STRING_MESSAGE: 20,\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21,\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22,\n NOT_SUPPORT_LOCALE_TYPE: 23\n};\nconst CORE_ERROR_CODES_EXTEND_POINT = 24;\nfunction createCoreError(code) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\n 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null\n ? resolveLocale(options.locale)\n : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if (isString(locale)) {\n return locale;\n }\n else {\n if (isFunction(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n }\n else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if (isPromise(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return (_resolveLocale = resolve);\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start) {\n // prettier-ignore\n return [...new Set([\n start,\n ...(isArray(fallback)\n ? fallback\n : isObject(fallback)\n ? Object.keys(fallback)\n : isString(fallback)\n ? [fallback]\n : [start])\n ])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while (isArray(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = isArray(fallback) || !isPlainObject(fallback)\n ? fallback\n : fallback['default']\n ? fallback['default']\n : null;\n // convert defaults to array\n block = isString(defaults) ? [defaults] : defaults;\n if (isArray(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\n const locale = block[i];\n if (isString(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if ((isArray(blocks) || isPlainObject(blocks)) &&\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [\n 4 /* States.IN_SUB_PATH */,\n 2 /* Actions.INC_SUB_PATH_DEPTH */\n ],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27: // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d: // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029: // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\n}\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed)\n ? stripQuotes(trimmed)\n : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n }\n else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n }\n else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n }\n else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&\n nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */) ||\n (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&\n nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */)) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return isObject(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!isObject(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- for generic object\n let last = obj;\n let i = 0;\n while (i < len) {\n const key = hit[i];\n /**\n * NOTE:\n * if `key` is intlify message format AST node key and `last` is intlify message format AST, skip it.\n * because the AST node is not a key-value structure.\n */\n if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) {\n return null;\n }\n if (!isObject(last)) {\n return null;\n }\n if (!hasOwn(last, key)) {\n return null;\n }\n const val = last[key];\n if (val === undefined) {\n return null;\n }\n if (isFunction(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\n\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: 1,\n FALLBACK_TO_TRANSLATE: 2,\n CANNOT_FORMAT_NUMBER: 3,\n FALLBACK_TO_NUMBER_FORMAT: 4,\n CANNOT_FORMAT_DATE: 5,\n FALLBACK_TO_DATE_FORMAT: 6,\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7,\n INVALID_NUMBER_ARGUMENT: 8,\n INVALID_DATE_ARGUMENT: 9\n};\nconst CORE_WARN_CODES_EXTEND_POINT = 10;\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`,\n [CoreWarnCodes.INVALID_NUMBER_ARGUMENT]: `Invalid argument for number formatting: expected a number but received '{value}'.`,\n [CoreWarnCodes.INVALID_DATE_ARGUMENT]: `Invalid argument for datetime formatting: expected a Date, number, or ISO string but received '{value}'.`\n};\nfunction getWarnMessage(code, ...args) {\n return format$1(warnMessages[code], ...args);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '11.4.2';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toUpperCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toUpperCase()\n : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toLowerCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toLowerCase()\n : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return (type === 'text' && isString(val)\n ? capitalize(val)\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? capitalize(val.children)\n : val);\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = (meta) => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = (context) => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n const version = isString(options.version) ? options.version : VERSION;\n const locale = isString(options.locale) || isFunction(options.locale)\n ? options.locale\n : DEFAULT_LOCALE;\n const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n isString(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale;\n const messages = isPlainObject(options.messages)\n ? options.messages\n : createResources(_locale);\n const datetimeFormats = isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : createResources(_locale)\n ;\n const numberFormats = isPlainObject(options.numberFormats)\n ? options.numberFormats\n : createResources(_locale)\n ;\n const modifiers = assign(create(), options.modifiers, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || create();\n const missing = isFunction(options.missing) ? options.missing : null;\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n const processor = isPlainObject(options.processor) ? options.processor : null;\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = isFunction(options.messageCompiler)\n ? options.messageCompiler\n : _compiler;\n if ((process.env.NODE_ENV !== 'production') &&\n !false &&\n !false &&\n isFunction(options.messageCompiler)) {\n warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = isFunction(options.messageResolver)\n ? options.messageResolver\n : _resolver || resolveWithKeyValue;\n const localeFallbacker = isFunction(options.localeFallbacker)\n ? options.localeFallbacker\n : _fallbacker || fallbackWithSimple;\n const fallbackContext = isObject(options.fallbackContext)\n ? options.fallbackContext\n : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\n ? internalOptions.__datetimeFormatters\n : new Map()\n ;\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\n ? internalOptions.__numberFormatters\n : new Map()\n ;\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n context.__v_emitter =\n internalOptions.__v_emitter != null\n ? internalOptions.__v_emitter\n : undefined;\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\nconst createResources = (locale) => ({ [locale]: create() });\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const { missing, onWarn } = context;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('missing', {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return isString(ret) ? ret : key;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/** @internal */\nfunction isAlmostSameLocale(locale, compareLocale) {\n if (locale === compareLocale)\n return false;\n return locale.split('-')[0] === compareLocale.split('-')[0];\n}\n/** @internal */\nfunction isImplicitFallback(targetLocale, locales) {\n const index = locales.indexOf(targetLocale);\n if (index === -1) {\n return false;\n }\n for (let i = index + 1; i < locales.length; i++) {\n if (isAlmostSameLocale(targetLocale, locales[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __datetimeFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) {\n if ((process.env.NODE_ENV !== 'production')) {\n onWarn(getWarnMessage(CoreWarnCodes.INVALID_DATE_ARGUMENT, {\n value: String(args[0])\n }));\n }\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.DateTimeFormat(locale.replace(/!/g, ''), overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat =\n datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'formatMatcher',\n 'hour12',\n 'timeZone',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'dayPeriod',\n 'numberingSystem',\n 'hourCycle',\n 'fractionalSecondDigits'\n];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = create();\n let overrides = create();\n let value;\n if (isString(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3]\n ? matches[3].trim().startsWith('T')\n ? `${matches[1].trim()}${matches[3].trim()}`\n : `${matches[1].trim()}T${matches[3].trim()}`\n : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n }\n catch {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n }\n else if (isDate(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n }\n else if (isNumber(arg1)) {\n value = arg1;\n }\n else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __numberFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n if (!isNumber(args[0])) {\n if ((process.env.NODE_ENV !== 'production')) {\n onWarn(getWarnMessage(CoreWarnCodes.INVALID_NUMBER_ARGUMENT, {\n value: String(args[0])\n }));\n }\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.NumberFormat(locale.replace(/!/g, ''), overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat =\n numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'compactDisplay',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'roundingMode',\n 'roundingPriority',\n 'roundingIncrement',\n 'trailingZeroDisplay'\n];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = create();\n let overrides = create();\n if (!isNumber(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\nconst DEFAULT_INTERPOLATE = toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n // singular (0) | plural (1)\n if (choicesLength === 2) {\n // prettier-ignore\n return choice === 1\n ? 0\n : 1;\n }\n // zero (0) | singular (1) | plural (2)\n return Math.min(choice, 2);\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = isNumber(options.pluralIndex)\n ? options.pluralIndex\n : -1;\n return isNumber(options.named?.count)\n ? options.named.count\n : isNumber(options.named?.n)\n ? options.named.n\n : index;\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = isString(locale) && isFunction(options.pluralRules?.[locale])\n ? options.pluralRules[locale]\n : pluralDefault;\n const orgPluralRule = pluralRule === pluralDefault ? undefined : pluralDefault;\n const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n const _list = options.list || [];\n const list = (index) => _list[index];\n const _named = options.named || create(); // eslint-disable-line @typescript-eslint/no-explicit-any\n // normalize named\n if (isNumber(options.pluralIndex)) {\n _named.count ||= options.pluralIndex;\n _named.n ||= options.pluralIndex;\n }\n const named = (key) => _named[key];\n function message(key, useLinked) {\n // prettier-ignore\n const msg = isFunction(options.messages)\n ? options.messages(key, !!useLinked)\n : isObject(options.messages)\n ? options.messages[key]\n : false;\n return !msg\n ? options.parent\n ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE\n : msg;\n }\n const _modifier = (name) => options.modifiers\n ? options.modifiers[name]\n : DEFAULT_MODIFIER;\n const normalize = isFunction(options.processor?.normalize)\n ? options.processor.normalize\n : DEFAULT_NORMALIZE;\n const interpolate = isFunction(options.processor?.interpolate)\n ? options.processor.interpolate\n : DEFAULT_INTERPOLATE;\n const type = isString(options.processor?.type)\n ? options.processor.type\n : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if (isObject(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n }\n else if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n }\n else if (args.length === 2) {\n if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n if (isString(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key, true)(ctx);\n // If the linked message is not resolved (empty string), fall back to the key itself\n const resolved = ret === '' || ret === undefined ? key : ret;\n const msg = \n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && isArray(resolved) && modifier\n ? resolved[0]\n : resolved;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: assign(create(), _list, _named)\n };\n return ctx;\n}\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = (val) => isFunction(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const escapeParameter = isBoolean(options.escapeParameter)\n ? options.escapeParameter\n : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\n ? !isBoolean(options.default)\n ? options.default\n : (!messageCompiler ? () => key : key)\n : fallbackFormat // default by `fallbackFormat` option\n ? (!messageCompiler ? () => key : key)\n : null;\n const enableDefaultMsg = fallbackFormat ||\n (defaultMsgOrKey != null &&\n (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey)));\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\n : [\n key,\n locale,\n messages[locale] || create()\n ];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage &&\n !(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage &&\n (!(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format)) ||\n !isString(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\n warn(`The message format compilation is not supported in this build. ` +\n `Because message compiler isn't included. ` +\n `You need to pre-compilation all message format. ` +\n `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format)\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError)\n : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n let ret = postTranslation\n ? postTranslation(messaged, key)\n : messaged;\n // apply HTML sanitization for security\n if (escapeParameter && isString(ret)) {\n ret = sanitizeTranslatedHtml(ret);\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: isString(key)\n ? key\n : isMessageFunction(format)\n ? format.key\n : '',\n locale: targetLocale || (isMessageFunction(format)\n ? format.locale\n : ''),\n format: isString(format)\n ? format\n : isMessageFunction(format)\n ? format.source\n : '',\n message: ret\n };\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if (isArray(options.list)) {\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\n }\n else if (isObject(options.named)) {\n Object.keys(options.named).forEach(key => {\n if (isString(options.named[key])) {\n options.named[key] = escapeHtml(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = create();\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n !isAlmostSameLocale(locale, targetLocale) &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n const emitter = (process.env.NODE_ENV !== 'production')\n ? context.__v_emitter\n : undefined;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message =\n messages[targetLocale] || create();\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n mark && mark(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n const end = window.performance.now();\n if (emitter && start && format) {\n emitter.emit('message-resolve', {\n type: 'message-resolve',\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message resolve', startTag, endTag);\n }\n }\n if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n if (!isImplicitFallback(targetLocale, locales)) {\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const { messageCompiler, warnHtmlMessage } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = (() => format);\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n const emitter = (process.env.NODE_ENV !== 'production')\n ? context.__v_emitter\n : undefined;\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n mark && mark(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n const end = window.performance.now();\n if (emitter && start) {\n emitter.emit('message-compilation', {\n type: 'message-compilation',\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n const emitter = (process.env.NODE_ENV !== 'production')\n ? context.__v_emitter\n : undefined;\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n mark && mark(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n const end = window.performance.now();\n if (emitter && start) {\n emitter.emit('message-evaluation', {\n type: 'message-evaluation',\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = create();\n if (!isString(arg1) &&\n !isNumber(arg1) &&\n !isMessageFunction(arg1) &&\n !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = isNumber(arg1)\n ? String(arg1)\n : isMessageFunction(arg1)\n ? arg1\n : arg1;\n if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isString(arg2)) {\n options.default = arg2;\n }\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\n options.named = arg2;\n }\n else if (isArray(arg2)) {\n options.list = arg2;\n }\n if (isNumber(arg3)) {\n options.plural = arg3;\n }\n else if (isString(arg3)) {\n options.default = arg3;\n }\n else if (isPlainObject(arg3)) {\n assign(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: (err) => {\n onError && onError(err);\n if ((process.env.NODE_ENV !== 'production')) {\n const _source = getSourceForCodeFrame(source);\n const codeFrame = err.location &&\n _source &&\n generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit('compile-error', {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n const message = `Message compilation error: ${err.message}`;\n throw new SyntaxError(codeFrame ? `${message}\\n${codeFrame}` : message);\n }\n throw err;\n },\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if (isString(source)) {\n return source;\n }\n else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\n const resolveMessage = (key, useLinked) => {\n let val = resolveValue(message, key);\n // fallback\n if (val == null && (fallbackContext || useLinked)) {\n const [format, , message] = resolveMessageFormat(fallbackContext || context, // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context\n key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = format ?? resolveValue(message, key);\n }\n if (isString(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred\n ? msg\n : NOOP_MESSAGE_FUNCTION;\n }\n else if (isMessageFunction(val)) {\n return val;\n }\n else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if (isNumber(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\n\n{\n initFeatureFlags();\n}\n\nexport { AST_NODE_PROPS_KEYS, CORE_ERROR_CODES_EXTEND_POINT, CORE_WARN_CODES_EXTEND_POINT, CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isAlmostSameLocale, isImplicitFallback, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { CORE_ERROR_CODES_EXTEND_POINT, createCompileError, CORE_WARN_CODES_EXTEND_POINT, isMessageAST, AST_NODE_PROPS_KEYS, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, isMessageFunction, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compile, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { getGlobalThis, makeSymbol, format, isObject, create, isPlainObject, isArray, deepCopy, isString, hasOwn, warn, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, createEmitter, warnOnce, isEmptyObject } from '@intlify/shared';\nimport * as Vue from 'vue';\nimport { createVNode, Text, computed, watch, ref, shallowRef, Fragment, defineComponent, h, getCurrentScope, onScopeDispose, effectScope, inject, onMounted, onUnmounted, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * Vue I18n Version\n *\n * @remarks\n * Semver format. Same format as the package.json `version` field.\n *\n * @VueI18nGeneral\n */\nconst VERSION = '11.4.2';\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\n }\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n}\n\nconst I18nErrorCodes = {\n // composer module errors\n UNEXPECTED_RETURN_TYPE: CORE_ERROR_CODES_EXTEND_POINT, // 24\n // legacy module errors\n INVALID_ARGUMENT: 25,\n // i18n module errors\n MUST_BE_CALL_SETUP_TOP: 26,\n NOT_INSTALLED: 27,\n // directive module errors\n REQUIRED_VALUE: 28,\n INVALID_VALUE: 29,\n // vue-devtools errors\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: 30,\n NOT_INSTALLED_WITH_PROVIDE: 31,\n // unexpected error\n UNEXPECTED_ERROR: 32,\n // not compatible legacy vue-i18n constructor\n NOT_COMPATIBLE_LEGACY_VUE_I18N: 33,\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: 34\n};\nfunction createI18nError(code, ...args) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\n}\nconst errorMessages = {\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\n [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function',\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\n [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\n};\n\nconst TranslateVNodeSymbol = \n/* #__PURE__*/ makeSymbol('__translateVNode');\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\nmakeSymbol('__intlifyMeta');\nconst InejctWithOptionSymbol = \n/* #__PURE__*/ makeSymbol('__injectWithOption');\nconst DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose');\n\nconst I18nWarnCodes = {\n FALLBACK_TO_ROOT: CORE_WARN_CODES_EXTEND_POINT, // 10\n NOT_FOUND_PARENT_SCOPE: (CORE_WARN_CODES_EXTEND_POINT + 1),\n IGNORE_OBJ_FLATTEN: (CORE_WARN_CODES_EXTEND_POINT + 2),\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n DEPRECATE_LEGACY_MODE: (CORE_WARN_CODES_EXTEND_POINT + 3),\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE: (CORE_WARN_CODES_EXTEND_POINT +\n 4),\n // duplicate `useI18n` calling\n DUPLICATE_USE_I18N_CALLING: (CORE_WARN_CODES_EXTEND_POINT + 5)\n};\nconst warnMessages = {\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,\n [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n [I18nWarnCodes.DEPRECATE_LEGACY_MODE]: `Legacy API mode has been deprecated in v11. Use Composition API mode instead.\\nAbout how to use the Composition API mode, see https://vue-i18n.intlify.dev/guide/advanced/composition.html`,\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n [I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE]: `'v-t' has been deprecated in v11. Use translate APIs ('t' or '$t') instead.`,\n [I18nWarnCodes.DUPLICATE_USE_I18N_CALLING]: \"Duplicate `useI18n` calling by local scope. Please don't call it on local scope, due to it does not work properly in component.\"\n};\nfunction getWarnMessage(code, ...args) {\n return format(warnMessages[code], ...args);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Transform flat json in obj to normal json in obj\n */\nfunction handleFlatJson(obj) {\n // check obj\n if (!isObject(obj)) {\n return obj;\n }\n if (isMessageAST(obj)) {\n return obj;\n }\n for (const key in obj) {\n // check key\n if (!hasOwn(obj, key)) {\n continue;\n }\n // handle for normal json\n if (!key.includes('.')) {\n // recursive process value if value is also a object\n if (isObject(obj[key])) {\n handleFlatJson(obj[key]);\n }\n }\n // handle for flat json, transform to normal json\n else {\n // go to the last object\n const subKeys = key.split('.');\n const lastIndex = subKeys.length - 1;\n let currentObj = obj;\n let hasStringValue = false;\n for (let i = 0; i < lastIndex; i++) {\n if (subKeys[i] === '__proto__') {\n throw new Error(`unsafe key: ${subKeys[i]}`);\n }\n if (!(subKeys[i] in currentObj)) {\n currentObj[subKeys[i]] = create();\n }\n if (!isObject(currentObj[subKeys[i]])) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {\n key: subKeys[i]\n }));\n hasStringValue = true;\n break;\n }\n currentObj = currentObj[subKeys[i]];\n }\n // update last object value, delete old property\n if (!hasStringValue) {\n if (!isMessageAST(currentObj)) {\n currentObj[subKeys[lastIndex]] = obj[key];\n delete obj[key];\n }\n else {\n /**\n * NOTE:\n * if the last object is a message AST and subKeys[lastIndex] has message AST prop key, ignore to copy and key deletion\n */\n if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) {\n delete obj[key];\n }\n }\n }\n // recursive process value if value is also a object\n if (!isMessageAST(currentObj)) {\n const target = currentObj[subKeys[lastIndex]];\n if (isObject(target)) {\n handleFlatJson(target);\n }\n }\n }\n }\n return obj;\n}\nfunction getLocaleMessages(locale, options) {\n const { messages, __i18n, messageResolver, flatJson } = options;\n // prettier-ignore\n const ret = (isPlainObject(messages)\n ? messages\n : isArray(__i18n)\n ? create()\n : { [locale]: create() });\n // merge locale messages of i18n custom block\n if (isArray(__i18n)) {\n __i18n.forEach(custom => {\n if ('locale' in custom && 'resource' in custom) {\n const { locale, resource } = custom;\n if (locale) {\n ret[locale] = ret[locale] || create();\n deepCopy(resource, ret[locale]);\n }\n else {\n deepCopy(resource, ret);\n }\n }\n else {\n isString(custom) && deepCopy(JSON.parse(custom), ret);\n }\n });\n }\n // handle messages for flat json\n if (messageResolver == null && flatJson) {\n for (const key in ret) {\n if (hasOwn(ret, key)) {\n handleFlatJson(ret[key]);\n }\n }\n }\n return ret;\n}\nfunction getComponentOptions(instance) {\n return instance.type;\n}\nfunction adjustI18nResources(gl, options, componentOptions) {\n // prettier-ignore\n let messages = isObject(options.messages)\n ? options.messages\n : create();\n if ('__i18nGlobal' in componentOptions) {\n messages = getLocaleMessages(gl.locale.value, {\n messages,\n __i18n: componentOptions.__i18nGlobal\n });\n }\n // merge locale messages\n const locales = Object.keys(messages);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeLocaleMessage(locale, messages[locale]);\n });\n }\n {\n // merge datetime formats\n if (isObject(options.datetimeFormats)) {\n const locales = Object.keys(options.datetimeFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\n });\n }\n }\n // merge number formats\n if (isObject(options.numberFormats)) {\n const locales = Object.keys(options.numberFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeNumberFormat(locale, options.numberFormats[locale]);\n });\n }\n }\n }\n}\nfunction createTextNode(key) {\n return createVNode(Text, null, key, 0);\n}\nfunction getCurrentInstance() {\n // NOTE(kazupon): avoid bundler warning\n const key = 'currentInstance';\n if (key in Vue) {\n return Vue[key];\n }\n else {\n return Vue.getCurrentInstance();\n }\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// extend VNode interface\nconst DEVTOOLS_META = '__INTLIFY_META__';\nconst NOOP_RETURN_ARRAY = () => [];\nconst NOOP_RETURN_FALSE = () => false;\nlet composerID = 0;\nfunction defineCoreMissingHandler(missing) {\n return ((ctx, locale, key, type) => {\n return missing(locale, key, getCurrentInstance() || undefined, type);\n });\n}\n// for Intlify DevTools\n/* #__NO_SIDE_EFFECTS__ */\nconst getMetaInfo = () => {\n const instance = getCurrentInstance();\n let meta = null;\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n ? { [DEVTOOLS_META]: meta }\n : null;\n};\n/**\n * Create composer interface factory\n *\n * @internal\n */\nfunction createComposer(options = {}) {\n const { __root, __injectWithOption } = options;\n const _isGlobal = __root === undefined;\n const flatJson = options.flatJson;\n const _ref = inBrowser ? ref : shallowRef;\n let _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : true;\n const _locale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = _ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} })\n ;\n // prettier-ignore\n const _numberFormats = _ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} })\n ;\n // warning suppress options\n // prettier-ignore\n let _missingWarn = __root\n ? __root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n let _fallbackWarn = __root\n ? __root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n let _fallbackRoot = __root\n ? __root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n let _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n let _missing = isFunction(options.missing) ? options.missing : null;\n let _runtimeMissing = isFunction(options.missing)\n ? defineCoreMissingHandler(options.missing)\n : null;\n // postTranslation handler\n let _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n let _warnHtmlMessage = __root\n ? __root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n let _escapeParameter = !!options.escapeParameter;\n // custom linked modifiers\n // prettier-ignore\n const _modifiers = __root\n ? __root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\n // runtime context\n // eslint-disable-next-line prefer-const\n let _context;\n const getCoreContext = () => {\n _isGlobal && setFallbackContext(null);\n const ctxOptions = {\n version: VERSION,\n locale: _locale.value,\n fallbackLocale: _fallbackLocale.value,\n messages: _messages.value,\n modifiers: _modifiers,\n pluralRules: _pluralRules,\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\n missingWarn: _missingWarn,\n fallbackWarn: _fallbackWarn,\n fallbackFormat: _fallbackFormat,\n unresolving: true,\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\n warnHtmlMessage: _warnHtmlMessage,\n escapeParameter: _escapeParameter,\n messageResolver: options.messageResolver,\n messageCompiler: options.messageCompiler,\n __meta: { framework: 'vue' }\n };\n {\n ctxOptions.datetimeFormats = _datetimeFormats.value;\n ctxOptions.numberFormats = _numberFormats.value;\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\n ? _context.__datetimeFormatters\n : undefined;\n ctxOptions.__numberFormatters = isPlainObject(_context)\n ? _context.__numberFormatters\n : undefined;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n ctxOptions.__v_emitter = isPlainObject(_context)\n ? _context.__v_emitter\n : undefined;\n }\n const ctx = createCoreContext(ctxOptions);\n _isGlobal && setFallbackContext(ctx);\n return ctx;\n };\n _context = getCoreContext();\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ]\n ;\n }\n // locale\n const locale = computed({\n get: () => _locale.value,\n set: val => {\n _context.locale = val;\n _locale.value = val;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => _fallbackLocale.value,\n set: val => {\n _context.fallbackLocale = val;\n _fallbackLocale.value = val;\n updateFallbackLocale(_context, _locale.value, val);\n }\n });\n // messages\n const messages = computed(() => _messages.value);\n // datetimeFormats\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\n // numberFormats\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\n // getPostTranslationHandler\n function getPostTranslationHandler() {\n return isFunction(_postTranslation) ? _postTranslation : null;\n }\n // setPostTranslationHandler\n function setPostTranslationHandler(handler) {\n _postTranslation = handler;\n _context.postTranslation = handler;\n }\n // getMissingHandler\n function getMissingHandler() {\n return _missing;\n }\n // setMissingHandler\n function setMissingHandler(handler) {\n if (handler !== null) {\n _runtimeMissing = defineCoreMissingHandler(handler);\n }\n _missing = handler;\n _context.missing = _runtimeMissing;\n }\n function isResolvedTranslateMessage(type, arg) {\n return type !== 'translate' || !arg.resolvedMessage;\n }\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\n trackReactivityValues(); // track reactive dependency\n // NOTE: experimental !!\n let ret;\n try {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(getMetaInfo());\n }\n if (!_isGlobal) {\n _context.fallbackContext = __root\n ? getFallbackContext()\n : undefined;\n }\n ret = fn(_context);\n }\n finally {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(null);\n }\n if (!_isGlobal) {\n _context.fallbackContext = undefined;\n }\n }\n if ((warnType !== 'translate exists' && // for not `te` (e.g `t`)\n isNumber(ret) &&\n ret === NOT_REOSLVED) ||\n (warnType === 'translate exists' && !ret) // for `te`\n ) {\n const [key, arg2] = argumentParser();\n if ((process.env.NODE_ENV !== 'production') &&\n __root &&\n isString(key) &&\n isResolvedTranslateMessage(warnType, arg2)) {\n if (_fallbackRoot &&\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\n isTranslateMissingWarn(_missingWarn, key))) {\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\n key,\n type: warnType\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const { __v_emitter: emitter } = _context;\n if (emitter && _fallbackRoot) {\n emitter.emit('fallback', {\n type: warnType,\n key,\n to: 'global',\n groupId: `${warnType}:${key}`\n });\n }\n }\n }\n return __root && _fallbackRoot\n ? fallbackSuccess(__root)\n : fallbackFail(key);\n }\n else if (successCondition(ret)) {\n return ret;\n }\n else {\n /* istanbul ignore next */\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\n }\n };\n // t\n function t(...args) {\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\n }\n // rt\n function rt(...args) {\n const [arg1, arg2, arg3] = args;\n if (arg3 && !isObject(arg3)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\n }\n // d\n function d(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val) || isArray(val));\n }\n // n\n function n(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val) || isArray(val));\n }\n // for custom processor\n function normalize(values) {\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\n ? createTextNode(String(val))\n : val);\n }\n const interpolate = (val) => val;\n const processor = {\n normalize,\n interpolate,\n type: 'vnode'\n };\n // translateVNode, using for `i18n-t` component\n function translateVNode(...args) {\n return wrapWithDeps(context => {\n let ret;\n const _context = context;\n try {\n _context.processor = processor;\n ret = Reflect.apply(translate, null, [_context, ...args]);\n }\n finally {\n _context.processor = null;\n }\n return ret;\n }, () => parseTranslateArgs(...args), 'translate', root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\n }\n // numberParts, using for `i18n-n` component\n function numberParts(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n // datetimeParts, using for `i18n-d` component\n function datetimeParts(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n function setPluralRules(rules) {\n _pluralRules = rules;\n _context.pluralRules = _pluralRules;\n }\n // te\n function te(key, locale) {\n return wrapWithDeps(() => {\n if (!key) {\n return false;\n }\n const targetLocale = isString(locale) ? locale : _locale.value;\n // When locale is explicitly specified, check only that locale (no fallback chain)\n // When locale is not specified, check the fallback locale chain\n const locales = isString(locale)\n ? [targetLocale]\n : fallbackWithLocaleChain(_context, _fallbackLocale.value, targetLocale);\n for (let i = 0; i < locales.length; i++) {\n const message = getLocaleMessage(locales[i]);\n let resolved = _context.messageResolver(message, key);\n // if null, resolve with object key path (for flat keys containing dots)\n if (resolved === null) {\n resolved = message[key];\n }\n if (isMessageAST(resolved) ||\n isMessageFunction(resolved) ||\n isString(resolved)) {\n return true;\n }\n }\n return false;\n }, () => [key], 'translate exists', root => {\n return Reflect.apply(root.te, root, [key, locale]);\n }, NOOP_RETURN_FALSE, val => isBoolean(val));\n }\n function resolveMessages(key) {\n let messages = null;\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\n for (let i = 0; i < locales.length; i++) {\n const targetLocaleMessages = _messages.value[locales[i]] || {};\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\n if (messageValue != null) {\n messages = messageValue;\n break;\n }\n }\n return messages;\n }\n // tm\n function tm(key) {\n const messages = resolveMessages(key);\n // prettier-ignore\n return messages != null\n ? messages\n : __root\n ? __root.tm(key) || {}\n : {};\n }\n // getLocaleMessage\n function getLocaleMessage(locale) {\n return (_messages.value[locale] || {});\n }\n // setLocaleMessage\n function setLocaleMessage(locale, message) {\n if (flatJson) {\n const _message = { [locale]: message };\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n message = _message[locale];\n }\n _messages.value[locale] = message;\n _context.messages = _messages.value;\n }\n // mergeLocaleMessage\n function mergeLocaleMessage(locale, message) {\n _messages.value[locale] = _messages.value[locale] || {};\n const _message = { [locale]: message };\n if (flatJson) {\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n }\n message = _message[locale];\n deepCopy(message, _messages.value[locale]);\n _context.messages = _messages.value;\n }\n // getDateTimeFormat\n function getDateTimeFormat(locale) {\n return _datetimeFormats.value[locale] || {};\n }\n // setDateTimeFormat\n function setDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = format;\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // mergeDateTimeFormat\n function mergeDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // getNumberFormat\n function getNumberFormat(locale) {\n return _numberFormats.value[locale] || {};\n }\n // setNumberFormat\n function setNumberFormat(locale, format) {\n _numberFormats.value[locale] = format;\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // mergeNumberFormat\n function mergeNumberFormat(locale, format) {\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // for debug\n composerID++;\n // watch root locale & fallbackLocale\n if (__root && inBrowser) {\n watch(__root.locale, (val) => {\n if (_inheritLocale) {\n _locale.value = val;\n _context.locale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n watch(__root.fallbackLocale, (val) => {\n if (_inheritLocale) {\n _fallbackLocale.value = val;\n _context.fallbackLocale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n }\n // define basic composition API!\n const composer = {\n id: composerID,\n locale,\n fallbackLocale,\n get inheritLocale() {\n return _inheritLocale;\n },\n set inheritLocale(val) {\n _inheritLocale = val;\n if (val && __root) {\n _locale.value = __root.locale.value;\n _fallbackLocale.value = __root.fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n },\n get availableLocales() {\n return Object.keys(_messages.value).sort();\n },\n messages,\n get modifiers() {\n return _modifiers;\n },\n get pluralRules() {\n return _pluralRules || {};\n },\n get isGlobal() {\n return _isGlobal;\n },\n get missingWarn() {\n return _missingWarn;\n },\n set missingWarn(val) {\n _missingWarn = val;\n _context.missingWarn = _missingWarn;\n },\n get fallbackWarn() {\n return _fallbackWarn;\n },\n set fallbackWarn(val) {\n _fallbackWarn = val;\n _context.fallbackWarn = _fallbackWarn;\n },\n get fallbackRoot() {\n return _fallbackRoot;\n },\n set fallbackRoot(val) {\n _fallbackRoot = val;\n },\n get fallbackFormat() {\n return _fallbackFormat;\n },\n set fallbackFormat(val) {\n _fallbackFormat = val;\n _context.fallbackFormat = _fallbackFormat;\n },\n get warnHtmlMessage() {\n return _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n _warnHtmlMessage = val;\n _context.warnHtmlMessage = val;\n },\n get escapeParameter() {\n return _escapeParameter;\n },\n set escapeParameter(val) {\n _escapeParameter = val;\n _context.escapeParameter = val;\n },\n t,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n [SetPluralRulesSymbol]: setPluralRules\n };\n {\n composer.datetimeFormats = datetimeFormats;\n composer.numberFormats = numberFormats;\n composer.rt = rt;\n composer.te = te;\n composer.tm = tm;\n composer.d = d;\n composer.n = n;\n composer.getDateTimeFormat = getDateTimeFormat;\n composer.setDateTimeFormat = setDateTimeFormat;\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\n composer.getNumberFormat = getNumberFormat;\n composer.setNumberFormat = setNumberFormat;\n composer.mergeNumberFormat = mergeNumberFormat;\n composer[InejctWithOptionSymbol] = __injectWithOption;\n composer[TranslateVNodeSymbol] = translateVNode;\n composer[DatetimePartsSymbol] = datetimeParts;\n composer[NumberPartsSymbol] = numberParts;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n composer[EnableEmitter] = (emitter) => {\n _context.__v_emitter = emitter;\n };\n composer[DisableEmitter] = () => {\n _context.__v_emitter = undefined;\n };\n }\n return composer;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\nconst VueDevToolsLabels = {\n 'vue-devtools-plugin-vue-i18n': 'Vue I18n DevTools',\n 'vue-i18n-resource-inspector': 'Vue I18n DevTools',\n 'vue-i18n-timeline': 'Vue I18n'\n};\nconst VueDevToolsPlaceholders = {\n 'vue-i18n-resource-inspector': 'Search for scopes ...'\n};\nconst VueDevToolsTimelineColors = {\n 'vue-i18n-timeline': 0xffcd19\n};\nlet devtoolsApi;\nasync function enableDevTools(app, i18n) {\n return new Promise((resolve, reject) => {\n try {\n setupDevtoolsPlugin({\n id: 'vue-devtools-plugin-vue-i18n',\n label: VueDevToolsLabels['vue-devtools-plugin-vue-i18n'],\n packageName: 'vue-i18n',\n homepage: 'https://vue-i18n.intlify.dev',\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\n }, api => {\n devtoolsApi = api;\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\n updateComponentTreeTags(componentInstance, treeNode, i18n);\n });\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\n if (componentInstance.__VUE_I18N__ && instanceData) {\n if (i18n.mode === 'legacy') {\n // ignore global scope on legacy mode\n if (componentInstance.__VUE_I18N__ !==\n i18n.global.__composer) {\n inspectComposer(instanceData, componentInstance.__VUE_I18N__);\n }\n }\n else {\n inspectComposer(instanceData, componentInstance.__VUE_I18N__);\n }\n }\n });\n api.addInspector({\n id: 'vue-i18n-resource-inspector',\n label: VueDevToolsLabels['vue-i18n-resource-inspector'],\n icon: 'language',\n treeFilterPlaceholder: VueDevToolsPlaceholders['vue-i18n-resource-inspector']\n });\n api.on.getInspectorTree(payload => {\n if (payload.app === app &&\n payload.inspectorId === 'vue-i18n-resource-inspector') {\n registerScope(payload, i18n);\n }\n });\n const roots = new Map();\n api.on.getInspectorState(async (payload) => {\n if (payload.app === app &&\n payload.inspectorId === 'vue-i18n-resource-inspector') {\n api.unhighlightElement();\n inspectScope(payload, i18n);\n if (payload.nodeId === 'global') {\n if (!roots.has(payload.app)) {\n const [root] = await api.getComponentInstances(payload.app);\n roots.set(payload.app, root);\n }\n api.highlightElement(roots.get(payload.app));\n }\n else {\n const instance = getComponentInstance(payload.nodeId, i18n);\n instance && api.highlightElement(instance);\n }\n }\n });\n api.on.editInspectorState(payload => {\n if (payload.app === app &&\n payload.inspectorId === 'vue-i18n-resource-inspector') {\n editScope(payload, i18n);\n }\n });\n api.addTimelineLayer({\n id: 'vue-i18n-timeline',\n label: VueDevToolsLabels['vue-i18n-timeline'],\n color: VueDevToolsTimelineColors['vue-i18n-timeline']\n });\n resolve(true);\n });\n }\n catch (e) {\n console.error(e);\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n reject(false);\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getI18nScopeLable(instance) {\n return (instance.type.name ||\n instance.type.displayName ||\n instance.type.__file ||\n 'Anonymous');\n}\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\ntreeNode, i18n) {\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n if (instance && instance.__VUE_I18N__) {\n // add custom tags local scope only\n if (instance.__VUE_I18N__ !== global) {\n const tag = {\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\n textColor: 0x000000,\n backgroundColor: 0xffcd19\n };\n treeNode.tags.push(tag);\n }\n }\n}\nfunction inspectComposer(instanceData, composer) {\n const type = VUE_I18N_COMPONENT_TYPES;\n instanceData.state.push({\n type,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n });\n instanceData.state.push({\n type,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n });\n instanceData.state.push({\n type,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n });\n instanceData.state.push({\n type,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n });\n instanceData.state.push({\n type,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n });\n {\n instanceData.state.push({\n type,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n });\n instanceData.state.push({\n type,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n });\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getLocaleMessageValue(messages) {\n const value = {};\n Object.keys(messages).forEach((key) => {\n const v = messages[key];\n if (isFunction(v) && 'source' in v) {\n value[key] = getMessageFunctionDetails(v);\n }\n else if (isMessageAST(v) && v.loc && v.loc.source) {\n value[key] = v.loc.source;\n }\n else if (isObject(v)) {\n value[key] = getLocaleMessageValue(v);\n }\n else {\n value[key] = v;\n }\n });\n return value;\n}\nconst ESC = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '&': '&'\n};\nfunction escape(s) {\n return s.replace(/[<>\"&]/g, escapeChar);\n}\nfunction escapeChar(a) {\n return ESC[a] || a;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getMessageFunctionDetails(func) {\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\n return {\n _custom: {\n type: 'function',\n display: `ƒ ${argString}`\n }\n };\n}\nfunction registerScope(payload, i18n) {\n payload.rootNodes.push({\n id: 'global',\n label: 'Global Scope'\n });\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n for (const [keyInstance, instance] of i18n.__instances) {\n // prettier-ignore\n const composer = i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n if (global === composer) {\n continue;\n }\n payload.rootNodes.push({\n id: composer.id.toString(),\n label: `${getI18nScopeLable(keyInstance)} Scope`\n });\n }\n}\nfunction getComponentInstance(nodeId, i18n) {\n let instance = null;\n if (nodeId !== 'global') {\n for (const [component, composer] of i18n.__instances.entries()) {\n if (composer.id.toString() === nodeId) {\n instance = component;\n break;\n }\n }\n }\n return instance;\n}\nfunction getComposer$2(nodeId, i18n) {\n if (nodeId === 'global') {\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n }\n else {\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\n if (instance) {\n return i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n }\n else {\n return null;\n }\n }\n}\nfunction inspectScope(payload, i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const composer = getComposer$2(payload.nodeId, i18n);\n if (composer) {\n // TODO:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload.state = makeScopeInspectState(composer);\n }\n return null;\n}\nfunction makeScopeInspectState(composer) {\n const state = {};\n const localeType = 'Locale related info';\n const localeStates = [\n {\n type: localeType,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n },\n {\n type: localeType,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n },\n {\n type: localeType,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n },\n {\n type: localeType,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n }\n ];\n state[localeType] = localeStates;\n const localeMessagesType = 'Locale messages info';\n const localeMessagesStates = [\n {\n type: localeMessagesType,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n }\n ];\n state[localeMessagesType] = localeMessagesStates;\n {\n const datetimeFormatsType = 'Datetime formats info';\n const datetimeFormatsStates = [\n {\n type: datetimeFormatsType,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n }\n ];\n state[datetimeFormatsType] = datetimeFormatsStates;\n const numberFormatsType = 'Datetime formats info';\n const numberFormatsStates = [\n {\n type: numberFormatsType,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n }\n ];\n state[numberFormatsType] = numberFormatsStates;\n }\n return state;\n}\nfunction addTimelineEvent(event, payload) {\n if (devtoolsApi) {\n let groupId;\n if (payload && 'groupId' in payload) {\n groupId = payload.groupId;\n delete payload.groupId;\n }\n devtoolsApi.addTimelineEvent({\n layerId: 'vue-i18n-timeline',\n event: {\n title: event,\n groupId,\n time: Date.now(),\n meta: {},\n data: payload || {},\n logType: event === 'compile-error'\n ? 'error'\n : event === 'fallback' || event === 'missing'\n ? 'warning'\n : 'default'\n }\n });\n }\n}\nfunction editScope(payload, i18n) {\n const composer = getComposer$2(payload.nodeId, i18n);\n if (composer) {\n const [field] = payload.path;\n if (field === 'locale' && isString(payload.state.value)) {\n composer.locale.value = payload.state.value;\n }\n else if (field === 'fallbackLocale' &&\n (isString(payload.state.value) ||\n isArray(payload.state.value) ||\n isObject(payload.state.value))) {\n composer.fallbackLocale.value = payload.state.value;\n }\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\n composer.inheritLocale = payload.state.value;\n }\n }\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Convert to I18n Composer Options from VueI18n Options\n *\n * @internal\n */\nfunction convertComposerOptions(options) {\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\n const fallbackLocale = isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : locale;\n const missing = isFunction(options.missing) ? options.missing : undefined;\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\n isRegExp(options.silentTranslationWarn)\n ? !options.silentTranslationWarn\n : true;\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\n isRegExp(options.silentFallbackWarn)\n ? !options.silentFallbackWarn\n : true;\n const fallbackRoot = isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n const fallbackFormat = !!options.formatFallbackMessages;\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\n const pluralizationRules = options.pluralizationRules;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : undefined;\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\n ? options.warnHtmlInMessage !== 'off'\n : true;\n const escapeParameter = !!options.escapeParameterHtml;\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\n let messages = options.messages;\n if (isPlainObject(options.sharedMessages)) {\n const sharedMessages = options.sharedMessages;\n const locales = Object.keys(sharedMessages);\n messages = locales.reduce((messages, locale) => {\n const message = messages[locale] || (messages[locale] = {});\n assign(message, sharedMessages[locale]);\n return messages;\n }, (messages || {}));\n }\n const { __i18n, __root, __injectWithOption } = options;\n const datetimeFormats = options.datetimeFormats;\n const numberFormats = options.numberFormats;\n const flatJson = options.flatJson;\n return {\n locale,\n fallbackLocale,\n messages,\n flatJson,\n datetimeFormats,\n numberFormats,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackRoot,\n fallbackFormat,\n modifiers,\n pluralRules: pluralizationRules,\n postTranslation,\n warnHtmlMessage,\n escapeParameter,\n messageResolver: options.messageResolver,\n inheritLocale,\n __i18n,\n __root,\n __injectWithOption\n };\n}\n/**\n * create VueI18n interface factory\n *\n * @internal\n *\n * @deprecated will be removed at vue-i18n v12\n */\nfunction createVueI18n(options = {}) {\n const composer = createComposer(convertComposerOptions(options));\n const { __extender } = options;\n // defines VueI18n\n const vueI18n = {\n // id\n id: composer.id,\n // locale\n get locale() {\n return composer.locale.value;\n },\n set locale(val) {\n composer.locale.value = val;\n },\n // fallbackLocale\n get fallbackLocale() {\n return composer.fallbackLocale.value;\n },\n set fallbackLocale(val) {\n composer.fallbackLocale.value = val;\n },\n // messages\n get messages() {\n return composer.messages.value;\n },\n // datetimeFormats\n get datetimeFormats() {\n return composer.datetimeFormats.value;\n },\n // numberFormats\n get numberFormats() {\n return composer.numberFormats.value;\n },\n // availableLocales\n get availableLocales() {\n return composer.availableLocales;\n },\n // missing\n get missing() {\n return composer.getMissingHandler();\n },\n set missing(handler) {\n composer.setMissingHandler(handler);\n },\n // silentTranslationWarn\n get silentTranslationWarn() {\n return isBoolean(composer.missingWarn)\n ? !composer.missingWarn\n : composer.missingWarn;\n },\n set silentTranslationWarn(val) {\n composer.missingWarn = isBoolean(val) ? !val : val;\n },\n // silentFallbackWarn\n get silentFallbackWarn() {\n return isBoolean(composer.fallbackWarn)\n ? !composer.fallbackWarn\n : composer.fallbackWarn;\n },\n set silentFallbackWarn(val) {\n composer.fallbackWarn = isBoolean(val) ? !val : val;\n },\n // modifiers\n get modifiers() {\n return composer.modifiers;\n },\n // formatFallbackMessages\n get formatFallbackMessages() {\n return composer.fallbackFormat;\n },\n set formatFallbackMessages(val) {\n composer.fallbackFormat = val;\n },\n // postTranslation\n get postTranslation() {\n return composer.getPostTranslationHandler();\n },\n set postTranslation(handler) {\n composer.setPostTranslationHandler(handler);\n },\n // sync\n get sync() {\n return composer.inheritLocale;\n },\n set sync(val) {\n composer.inheritLocale = val;\n },\n // warnInHtmlMessage\n get warnHtmlInMessage() {\n return composer.warnHtmlMessage ? 'warn' : 'off';\n },\n set warnHtmlInMessage(val) {\n composer.warnHtmlMessage = val !== 'off';\n },\n // escapeParameterHtml\n get escapeParameterHtml() {\n return composer.escapeParameter;\n },\n set escapeParameterHtml(val) {\n composer.escapeParameter = val;\n },\n // pluralizationRules\n get pluralizationRules() {\n return composer.pluralRules || {};\n },\n // for internal\n __composer: composer,\n // t\n t(...args) {\n return Reflect.apply(composer.t, composer, [...args]);\n },\n // rt\n rt(...args) {\n return Reflect.apply(composer.rt, composer, [...args]);\n },\n // te\n te(key, locale) {\n return composer.te(key, locale);\n },\n // tm\n tm(key) {\n return composer.tm(key);\n },\n // getLocaleMessage\n getLocaleMessage(locale) {\n return composer.getLocaleMessage(locale);\n },\n // setLocaleMessage\n setLocaleMessage(locale, message) {\n composer.setLocaleMessage(locale, message);\n },\n // mergeLocaleMessage\n mergeLocaleMessage(locale, message) {\n composer.mergeLocaleMessage(locale, message);\n },\n // d\n d(...args) {\n return Reflect.apply(composer.d, composer, [...args]);\n },\n // getDateTimeFormat\n getDateTimeFormat(locale) {\n return composer.getDateTimeFormat(locale);\n },\n // setDateTimeFormat\n setDateTimeFormat(locale, format) {\n composer.setDateTimeFormat(locale, format);\n },\n // mergeDateTimeFormat\n mergeDateTimeFormat(locale, format) {\n composer.mergeDateTimeFormat(locale, format);\n },\n // n\n n(...args) {\n return Reflect.apply(composer.n, composer, [...args]);\n },\n // getNumberFormat\n getNumberFormat(locale) {\n return composer.getNumberFormat(locale);\n },\n // setNumberFormat\n setNumberFormat(locale, format) {\n composer.setNumberFormat(locale, format);\n },\n // mergeNumberFormat\n mergeNumberFormat(locale, format) {\n composer.mergeNumberFormat(locale, format);\n }\n };\n vueI18n.__extender = __extender;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n vueI18n.__enableEmitter = (emitter) => {\n const __composer = composer;\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\n };\n vueI18n.__disableEmitter = () => {\n const __composer = composer;\n __composer[DisableEmitter] && __composer[DisableEmitter]();\n };\n }\n return vueI18n;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/**\n * Supports compatibility for legacy vue-i18n APIs\n * This mixin is used when we use vue-i18n@v9.x or later\n */\nfunction defineMixin(vuei18n, composer, i18n) {\n return {\n beforeCreate() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const options = this.$options;\n if (options.i18n) {\n const optionsI18n = options.i18n;\n if (options.__i18n) {\n optionsI18n.__i18n = options.__i18n;\n }\n optionsI18n.__root = composer;\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, optionsI18n);\n }\n else {\n optionsI18n.__injectWithOption = true;\n optionsI18n.__extender = i18n.__vueI18nExtend;\n // atttach local VueI18n instance\n this.$i18n = createVueI18n(optionsI18n);\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else if (options.__i18n) {\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, options);\n }\n else {\n // atttach local VueI18n instance\n this.$i18n = createVueI18n({\n __i18n: options.__i18n,\n __injectWithOption: true,\n __extender: i18n.__vueI18nExtend,\n __root: composer\n });\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else {\n // attach global VueI18n instance\n this.$i18n = vuei18n;\n }\n if (options.__i18nGlobal) {\n adjustI18nResources(composer, options, options);\n }\n // defines vue-i18n legacy APIs\n this.$t = (...args) => this.$i18n.t(...args);\n this.$rt = (...args) => this.$i18n.rt(...args);\n this.$te = (key, locale) => this.$i18n.te(key, locale);\n this.$d = (...args) => this.$i18n.d(...args);\n this.$n = (...args) => this.$i18n.n(...args);\n this.$tm = (key) => this.$i18n.tm(key);\n i18n.__setInstance(instance, this.$i18n);\n },\n mounted() {\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$i18n) {\n const instance = getCurrentInstance();\n if (!instance) {\n return;\n }\n const _vueI18n = this.$i18n;\n instance.__VUE_I18N__ = _vueI18n.__composer;\n const emitter = (this.__v_emitter =\n createEmitter());\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n emitter.on('*', addTimelineEvent);\n }\n },\n unmounted() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const _vueI18n = this.$i18n;\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n instance.__VUE_I18N__) {\n if (this.__v_emitter) {\n this.__v_emitter.off('*', addTimelineEvent);\n delete this.__v_emitter;\n }\n if (this.$i18n) {\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n delete instance.__VUE_I18N__;\n }\n }\n delete this.$t;\n delete this.$rt;\n delete this.$te;\n delete this.$d;\n delete this.$n;\n delete this.$tm;\n if (_vueI18n.__disposer) {\n _vueI18n.__disposer();\n delete _vueI18n.__disposer;\n delete _vueI18n.__extender;\n }\n i18n.__deleteInstance(instance);\n delete this.$i18n;\n }\n };\n}\nfunction mergeToGlobal(g, options) {\n g.locale = options.locale || g.locale;\n g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;\n g.missing = options.missing || g.missing;\n g.silentTranslationWarn =\n options.silentTranslationWarn || g.silentFallbackWarn;\n g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;\n g.formatFallbackMessages =\n options.formatFallbackMessages || g.formatFallbackMessages;\n g.postTranslation = options.postTranslation || g.postTranslation;\n g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;\n g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;\n g.sync = options.sync || g.sync;\n g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);\n const messages = getLocaleMessages(g.locale, {\n messages: options.messages,\n __i18n: options.__i18n\n });\n Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale]));\n if (options.datetimeFormats) {\n Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\n }\n if (options.numberFormats) {\n Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale]));\n }\n return g;\n}\n\nconst baseFormatProps = {\n tag: {\n type: [String, Object]\n },\n locale: {\n type: String\n },\n scope: {\n type: String,\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global',\n default: 'parent' /* ComponentI18nScope */\n },\n i18n: {\n type: Object\n }\n};\n\nfunction getInterpolateArg(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n{ slots }, // SetupContext,\nkeys) {\n if (keys.length === 1 && keys[0] === 'default') {\n // default slot with list\n const ret = slots.default ? slots.default() : [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ret.reduce((slot, current) => {\n return [\n ...slot,\n // prettier-ignore\n ...(current.type === Fragment ? current.children : [current])\n ];\n }, []);\n }\n else {\n // named slots\n return keys.reduce((arg, key) => {\n const slot = slots[key];\n if (slot) {\n arg[key] = slot();\n }\n return arg;\n }, create());\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getFragmentableTag() {\n return Fragment;\n}\n\nconst TranslationImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-t',\n props: assign({\n keypath: {\n type: String,\n required: true\n },\n plural: {\n type: [Number, String],\n validator: (val) => isNumber(val) || !isNaN(val)\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const { slots, attrs } = context;\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return () => {\n const renderChildren = () => {\n const keys = Object.keys(slots).filter(key => key[0] !== '_');\n const options = create();\n if (props.locale) {\n options.locale = props.locale;\n }\n if (props.plural !== undefined) {\n options.plural = isString(props.plural) ? +props.plural : props.plural;\n }\n const arg = getInterpolateArg(context, keys);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n };\n const assignedAttrs = assign(create(), attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return isObject(tag)\n ? h(tag, assignedAttrs, { default: renderChildren })\n : h(tag, assignedAttrs, renderChildren());\n };\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Translation Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [TranslationProps](component#translationprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\n *\n * @example\n * ```html\n *
\n * ```\n * ```js\n * import { createApp } from 'vue'\n * import { createI18n } from 'vue-i18n'\n *\n * const messages = {\n * en: {\n * tos: 'Term of Service',\n * term: 'I accept xxx {0}.'\n * },\n * ja: {\n * tos: '利用規約',\n * term: '私は xxx の{0}に同意します。'\n * }\n * }\n *\n * const i18n = createI18n({\n * locale: 'en',\n * messages\n * })\n *\n * const app = createApp({\n * data: {\n * url: '/term'\n * }\n * }).use(i18n).mount('#app')\n * ```\n *\n * @VueI18nComponent\n */\nconst Translation = TranslationImpl;\nconst I18nT = Translation;\n\nfunction isVNode(target) {\n return isArray(target) && !isString(target[0]);\n}\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\n const { slots, attrs } = context;\n return () => {\n const renderChildren = () => {\n const options = { part: true };\n let overrides = create();\n if (props.locale) {\n options.locale = props.locale;\n }\n if (isString(props.format)) {\n options.key = props.format;\n }\n else if (isObject(props.format)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isString(props.format.key)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.key = props.format.key;\n }\n // Filter out number format options only\n overrides = Object.keys(props.format).reduce((options, prop) => {\n return slotKeys.includes(prop)\n ? assign(create(), options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\n : options;\n }, create());\n }\n const parts = partFormatter(...[props.value, options, overrides]);\n let children = [options.key];\n if (isArray(parts)) {\n children = parts.map((part, index) => {\n const slot = slots[part.type];\n const node = slot\n ? slot({ [part.type]: part.value, index, parts })\n : [part.value];\n if (isVNode(node)) {\n node[0].key = `${part.type}-${index}`;\n }\n return node;\n });\n }\n else if (isString(parts)) {\n children = [parts];\n }\n return children;\n };\n const assignedAttrs = assign(create(), attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return isObject(tag)\n ? h(tag, assignedAttrs, { default: renderChildren })\n : h(tag, assignedAttrs, renderChildren());\n };\n}\n\nconst NumberFormatImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-n',\n props: assign({\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[NumberPartsSymbol](...args));\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Number Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\n *\n * @VueI18nComponent\n */\nconst NumberFormat = NumberFormatImpl;\nconst I18nN = NumberFormat;\n\nfunction getComposer$1(i18n, instance) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n return (i18nInternal.__getInstance(instance) || i18n.global);\n }\n else {\n const vueI18n = i18nInternal.__getInstance(instance);\n return vueI18n != null\n ? vueI18n.__composer\n : i18n.global.__composer;\n }\n}\n/**\n * @deprecated will be removed at vue-i18n v12\n */\nfunction vTDirective(i18n) {\n const _process = (binding) => {\n if ((process.env.NODE_ENV !== 'production')) {\n warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE));\n }\n const { instance, value } = binding;\n /* istanbul ignore if */\n if (!instance || !instance.$) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const composer = getComposer$1(i18n, instance.$);\n const parsedValue = parseValue(value);\n return [\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\n composer\n ];\n };\n const register = (el, binding) => {\n const [textContent, composer] = _process(binding);\n if (inBrowser) {\n el.__i18nWatcher = watch(composer.locale, () => {\n binding.instance && binding.instance.$forceUpdate();\n });\n }\n el.__composer = composer;\n el.textContent = textContent;\n };\n const unregister = (el) => {\n if (inBrowser && el.__i18nWatcher) {\n el.__i18nWatcher();\n el.__i18nWatcher = undefined;\n delete el.__i18nWatcher;\n }\n if (el.__composer) {\n el.__composer = undefined;\n delete el.__composer;\n }\n };\n const update = (el, { value }) => {\n if (el.__composer) {\n const composer = el.__composer;\n const parsedValue = parseValue(value);\n el.textContent = Reflect.apply(composer.t, composer, [\n ...makeParams(parsedValue)\n ]);\n }\n };\n const getSSRProps = (binding) => {\n const [textContent] = _process(binding);\n return { textContent };\n };\n return {\n created: register,\n unmounted: unregister,\n beforeUpdate: update,\n getSSRProps\n };\n}\nfunction parseValue(value) {\n if (isString(value)) {\n return { path: value };\n }\n else if (isPlainObject(value)) {\n if (!('path' in value)) {\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\n }\n return value;\n }\n else {\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\n }\n}\nfunction makeParams(value) {\n const { path, locale, args, choice, plural } = value;\n const options = {};\n const named = args || {};\n if (isString(locale)) {\n options.locale = locale;\n }\n if (isNumber(choice)) {\n options.plural = choice;\n }\n if (isNumber(plural)) {\n options.plural = plural;\n }\n return [path, named, options];\n}\n\nfunction apply(app, i18n, ...options) {\n const pluginOptions = isPlainObject(options[0])\n ? options[0]\n : {};\n const globalInstall = isBoolean(pluginOptions.globalInstall)\n ? pluginOptions.globalInstall\n : true;\n if (globalInstall) {\n [Translation.name, 'I18nT'].forEach(name => app.component(name, Translation));\n [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat));\n [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat));\n }\n // install directive\n {\n app.directive('t', vTDirective(i18n));\n }\n}\n\n/**\n * Injection key for {@link useI18n}\n *\n * @remarks\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\n *\n * @VueI18nGeneral\n */\nconst I18nInjectionKey = \n/* #__PURE__*/ makeSymbol('global-vue-i18n');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createI18n(options = {}) {\n // prettier-ignore\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\n ? options.legacy\n : __VUE_I18N_LEGACY_API__;\n if ((process.env.NODE_ENV !== 'production') && __legacyMode) {\n warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_LEGACY_MODE));\n }\n // prettier-ignore\n const __globalInjection = isBoolean(options.globalInjection)\n ? options.globalInjection\n : true;\n const __instances = new Map();\n const [globalScope, __global] = createGlobal(options, __legacyMode);\n const symbol = /* #__PURE__*/ makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\n function __getInstance(component) {\n return __instances.get(component) || null;\n }\n function __setInstance(component, instance) {\n __instances.set(component, instance);\n }\n function __deleteInstance(component) {\n __instances.delete(component);\n }\n const i18n = {\n // mode\n get mode() {\n return __VUE_I18N_LEGACY_API__ && __legacyMode\n ? 'legacy'\n : 'composition';\n },\n // install plugin\n async install(app, ...options) {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n app.__VUE_I18N__ = i18n;\n }\n // setup global provider\n app.__VUE_I18N_SYMBOL__ = symbol;\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\n // set composer & vuei18n extend hook options from plugin options\n if (isPlainObject(options[0])) {\n const opts = options[0];\n i18n.__composerExtend =\n opts.__composerExtend;\n i18n.__vueI18nExtend =\n opts.__vueI18nExtend;\n }\n // global method and properties injection for Composition API\n let globalReleaseHandler = null;\n if (!__legacyMode && __globalInjection) {\n globalReleaseHandler = injectGlobalFields(app, i18n.global);\n }\n // install built-in components and directive\n if (__VUE_I18N_FULL_INSTALL__) {\n apply(app, i18n, ...options);\n }\n // setup mixin for Legacy API\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\n app.mixin(defineMixin(__global, __global.__composer, i18n));\n }\n // release global scope\n const unmountApp = app.unmount;\n app.unmount = () => {\n globalReleaseHandler && globalReleaseHandler();\n i18n.dispose();\n unmountApp();\n };\n // setup vue-devtools plugin\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n const ret = await enableDevTools(app, i18n);\n if (!ret) {\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\n }\n const emitter = createEmitter();\n if (__legacyMode) {\n const _vueI18n = __global;\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = __global;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n }\n emitter.on('*', addTimelineEvent);\n }\n },\n // global accessor\n get global() {\n return __global;\n },\n dispose() {\n globalScope.stop();\n },\n // @internal\n __instances,\n // @internal\n __getInstance,\n // @internal\n __setInstance,\n // @internal\n __deleteInstance\n };\n return i18n;\n}\nfunction useI18n(options = {}) {\n const instance = getCurrentInstance();\n if (instance == null) {\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\n }\n if (!instance.isCE &&\n instance.appContext.app != null &&\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\n throw createI18nError(I18nErrorCodes.NOT_INSTALLED);\n }\n const i18n = getI18nInstance(instance);\n const gl = getGlobalComposer(i18n);\n const componentOptions = getComponentOptions(instance);\n const scope = getScope(options, componentOptions);\n if (scope === 'global') {\n adjustI18nResources(gl, options, componentOptions);\n return gl;\n }\n if (scope === 'parent') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let composer = getComposer(i18n, instance, options.__useComponent);\n if (composer == null) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\n }\n composer = gl;\n }\n return composer;\n }\n // Isolated scope - independent composer not tied to component\n if (scope === 'isolated') {\n // Composition API mode only\n if (i18n.mode !== 'composition') {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n }\n const i18nInternalIso = i18n;\n const composerOptions = assign({}, options);\n // Find parent composer via parent chain (or fall back to global)\n const parentComposer = getComposer(i18n, instance);\n composerOptions.__root = parentComposer || gl;\n const composer = createComposer(composerOptions);\n // ComposerExtend hook\n if (i18nInternalIso.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternalIso.__composerExtend(composer);\n }\n // Setup devtools emitter (no target.__VUE_I18N__ attachment -\n // multiple isolated composers per component are allowed)\n let emitter = null;\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n // Lifecycle cleanup via onScopeDispose\n const currentScope = getCurrentScope();\n if (currentScope) {\n onScopeDispose(() => {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n emitter && emitter.off('*', addTimelineEvent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dispose = composer[DisposeSymbol];\n if (dispose) {\n dispose();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete composer[DisposeSymbol];\n }\n });\n }\n return composer;\n }\n const i18nInternal = i18n;\n let composer = i18nInternal.__getInstance(instance);\n if (composer == null) {\n const composerOptions = assign({}, options);\n if ('__i18n' in componentOptions) {\n composerOptions.__i18n = componentOptions.__i18n;\n }\n if (gl) {\n composerOptions.__root = gl;\n }\n composer = createComposer(composerOptions);\n if (i18nInternal.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternal.__composerExtend(composer);\n }\n setupLifeCycle(i18nInternal, instance, composer);\n i18nInternal.__setInstance(instance, composer);\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && scope === 'local') {\n warn(getWarnMessage(I18nWarnCodes.DUPLICATE_USE_I18N_CALLING));\n }\n }\n return composer;\n}\nfunction createGlobal(options, legacyMode) {\n const scope = effectScope();\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\n ? scope.run(() => createVueI18n(options))\n : scope.run(() => createComposer(options));\n if (obj == null) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n return [scope, obj];\n}\nfunction getI18nInstance(instance) {\n const i18n = inject(!instance.isCE\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\n : I18nInjectionKey);\n /* istanbul ignore if */\n if (!i18n) {\n throw createI18nError(!instance.isCE\n ? I18nErrorCodes.UNEXPECTED_ERROR\n : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);\n }\n return i18n;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScope(options, componentOptions) {\n // prettier-ignore\n return isEmptyObject(options)\n ? ('__i18n' in componentOptions)\n ? 'local'\n : 'global'\n : !options.useScope\n ? 'local'\n : options.useScope;\n}\nfunction getGlobalComposer(i18n) {\n // prettier-ignore\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n}\nfunction getComposer(i18n, target, useComponent = false) {\n let composer = null;\n const root = target.root;\n let current = getParentComponentInstance(target, useComponent);\n while (current != null) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n composer = i18nInternal.__getInstance(current);\n }\n else {\n if (__VUE_I18N_LEGACY_API__) {\n const vueI18n = i18nInternal.__getInstance(current);\n if (vueI18n != null) {\n composer = vueI18n\n .__composer;\n if (useComponent &&\n composer &&\n !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n composer = null;\n }\n }\n }\n }\n if (composer != null) {\n break;\n }\n if (root === current) {\n break;\n }\n current = current.parent;\n }\n return composer;\n}\nfunction getParentComponentInstance(target, useComponent = false) {\n if (target == null) {\n return null;\n }\n // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots\n return !useComponent\n ? target.parent\n : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any\n}\nfunction setupLifeCycle(i18n, target, composer) {\n let emitter = null;\n onMounted(() => {\n // inject composer instance to DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n target.__VUE_I18N__ = composer;\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n }, target);\n onUnmounted(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n // remove composer instance from DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n emitter && emitter.off('*', addTimelineEvent);\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n delete target.__VUE_I18N__;\n }\n i18n.__deleteInstance(target);\n // dispose extended resources\n const dispose = _composer[DisposeSymbol];\n if (dispose) {\n dispose();\n delete _composer[DisposeSymbol];\n }\n }, target);\n}\nconst globalExportProps = [\n 'locale',\n 'fallbackLocale',\n 'availableLocales'\n];\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\n ;\nfunction injectGlobalFields(app, composer) {\n const i18n = Object.create(null);\n globalExportProps.forEach(prop => {\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\n if (!desc) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const wrap = isRef(desc.value) // check computed props\n ? {\n get() {\n return desc.value.value;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(val) {\n desc.value.value = val;\n }\n }\n : {\n get() {\n return desc.get && desc.get();\n }\n };\n Object.defineProperty(i18n, prop, wrap);\n });\n app.config.globalProperties.$i18n = i18n;\n globalExportMethods.forEach(method => {\n const desc = Object.getOwnPropertyDescriptor(composer, method);\n if (!desc || !desc.value) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\n });\n const dispose = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties.$i18n;\n globalExportMethods.forEach(method => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties[`$${method}`];\n });\n };\n return dispose;\n}\n\nconst DatetimeFormatImpl = /* #__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-d',\n props: assign({\n value: {\n type: [Number, Date],\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[DatetimePartsSymbol](...args));\n }\n});\n/**\n * Datetime Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\n *\n * @VueI18nComponent\n */\nconst DatetimeFormat = DatetimeFormatImpl;\nconst I18nD = DatetimeFormat;\n\n{\n initFeatureFlags();\n}\n// register message compiler at vue-i18n\nregisterMessageCompiler(compile);\n// register message resolver at vue-i18n\nregisterMessageResolver(resolveValue);\n// register fallback locale at vue-i18n\nregisterLocaleFallbacker(fallbackWithLocaleChain);\n// NOTE: experimental !!\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n const target = getGlobalThis();\n target.__INTLIFY__ = true;\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\n}\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nD, I18nInjectionKey, I18nN, I18nT, NumberFormat, Translation, VERSION, createI18n, useI18n, vTDirective };\n","import { useCookie, useNuxtApp, useRequestEvent } from \"#imports\";\nimport { ref, watch } from \"vue\";\nimport { _useLocaleHead, _useSetI18nParams } from \"../routing/head.js\";\nimport { useComposableContext } from \"../utils.js\";\nimport { localePath, localeRoute, switchLocalePath } from \"../routing/routing.js\";\nexport * from \"vue-i18n\";\nexport * from \"./shared.js\";\nexport function useSetI18nParams(seo, nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return _useSetI18nParams(common, seo);\n}\nexport function useLocaleHead({ dir = true, lang = true, seo = true } = {}, nuxtApp = useNuxtApp()) {\n if (__I18N_STRICT_SEO__) {\n throw new Error(\n \"Strict SEO mode is enabled, `useLocaleHead` should not be used as localized head tags are handled internally by `@nuxtjs/i18n`\"\n );\n }\n const common = useComposableContext(nuxtApp);\n common.seoSettings = { dir, lang, seo };\n const head = _useLocaleHead(common, common.seoSettings);\n if (import.meta.client) {\n watch(head, () => common.metaState = head.value);\n }\n common.metaState = head.value;\n return head;\n}\nexport function useRouteBaseName(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (route) => {\n if (route == null) {\n return;\n }\n return common.getRouteBaseName(route) || void 0;\n };\n}\nexport function useLocalePath(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (route, locale) => localePath(common, route, locale);\n}\nexport function useLocaleRoute(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (route, locale) => localeRoute(common, route, locale);\n}\nexport function useSwitchLocalePath(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (locale) => switchLocalePath(common, locale);\n}\nexport function useBrowserLocale(nuxtApp = useNuxtApp()) {\n return (nuxtApp || useNuxtApp()).$i18n.getBrowserLocale() || null;\n}\nexport function useCookieLocale(nuxtApp = useNuxtApp()) {\n const locale = ref(\"\");\n const nuxt = nuxtApp || useNuxtApp();\n const detect = nuxt.$config.public.i18n.detectBrowserLanguage;\n if (!detect || !detect.useCookie) {\n return locale;\n }\n const locales = useComposableContext(nuxt).getLocales();\n const code = useCookie(detect.cookieKey).value;\n if (code && locales.some((x) => x.code === code)) {\n locale.value = code;\n }\n return locale;\n}\nconst warnRuntimeUsage = (method) => console.warn(\n method + \"() is a compiler-hint helper that is only usable inside the script block of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.\"\n);\nexport function defineI18nRoute(route) {\n if (import.meta.dev) {\n warnRuntimeUsage(\"defineI18nRoute\");\n }\n}\nexport function useI18nPreloadKeys(keys) {\n if (import.meta.server) {\n const ctx = useRequestEvent()?.context?.nuxtI18n;\n if (ctx == null) {\n console.warn(\"useI18nPreloadKeys(): `nuxtI18n` server context is accessible.\");\n return;\n }\n const locale = useComposableContext(useNuxtApp()).getLocale();\n if (!locale) {\n console.warn(\"useI18nPreloadKeys(): Could not resolve locale during server-side render.\");\n return;\n }\n for (const k of keys) {\n ctx?.trackKey(k, locale);\n }\n }\n}\n","import { defineNuxtPlugin, useNuxtApp } from \"#imports\";\nimport { useSwitchLocalePath } from \"#i18n\";\nconst identifier = __SWITCH_LOCALE_PATH_LINK_IDENTIFIER__;\nconst switchLocalePathLinkWrapperExpr = new RegExp(\n [``, `.+?`, ``].join(\"\"),\n \"g\"\n);\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:switch-locale-path-ssr\",\n dependsOn: [\"i18n:plugin\"],\n setup(_nuxt) {\n const nuxt = useNuxtApp(_nuxt._id);\n const switchLocalePath = useSwitchLocalePath(nuxt);\n nuxt.hook(\"app:rendered\", (ctx) => {\n if (ctx.renderResult?.html == null) {\n return;\n }\n ctx.renderResult.html = ctx.renderResult.html.replaceAll(\n switchLocalePathLinkWrapperExpr,\n (match, p1) => {\n const encoded = encodeURI(switchLocalePath(p1 ?? \"\"));\n return match.replace(\n /href=\"([^\"]+)\"/,\n `href=\"${encoded || \"#\"}\" ${!encoded && __I18N_STRICT_SEO__ ? \"data-i18n-disabled\" : \"\"}`\n );\n }\n );\n });\n }\n});\n","import { useNuxtI18nContext, useResolvedLocale } from \"../context.js\";\nimport { detectLocale, loadAndSetLocale, navigate } from \"../utils.js\";\nimport { addRouteMiddleware, defineNuxtPlugin, defineNuxtRouteMiddleware, useNuxtApp, useRouter } from \"#imports\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:route-locale-detect\",\n dependsOn: !__I18N_PRELOAD__ ? [\"i18n:plugin\"] : [\"i18n:plugin\", \"i18n:plugin:preload\"],\n async setup(_nuxt) {\n const nuxt = useNuxtApp(_nuxt._id);\n const ctx = useNuxtI18nContext(nuxt);\n if (__I18N_COMPACT_ROUTES__) {\n const router = useRouter();\n for (const route of router.getRoutes()) {\n if (route.meta?.__i18nCompact && route.meta.key == null) {\n route.meta.key = (r) => r.path;\n }\n }\n }\n const resolvedLocale = useResolvedLocale();\n await nuxt.runWithContext(\n () => loadAndSetLocale(\n nuxt,\n ctx.initial && resolvedLocale.value || detectLocale(nuxt, nuxt.$router.currentRoute.value)\n )\n );\n if (!__I18N_ROUTING__ || import.meta.server && __I18N_SERVER_REDIRECT__) {\n return;\n }\n addRouteMiddleware(\n \"locale-changing\",\n defineNuxtRouteMiddleware(async (to) => {\n const locale = await nuxt.runWithContext(() => loadAndSetLocale(nuxt, detectLocale(nuxt, to)));\n ctx.initial = false;\n return nuxt.runWithContext(() => navigate(nuxt, to, locale));\n }),\n { global: true }\n );\n }\n});\n","import { parse } from \"devalue\";\nimport { unref } from \"vue\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { localeCodes, localeLoaders } from \"#build/i18n-options.mjs\";\nimport { getLocaleMessagesMergedCached } from \"../shared/messages.js\";\nimport { useNuxtI18nContext } from \"../context.js\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:preload\",\n dependsOn: [\"i18n:plugin\"],\n async setup(_nuxt) {\n if (!__I18N_PRELOAD__) {\n return;\n }\n const nuxt = useNuxtApp(_nuxt._id);\n const ctx = useNuxtI18nContext(nuxt);\n if (import.meta.server) {\n for (const locale of localeCodes) {\n try {\n const messages = await $fetch(`${__I18N_SERVER_ROUTE__}/${__I18N_LOCALE_HASHES__[locale]}/${locale}/messages.json`);\n for (const locale2 of Object.keys(messages)) {\n nuxt.$i18n.mergeLocaleMessage(locale2, messages[locale2]);\n }\n } catch (e) {\n console.warn(\"Error loading messages\", e);\n }\n }\n ctx.preloaded = true;\n const serverI18n = nuxt.ssrContext?.event.context.nuxtI18n;\n if (serverI18n) {\n const msg = unref(ctx.vueI18n.global.messages);\n serverI18n.messages ??= {};\n for (const k in msg) {\n serverI18n.messages[k] = msg[k];\n }\n }\n }\n if (import.meta.client) {\n await mergePayloadMessages(ctx, ctx.vueI18n.global, nuxt);\n if (ctx.preloaded && __I18N_STRIP_UNUSED__) {\n const unsub = nuxt.$router.beforeResolve(async (to, from) => {\n if (to.path === from.path) {\n return;\n }\n await ctx.loadMessages(ctx.getLocale());\n unsub();\n });\n }\n }\n }\n});\nasync function mergePayloadMessages(ctx, i18n, nuxt = useNuxtApp()) {\n const content = document.querySelector(`[data-nuxt-i18n=\"${nuxt._id}\"]`)?.textContent;\n const preloadedMessages = content && parse(content);\n const preloadedKeys = Object.keys(preloadedMessages || {});\n if (preloadedKeys.length) {\n if (ctx.dynamicResourcesSSG) {\n const getKeyedLocaleMessages = async (locale) => {\n return { [locale]: await getLocaleMessagesMergedCached(locale, localeLoaders[locale]) };\n };\n try {\n const msg = await Promise.all(preloadedKeys.map(getKeyedLocaleMessages));\n for (const m of msg) {\n for (const k in m) {\n i18n.mergeLocaleMessage(k, m[k]);\n }\n }\n } catch (e) {\n console.warn(\"Error loading messages\", e);\n }\n ctx.preloaded = true;\n } else {\n for (const locale of preloadedKeys) {\n const messages = preloadedMessages[locale];\n if (messages) {\n i18n.mergeLocaleMessage(locale, messages);\n }\n }\n ctx.preloaded = true;\n }\n }\n}\n","import { effectScope } from \"#imports\";\nimport { assign } from \"@intlify/shared\";\nimport { getComposer } from \"../compatibility.js\";\nexport function extendI18n(i18n, { extendComposer, extendComposerInstance }) {\n const scope = effectScope();\n const installI18n = i18n.install.bind(i18n);\n i18n.install = (app, ...options) => {\n const pluginOptions = assign({}, options[0]);\n pluginOptions.__composerExtend = (c) => {\n extendComposerInstance(c, getComposer(i18n));\n return () => {\n };\n };\n if (i18n.mode === \"legacy\") {\n pluginOptions.__vueI18nExtend = (vueI18n) => {\n extendComposerInstance(vueI18n, getComposer(vueI18n));\n return () => {\n };\n };\n }\n Reflect.apply(installI18n, i18n, [app, pluginOptions]);\n const globalComposer = getComposer(i18n);\n scope.run(() => {\n extendComposer(globalComposer);\n if (i18n.mode === \"legacy\" && \"__composer\" in i18n.global) {\n extendComposerInstance(i18n.global, getComposer(i18n.global));\n }\n });\n if (i18n.mode === \"composition\" && app.config.globalProperties.$i18n != null) {\n extendComposerInstance(app.config.globalProperties.$i18n, globalComposer);\n }\n if (app.unmount) {\n const unmountApp = app.unmount.bind(app);\n app.unmount = () => {\n scope.stop();\n unmountApp();\n };\n }\n };\n}\n","import { loadVueI18nOptions } from \"./messages.js\";\nimport { localeCodes as _localeCodes, vueI18nConfigs } from \"#build/i18n-options.mjs\";\nexport const setupVueI18nOptions = async (defaultLocale) => {\n const options = await loadVueI18nOptions(vueI18nConfigs);\n options.locale = defaultLocale || options.locale || \"en-US\";\n options.defaultLocale = defaultLocale;\n options.fallbackLocale ??= false;\n options.messages ??= {};\n for (const locale of _localeCodes) {\n options.messages[locale] ??= {};\n }\n return options;\n};\n","import { computed, ref, watch } from \"vue\";\nimport { createI18n } from \"vue-i18n\";\nimport { defineNuxtPlugin, prerenderRoutes, useNuxtApp, useRequestEvent, useRequestURL } from \"#imports\";\nimport { localeCodes, normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { loadAndSetLocale, navigate } from \"../utils.js\";\nimport { extendI18n } from \"../routing/i18n.js\";\nimport { getI18nTarget } from \"../compatibility.js\";\nimport { _useLocaleHead, localeHead } from \"../routing/head.js\";\nimport { useLocalePath, useLocaleRoute, useRouteBaseName, useSwitchLocalePath } from \"../composables/index.js\";\nimport { createLocaleConfigs, getDefaultLocaleForDomain, resolveSupportedLocale } from \"../shared/locales.js\";\nimport { setupVueI18nOptions } from \"../shared/vue-i18n.js\";\nimport { createNuxtI18nContext, useLocaleConfigs } from \"../context.js\";\nimport { useI18nDetection, useRuntimeI18n } from \"../shared/utils.js\";\nimport { useDetectors } from \"../shared/detection.js\";\nimport { setupMultiDomainLocales } from \"../routing/domain.js\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin\",\n parallel: __PARALLEL_PLUGIN__,\n async setup(_nuxt) {\n Object.defineProperty(_nuxt.versions, \"nuxtI18n\", { get: () => __NUXT_I18N_VERSION__ });\n const nuxt = useNuxtApp(_nuxt._id);\n const runtimeI18n = useRuntimeI18n(nuxt);\n const preloadedOptions = nuxt.ssrContext?.event?.context?.nuxtI18n?.vueI18nOptions;\n const _defaultLocale = getDefaultLocaleForDomain(useRequestURL({ xForwardedHost: true }).host) || runtimeI18n.defaultLocale || \"\";\n const optionsI18n = preloadedOptions || await setupVueI18nOptions(_defaultLocale);\n const localeConfigs = useLocaleConfigs();\n if (import.meta.server) {\n localeConfigs.value = useRequestEvent().context.nuxtI18n?.localeConfigs || {};\n } else {\n localeConfigs.value ??= createLocaleConfigs(optionsI18n.fallbackLocale);\n }\n if (__MULTI_DOMAIN_LOCALES__) {\n setupMultiDomainLocales(optionsI18n.defaultLocale);\n }\n prerenderRoutes(localeCodes.map((locale) => `${__I18N_SERVER_ROUTE__}/${__I18N_LOCALE_HASHES__[locale]}/${locale}/messages.json`));\n const i18n = createI18n(optionsI18n);\n const detectors = useDetectors(useRequestEvent(nuxt), useI18nDetection(nuxt), nuxt);\n const ctx = createNuxtI18nContext(nuxt, i18n, optionsI18n.defaultLocale);\n nuxt._nuxtI18n = ctx;\n if (__I18N_STRIP_UNUSED__ && import.meta.server) {\n wrapTranslationFunctions(ctx);\n }\n extendI18n(i18n, {\n extendComposer(composer) {\n composer.locales = computed(() => runtimeI18n.locales);\n composer.localeCodes = computed(() => localeCodes);\n const _baseUrl = ref(ctx.getBaseUrl());\n composer.baseUrl = computed(() => _baseUrl.value);\n if (import.meta.client) {\n watch(composer.locale, () => _baseUrl.value = ctx.getBaseUrl());\n }\n composer.strategy = __I18N_STRATEGY__;\n composer.localeProperties = computed(\n () => normalizedLocales.find((l) => l.code === composer.locale.value) || { code: composer.locale.value }\n );\n composer.setLocale = async (locale) => {\n await loadAndSetLocale(nuxt, locale);\n await nuxt.runWithContext(() => navigate(nuxt, nuxt.$router.currentRoute.value, locale));\n };\n composer.loadLocaleMessages = ctx.loadMessages;\n composer.differentDomains = __DIFFERENT_DOMAINS__;\n composer.defaultLocale = optionsI18n.defaultLocale;\n composer.getBrowserLocale = () => import.meta.client ? resolveSupportedLocale(detectors.navigator()) : resolveSupportedLocale(detectors.header());\n composer.getLocaleCookie = () => resolveSupportedLocale(detectors.cookie());\n composer.setLocaleCookie = ctx.setCookieLocale;\n composer.finalizePendingLocaleChange = async () => {\n if (!i18n.__pendingLocale) {\n return;\n }\n await i18n.__resolvePendingLocalePromise?.();\n };\n composer.waitForPendingLocaleChange = async () => {\n await i18n?.__pendingLocalePromise;\n };\n },\n extendComposerInstance(instance, c) {\n const props = [\n [\"locales\", () => c.locales],\n [\"localeCodes\", () => c.localeCodes],\n [\"baseUrl\", () => c.baseUrl],\n [\"strategy\", () => __I18N_STRATEGY__],\n [\"localeProperties\", () => c.localeProperties],\n [\"setLocale\", () => (locale) => Reflect.apply(c.setLocale, c, [locale])],\n [\"loadLocaleMessages\", () => (locale) => Reflect.apply(c.loadLocaleMessages, c, [locale])],\n [\"differentDomains\", () => __DIFFERENT_DOMAINS__],\n [\"defaultLocale\", () => c.defaultLocale],\n [\"getBrowserLocale\", () => () => Reflect.apply(c.getBrowserLocale, c, [])],\n [\"getLocaleCookie\", () => () => Reflect.apply(c.getLocaleCookie, c, [])],\n [\"setLocaleCookie\", () => (locale) => Reflect.apply(c.setLocaleCookie, c, [locale])],\n [\"finalizePendingLocaleChange\", () => () => Reflect.apply(c.finalizePendingLocaleChange, c, [])],\n [\"waitForPendingLocaleChange\", () => () => Reflect.apply(c.waitForPendingLocaleChange, c, [])]\n ];\n for (const [key, get] of props) {\n Object.defineProperty(instance, key, { get });\n }\n }\n });\n nuxt.vueApp.use(i18n);\n Object.defineProperty(nuxt, \"$i18n\", { get: () => getI18nTarget(i18n) });\n nuxt.provide(\"localeHead\", (options) => localeHead(nuxt._nuxtI18n.composableCtx, options));\n nuxt.provide(\"localePath\", useLocalePath(nuxt));\n nuxt.provide(\"localeRoute\", useLocaleRoute(nuxt));\n nuxt.provide(\"routeBaseName\", useRouteBaseName(nuxt));\n nuxt.provide(\"getRouteBaseName\", useRouteBaseName(nuxt));\n nuxt.provide(\"switchLocalePath\", useSwitchLocalePath(nuxt));\n if (__I18N_STRICT_SEO__) {\n nuxt.hook(import.meta.server ? \"app:rendered\" : \"app:mounted\", () => {\n _useLocaleHead(nuxt._nuxtI18n.composableCtx, { dir: true, lang: true, seo: true });\n });\n }\n }\n});\nfunction wrapTranslationFunctions(ctx, serverI18n = useRequestEvent()?.context?.nuxtI18n) {\n if (!serverI18n) {\n return;\n }\n const i18n = ctx.vueI18n.global;\n const originalT = i18n.t.bind(i18n);\n i18n.t = (key, listOrNamed, opts) => {\n const locale = typeof opts === \"object\" && opts?.locale || ctx.getLocale();\n serverI18n?.trackKey(key, locale);\n return originalT(key, listOrNamed, opts);\n };\n const originalTe = i18n.te.bind(i18n);\n i18n.te = (key, locale) => {\n serverI18n?.trackKey(key, locale || ctx.getLocale());\n return originalTe(key, locale);\n };\n const originalTm = i18n.tm.bind(i18n);\n i18n.tm = (key) => {\n serverI18n?.trackKey(key, ctx.getLocale());\n return originalTm(key);\n };\n}\n","import { defineNuxtPlugin, useNuxtApp } from \"#imports\";\nimport { useNuxtI18nContext } from \"../context.js\";\nimport { detectLocale } from \"../utils.js\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:ssg-detect\",\n dependsOn: !__I18N_PRELOAD__ ? [\"i18n:plugin\", \"i18n:plugin:route-locale-detect\"] : [\"i18n:plugin\", \"i18n:plugin:route-locale-detect\", \"i18n:plugin:preload\"],\n enforce: \"post\",\n setup(_nuxt) {\n if (!__IS_SSG__ || !__I18N_ROUTING__) {\n return;\n }\n const nuxt = useNuxtApp(_nuxt._id);\n const ctx = useNuxtI18nContext(nuxt);\n nuxt.hook(\"app:mounted\", async () => {\n const detected = detectLocale(nuxt, nuxt.$router.currentRoute.value);\n await nuxt.runWithContext(() => nuxt.$i18n.setLocale(detected));\n ctx.initial = false;\n });\n }\n});\n","import payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M from \"/app/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/app/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/app/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/app/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs from \"/app/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/app/.nuxt/components.plugin.mjs\";\nimport switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/switch-locale-path-ssr.js\";\nimport route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/route-locale-detect.js\";\nimport preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24 from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/preload.js\";\nimport i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/i18n.js\";\nimport ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/ssg-detect.js\";\nexport default [\n payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M,\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw,\n route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U,\n preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24,\n i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM,\n ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n default: defineAsyncComponent(() => import(\"/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n\n\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"names":["$fetch","plugin","provide","plugins","getCurrentInstance","toArray","createH3Error","headCore","routeRulesMatcher","__executeAsync","entry","parse","format","identifier","separator","src","des","localeHead","localePath","_localeHead","vueI18nConfigs","getLocaleMessages","cache","getComposer","define_I18N_LOCALE_HASHES_default","errorMessages","index","context","isLiteral","baseCompile","warnMessages","getWarnMessage","VERSION","type","resolveValue","msg","source","message","locale","locales","_context","messages","global","options","composer","switchLocalePath","_localeCodes","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,IAAI,CAAC,WAAW,QAAQ;AACtB,aAAW,SAASA,SAAO,OAAO;AAAA,IAChC,SAAS,QAAO;AAAA,EACpB,CAAG;AACH;ACLA,IAAI,EAAE,YAAY,aAAa;AAC7B,aAAW,SAAS;AACtB;ACKO,MAAM,sBAAsB;AA4CvB,MAAC,mBAAmB,EAAC,iBAAgB,WAA2D;AAcrG,MAAM,QAAQ;AC9Dd,SAAS,cAAc,KAAK,OAAqB;AACtD,SAAO,WAAW,IAAI;AAAA,IACpB,cAAc;AAAA,EAAA,CACf;AACH;AACO,MAAM,sBAAsB;AAC5B,SAAS,cAAc,SAAS;AACrC,MAAI,iBAAiB;AACrB,QAAM,UAAU;AAAA,IACd,KAAK,QAAQ,MAAM,SAAS;AAAA,IAC5B,QAAQ,YAAA;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,MACR,IAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,MACA,IAAI,MAAM;AACR,eAAO,QAAQ,OAAO;AAAA,MACxB;AAAA,IAAA;AAAA,IAEF,SAAS,gBAAgB;AAAA,MACvB,GAAG,QAAQ,YAAY,WAAW,CAAA;AAAA,MAClC,MAAM,gBAAgB,EAAE;AAAA,MACxB,OAAO,SAAS,EAAE;AAAA,MAClB,0BAA0B,IAAA;AAAA,MAC1B,SAAS,gBAAgB,CAAA,CAAE;AAAA,IAAA,CAC5B;AAAA,IACD,QAAQ;AAAA,MACN,MAAM,CAAA;AAAA,IAAC;AAAA,IAET,eAAe,IAAI;AACjB,UAAI,QAAQ,OAAO,UAAU,CAAC,mBAAmB;AAC/C,eAAO,QAAQ,OAAO,IAAI,MAAM,aAAa,SAAS,EAAE,CAAC;AAAA,MAC3D;AACA,aAAO,aAAa,SAAS,EAAE;AAAA,IACjC;AAAA,IACA,aAAa;AAAA,IACb,iBAAiB;AACf,UAAI,CAAC,QAAQ,aAAa;AACxB,eAAO,MAAM;AAAA,QACb;AAAA,MACF;AACA;AACA,UAAI,SAAS;AACb,aAAO,MAAM;AACX,YAAI,QAAQ;AACV;AAAA,QACF;AACA,iBAAS;AACT;AACA,YAAI,mBAAmB,GAAG;AACxB,kBAAQ,cAAc;AACtB,iBAAO,QAAQ,SAAS,sBAAsB;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB,CAAA;AAAA,IACpB,YAAY,gBAAgB,EAAE;AAAA,IAC9B,kBAAkB,CAAA;AAAA,IAClB,GAAG;AAAA,EAAA;AAEmB;AACtB,YAAQ,QAAQ,iBAAiB;AAAA,EACnC;AACA,MAA0B,QAAQ,YAAY;AAC5C,YAAQ,QAAQ,OAAO,QAAQ,WAAW;AAC1C,YAAQ,WAAW,OAAO;AAC1B,YAAQ,WAAW,UAAU,QAAQ;AACrC,YAAQ,WAAW,SAAS;AAAA,MAC1B,QAAQ,QAAQ,WAAW,cAAc;AAAA,MACzC,KAAK,QAAQ,WAAW,cAAc;AAAA,IAAA;AAAA,EAE1C;AAiBA,UAAQ,QAAQ,YAAA;AAChB,UAAQ,OAAO,QAAQ,MAAM;AACL;AACtB,UAAM,gBAAgB,eAAe,OAAO,MAAM;AAChD,iBAAW,QAAQ,OAAO;AACxB,cAAM,QAAQ,eAAe,MAAM,KAAK,GAAG,IAAI,CAAC;AAAA,MAClD;AAAA,IACF;AACA,YAAQ,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,MAAM,aAAa,eAAe,MAAM,GAAG,IAAI;AAAA,EACrG;AACA,UAAQ,WAAW,QAAQ,MAAM;AACjC,UAAQ,UAAU,CAAC,MAAM,UAAU;AACjC,UAAM,QAAQ,MAAM;AACpB,iBAAa,SAAS,OAAO,KAAK;AAClC,iBAAa,QAAQ,OAAO,OAAO,kBAAkB,OAAO,KAAK;AAAA,EACnE;AACA,eAAa,QAAQ,QAAQ,SAAS,OAAO;AAC7C,eAAa,QAAQ,OAAO,OAAO,kBAAkB,SAAS,OAAO;AAgBrE,QAAM,gBAAqC,QAAQ,WAAW;AAC9D,UAAQ,QAAQ,UAAiF,aAAa;AAC9G,SAAO;AACT;AACO,SAAS,oBAAoB,SAASC,SAAQ;AACnD,MAAIA,QAAO,OAAO;AAChB,YAAQ,MAAM,SAASA,QAAO,KAAK;AAAA,EACrC;AACF;AACA,eAAsB,YAAY,SAASA,SAAQ;AACjD,MAAI,OAAOA,YAAW,YAAY;AAChC,UAAM,EAAE,SAAAC,SAAA,IAAY,MAAM,QAAQ,eAAe,MAAMD,QAAO,OAAO,CAAC,KAAK,CAAA;AAC3E,QAAIC,YAAW,OAAOA,aAAY,UAAU;AAC1C,iBAAW,OAAOA,UAAS;AACzB,gBAAQ,QAAQ,KAAKA,SAAQ,GAAG,CAAC;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF;AACA,eAAsB,aAAa,SAASC,UAAS;AACnD,QAAM,sCAAsC,IAAA;AAC5C,QAAM,oBAAoB,CAAA;AAC1B,QAAM,YAAY,CAAA;AAClB,MAAI,QAAQ;AACZ,MAAI,eAAe;AACnB,iBAAe,cAAcF,SAAQ;AACnC,UAAM,iCAAiCA,QAAO,WAAW,OAAO,CAAC,SAASE,SAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAA;AAClJ,QAAI,+BAA+B,SAAS,GAAG;AAC7C,wBAAkB,KAAK,CAAC,IAAI,IAAI,8BAA8B,GAAGF,OAAM,CAAC;AAAA,IAC1E,OAAO;AACL,YAAM,UAAU,YAAY,SAASA,OAAM,EAAE,KAAK,YAAY;AAC5D,YAAIA,QAAO,OAAO;AAChB,0BAAgB,IAAIA,QAAO,KAAK;AAChC,gBAAM,QAAQ,IAAI,kBAAkB,IAAI,OAAO,CAAC,WAAW,gBAAgB,MAAM;AAC/E,gBAAI,UAAU,IAAIA,QAAO,KAAK,GAAG;AAC/B,wBAAU,OAAOA,QAAO,KAAK;AAC7B,kBAAI,UAAU,SAAS,GAAG;AACxB;AACA,sBAAM,cAAc,gBAAgB;AAAA,cACtC;AAAA,YACF;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,CAAC,EAAE,MAAM,CAAC,MAAM;AACd,YAAI,CAACA,QAAO,YAAY,CAAC,QAAQ,QAAQ,OAAO;AAC9C,gBAAM;AAAA,QACR;AACA,kBAAU;AAAA,MACZ,CAAC;AACD,UAAIA,QAAO,UAAU;AACnB,kBAAU,KAAK,OAAO;AAAA,MACxB,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,aAAWA,WAAUE,UAAS;AAC5B,QAA0B,QAAQ,YAAY,iBAAiBF,QAAO,KAAK,YAAY,OAAO;AAC5F;AAAA,IACF;AACA,wBAAoB,SAASA,OAAM;AAAA,EACrC;AACA,aAAWA,WAAUE,UAAS;AAC5B,QAA0B,QAAQ,YAAY,iBAAiBF,QAAO,KAAK,YAAY,OAAO;AAC5F;AAAA,IACF;AACA,UAAM,cAAcA,OAAM;AAAA,EAC5B;AACA,QAAM,QAAQ,IAAI,SAAS;AAC3B,MAAI,cAAc;AAChB,aAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,YAAM,QAAQ,IAAI,SAAS;AAAA,IAC7B;AAAA,EACF;AACA,MAAI,OAAO;AACT,UAAM,QAAQ,QAAQ,SAAS;AAAA,EACjC;AACF;AAAA;AAEO,SAAS,iBAAiBA,SAAQ;AACvC,MAAI,OAAOA,YAAW,YAAY;AAChC,WAAOA;AAAA,EACT;AACA,QAAM,QAAQA,QAAO,SAASA,QAAO;AACrC,SAAOA,QAAO;AACd,SAAO,OAAO,OAAOA,QAAO,UAAU,MAAM;AAAA,EAC5C,IAAIA,SAAQ,EAAE,CAAC,mBAAmB,GAAG,MAAM,OAAO;AACpD;AACO,MAAM,sBAAsB;AAI5B,SAAS,aAAa,MAAM,OAAO,MAAM;AAC9C,QAAM,KAAK,MAA8B,MAAA;AACzC,QAAM,aAAa,cAAc,KAAK,GAAG;AACjB;AACtB,WAAO,KAAK,OAAO,eAAe,MAAM,WAAW,UAAU,MAAM,EAAE,CAAC;AAAA,EACxE;AAIF;AACO,SAAS,cAAc,IAAI;AAChC,MAAI;AACJ,MAAI,uBAAuB;AACzB,sBAAkBG,qBAAA,GAAsB,WAAW,IAAI;AAAA,EACzD;AACA,sBAAoB,cAAc,EAAE,EAAE,OAAA;AACtC,SAAO,mBAAmB;AAC5B;AACO,SAAS,WAAW,IAAI;AAC7B,QAAM,kBAAkB,cAAc,EAAE;AACxC,MAAI,CAAC,iBAAiB;AAGb;AACL,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAAA,EACF;AACA,SAAO;AACT;AAAA;AAEO,SAAS,iBAAiB,QAAQ;AACvC,SAAO,aAAa;AACtB;AACA,SAAS,aAAa,KAAK,KAAK,KAAK;AACnC,SAAO,eAAe,KAAK,KAAK,EAAE,KAAK,MAAM,KAAK;AACpD;AC9PO,MAAM,mBAAmB,uBAAO,aAAa;AAC7C,MAAM,kBAAkB,uBAAO,OAAO;ACAtC,SAASC,UAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AACgB,YAAY,IAAI,QAAQ,cAAc,GAAG;ACGlD,MAAM,YAAY,MAAM;AAC7B,SAAO,cAAc;AACvB;AACO,MAAM,WAAW,MAAM;AAM5B,MAAI,uBAAuB;AACzB,WAAO,OAAO,iBAAiB,WAAA,EAAa,MAAM;AAAA,EACpD;AACA,SAAO,aAAa;AACtB;AAAA;AAeO,SAAS,0BAA0B,YAAY;AACpD,SAAO;AACT;AAeA,MAAM,yBAAyB,MAAM;AACnC,MAAI;AACF,QAAI,WAAA,EAAa,uBAAuB;AACtC,aAAO;AAAA,IACT;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAAA,EAC3B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AACA,SAAS,kBAAkB,OAAO;AAChC,SAAO,MAAM,QAAQ,qBAAqB,CAAC,MAAM,qBAAqB,CAAC,CAAC;AAC1E;AACO,MAAM,aAAa,CAAC,IAAI,YAAY;AACzC,SAAO;AACP,QAAM,SAAS,OAAO,OAAO,WAAW,KAAK,UAAU,KAAK,mBAAmB,EAAE,IAAI,UAAA,EAAY,QAAQ,EAAE,EAAE;AAgB7G,QAAM,iBAAiB,YAAY,QAAQ,EAAE,gBAAgB,MAAM;AACnE,QAAM,aAAa,SAAS,YAAY;AACxC,MAAI,YAAY;AACd,QAAI,CAAC,SAAS,UAAU;AACtB,YAAM,IAAI,MAAM,qGAAqG;AAAA,IACvH;AACA,UAAM,EAAE,SAAA,IAAa,IAAI,IAAI,QAAoD,kBAAkB;AACnG,QAAI,YAAY,iBAAiB,QAAQ,GAAG;AAC1C,YAAM,IAAI,MAAM,kCAAkC,QAAQ,aAAa;AAAA,IACzE;AAAA,EACF;AACA,QAAM,eAAe,uBAAA;AAgBrB,QAAM,SAAS,UAAA;AACf,QAAM,UAAU,WAAA;AACQ;AACtB,QAAI,QAAQ,YAAY;AACtB,YAAM,WAAW,OAAO,OAAO,YAAY,aAAa,SAAS,OAAO,QAAQ,EAAE,EAAE,YAAY;AAChG,YAAM,YAAY,aAAa,SAAS,SAAQ,oCAAmB,IAAI,SAAS,QAAQ;AACxF,YAAM,WAAW,eAAe,UAAU;AACxC,cAAM,QAAQ,SAAS,gBAAgB;AACvC,cAAM,gBAAgB,UAAU,WAAW,cAAc;AACzD,cAAM,aAAa,kBAAkB,aAAa;AAClD,gBAAQ,WAAW,iBAAiB,IAAI;AAAA,UACtC,YAAY,mBAAmB,SAAS,gBAAgB,KAAK,GAAG;AAAA,UAChE,MAAM,yEAAyE,UAAU;AAAA,UACzF,SAAS,EAAE,UAAU,cAAA;AAAA,QAAc;AAErC,eAAO;AAAA,MACT;AACA,UAAI,CAAC,cAAc,cAAc;AAC/B,eAAO,UAAU,CAAC,UAAU,MAAM,aAAa,WAAW,SAAS,KAAK,IAAI,MAAM;AAClF,eAAO;AAAA,MACT;AACA,aAAO,SAAS,CAAC,eAAe;AAAA;AAAA,QAE9B;AAAA,OACD;AAAA,IACH;AAAA,EACF;AACA,MAAI,YAAY;AACd,YAAQ,OAAO,KAAA;AACf,QAAI,SAAS,SAAS;AACpB,MAAA,SAAS,QAAQ,MAAM;AAAA,IACzB,OAAO;AACL,MAAA,SAAS,OAAO;AAAA,IAClB;AACA,QAAI,cAAc;AAChB,UAAI,CAAC,QAAQ,aAAa;AACxB,eAAO;AAAA,MACT;AACA,aAAO,IAAI,QAAQ,MAAM;AAAA,MACzB,CAAC;AAAA,IACH;AACA,WAAO,QAAQ,QAAA;AAAA,EACjB;AACA,QAAM,YAAY,OAAO,OAAO,WAAW,gBAAgB,EAAE,IAAI;AACjE,SAAO,SAAS,UAAU,OAAO,QAAQ,SAAS,IAAI,OAAO,KAAK,SAAS;AAC7E;AAmDO,SAAS,mBAAmB,IAAI;AACrC,SAAO,UAAU,GAAG,QAAQ,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,QAAQ;AAChE;AACO,SAAS,UAAU,WAAW,iBAAiB,OAAO;AAC3D,QAAM,MAAM,IAAI,IAAI,WAAW,kBAAkB;AACjD,MAAI,CAAC,gBAAgB;AACnB,UAAM,WAAW,IAAI,SAAS,QAAQ,WAAW,GAAG;AACpD,WAAO,WAAW,IAAI,SAAS,IAAI;AAAA,EACrC;AACA,MAAI,UAAU,WAAW,IAAI,GAAG;AAC9B,WAAO,IAAI,SAAA,EAAW,QAAQ,IAAI,UAAU,EAAE;AAAA,EAChD;AACA,SAAO,IAAI,SAAA;AACb;AACO,SAAS,gBAAgB,KAAK;AACnC,QAAM,SAAS,SAAS,GAAG;AAC3B,SAAO,WAAW,WAAW,OAAO,QAAQ,CAAC,IAAI,OAAO,SAAS,OAAO;AAC1E;AClOO,MAAM,uBAAuB;AAC7B,MAAM,sCAAsC,MAAM,MAAM,WAAA,EAAa,SAAS,OAAO;AACrF,MAAM,YAAY,CAAC,UAAU;AAClC,QAAM,YAAY,YAAY,KAAK;AACnC,MAAI;AACF,UAAM,SAAyB,yBAAA;AAC/B,QAAI,MAAoB;AAIxB,WAAO,UAAU;AAAA,EACnB,QAAQ;AACN,UAAM;AAAA,EACR;AACA,SAAO;AACT;AAUO,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,wBAAwB;AAC/F,MAAM,cAAc,CAAC,UAAU;AACpC,MAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,UAAM,YAAY,MAAM;AAAA,EAC1B;AACA,QAAM,YAAYC,cAAc,KAAK;AACrC,SAAO,eAAe,WAAW,sBAAsB;AAAA,IACrD,OAAO;AAAA,IACP,cAAc;AAAA,IACd,UAAU;AAAA,EAAA,CACX;AACD,SAAO,eAAe,WAAW,UAAU;AAAA;AAAA,IAEzC,KAAK,MAAM,UAAU;AAAA,IACrB,cAAc;AAAA,EAAA,CACf;AACD,SAAO,eAAe,WAAW,cAAc;AAAA;AAAA,IAE7C,KAAK,MAAM,UAAU;AAAA,IACrB,cAAc;AAAA,EAAA,CACf;AACD,SAAO;AACT;ACzCO,SAAS,WAAW,SAAS;AAClC,QAAM,OAAO,WAAW,cAAa;AACrC,SAAO,MAAM,YAAY,QAAQ,MAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC1B;AAAA,EACF,CAAC;AACH;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOC,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC7C;AACF;ACtBM,MAAM,UAAU,CAAC,GAAE,MAAI;AAAC,SAAO,CAAA;AAAG;AAClC,2BAAe,CAAC,SAAS,KAAK,CAAA,GAAI,GAAG,QAAQ,IAAI,OAAO,SAAS,WAAW,KAAK,YAAW,IAAK,IAAI,EAAE,IAAI,OAAK,EAAE,IAAI,EAAE,QAAO,CAAE;ACCvI,MAAMC,sBAAoB;AAyCnB,SAAS,cAAc,KAAK;AACjC,QAAM,OAAO,OAAO,QAAQ,WAAW,MAAM,IAAI;AACjD,MAAI;AACF,WAAOA,oBAAkB,KAAK,aAAa;AAAA,EAC7C,SAAS,GAAG;AACV,YAAQ,MAAM,sCAAsC,CAAC;AACrD,WAAO,CAAA;AAAA,EACT;AACF;ACgHO,SAAS,qBAAqB,MAAM,QAAQ;AACzB;AACtB,eAAA,EAAa,WAAW,kBAAkB,EAAE,IAAI,IAAI;AAAA,EACtD;AACF;ACnKA,MAAM,gBAAgB,oBAAoB,MAAM;AAC9C;AAAA,IACE;AAAA;AAAA,IAEA,CAAC,SAAS,CAAC,cAAc,IAAI,KAAK;AAAA,EACtC;AAEA,CAAC;ACbM,SAAS,WAAW,MAAM;AAC/B,QAAM,WAAW,KAAK;AACtB,OAAK,OAAO,OAAO,EAAE,SAAS,MAAM;AAAA,EACpC,GAAG,OAAO,MAAM;AAAA,EAChB,GAAG,OAAO,MAAM;AAAA,EAChB;AACA,SAAO,MAAM;AACX,SAAK,OAAO;AAAA,EACd;AACF;ACLA,MAAA,qDAAe,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,SAAS;AACb,UAAM,OAA4B,QAAQ,WAAW;AACrD,QAA0B,QAAQ,WAAW,eAAe;AAC1D,YAAM,WAAW,WAAW,IAAI;AAChC,cAAQ,MAAM,SAAS,eAAe,QAAQ;AAAA,IAChD;AACA,YAAQ,OAAO,IAAI,IAAI;AAAA,EAmCzB;AACF,CAAC;AClCM,SAASH,UAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;ACsCA,MAAA,UAAe;AAAA,EACb;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,EAAC,cAAa,OAAA;AAAA,IACpB,WAAW,MAAM,OAAO,2BAAsB;AAAA,EAAA;AAAA,EAEhD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,OAAO,2BAAsB;AAAA,EAAA;AAAA,EAEhD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,EAAC,cAAa,OAAA;AAAA,IACpB,WAAW,MAAM,OAAO,2BAA8B;AAAA,EAAA;AAAA,EAExD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,EAAC,cAAa,OAAA;AAAA,IACpB,WAAW,MAAM,OAAO,2BAA+B;AAAA,EAAA;AAAA,EAEzD;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,EAAC,cAAa,OAAA;AAAA,IACpB,WAAW,MAAM,OAAO,2BAAkC;AAAA,EAAA;AAE9D;ACjFO,MAAM,oBAAoB,CAAC,OAAO,aAAa;AACpD,SAAO,EAAE,SAAS,MAA2F,SAAS,YAAU;AAClI;AACA,MAAM,2BAA2B;AACjC,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,SAAS,iBAAiB,OAAO;AAC/B,QAAM,SAAS,OAAO,KAAK,OAAO,MAAM,KAAK,QAAQ,0BAA0B,IAAI,EAAE,QAAQ,sBAAsB,IAAI,EAAE,QAAQ,qBAAqB,CAAC,MAAM,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,SAAA,KAAc,EAAE;AACvM,SAAO,OAAO,WAAW,aAAa,OAAO,KAAK,IAAI;AACxD;AACO,SAAS,eAAe,IAAI,MAAM;AACvC,MAAI,OAAO,QAAQ,SAAS,gBAAgB;AAC1C,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,EAAE,MAAM,iBAAiB,IAAI,GAAG;AACnD,WAAO;AAAA,EACT;AACA,QAAM,oBAAoB,GAAG,QAAQ;AAAA,IACnC,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,WAAW,YAAY,KAAK,QAAQ,KAAK,GAAG,YAAY;AAAA,EAAA;AAEnG,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAmGO,SAASA,UAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AACO,SAAS,sBAAsB,YAAY;AAChD,QAAM,SAAS,CAAA;AACf,aAAW,QAAQ,YAAY;AAC7B,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,WAAO,KAAK;AAAA,MACV,GAAG;AAAA,MACH,cAAc,KAAK,eAAeA,UAAQ,KAAK,YAAY,IAAI;AAAA,MAC/D,eAAe,KAAK,gBAAgBA,UAAQ,KAAK,aAAa,IAAI;AAAA,IAAA,CACnE;AAAA,EACH;AACA,SAAO,KAAK,GAAG,MAAM;AACvB;AC3IA,MAAA,iBAAe;AAAA,EACb,eAAe,IAAI,MAAM,eAAe;AACtC,UAAM,UAAU,WAAA;AAChB,UAAM,sBAAsB,UAAA,EAAY,SAAS,sBAAsB;AACvE,QAAI,GAAG,KAAK,QAAQ,OAAO,EAAE,MAAM,KAAK,KAAK,QAAQ,OAAO,EAAE,GAAG;AAC/D,UAAI,KAAK,QAAQ,CAAC,GAAG,MAAM;AACzB,eAAO,EAAE,MAAM,GAAG,KAAK,EAAA;AAAA,MACzB;AACA,UAAI,GAAG,MAAM;AACX,eAAO,EAAE,IAAI,GAAG,MAAM,KAAK,+BAA+B,GAAG,IAAI,GAAG,UAAU,oBAAA;AAAA,MAChF;AACA,aAAO;AAAA,IACT;AACA,UAAM,yBAAyB,OAAO,GAAG,KAAK,gBAAgB,aAAa,GAAG,KAAK,YAAY,IAAI,IAAI,IAAI,GAAG,KAAK;AACnH,QAAI,2BAA2B,OAAO;AACpC,aAAO;AAAA,IACT;AACA,QAAI,SAAS,gBAAgB;AAC3B,aAAO,mBAAmB,IAAI,MAAM,eAAe,mBAAmB;AAAA,IACxE;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,YAAM,WAAW,MAAM;AACrB,8BAAsB,MAAM,QAAQ,mBAAmB,IAAI,MAAM,eAAe,mBAAmB,CAAC,CAAC;AAAA,MACvG;AACA,cAAQ,MAAM,SAAS,oBAAoB,MAAM;AAC/C,cAAM,oBAAoB,QAAQ,oBAAoB;AACtD,YAAI,mBAAmB;AACrB,4BAAkB,KAAK,QAAQ;AAAA,QACjC,OAAO;AACL,mBAAA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AACA,SAAS,+BAA+B,UAAU;AAChD,MAAI;AACF,UAAM,OAAO,SAAS,cAAc,QAAQ;AAC5C,QAAI,MAAM;AACR,cAAQ,OAAO,WAAW,iBAAiB,IAAI,EAAE,eAAe,KAAK,MAAM,OAAO,WAAW,iBAAiB,SAAS,eAAe,EAAE,gBAAgB,KAAK;AAAA,IAC/J;AAAA,EACF,QAAQ;AAAA,EACR;AACA,SAAO;AACT;AACA,SAAS,mBAAmB,IAAI,MAAM,eAAe,4BAA4B;AAC/E,MAAI,eAAe;AACjB,WAAO;AAAA,EACT;AACA,MAAI,GAAG,MAAM;AACX,WAAO;AAAA,MACL,IAAI,GAAG;AAAA,MACP,KAAK,+BAA+B,GAAG,IAAI;AAAA,MAC3C,UAAU,eAAe,IAAI,IAAI,IAAI,6BAA6B;AAAA,IAAA;AAAA,EAEtE;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,EAAA;AAET;AC/DA,MAAM,sBAAsB;AAAA,EAC1B,UAAU;AAAA,EACV,oBAAoB;AACtB;AAEA,MAAA,gBAAe;AAAA,EACf,GAAG;AAAA,EACH,GAAG;AACH;ACNE,MAAA,WAAQ,0CAAgB,OAAA,IAAA,SAAA;AAAA,MAAA,QAAA;AACtB,MAAA,CAAA,GAAA,MAAA,UAAA;AACF;AAAA,EACA;AACA,kBAAe,CAAA,QAAM,SAAA,IAAAI,aAAA,MAAA,QAAA,QAAA,GAAA,KAAA,SAAA,EAAA,CAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA;AACnB,MAAA,WAAA,MAAA;AACF;AAAA,EACA;AAA0B,QACxB,QAAO,YAAA;AAAA,IAAA,OAAA;AAAA;AAAA,IAEmD,QAAA,WAAA,OAAA,UAAA,OAAA,eAAA;AAAA;AAAA,IAG1D,YAAM,WAAA,OAAA,cAAA,OAAA,kBAAA,mBAAA,GAAA,QAAA;AAAA,IAAA;MAEN,MAAA,GAAA;AAAA,IAAA;AAAA,EAEF,CAAA;AAIF,SAAC;;ACrBD,MAAA,0BAAe,0CAA0B,CAAC,OAAO;AACH;AAC1C;AAAA,EACF;AAUF,CAAC;ACdM,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AACF;AACO,MAAM,kBAAkB;AAAA,EAC7B,MAAM,MAAM,OAAO,0BAAyB;AAC9C;ACP2E,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,CAAA,CAE7G;AACM,MAAM,mBAA8D,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,EAE7G;ACqB+B,MAC9BR,WAAM,iCAAA;AAAA,EACN,MAAA;AAAA,EACA;EACE,MAAI,MAAA,SAAa;AAAA,QAAA,QAAA;AACjB,QAAI,cAAa,oCAAW,IAAY;AAIxC,UAAM,wBAAuB,UAAA,UAAA,KAA2C,oBAAK,UAAU;AACvF,UAAI,SAAA,cAAA,UAAA,CAAA,QAAA,SAAA,IAAAQ,aAAA,MAAA,cAAA,OAAA,OAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA,WAAA,UAAA;AACJ,QAAA;AAA4B,UACvB,SAAA,aAAA;AAAA,MACH,GAAA;AAAA,MACE,gBAAa,CAAA,IAAA,MAAA,kBAAgB;AAC3B,YAAA,SAAA,gBAAgB;AAChB,0BAAA;AACF;AAAA,QACA;AACE,YAAA,8BAAgC;AAChC,iBAAI,QAAA,+BAAuC;AACzC,cAAA,uBAAqB,SAAW,SAAM;AACpC,kBAAA,QAAM,OAAA,WAAA,MAAA;AACN,oBAAA;AACD,cAAA,SAAA,QAAA,oBAAA;AAAA,YACH,CAAA;AAAA,UACA;AACF,iBAAA,cAAA,eAAA,IAAA,gBAAA,iBAAA,aAAA;AAAA,QACF;AAAA,MACA;AAAA,MACA;AAAA,MACD;AAAA,IACD,CAAA;AAOA,YAAM,OAAA,IAAA,MAAgB;AACtB,UAAA,gBAAkB,WAAc,OAAA,aAAA,KAAA;AAC9B,WAAA,UAAc,CAAA,KAAA,SAAQ;AACvB,oBAAA,QAAA;AAAA,IACD,CAAA;AAA+E,WACxE,eAAM,QAAc,OAAA,OAAA,kBAAA,iBAAA;AAAA,MAC1B,KAAA,MAAA,cAAA;AAAA,IACD,CAAA;AACA,UAAM,aAAoB,QAAO,WAAA;AACjC,UAAM,oBAAmB,OAAM,aAAA,KAAA;AAC7B,UAAA,mBAAsB,MAAA;AACxB,aAAA,QAAA,OAAA,aAAA;AAAA,IACA;AACE,WAAA,UAAe,CAAA,IAAG,SAAW;AAC7B,YAAM,YAAW,QAAK,GAAA,EAAQ,GAAG,YAAK;AACtC,uBAAe,KAAA,QAAU,GAAA,EAAA,GAAA,YAAA;AACvB,UAAA,WAAA,UAAiB;AACjB,yBAAA;AACF;AAAA,MACA;AACE,UAAA,GAAA,QAAA,SAAiB,KAAA,QAAA,UAAA,GAAA,QAAA,MAAA,CAAA,GAAA,MAAA,EAAA,YAAA,YAAA,KAAA,QAAA,CAAA,GAAA,YAAA,OAAA,GAAA;AACnB,yBAAA;AAAA,MACD;AAAA,IACD,CAAA;AACA,UAAA,QAAW,EAAA,uBAAqB;AAC9B,eAAO,OAAA,cAAsB;AAAK,aAC3B,eAAa,OAAS,KAAA;AAAA,QAC3B,KAAA,MAAA,OAAY,MAAA,GAAA;AAAA,QACb,YAAA;AAAA,MAAA,CACH;AAAA,IACA;AACA,YAAQ,SAAA,gBAAgB,KAAA;AAAA,4BACb;AAAA,MACT,QAAQ,CAAA;AAAA,MACV,OAAA,CAAA;AAAA,IACA;AACA,UAAM,iCAAqC;AAC3C,UAA2B,eAAQ,QAAY,YAAA,eAA+B,MAAA,WAAA,OAAA;AAC5E,QAAA,CAAA,QAAO,YAAU,iBAAkB,cAAY;AAC7C,aAAA,UAAe,OAAA,IAAA,OAAA,YAAA;AACf,eAAI,QAA2D;AAI7D,YAAA,SAAM;AACR,gBAAA,QAAA,SAAA,kBAAA;AAAA,QACA;AACE,YAAA,SAAA,SAAA,GAAA;AACF;AAAA,QACA;AACE,YAAA,GAAA,kBAAc,GAAA,yBAAmC;AACnD,gBAAA,QAAA,eAAA,MAAA,WAAA,GAAA,YAAA,GAAA,CAAA;AAAA,QACD;AAAA,MACH,CAAA;AAAA,IACA;AACE,QAAA;AACE,UAAA,MAAA;AACF;AAAA,QAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,OAAA,KAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA;;eAEO,SAAQ,IAAAA,aAAA,MAAA,OAAA,QAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IACf;AACF,MAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA,IACA;AACA,UAAM,uBAAmB,OAAA,aAAA;AACzB,UAAA,mBAAiB;AACjB,qBAAkC;AAChC,QAAA,QAAS,YAAW,iBAAS,CAAA,cAAA;AAC/B,aAAA,EAAA,SAAA,EAAA,SAAA;AAAA,IACA;AACA,UAAA,gBAAkB,QAAW,QAAS,MAAA;AACpC,WAAA,kBAAuB,IAAA,SAAA;AACvB,YAAG,QAAO,SAAY,oBAAI;AAC1B,SAAA,OAAI;AACF,UAAA,QAAQ,eAAS,iBAAA,CAAA,WAAA,GAAA,KAAA,MAAA,GAAA;AACnB,WAAA,KAAA,SAAA;AAAA,MACA;AACA,cAA2B,wBAAoB;AAC7C,UAAA,CAAA,QAAM,YAAA,iBAAoC,cAAY;AACtD,cAAA,oBAAoC,oBAAA,IAAA,CAAA,GAAA,kBAAA,GAAA,QAAA,YAAA,MAAA,CAAA;AAClC,mBAAM,aAAA,GAAA;AACN,gBAAK,sBAAqB,UAAA,KAAA;AACxB,cAAA,CAAA,qBAAA;AACF;AAAA,UACA;AACE,qBAAAC,UAAkBL,UAAI,mBAAK,GAAA;AAC7B,8BAAA,IAAAK,MAAA;AAAA,UACF;AAAA,QACA;AACA,2BAAe,cAAe,EAAA,MAAA,GAAA,KAAA,CAAA;AAC5B,YAAA,WAAW;AACT,qBAAI,OAAW,WAAA,eAAoB;AACjC,gBAAA,WAAA,cAAyB,GAAA,GAAA;AAC3B,gCAAO,IAAA,GAAA;AAAA,YACL,OAAA;AACF,gCAAA,OAAA,GAAA;AAAA,YACF;AAAA,UACF;AAAA,QACA;AACE,mBAAMA,UAAA,mBAA8B;AACpC,gBAAK,aAAY,OAAAA,WAAA,WAAA,QAAA,YAAA,MAAAA,MAAA,KAAA,MAAA,gBAAAA,MAAA,IAAA,EAAA,KAAA,CAAA,MAAA,EAAA,WAAA,CAAA,IAAAA;AACf,cAAA,CAAA,YAAqB;AAIvB,kBAAA,IAAA,MAAA,8BAAAA,MAAA,IAAA;AAAA,UACA;AACE,cAAA;AACE,gBAAA;AAGF,kBAAI,SAA8E,MAAA,QAAA,eAAA,MAAA,WAAA,IAAA,IAAA,CAAA;AAChF,gBAAA,MAAI;AACF,kBAAA,WAAM,2BAA+B,OAAA;AAAA,sBACnC,SAAQ,UAAA,YAAA;AAAA,kBACR,QAAA;AAAA,kBACD,YAAA,mBAAA,UAAA;AAAA,gBACD,CAAA;AACA,sBAAA,QAAO,eAAA,MAAA,UAAA,MAAA,CAAA;AACT,uBAAA;AAAA,cACF;AAAA,YACA;AACE,gBAAA,WAAA,MAAA;AACF;AAAA,YACA;AACE,gBAAA,WAAO,OAAA;AACT,qBAAA;AAAA,YACA;AACE,gBAAA,QAAI;AACF,kBAAA,YAAc,MAAA,KAAA,OAAe,OAAM;AACrC,sBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,cACA;AACF,qBAAA;AAAA;UAEA,SAAM,KAAA;AACN,2BAAW,YAAO,GAAA;AAChB,gBAAA,OAAM,OAAQ;AAChB,oBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,YACA;AACF,mBAAA;AAAA,UACF;AAAA,QACF;AAAA,MACD;AAAA,IACD,CAAA;AACE,QAAA,cAAO;AACL,aAAA,cAAiB,CAAA,OAAA;AACjB,cAAM,WAAS,iBAAiB,QAAQ,WAAY,cAAS,IAAA;AAC7D,cAAK,SAAA,GAAY,QAAA,KAAa,CAAA,MAAQ,EAAA,YAAA,SAAe,aAAA,GAAA,YAAA;AACnD,YAAA,CAAA,YAAQ,qBAA4B,eAAI;AAAA,kBACtC,WAAY,iBAAA,IAAA;AAAA,YACZ,YAAA;AAAA,YACF,eAAA;AAAA,UACA;AACF,iBAAA;AAAA,QACD;AAAA,MACH,CAAA;AAAA,IACA;AACE,WAAA,QAAO,YAAQ;AACf,aAAM;AACP,YAAA,QAAA,SAAA,kBAAA;AAAA,IACD,CAAA;AACE,qBAAe,CAAA,OAAA;AACb,UAAA,GAAA,QAAO,WAAQ,KAAA,CAAe,MAAM,OAAA;AAAsB,eACxD,QAAQ,eAAA,MAAA,UAAA,YAAA;AAAA,UACR,QAAO;AAAA,UACP,OAAA;AAAA,UACA,YAAM,mBAAA,GAAA,QAAA;AAAA,UAAA;YAEN,MAAA,GAAA;AAAA,UAAA;AAAA,QACC,CACL,CAAA,CAAA;AAAA,MACD;AAAA,IACD,CAAA;AACE,YAAI,MAAA,SAAA,eAAA,YAAA;AACF,UAAA;AACE,YAAA,UAAA,sBAA4B;AAC9B,+BAAA,OAAA;AAAA,QACA;AACE,YAAA,iBAAM;AAAA,aASN;AAAqB,gBAChB,OAAA,QAAA;AAAA,YACH,GAAA;AAAA,YACD,OAAA;AAAA,UAAA,CACH;AAAA,QACA;eACO,QAAQ,iBAAA,cAAA;AAAA,MACf,SAAM,QAAQ;AAChB,cAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,MACD;AAAA,IACD,CAAA;AACF,WAAA,EAAA,SAAA,EAAA,SAAA;AAAA,EACF;AACA,CAAA;ACnQA,MAAM,WAAW;AAAA,EACf,CAAC,aAAa,CAAC,SAAS,YAAY,IAAI,KAAK,KAAK,QAAQ;AAAA,EAC1D,CAAC,mBAAmB,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAC1J,CAAC,YAAY,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAChI,CAAC,cAAc,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK;AAAA,EACrE,CAAC,mBAAmB,CAAC,SAAS,WAAW,IAAI,KAAK,UAAU,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,EAChF,CAAC,OAAO,CAAC,SAAS,MAAM,IAAI,KAAK,KAAK,KAAK;AAAA,EAC3C,CAAC,YAAY,CAAC,SAAS,WAAW,IAAI,KAAK,MAAM,IAAI,CAAC;AACxD;AAIA,MAAA,oEAAe,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AACN,eAAW,CAAC,SAAS,EAAE,KAAK,UAAU;AACpC,2BAAqB,SAAS,EAAE;AAAA,IAClC;AAAA,EACF;AACF,CAAC;ACxBc,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AACP,WAAO,mBAAmB,KAAK;AAAA,EACjC;AACF,CAAC;ACDM,MAAM,mBAAmB,uBAAO,IAAI,kBAAkB;AAE9C,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO,CAAC,YAAY,eAAe,kBAAkB,aAAa;AAAA,EAClE,GAAG;AAAA,EAGH,MAAM,OAAO,EAAE,OAAO,SAAS;AAC7B,UAAM,UAAU,WAAW,KAAK;AAShC,UAAM,KAAKN,qBAAA;AACX,QAAI,IAAI;AACN,SAAG,kBAAkB;AAAA,IACvB;AACA,YAAQ,kBAAkB,IAAI;AAC9B,WAAO,MAAM;AACX,UAAI,QAAQ,OAAO;AACjB,cAAM,SAAS,MAAM,UAAA;AACrB,YAAI,UAAU,OAAO,WAAW,GAAG;AACjC,iBAAO,CAAC,WAAW,OAAO,CAAC,GAAG,KAAK,CAAC;AAAA,QACtC;AACA,eAAO;AAAA,MACT;AACA,YAAM,OAAO,MAAM,YAAY,MAAM;AACrC,UAAI,MAAM;AACR,eAAO,EAAE,IAAI;AAAA,MACf;AACA,YAAM,cAAc,MAAM,YAAY,MAAM,eAAe;AAC3D,YAAM,cAAc,MAAM,eAAe,MAAM,kBAAkB;AACjE,aAAO,mBAAmB,aAAa,OAAO,WAAW;AAAA,IAC3D;AAAA,EACF;AACF,CAAC;AC3CD,MAAM,oBAAoB;AACnB,SAAS,YAAY,MAAM;AAChC,QAAM,UAAU,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,WAAW,KAAK,IAAG,IAAK;AACzE,MAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAC/B,SAAK,QAAQ,OAAO;AAAA,EACtB;AACA,QAAM,CAAC,MAAM,IAAI,IAAI;AACrB,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C,IAAI;AAAA,EACvE;AACA,MAAI,SAAS,UAAU,OAAO,SAAS,YAAY;AACjD,UAAM,IAAI,MAAM,gDAAgD,IAAI;AAAA,EACtE;AACA,QAAM,MAAM,oBAAoB;AAChC,QAAM,UAAU,WAAU;AAC1B,QAAM,QAAQ,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAC9C,MAAI,MAAM,UAAU,UAAU,MAAM;AAClC,UAAM,eAAe,KAAI;AACzB,QAAI,MAAM,YAAY,GAAG;AACvB,cAAQ,QAAQ,MAAM,GAAG,IAAI;AAC7B,aAAO;AAAA,IACT;AACA,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;ACvBO,SAAS,gBAAgB,SAAS;AAIvC,cAAY,WAAA;AACZ,SAAO,QAAQ,YAAY;AAC7B;AAoEO,SAAS,gBAAgB,MAAM;AACpC,MAA2B,CAAC,YAAY,WAAW;AACjD;AAAA,EACF;AACA,QAAM,QAAQC,UAAQ,IAAI;AAC1B,eAAa,gBAAA,GAAmB,qBAAqB,MAAM,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AACzG;AC5EA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ,CAAC,QAAQ;AACf,UAAM,UAAU,mBAAmB,GAAG;AACtC,UAAM,SAAS,MAAM,OAAO;AAC5B,QAAI,OAAO,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,KAAK,OAAO,MAAM,MAAM,UAAU;AAC1F,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EACA,QAAQ,CAAC,QAAQ,mBAAmB,OAAO,QAAQ,WAAW,MAAM,KAAK,UAAU,GAAG,CAAC;AACzF;AAEO,SAAS,UAAU,MAAM,OAAO;AACrC,QAAM,OAAO,EAAE,GAAG,gBAAgB,GAAG,MAAA;AACrC,OAAK,WAAW,CAAC,QAAQ,QAAQ;AACjC,QAAM,UAAU,eAAe,IAAI,KAAK,CAAA;AACxC,MAAI;AACJ,MAAI,KAAK,WAAW,QAAQ;AAC1B,YAAQ,KAAK,SAAS;AAAA,EACxB,WAAW,KAAK,SAAS;AACvB,YAAQ,KAAK,QAAQ,QAAA,IAAY,KAAK,IAAA;AAAA,EACxC;AACA,QAAM,aAAa,UAAU,UAAU,SAAS;AAEhD,QAAM,cAAc,MAAM,aAAa,SAAS,QAAQ,IAAI,KAAK,KAAK,WAAW;AACjF,QAAM,SAA8H,IAAI,WAAW;AAyEpH;AAC7B,UAAM,UAAU,WAAA;AAChB,UAAM,wBAAwB,MAAM;AAClC,UAAI,KAAK,YAAY,QAAQ,OAAO,OAAO,QAAQ,IAAI,CAAC,GAAG;AACzD;AAAA,MACF;AACA,cAAQ,aAAa,CAAA;AACrB,UAAI,QAAQ,QAAQ,UAAU;AAC5B,YAAI,QAAQ,OAAO,OAAO,QAAQ,SAAS,IAAI,CAAC,GAAG;AACjD;AAAA,QACF;AAAA,MAIF;AACA,cAAQ,SAAS,IAAI,IAAI,OAAO;AAChC,wBAAkB,gBAAgB,OAAO,GAAG,MAAM,OAAO,OAAO,IAAI;AAAA,IACtE;AACA,UAAM,SAAS,QAAQ,MAAM,SAAS,gBAAgB,qBAAqB;AAC3E,YAAQ,MAAM,SAAS,aAAa,MAAM;AACxC,aAAA;AACA,aAAO,sBAAA;AAAA,IACT,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAYA,SAAS,eAAe,OAAO,IAAI;AACT;AACtB,WAAOM,QAAM,iBAAiB,gBAAA,GAAmB,QAAQ,KAAK,IAAI,IAAI;AAAA,EACxE;AAGF;AAYA,SAAS,kBAAkB,OAAO,MAAM,OAAO,OAAO,CAAA,GAAI;AACxD,MAAI,OAAO;AACT,QAAI,UAAU,QAAQ,UAAU,QAAQ;AACtC,aAAO,UAAU,OAAO,MAAM,OAAO,IAAI;AAAA,IAC3C;AACA,QAAI,UAAU,OAAO,IAAI,MAAM,QAAQ;AACrC,aAAO,aAAa,OAAO,MAAM,IAAI;AAAA,IACvC;AAAA,EACF;AACF;AC3KO,SAAS,cAAc,MAAM;AACV;AACtB,WAAO,cAAc,gBAAA,GAAmB,IAAI;AAAA,EAC9C;AAEF;ACJA,MAAM,SAAS,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM,SAAS;AACb,UAAM,QAAQ,YAAW;AACzB,YAAQ,OAAO,IAAI,KAAK;AACxB,mBAAe,KAAK;AACpB,QAAI,QAAQ,WAAW,QAAQ,QAAQ,OAAO;AAC5C,YAAM,MAAM,QAAQ,QAAQ,QAAQ;AAAA,IACtC;AACA,WAAO;AAAA,MACL,SAAS;AAAA,QACP;AAAA,MACR;AAAA,IACA;AAAA,EACE;AAAA,EACA,OAAO;AAAA,IACL,iBAAiB;AACf,YAAM,UAAU,WAAU;AAC1B,cAAQ,QAAQ,QAAQ,MAAM,QAAQ,MAAM,EAAE,MAAM;AACpD,qBAAe,MAAM;AAAA,IACvB;AAAA,EACJ;AACA,CAAC;ACvBD,MAAA,gEAAe,iCAAiB;AAAA,EAC9B,MAAM;AACR,CAAC;ACCD,SAAS,KAAK,KAAK,KAAK;AACpB,MAAI,OAAO,YAAY,aAAa;AAChC,YAAQ,KAAK,eAAe,GAAG;AAE/B,QAAI,KAAK;AACL,cAAQ,KAAK,IAAI,KAAK;AAAA,IAC1B;AAAA,EACJ;AACJ;AACA,MAAM,YAAY,CAAA;AAClB,SAAS,SAAS,KAAK;AACnB,MAAI,CAAC,UAAU,GAAG,GAAG;AACjB,cAAU,GAAG,IAAI;AACjB,SAAK,GAAG;AAAA,EACZ;AACJ;AAMA,MAAM,YAAY;AAGlB,IAAK,QAAQ,IAAI,aAAa,aAAe;AAkB7C,MAAM,UAAU;AAEhB,SAASC,SAAO,YAAY,MAAM;AAC9B,MAAI,KAAK,WAAW,KAAK,SAAS,KAAK,CAAC,CAAC,GAAG;AACxC,WAAO,KAAK,CAAC;AAAA,EACjB;AACA,MAAI,CAAC,QAAQ,CAAC,KAAK,gBAAgB;AAC/B,WAAO,CAAA;AAAA,EACX;AACA,SAAO,QAAQ,QAAQ,SAAS,CAAC,OAAOC,gBAAe;AACnD,WAAO,KAAK,eAAeA,WAAU,IAAI,KAAKA,WAAU,IAAI;AAAA,EAChE,CAAC;AACL;AACA,MAAM,aAAa,CAAC,MAAM,YAAY,UAAU,CAAC,YAAY,OAAO,IAAI,IAAI,OAAO,IAAI,IAAI;AAC3F,MAAM,yBAAyB,CAAC,QAAQ,KAAK,WAAW,sBAAsB,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ;AAC9G,MAAM,wBAAwB,CAAC,SAAS,KAAK,UAAU,IAAI,EACtD,QAAQ,WAAW,SAAS,EAC5B,QAAQ,WAAW,SAAS,EAC5B,QAAQ,WAAW,SAAS;AACjC,MAAM,WAAW,CAAC,QAAQ,OAAO,QAAQ,YAAY,SAAS,GAAG;AACjE,MAAM,SAAS,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC9C,MAAM,WAAW,CAAC,QAAQ,aAAa,GAAG,MAAM;AAChD,MAAM,gBAAgB,CAAC,QAAQ,cAAc,GAAG,KAAK,OAAO,KAAK,GAAG,EAAE,WAAW;AACjF,MAAM,SAAS,OAAO;AACtB,MAAM,UAAU,OAAO;AACvB,MAAM,SAAS,CAAC,MAAM,SAAS,QAAQ,GAAG;AAC1C,IAAI;AACJ,MAAM,gBAAgB,MAAM;AAExB,SAAQ,gBACH,cACG,OAAO,eAAe,cAChB,aACA,OAAO,SAAS,cACZ,OAGI,OAAO,WAAW,cACd,SACA,OAAA;AAC9B;AACA,SAAS,WAAW,SAAS;AACzB,SAAO,QACF,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,OAAO,QAAQ,EACvB,QAAQ,MAAM,QAAQ;AAC/B;AACA,SAAS,qBAAqB,OAAO;AACjC,SAAO,MACF,QAAQ,4BAA4B,OAAO,EAC3C,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM;AAC7B;AACA,SAAS,uBAAuB,MAAM;AAGlC,SAAO,KAAK,QAAQ,0BAA0B,CAAC,GAAG,UAAU,cAAc,GAAG,QAAQ,KAAK,qBAAqB,SAAS,CAAC,GAAG;AAE5H,SAAO,KAAK,QAAQ,0BAA0B,CAAC,GAAG,UAAU,cAAc,GAAG,QAAQ,KAAK,qBAAqB,SAAS,CAAC,GAAG;AAE5H,QAAM,sBAAsB;AAC5B,MAAI,oBAAoB,KAAK,IAAI,GAAG;AAChC,QAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,WAAK,wIACyE;AAAA,IAClF;AAEA,WAAO,KAAK,QAAQ,wBAAwB,aAAa;AAAA,EAC7D;AAEA,QAAM,uBAAuB;AAAA;AAAA,IAEzB;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ,uBAAqB,QAAQ,CAAA,YAAW;AACpC,WAAO,KAAK,QAAQ,SAAS,mBAAmB;AAAA,EACpD,CAAC;AACD,SAAO;AACX;AACA,MAAM,iBAAiB,OAAO,UAAU;AACxC,SAAS,OAAO,KAAK,KAAK;AACtB,SAAO,eAAe,KAAK,KAAK,GAAG;AACvC;AASA,MAAM,UAAU,MAAM;AACtB,MAAM,aAAa,CAAC,QAAQ,OAAO,QAAQ;AAC3C,MAAM,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,MAAM,YAAY,CAAC,QAAQ,OAAO,QAAQ;AAG1C,MAAM,WAAW,CAAC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AAEzD,MAAM,YAAY,CAAC,QAAQ;AACvB,SAAO,SAAS,GAAG,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK;AACxE;AACA,MAAM,iBAAiB,OAAO,UAAU;AACxC,MAAM,eAAe,CAAC,UAAU,eAAe,KAAK,KAAK;AACzD,MAAM,gBAAgB,CAAC,QAAQ,aAAa,GAAG,MAAM;AAErD,MAAM,kBAAkB,CAAC,QAAQ;AAC7B,SAAO,OAAO,OACR,KACA,QAAQ,GAAG,KAAM,cAAc,GAAG,KAAK,IAAI,aAAa,iBACpD,KAAK,UAAU,KAAK,MAAM,CAAC,IAC3B,OAAO,GAAG;AACxB;AACA,SAAS,KAAK,OAAOC,aAAY,IAAI;AACjC,SAAO,MAAM,OAAO,CAAC,KAAK,MAAM,UAAW,UAAU,IAAI,MAAM,OAAO,MAAMA,aAAY,MAAO,EAAE;AACrG;AACA,MAAM,QAAQ;AACd,SAAS,kBAAkB,QAAQ,QAAQ,GAAG,MAAM,OAAO,QAAQ;AAC/D,QAAM,QAAQ,OAAO,MAAM,OAAO;AAClC,MAAI,QAAQ;AACZ,QAAM,MAAM,CAAA;AACZ,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,aAAS,MAAM,CAAC,EAAE,SAAS;AAC3B,QAAI,SAAS,OAAO;AAChB,eAAS,IAAI,IAAI,OAAO,KAAK,IAAI,SAAS,MAAM,OAAO,KAAK;AACxD,YAAI,IAAI,KAAK,KAAK,MAAM;AACpB;AACJ,cAAM,OAAO,IAAI;AACjB,YAAI,KAAK,GAAG,IAAI,GAAG,IAAI,OAAO,IAAI,OAAO,IAAI,EAAE,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE;AACtE,cAAM,aAAa,MAAM,CAAC,EAAE;AAC5B,YAAI,MAAM,GAAG;AAET,gBAAM,MAAM,SAAS,QAAQ,cAAc;AAC3C,gBAAM,SAAS,KAAK,IAAI,GAAG,MAAM,QAAQ,aAAa,MAAM,MAAM,KAAK;AACvE,cAAI,KAAK,WAAW,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,MAAM,CAAC;AAAA,QAC5D,WACS,IAAI,GAAG;AACZ,cAAI,MAAM,OAAO;AACb,kBAAM,SAAS,KAAK,IAAI,KAAK,IAAI,MAAM,OAAO,UAAU,GAAG,CAAC;AAC5D,gBAAI,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC;AAAA,UAC1C;AACA,mBAAS,aAAa;AAAA,QAC1B;AAAA,MACJ;AACA;AAAA,IACJ;AAAA,EACJ;AACA,SAAO,IAAI,KAAK,IAAI;AACxB;AAcA,SAAS,gBAAgB;AACrB,QAAM,6BAAa,IAAA;AACnB,QAAM,UAAU;AAAA,IACZ;AAAA,IACA,GAAG,OAAO,SAAS;AACf,YAAM,WAAW,OAAO,IAAI,KAAK;AACjC,YAAM,QAAQ,YAAY,SAAS,KAAK,OAAO;AAC/C,UAAI,CAAC,OAAO;AACR,eAAO,IAAI,OAAO,CAAC,OAAO,CAAC;AAAA,MAC/B;AAAA,IACJ;AAAA,IACA,IAAI,OAAO,SAAS;AAChB,YAAM,WAAW,OAAO,IAAI,KAAK;AACjC,UAAI,UAAU;AACV,iBAAS,OAAO,SAAS,QAAQ,OAAO,MAAM,GAAG,CAAC;AAAA,MACtD;AAAA,IACJ;AAAA,IACA,KAAK,OAAO,SAAS;AACjB,OAAC,OAAO,IAAI,KAAK,KAAK,CAAA,GACjB,QACA,IAAI,CAAA,YAAW,QAAQ,OAAO,CAAC;AACpC,OAAC,OAAO,IAAI,GAAG,KAAK,CAAA,GACf,MAAA,EACA,IAAI,CAAA,YAAW,QAAQ,OAAO,OAAO,CAAC;AAAA,IAC/C;AAAA,EAAA;AAEJ,SAAO;AACX;AAEA,MAAM,uBAAuB,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,QAAQ,GAAG;AAEnE,SAAS,SAAS,KAAK,KAAK;AAExB,MAAI,qBAAqB,GAAG,KAAK,qBAAqB,GAAG,GAAG;AACxD,UAAM,IAAI,MAAM,eAAe;AAAA,EACnC;AACA,QAAM,QAAQ,CAAC,EAAE,KAAK,KAAK;AAC3B,SAAO,MAAM,QAAQ;AACjB,UAAM,EAAE,KAAAC,MAAK,KAAAC,KAAAA,IAAQ,MAAM,IAAA;AAE3B,WAAO,KAAKD,IAAG,EAAE,QAAQ,CAAA,QAAO;AAC5B,UAAI,QAAQ,aAAa;AACrB;AAAA,MACJ;AAGA,UAAI,SAASA,KAAI,GAAG,CAAC,KAAK,CAAC,SAASC,KAAI,GAAG,CAAC,GAAG;AAC3CA,aAAI,GAAG,IAAI,MAAM,QAAQD,KAAI,GAAG,CAAC,IAAI,CAAA,IAAK,OAAA;AAAA,MAC9C;AACA,UAAI,qBAAqBC,KAAI,GAAG,CAAC,KAAK,qBAAqBD,KAAI,GAAG,CAAC,GAAG;AAIlEC,aAAI,GAAG,IAAID,KAAI,GAAG;AAAA,MACtB,OACK;AAED,cAAM,KAAK,EAAE,KAAKA,KAAI,GAAG,GAAG,KAAKC,KAAI,GAAG,GAAG;AAAA,MAC/C;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;ACpRO,SAASC,aAAW,SAAS,kBAAkB,QAAQ,sBAAsB,mBAAmB,QAAQ,uBAAuB;AACpI,QAAM,aAAa;AAAA,IACjB,WAAW,CAAA;AAAA,IACX,MAAM,CAAA;AAAA,IACN,MAAM,CAAA;AAAA,EAAC;AAET,MAAI,QAAQ,KAAK;AACf,eAAW,UAAU,MAAM;AAAA,EAC7B;AACA,MAAI,QAAQ,QAAQ,iBAAiB;AACnC,eAAW,UAAU,OAAO;AAAA,EAC9B;AACA,MAAI,QAAQ,KAAK;AACf,UAAM,iBAAiB,iBAAiB,OAAO;AAC/C,eAAW,OAAO,WAAW,KAAK;AAAA,MAChC;AAAA,MACA,iBAAiB,OAAO;AAAA,IAAA;AAE1B,eAAW,OAAO,WAAW,KAAK;AAAA,MAChC,SAAS,OAAO;AAAA,MAChB,mBAAmB,OAAO;AAAA,MAC1B;AAAA,QACE;AAAA,QACqF,QAAQ,QAAQ,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI;AAAA,MAAA;AAAA,IACtI;AAAA,EAEJ;AACA,SAAO;AACT;AACA,SAAS,gBAAgB,SAAS;AAChC,QAAM,gCAAgC,IAAA;AACtC,aAAW,UAAU,SAAS;AAC5B,QAAI,CAAC,OAAO,UAAU;AACpB,cAAQ,KAAK,mEAAmE;AAChF;AAAA,IACF;AACA,UAAM,CAAC,UAAU,MAAM,IAAI,OAAO,SAAS,MAAM,GAAG;AACpD,QAAI,YAAY,WAAW,OAAO,oBAAoB,CAAC,UAAU,IAAI,QAAQ,IAAI;AAC/E,gBAAU,IAAI,UAAU,MAAM;AAAA,IAChC;AACA,cAAU,IAAI,OAAO,UAAU,MAAM;AAAA,EACvC;AACA,SAAO;AACT;AACA,SAAS,iBAAiB,SAAS;AACjC,MAAI,CAAC,QAAQ,eAAe;AAC1B,WAAO,CAAA;AAAA,EACT;AACA,QAAM,QAAQ,CAAA;AACd,QAAM,YAAY,gBAAgB,QAAQ,OAAO;AACjD,aAAW,CAAC,UAAU,MAAM,KAAK,UAAU,WAAW;AACpD,UAAM,OAAO,gBAAgB,UAAU,QAAQ,OAAO;AACtD,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,UAAM,KAAK,IAAI;AACf,QAAI,QAAQ,iBAAiB,QAAQ,kBAAkB,OAAO,QAAQ,MAAM,CAAC,EAAE,aAAa,aAAa;AACvG,YAAM;AAAA,QACuE,EAAE,CAAC,QAAQ,GAAG,GAAG,WAAW,KAAK,aAAa,MAAM,KAAK,MAAM,UAAU,YAAA;AAAA,MAAY;AAAA,IAEpK;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,gBAAgB,UAAU,QAAQ,SAAS,oBAAoB,QAAQ,mBAAmB,QAAQ,qBAAA,IAAyB,QAAQ;AAC1I,QAAMC,cAAa,QAAQ,kBAAkB,OAAO,MAAM,iBAAiB;AAC3E,MAAI,CAACA,aAAY;AACf,WAAO;AAAA,EACT;AACA,QAAM,OAAO;AAAA,IACX,YAAYA,WAAU,IAAIA,cAAa,QAAQ,QAAQ,SAASA,WAAU;AAAA,IAC1E,QAAQ,mBAAmB,wBAAwB,OAAO,IAAI,CAAA;AAAA,EAAC;AAEjE,SAAoE,EAAE,CAAC,QAAQ,GAAG,GAAG,YAAY,QAAQ,IAAI,KAAK,aAAa,MAAM,UAAU,SAAA;AACjJ;AACA,SAAS,gBAAgB,SAAS,QAAQ,QAAQ,mBAAmB;AACnE,QAAM,eAAe,QAAQ;AAAA,IAC3B,OAAO,OAAO,IAAI,OAAO,EAAE,MAAM,QAAQ,MAAM,QAAQ,iBAAiB,KAAK,GAAG;AAAA,EAAA;AAElF,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AACA,SAAO,UAAU,QAAQ,QAAQ,SAAS,aAAa,IAAI,GAAG,wBAAwB,OAAO,CAAC;AAChG;AACA,SAAS,iBAAiB,SAAS,OAAO,gBAAgB,OAAO,GAAG;AAClE,MAAI,CAAC,MAAM;AACT,WAAO,CAAA;AAAA,EACT;AACA,SAAO,CAA0C,EAAE,CAAC,QAAQ,GAAG,GAAG,YAAY,KAAK,aAAa,MAAM;AACxG;AACA,SAAS,wBAAwB,SAAS,QAAQ,QAAQ,mBAAmB;AAC3E,QAAM,eAAe,QAAQ;AAAA,IAC3B,OAAO,OAAO,IAAI,OAAO,EAAE,MAAM,QAAQ,MAAM,QAAQ,iBAAiB,KAAK,GAAG;AAAA,EAAA;AAElF,QAAM,oBAAoB,cAAc,SAAS,CAAA;AACjD,QAAM,SAAS,CAAA;AACf,aAAW,SAAS,QAAQ,iBAAiB,OAAO,CAAC,MAAM,KAAK,iBAAiB,GAAG;AAClF,WAAO,KAAK,MAAM,CAAA;AAClB,eAAW,OAAOb,UAAQ,kBAAkB,KAAK,CAAC,GAAG;AACnD,aAAO,KAAK,EAAE,KAAK,OAAO,EAAE;AAAA,IAC9B;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,SAAS,SAAS,OAAO,gBAAgB,OAAO,GAAG;AAC1D,MAAI,CAAC,MAAM;AACT,WAAO,CAAA;AAAA,EACT;AACA,SAAO;AAAA,IAC+C,EAAE,CAAC,QAAQ,GAAG,GAAG,eAAe,UAAU,UAAU,SAAS,KAAA;AAAA,EAAK;AAE1H;AACA,SAAS,mBAAmB,SAAS,kBAAkB,QAAQ,sBAAsB;AACnF,MAAI,CAAC,iBAAiB;AACpB,WAAO,CAAA;AAAA,EACT;AACA,SAAO;AAAA,IAC+E,EAAE,CAAC,QAAQ,GAAG,GAAG,WAAW,UAAU,aAAa,SAAS,iBAAiB,eAAe,EAAA;AAAA,EAAE;AAEtL;AACA,SAAS,sBAAsB,SAAS,WAAW,kBAAkB,QAAQ,sBAAsB;AACjG,QAAM,mBAAmB,UAAU,OAAO,CAAC,WAAW,UAAU,WAAW,eAAe;AAC1F,SAAO,iBAAiB;AAAA,IACtB,CAAC,YAGG;AAAA,MACF,CAAC,QAAQ,GAAG,GAAG,eAAe,MAAM;AAAA,MACpC,UAAU;AAAA,MACV,SAAS,iBAAiB,MAAM;AAAA,IAAA;AAAA,EAClC;AAEJ;AACA,SAAS,iBAAiB,MAAM,IAAI;AAClC,SAAO,IAAI,QAAQ,MAAM,GAAG;AAC9B;AACA,SAASA,UAAQ,OAAO;AACtB,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AC1IO,SAAS,WAAW,KAAK,OAAO,SAAS,IAAI,UAAS,GAAI;AAC/D,MAAI,SAAS,KAAK,KAAK,YAAY,OAAO,EAAE,gBAAgB,KAAI,CAAE,GAAG;AACnE,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,aAAa,KAAK,OAAO,MAAM,EAAE;AAAA,EAC1C,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AACO,SAAS,YAAY,KAAK,OAAO,SAAS,IAAI,UAAS,GAAI;AAChE,MAAI;AACF,WAAO,aAAa,KAAK,OAAO,MAAM;AAAA,EACxC,QAAQ;AACN;AAAA,EACF;AACF;AACA,SAAS,qBAAqB,OAAO;AACnC,MAAI,CAAC,SAAS,KAAK,GAAG;AACpB,WAAO,OAAO,CAAA,GAAI,KAAK;AAAA,EACzB;AACA,MAAI,MAAM,CAAC,MAAM,KAAK;AACpB,UAAM,EAAE,UAAU,MAAM,QAAQ,KAAI,IAAK,UAAU,KAAK;AACxD,WAAO,EAAE,MAAM,OAAO,WAAW,MAAM,GAAG,KAAI;AAAA,EAChD;AACA,SAAO,EAAE,MAAM,MAAK;AACtB;AACA,SAAS,aAAa,KAAK,OAAO,QAAQ;AACxC,QAAM,aAAa,qBAAqB,KAAK;AAC7C,QAAM,WAAW,IAAI,OAAO,QAAQ,IAAI,4BAA4B,YAAY,MAAM,CAAC;AACvF,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACT;AACA,SAAO,IAAI,OAAO,QAAQ,KAAK;AACjC;AACO,SAAS,iBAAiB,KAAK,QAAQ,QAAQ,IAAI,OAAO,aAAa,OAAO;AACnF,QAAM,OAAO,IAAI,iBAAiB,KAAK;AACvC,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,QAAM,YAAY;AAAA,IAChB;AAAA,IACA,QAAQ;AAAA,MACN,CAAA;AAAA,MACA,MAAM;AAAA,MACN,IAAI,0BAA0B,MAAM;AAAA,IAC1C;AAAA,IACI,UAAU,MAAM;AAAA,IAChB,OAAO,MAAM;AAAA,IACb,MAAM,MAAM;AAAA,IACZ,MAAM,MAAM;AAAA,IACZ,MAAM,MAAM;AAAA,EAChB;AACE,QAAM,OAAO,WAAW,KAAK,WAAW,MAAM;AAC9C,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC/C;ACrDA,SAAS,kBAAkB,KAAK,QAAQ,SAAS,IAAI,UAAA,GAAa,UAAU,IAAI,WAAA,GAAc,UAAU,IAAI,cAAc;AACxH,QAAM,gBAAgB,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM,KAAK,CAAe;AAC/E,QAAM,mBAAmB,OAAO,OAAO,QAAQ,YAAY,OAAO,KAAK,oBAAoB,CAAA;AAC3F,MAAI,CAAC,WAAW,QAA0B,MAA2B;AAInE,YAAQ,KAAK,6DAA6D;AAAA,EAC5E;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,KAAmC;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,IAAI,eAAe;AAAA,IAClC,eAAe,IAAI,eAAe;AAAA,IAClC,kBAAyC,IAAI,eAAe;AAAA,IAC5D,kBAAkB,IAAI;AAAA,IACtB,iBAAiB,MAAM,IAAI,OAAO,aAAa;AAAA,IAC/C,oBAAoB,MAAM,cAAc;AAAA,IACxC,qBAAqB,MAAM,cAAc,OAAO;AAAA,IAChD,gBAAgB,CAAC,UAAU,YAAY,KAAK,KAAK;AAAA,IACjD,mBAAmB,CAAC,SAAS,UAAU,iBAAiB,KAAK,SAAS,KAAK;AAAA,IAC3E,sBAAsB,MAAM;AAC1B,UAAI;AACF,eAAO,OAAO,CAAA,GAAI,IAAI,OAAO,QAAQ,EAAE,OAAO,CAAA,GAAI,GAAG,EAAE,MAAM,IAAI,OAAO,aAAa,MAAM,MAAM;AAAA,MACnG,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EAAA;AAEJ;AACO,SAAS,WAAW,KAAK,EAAE,MAAM,MAAM,OAAO,MAAM,MAAM,QAAQ;AACvE,SAAOc,aAAY,kBAAkB,KAAK,EAAE,KAAK,MAAM,IAAA,CAAK,CAAC;AAC/D;ACjBA,SAAS,oBAAoB,OAAO;AAClC,SAAO,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE;AAAA,IACtD,CAAC,QAAQ,EAAE,QAAQ,OAAO,QAAQ;AAAA,EACtC;AACA;AAKA,SAAS,8BAA8B,QAAQ,GAAG;AAChD,SAAO,CAAC,SAAS;AACf,UAAM,UAAU,OAAO,SAAS,WAAW,OAAO,KAAK;AACvD,UAAM,iBAAiB,QAAQ,MAAM,GAAG,EAAE,CAAC;AAC3C,UAAM,QAAQ,eAAe,MAAM,GAAG;AACtC,QAAI,MAAM,CAAC,MAAM,IAAI;AACnB,YAAM,MAAK;AAAA,IACb;AACA,WAAO,MAAM,SAAS,QAAQ,MAAM,KAAK,KAAK,KAAK;AAAA,EACrD;AACF;ACxCA,MAAM,YAAY;AAGX,SAAS,mBAAmB,WAAW;AAC5C,MAAI,OAAO,cAAc,UAAU;AACjC,WAAO;AAAA,EACT;AACA,MAAI,aAAa,MAAM;AACrB,WAAO,UAAU,SAAA;AAAA,EACnB;AACA,SAAO;AACT;AACO,SAAS,iBAAiB,OAAO;AACtC,SAAO,mBAAmB,OAAO,UAAU,WAAW,OAAO,OAAO,KAAK,EAAE,MAAM,SAAS,EAAE,CAAC;AAC/F;AAIA,MAAM,qBAAqB,8BAA8B,CAAC;AACnD,MAAM,yBAAyB,CAAC,SAAS,mBAAmB,IAAI;AAChE,MAAM,yBAAyB,CAAC,SAAS,KAAK,MAAM,SAAS,EAAE,GAAG,CAAC,KAAK;AAC/E,SAAS,eAAe,OAAO;AAC7B,SAAO,OAAO,UAAU,WAAW,OAAO,KAAK,IAAI,OAAO,OAAO,QAAQ,OAAO,QAAQ,EAAE;AAC5F;AACO,SAAS,mBAAmB,OAAO;AACxC,QAAM,QAAQ,eAAe,KAAK;AAClC,MAAI,MAAM,CAAC,MAAM,KAAK;AACpB,WAAO,uBAAuB,KAAK;AAAA,EACrC;AACA,QAAM,WAAW,uBAAuB,KAAK;AAC7C,MAAI,UAAU;AACZ,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,OAAO,MAAM;AAC5C,WAAO,uBAAuB,OAAO,MAAM,IAAI,CAAC;AAAA,EAClD;AACA,SAAO;AACT;ACpCO,SAAS,4BAA4B,eAAe;AACR;AAC/C,WAAO,CAAC,cAAc,mBAAmB,SAAS;AAAA,EACpD;AAKF;AACO,SAAS,mCAAmC,QAAQ;AAClC;AACrB,WAAO,CAAC,UAAU;AAAA,EACpB;AAYF;ACxBO,MAAM,cAAe;AAAA,EAC1B;AAAA,EACA;AACF;AACO,MAAM,gBAAgB;AAAA,EAC3B,IAAI;AAAA,IACF;AAAA,MACE,KAAK;AAAA,MACL,MAAM,MAAM;AAAA,QAAO;AAAA;AAAA,MAAqB;AAAA,MACxC,OAAO;AAAA,IACb;AAAA,EACA;AAAA,EACE,IAAI;AAAA,IACF;AAAA,MACE,KAAK;AAAA,MACL,MAAM,MAAM;AAAA,QAAO;AAAA;AAAA,MAAqB;AAAA,MACxC,OAAO;AAAA,IACb;AAAA,EACA;AACA;AACO,MAAM,iBAAiB,CAAA;AACvB,MAAM,oBAAoB;AAAA,EAC/B;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AAAA,EACE;AAAA,IACE,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,EACd;AACA;ACjCA,MAAM,oCAAoC,IAAA;AAC1C,MAAM,SAAS,WAAW,CAAC,KAAK,KAAK,UAAU;AAC7C,MAAI,QAAQ,cAAc,QAAQ,qBAAqB,QAAQ,iBAAiB;AAC9E,QAAI,GAAG,MAAM,OAAO,IAAI;AACxB,aAAS,OAAO,IAAI,GAAG,CAAC;AACxB,WAAO;AAAA,EACT;AACF,CAAC;AACD,eAAsB,mBAAmBC,iBAAgB;AACvD,QAAM,UAAU,WAAA;AAChB,MAAI,iBAAiB,EAAE,UAAU,OAAO,IAAI,EAAA;AAC5C,aAAW,cAAcA,iBAAgB;AACvC,UAAM,WAAW,MAAM,WAAA,EAAa,KAAK,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;AAC3E,UAAM,WAAW,WAAW,QAAQ,IAAI,MAAM,QAAQ,eAAe,MAAM,SAAA,CAAU,IAAI;AACzF,qBAAiB,OAAO,OAAO,IAAI,GAAG,UAAU,cAAc;AAAA,EAChE;AACA,iBAAe,mBAAmB;AAClC,SAAO;AACT;AACA,MAAM,WAAW,CAAC,QAAQ,aAAa,GAAG,MAAM;AAChD,eAAeC,oBAAkB,QAAQ,QAAQ;AAC/C,QAAM,UAAU,WAAA;AAChB,MAAI;AACF,UAAM,SAAS,MAAM,QAAQ,eAAe,OAAO,IAAI,EAAE,KAAK,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;AAChG,WAAO,WAAW,MAAM,IAAI,MAAM,QAAQ,eAAe,MAAM,OAAO,MAAM,CAAC,IAAI;AAAA,EACnF,SAAS,GAAG;AACV,UAAM,IAAI,MAAM,0BAA0B,MAAM,QAAQ,EAAE,OAAO;AAAA,EACnE;AACF;AAYA,eAAsB,8BAA8B,QAAQ,UAAU,IAAI;AACxE,QAAM,UAAU,WAAA;AAChB,QAAM,WAAW,MAAM,QAAQ,IAAI,QAAQ,IAAI,OAAO,WAAW;AAC/D,UAAM,SAAS,kBAAkB,MAAM;AACvC,UAAM,YAAY,UAAU,MAAM,QAAQ,eAAe,MAAMA,oBAAkB,QAAQ,MAAM,CAAC;AAChG,QAAI,CAAC,UAAU,OAAO,UAAU,OAAO;AACrC,oBAAc,IAAI,OAAO,KAAK,EAAE,KAAK,KAAK,IAAA,IAAQ,QAA0B,KAAK,OAAO,UAAA,CAAW;AAAA,IACrG;AACA,WAAO;AAAA,EACT,CAAC,CAAC;AACF,QAAM,SAAS,CAAA;AACf,aAAW,WAAW,UAAU;AAC9B,aAAS,SAAS,MAAM;AAAA,EAC1B;AACA,SAAO;AACT;AACA,SAAS,kBAAkB,QAAQ;AAIjC,MAAI,OAAO,UAAU,OAAO;AAC1B;AAAA,EACF;AACA,QAAMC,SAAQ,cAAc,IAAI,OAAO,GAAG;AAC1C,MAAIA,UAAS,MAAM;AACjB;AAAA,EACF;AACA,SAAwCA,OAAM,MAAM,KAAK,IAAA,IAAQA,OAAM,QAAQ;AACjF;ACvEO,SAAS,cAAc,MAAM;AAClC,SAAO,QAAQ,QAAQ,YAAY,QAAQ,UAAU,OAAO,KAAK,SAAS;AAC5E;AACO,SAASC,cAAY,MAAM;AAChC,QAAM,SAAS,cAAc,IAAI;AACjC,SAAO,gBAAgB,SAAS,OAAO,aAAa;AACtD;ACJO,SAAS,eAAe,SAAS,OAAO;AAC7C,MAAI,CAAC,SAAS;AACZ,YAAO,iCAAsB,GAAE,OAAO;AAAA,EACxC;AACA,SAAO,QAAQ,QAAQ,OAAO;AAChC;AACO,SAAS,iBAAiB,SAAS;AACxC,QAAM,wBAAwB,eAAe,OAAO,EAAE;AACtD,QAAM,SAAS,yBAAyB,CAAA;AACxC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,CAAC,CAAC;AAAA,IACX,WAAW,OAAO,aAAa;AAAA,EAAA;AAEnC;AACO,SAAS,oBAAoB,QAAQ;AAC1C,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,OAAO,SAAS,MAAM,IAAI,SAAS,OAAO,MAAM,QAAQ,OAAO,EAAE;AAAA,IACvE,MAAM,CAAC,SAAS,MAAM,KAAK,OAAO,cAAc;AAAA,EAAA;AAEpD;AACO,SAAS,QAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;ACzBO,SAAS,kBAAkB,SAAS,MAAM,YAAY;AAC3D,QAAM,kBAAkB,CAAC,SAAS,OAAO,OAAO,QAAQ,eAAe,EAAE;AACzE,QAAM,UAAU,QAAQ;AAAA,IACtB,CAAC,WAAW,gBAAgB,OAAO,MAAM,MAAM,QAAQ,QAAQ,OAAO,OAAO,EAAE,SAAS,IAAI;AAAA,EAAA;AAE9F,MAAI,QAAQ,UAAU,GAAG;AACvB,WAAO,QAAQ,CAAC,GAAG;AAAA,EACrB;AACA;AAAA;AAAA,IAEE,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,UAAU,GAAG,QAAQ,QAAQ,KAAK,CAAC,MAAM,EAAE,mBAAmB,SAAS,IAAI,KAAK,EAAE,aAAa,GAAG;AAAA;AAErI;AACO,SAAS,iBAAiB,eAAe,KAAK,QAAQ;AAC3D,QAAM,OAAO,kBAAkB,KAAK,CAAC,MAAM,EAAE,SAAS,MAAM;AAC5D,QAAM,SAAS,gBAAgB,MAAM,GAAG,UAAU,MAAM,UAAU,MAAM,SAAS,KAAK,CAAC,MAAM,MAAM,IAAI,IAAI;AAC3G,MAAI,CAAC,QAAQ;AAEX;AAAA,EACF;AACA,MAAI,YAAY,QAAQ,EAAE,QAAQ,KAAA,CAAM,GAAG;AACzC,WAAO;AAAA,EACT;AACA,SAAO,IAAI,WAAW,OAAO;AAC/B;ACaO,SAAS,0BAA0B,MAAM;AAC9C,SAAO,kBAAkB,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,mBAAmB,SAAS,IAAI,CAAC,GAAG;AAC/E;AACO,MAAM,oBAAoB,CAAC,WAAW,YAAY,SAAS,UAAU,EAAE;AACvE,MAAM,yBAAyB,CAAC,WAAW,kBAAkB,MAAM,IAAI,SAAS;;ACjChF,MAAM,mBAAmB,MAAM;AAAA,EACpC;AAAA,EACA,MAAM;AACR;AACO,MAAM,oBAAoB,MAAM,SAAS,wBAAwB,MAAM,EAAE;AAChF,SAAS,cAAc,EAAE,mBAAmB,cAAc,cAAc,aAAa;AACnF,QAAM,2BAA2B,KAAA;AACjC,SAAO,UAAU,aAAa,mBAAwB;AAAA,IACpD,MAAM;AAAA,IACN,UAAU;AAAA,IACV,SAAS,IAAI,KAAK,KAAK,QAAQ,KAAK,QAAA,IAAY,GAAG,CAAC;AAAA,IACpD,UAAU,oBAAoB,SAAS;AAAA,IACvC,QAAQ,gBAAgB;AAAA,IACxB,QAAQ,qBAAqB;AAAA,EAAA,CAC9B;AACH;AACO,SAAS,sBAAsB,MAAM,SAAS,eAAe;AAClE,QAAM,OAAO,cAAc,OAAO;AAClC,QAAM,cAAc,eAAe,IAAI;AACvC,QAAM,eAAe,iBAAiB,IAAI;AAC1C,QAAM,sBAAsB,iBAAA;AAC5B,QAAM,eAAe,cAAc,YAAY;AAC/C,QAAM,8BAA8B,IAAA;AACpC,QAAM,kBAAkB,CAAC,WAAW,oBAAoB,MAAM,MAAM;AACpE,QAAM,sBAAsB,CAAC,WAAW,iBAAiB,YAAY,eAAe,cAAc,EAAE,gBAAgB,KAAA,CAAM,GAAG,MAAM;AACnI,QAAM,UAAU,oBAAoB,MAAM,YAAY,OAA2C;AACjG,QAAM,iBAAiB,kBAAA;AACvB,MAAsD,KAAK,YAAY,OAAO,SAAS,UAAU,cAAc;AAC7G,mBAAe,QAAQ,KAAK,WAAW,MAAM,QAAQ,SAAS;AAAA,EAChE;AACA,QAAM,yBAAyB,OAAO,WAAW;AAC/C,UAAM,UAAU,gBAAgB,MAAM,GAAG,aAAa,CAAA;AACtD,QAAI,CAAC,QAAQ,SAAS,MAAM,GAAG;AAC7B,cAAQ,KAAK,MAAM;AAAA,IACrB;AACA,eAAW,KAAK,SAAS;AACvB,YAAM,MAAM,MAAM,KAAK,eAAe,MAAM,8BAA8B,GAAG,cAAc,CAAC,CAAC,CAAC;AAC9F,WAAK,mBAAmB,GAAG,GAAG;AAAA,IAChC;AAAA,EACF;AACA,QAAM,yBAAyB,OAAO,WAAW;AAC/C,QAAI,UAAU,kBAAkB,OAAO;AACrC;AAAA,IACF;AACA,UAAM,UAAU,gBAAgB,MAAM,GAAG,YAAY,KAAK,EAAE,iBAAiB,WAAA;AAC7E,UAAM,SAA8E;AACpF,UAAM,MAAM,QAAQ,QAAQ,UAAuBC,oCAAuB,MAAM,GAAG,QAAQ,eAAe;AAC1G,UAAM,WAAW,MAAM,OAAO,KAAK,EAAE,SAAS;AAC9C,eAAW,KAAK,OAAO,KAAK,QAAQ,GAAG;AACrC,WAAK,mBAAmB,GAAG,SAAS,CAAC,CAAC;AAAA,IACxC;AAAA,EACF;AACA,QAAM,MAAM;AAAA,IACV;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,cAAc,oBAAoB,YAAY,YAAY;AAAA,IAC1D,oBAAoB,YAAY,sBAAsB;AAAA,IACtD,qBAAoC;AAAA,IACpC,kBAAkB,MAAM;AAAA,IACxB,WAAW,MAAM,MAAM,KAAK,MAAM;AAAA,IAClC,WAAW,OAAO,WAAW;AAC3B,YAAM,YAAY,IAAI,UAAA;AACtB,UAAI,WAAW,aAAa,CAAC,kBAAkB,MAAM,GAAG;AACtD;AAAA,MACF;AACA,UAAI,MAAM,KAAK,MAAM,GAAG;AACtB,aAAK,OAAO,QAAQ;AAAA,MACtB,OAAO;AACL,aAAK,SAAS;AAAA,MAChB;AACA,YAAM,KAAK,SAAS,uBAAuB,EAAE,WAAW,QAAQ,WAAW;AAC3E,qBAAe,QAAQ;AAAA,IACzB;AAAA,IACA,kBAAkB,OAAO,WAAW;AAClC,UAAI,CAAC,kBAAkB,MAAM,GAAG;AAC9B;AAAA,MACF;AACA,UAAI,QAAQ,kBAAkB;AAC9B,UAAI,QAAQ,yBAAyB,IAAI,QAAQ,CAAC,YAAY;AAC5D,YAAI,QAAQ,gCAAgC,YAAY;AACtD,cAAI,gBAAgB,MAAM;AAC1B,gBAAM,IAAI,UAAU,MAAM;AAC1B,cAAI,QAAQ,kBAAkB;AAC9B,kBAAA;AAAA,QACF;AAAA,MACF,CAAC;AACsF;AACrF,cAAM,IAAI,QAAQ,gCAAA;AAAA,MACpB;AAAA,IACF;AAAA,IACA,YAAY,MAAM,MAAM,KAAK,OAAO,EAAE,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAA,IAAM,CAAC;AAAA,IAC9E,iBAAiB,CAAC,WAAW;AAC3B,UAAI,aAAa,aAAa,kBAAkB,MAAM,GAAG;AACvD,qBAAa,QAAQ;AAAA,MACvB;AAAA,IACF;AAAA,IACA,YAAY,CAAC,WAAW;AACtB,UAAI,QAAQ;AACV,eAAO,QAAQ,oBAAoB,MAAM,KAAK,WAAW,KAAK,QAAQ,IAAI,OAAO;AAAA,MACnF;AACA,aAAO,QAAQ,QAAA,GAAW,KAAK,QAAQ,IAAI,OAAO;AAAA,IACpD;AAAA,IACA,cAAc,OAAO,WAAW;AAC9B,UAAI,KAAK,eAAe,QAAQ,IAAI,MAAM,GAAG;AAC3C;AAAA,MACF;AACA,UAAI;AACF,eAAO,IAAI,uBAAuB,QAAkB,MAAM,uBAAuB,MAAM,IAAI,MAAM,uBAAuB,MAAM;AAAA,MAChI,SAAS,GAAG;AACV,gBAAQ,KAAK,uCAAuC,MAAM,KAAK,CAAC;AAAA,MAClE,UAAA;AACE,gBAAQ,IAAI,MAAM;AAAA,MACpB;AAAA,IACF;AAAA,IACA,eAAe;AAAA,EAAA;AAEjB,MAAI,gBAAgB,wBAAwB,KAAK,IAAI;AACrD,SAAO;AACT;AACO,SAAS,mBAAmB,MAAM;AACvC,MAAI,KAAK,aAAa,MAAM;AAC1B,UAAM,IAAI,MAAM,4CAA4C;AAAA,EAC9D;AACA,SAAO,KAAK;AACd;ACzIA,SAAS,mBAAmB,SAAS,gBAAgB;AACnD,QAAM,iBAAiB,CAAA;AACvB,aAAW,CAAC,OAAO,WAAW,KAAK,eAAe,QAAO,GAAI;AAC3D,UAAM,gBAAgB,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,YAAW,MAAO,YAAY,YAAW,CAAE;AACjG,QAAI,eAAe;AACjB,qBAAe,KAAK,EAAE,MAAM,cAAc,MAAM,OAAO,IAAI,QAAQ,eAAe,OAAM,CAAE;AAC1F;AAAA,IACF;AAAA,EACF;AACA,aAAW,CAAC,OAAO,WAAW,KAAK,eAAe,QAAO,GAAI;AAC3D,UAAM,eAAe,YAAY,MAAM,GAAG,EAAE,CAAC,EAAE,YAAW;AAC1D,UAAM,gBAAgB,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,MAAM,GAAG,EAAE,CAAC,EAAE,YAAW,MAAO,YAAY;AAClG,QAAI,eAAe;AACjB,qBAAe,KAAK,EAAE,MAAM,cAAc,MAAM,OAAO,QAAQ,QAAQ,eAAe,OAAM,CAAE;AAC9F;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,qBAAqB,GAAG,GAAG;AAClC,MAAI,EAAE,UAAU,EAAE,OAAO;AACvB,WAAO,EAAE,KAAK,SAAS,EAAE,KAAK;AAAA,EAChC;AACA,SAAO,EAAE,QAAQ,EAAE;AACrB;AACO,SAAS,kBAAkB,SAAS,gBAAgB;AACzD,QAAM,iBAAiB;AAAA,IACrB,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,EAAE,YAAY,EAAE,KAAI,EAAG;AAAA,IACrE;AAAA,EACJ;AACE,SAAO,eAAe,KAAK,oBAAoB,EAAE,GAAG,CAAC,GAAG,QAAQ;AAClE;ACvBA,MAAM,kBAAkB,CAAC,OAAO,eAAmE,UAAU,OAAO,UAAU,KAAM;AACpI,MAAM,iBAAiB,CAAC,OAAO,UAAU,mBAAmB,KAAK;AACjE,MAAM,kBAAkB,CAAC,UAAU,kBAAkB,mBAAmB,oBAAoB,iBAAiB,OAAO,iBAAiB,KAAK,EAAE,CAAC;AAE7I,MAAM,gBAAgB,CAAC,OAAO,MAAM,kBAAkB;AACpD,QAAM,OAAiE,cAAc,OAAO,EAAE,gBAAgB,KAAA,CAAM,EAAE;AACtH,QAAM,UAAU,kBAAkB,IAAI,CAAC,OAAO;AAAA,IAC5C,GAAG;AAAA,IACH,QAAQ,cAAc,EAAE,IAAI,GAAG,UAAU,EAAE;AAAA,EAAA,EAC3C;AACF,SAAO,kBAAkB,SAAS,MAAM,uBAAuB,IAAI,CAAC;AACtE;AACO,MAAM,eAAe,CAAC,OAAO,QAAQ,YAAY;AACtD,MAA0B,CAAC,OAAO;AAChC,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AACA,QAAM,cAAc,eAAe,OAAO;AAC1C,SAAO;AAAA,IACL,QAAQ,MAAM,gBAAgB,OAAO,OAAO,SAAS;AAAA,IACrD,QAAQ,MAA2B,gBAAgB,KAAK;AAAA,IACxD,WAAW,MAAuD;AAAA,IAClE,MAAM,CAAC,SAAS,cAAc,OAAO,MAAM,YAAY,aAAa;AAAA,IACpE,OAAO,CAAC,SAAS,eAAe,OAAO,IAAI;AAAA,EAAA;AAE/C;ACnBO,MAAM,yBAAyB,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI;AAC3D,SAAS,qBAAqB,SAAS;AAC5C,QAAM,UAAU,SAAS,WAAW;AACpC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO;AACT;AACA,MAAM,sBAA+D;AAC9D,SAAS,wBAAwB,KAAK,UAAU,cAAc;AACnE,QAAM,SAAS,UAAA;AACG,eAAa,gBAAA,GAAmB,iBAAiB,OAAO,GAAG,OAAO;AACpF,QAAM,gBAAgB,IAAI,iBAAA;AAC1B,QAAM,wBAAwB,4BAAyC;AACvE,WAAS,4BAA4B,OAAO,QAAQ;AAClD,UAAM,OAAO,iBAAiB,MAAM,QAAQ,OAAO,aAAa,KAAK;AACrE,UAAM,gBAAgB,sBAAsB,MAAM,MAAM,MAAM;AAC9D,QAAI,OAAO,SAAS,aAAa,GAAG;AAClC,YAAM,OAAO;AAAA,IAIf;AAIA,UAAM,OAAO;AACb,WAAO;AAAA,EACT;AACA,QAAM,sBAAsB,mCAAyC;AAgBrE,WAAS,4BAA4B,OAAO,QAAQ;AAClD,UAAM,QAAQ,oBAAoB,OAAO,MAAM;AAC/C,UAAM,WAAW,iBAAiB,KAAK;AACvC,QAAI,UAAU;AACZ,YAAM,gBAAgB,sBAAsB,UAAU,MAAM;AAC5D,UAAI,OAAO,SAAS,aAAa,GAAG;AAClC,cAAM,OAAO;AACb,eAAO;AAAA,MACT;AAOA,YAAM,OAAO;AACb,aAAO;AAAA,IACT;AAIA,UAAM,OAAO,oBAAoB,MAAM,MAAM,IAAI;AACjD,WAAO;AAAA,EACT;AACA,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,OAAO;AAAA,IACP,IAAI,OAAO;AACT,WAAK,UAAU,QAAQ,EAAE;AACzB,aAAO,KAAK;AAAA,IACd;AAAA,IACA,WAAW,EAAE,WAAW,CAAA,GAAI,MAAM,CAAA,GAAI,MAAM,GAAC;AAAA,IAC7C,aAAa;AAAA,MACX,KAAK;AAAA,MACL,MAAM;AAAA,MACN,KAAK;AAAA,IAAA;AAAA,IAEP,mBAAmB,qBAAA;AAAA,IACnB,gBAAgB;AAAA,MACd;AAAA,MACA,kBAAkB,IAAI,OAAO,aAAa,iCAAiC;AAAA,MAC3E,eAAe;AAAA,IAAA;AAAA,IAEjB,WAAW,IAAI;AAAA,IACf,YAAY,IAAI;AAAA,IAChB,YAAY,IAAI;AAAA,IAChB;AAAA,IACA,yBAAyB,MAAM,OAAO,aAAa,MAAM,KAAK,kBAAsB,KAAK,CAAA;AAAA,IACzF,2BAA2B,CAAC,WAAW;AAIrC,aAAO,cAAc,wBAAA,IAA4B,MAAM;AAAA,IACzD;AAAA,IACA,uBAAuB,CAAC,MAAM,WAAW;AACxB,oBAAc,wBAAA;AAc7B,aAAO;AAAA,IACT;AAAA,IACA,6BAA6B,CAAC,OAAO,WAAW;AAC9C,aAAO,uBAAuB,KAAK,IAAI,4BAA4B,OAAO,MAAM,IAAI,4BAA4B,OAAO,MAAM;AAAA,IAC/H;AAAA,EAAA;AAEF,SAAO;AACT;AACA,SAAS,qBAAqB,UAAU,cAAc;AAEpD,SAAO,KAAK,MAAiB,IAAI;AACnC;AACA,eAAsB,iBAAiB,SAAS,QAAQ;AACtD,QAAM,MAAM,mBAAmB,OAAO;AACtC,QAAM,YAAY,IAAI,UAAA;AACtB,MAAI,WAAW,aAAa,CAAC,IAAI,YAAY,CAAC,IAAI,QAAQ,mBAAmB,IAAI,QAAQ,oBAAoB,SAAS;AACpH,WAAO;AAAA,EACT;AACA,QAAM,OAAO,EAAE,WAAW,WAAW,QAAQ,cAAc,IAAI,SAAS,SAAS,QAAA;AACjF,MAAI,WAAW,MAAM,QAAQ,SAAS,2BAA2B,IAAI;AACrE,MAAI,YAAY,QAAQ,OAAiB;AACvC,YAAQ,KAAK,0FAA0F;AAAA,EACzG;AACA,eAAa,KAAK;AAClB,MAAI,kBAAkB,QAAQ,GAAG;AAC/B,aAAS;AAAA,EACX;AACA,QAAM,IAAI,aAAa,MAAM;AAC7B,QAAM,IAAI,iBAAiB,MAAM;AACjC,SAAO;AACT;AACA,SAAS,WAAW,QAAQ,MAAM,YAAY;AACrB;AACrB,WAAO;AAAA,EACT;AAQF;AACO,SAAS,aAAa,SAAS,OAAO;AAC3C,QAAM,eAAe,iBAAiB,OAAO;AAC7C,QAAM,YAAY,aAAa,gBAAgB,OAAO,GAAG,cAAc,OAAO;AAC9E,QAAM,MAAM,mBAAmB,OAAO;AACtC,QAAM,OAAO,SAAS,KAAK,IAAI,QAAQ,MAAM;AAC7C,YAAU,SAAS;AACjB,QAAI,IAAI,WAAW,aAAa,WAAW,CAAC,WAAW,cAAc,MAAM,UAAU,MAAM,IAAI,CAAC,GAAG;AACjG,YAAM,UAAU,OAAA;AAChB,YAAM,UAAU,OAAA;AAChB,YAAM,UAAU,UAAA;AAChB,YAAM,aAAa;AAAA,IACrB;AAAA,EAOF;AACA,aAAW,YAAY,UAAU;AAC/B,QAAI,YAAY,kBAAkB,QAAQ,GAAG;AAC3C,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,IAAI,UAAA,KAAe,IAAI,sBAAsB;AACtD;AACO,SAAS,SAAS,SAAS,IAAI,QAAQ;AACI;AAC9C;AAAA,EACF;AAkBF;AAIO,SAAS,oBAAoB,MAAM,SAAS,eAAe,qBAAqB;AACrF,MAAI,WAAW,OAAO,GAAG;AAEvB,WAAO,MAAM,QAAQ,IAAI;AAAA,EAC3B;AACA,SAAO,MAAM;AAIX,WAAO,WAAW;AAAA,EACpB;AACF;AC/NA,SAAS,eAAe,MAAM,QAAQ,QAAQ;AAC1C,SAAO,EAAE,MAAM,QAAQ,OAAA;AAC3B;AACA,SAAS,eAAe,OAAO,KAAK,QAAQ;AACxC,QAAM,MAAM,EAAE,OAAO,IAAA;AAIrB,SAAO;AACX;AAEA,MAAM,oBAAoB;AAAA;AAAA,EAEtB,gBAAgB;AAAA,EAChB,8BAA8B;AAAA,EAC9B,0CAA0C;AAAA,EAC1C,yBAAyB;AAAA,EACzB,iCAAiC;AAAA,EACjC,0BAA0B;AAAA,EAC1B,4BAA4B;AAAA,EAC5B,mBAAmB;AAAA,EACnB,4BAA4B;AAAA,EAC5B,uBAAuB;AAAA;AAAA,EAEvB,8BAA8B;AAAA,EAC9B,kCAAkC;AAAA,EAClC,6BAA6B;AAAA,EAC7B,6BAA6B;AAAA;AAAA,EAE7B,6BAA6B;AAAA;AAAA,EAE7B,8BAA8B;AAClC;AAIA,MAAM,mCAAmC;AAEzC,MAAMC,kBAAgB;AAAA;AAAA,EAElB,CAAC,kBAAkB,cAAc,GAAG;AAAA,EACpC,CAAC,kBAAkB,4BAA4B,GAAG;AAAA,EAClD,CAAC,kBAAkB,wCAAwC,GAAG;AAAA,EAC9D,CAAC,kBAAkB,uBAAuB,GAAG;AAAA,EAC7C,CAAC,kBAAkB,+BAA+B,GAAG;AAAA,EACrD,CAAC,kBAAkB,wBAAwB,GAAG;AAAA,EAC9C,CAAC,kBAAkB,0BAA0B,GAAG;AAAA,EAChD,CAAC,kBAAkB,iBAAiB,GAAG;AAAA,EACvC,CAAC,kBAAkB,0BAA0B,GAAG;AAAA,EAChD,CAAC,kBAAkB,qBAAqB,GAAG;AAAA;AAAA,EAE3C,CAAC,kBAAkB,4BAA4B,GAAG;AAAA,EAClD,CAAC,kBAAkB,gCAAgC,GAAG;AAAA,EACtD,CAAC,kBAAkB,2BAA2B,GAAG;AAAA,EACjD,CAAC,kBAAkB,2BAA2B,GAAG;AAAA;AAAA,EAEjD,CAAC,kBAAkB,2BAA2B,GAAG;AAAA;AAAA,EAEjD,CAAC,kBAAkB,4BAA4B,GAAG;AACtD;AACA,SAAS,mBAAmB,MAAM,KAAK,UAAU,CAAA,GAAI;AACjD,QAAM,EAAE,QAAQ,UAAU,KAAA,IAAS;AACnC,QAAM,MAAO,QAAQ,IAAI,aAAa,eAChCb,UAAQ,YAAYa,iBAAe,IAAI,KAAK,IAAI,GAAI,QAAQ,CAAA,CAAG,IAC/D;AACN,QAAM,QAAQ,IAAI,YAAY,OAAO,GAAG,CAAC;AACzC,QAAM,OAAO;AACb,MAAI,KAAK;AACL,UAAM,WAAW;AAAA,EACrB;AACA,QAAM,SAAS;AACf,SAAO;AACX;AAEA,SAAS,eAAe,OAAO;AAC3B,QAAM;AACV;AAGA,MAAM,cAAc;AACpB,MAAM,gBAAgB,CAAC,WAAW,YAAY,KAAK,MAAM;AAEzD,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,MAAM,UAAU;AAChB,MAAM,UAAU,OAAO,aAAa,IAAM;AAC1C,MAAM,UAAU,OAAO,aAAa,IAAM;AAC1C,SAAS,cAAc,KAAK;AACxB,QAAM,OAAO;AACb,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,UAAU;AACd,MAAI,cAAc;AAClB,QAAM,SAAS,CAACC,WAAU,KAAKA,MAAK,MAAM,WAAW,KAAKA,SAAQ,CAAC,MAAM;AACzE,QAAM,OAAO,CAACA,WAAU,KAAKA,MAAK,MAAM;AACxC,QAAM,OAAO,CAACA,WAAU,KAAKA,MAAK,MAAM;AACxC,QAAM,OAAO,CAACA,WAAU,KAAKA,MAAK,MAAM;AACxC,QAAM,YAAY,CAACA,WAAU,OAAOA,MAAK,KAAK,KAAKA,MAAK,KAAK,KAAKA,MAAK,KAAK,KAAKA,MAAK;AACtF,QAAM,QAAQ,MAAM;AACpB,QAAM,OAAO,MAAM;AACnB,QAAM,SAAS,MAAM;AACrB,QAAM,aAAa,MAAM;AACzB,QAAM,SAAS,CAAC,WAAW,OAAO,MAAM,KAAK,KAAK,MAAM,KAAK,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM;AACjG,QAAM,cAAc,MAAM,OAAO,MAAM;AACvC,QAAM,cAAc,MAAM,OAAO,SAAS,WAAW;AACrD,WAAS,OAAO;AACZ,kBAAc;AACd,QAAI,UAAU,MAAM,GAAG;AACnB;AACA,gBAAU;AAAA,IACd;AACA,QAAI,OAAO,MAAM,GAAG;AAChB;AAAA,IACJ;AACA;AACA;AACA,WAAO,KAAK,MAAM;AAAA,EACtB;AACA,WAAS,OAAO;AACZ,QAAI,OAAO,SAAS,WAAW,GAAG;AAC9B;AAAA,IACJ;AACA;AACA,WAAO,KAAK,SAAS,WAAW;AAAA,EACpC;AACA,WAAS,QAAQ;AACb,aAAS;AACT,YAAQ;AACR,cAAU;AACV,kBAAc;AAAA,EAClB;AACA,WAAS,UAAU,SAAS,GAAG;AAC3B,kBAAc;AAAA,EAClB;AACA,WAAS,aAAa;AAClB,UAAM,SAAS,SAAS;AACxB,WAAO,WAAW,QAAQ;AACtB,WAAA;AAAA,IACJ;AACA,kBAAc;AAAA,EAClB;AACA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;AAEA,MAAM,MAAM;AACZ,MAAM,MAAM;AACZ,MAAM,oBAAoB;AAC1B,MAAM,iBAAiB;AACvB,SAAS,gBAAgB,QAAQ,UAAU,IAAI;AAC3C,QAAM,WAAW,QAAQ,aAAa;AACtC,QAAM,QAAQ,cAAc,MAAM;AAClC,QAAM,gBAAgB,MAAM,MAAM,MAAA;AAClC,QAAM,kBAAkB,MAAM,eAAe,MAAM,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAM,OAAO;AACxF,QAAM,WAAW,gBAAA;AACjB,QAAM,cAAc,cAAA;AACpB,QAAM,WAAW;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,MAAM;AAAA,EAAA;AAEV,QAAM,UAAU,MAAM;AACtB,QAAM,EAAE,YAAY;AACpB,WAAS,UAAU,MAAM,KAAK,WAAW,MAAM;AAC3C,UAAM,MAAM,QAAA;AACZ,QAAI,UAAU;AACd,QAAI,UAAU;AACd,QAAI,SAAS;AACT,YAAM,MAAM,WAAW,eAAe,IAAI,UAAU,GAAG,IAAI;AAC3D,YAAM,MAAM,mBAAmB,MAAM,KAAK;AAAA,QACtC,QAAQ;AAAA,QACR;AAAA,MAAA,CACH;AACD,cAAQ,GAAG;AAAA,IACf;AAAA,EACJ;AACA,WAAS,SAASC,UAAS,MAAM,OAAO;AACpCA,aAAQ,SAAS,gBAAA;AACjBA,aAAQ,cAAc;AACtB,UAAM,QAAQ,EAAE,KAAA;AAChB,QAAI,UAAU;AACV,YAAM,MAAM,eAAeA,SAAQ,UAAUA,SAAQ,MAAM;AAAA,IAC/D;AACA,QAAI,SAAS,MAAM;AACf,YAAM,QAAQ;AAAA,IAClB;AACA,WAAO;AAAA,EACX;AACA,QAAM,cAAc,CAACA,aAAY;AAAA,IAASA;AAAAA,IAAS;AAAA;AAAA,EAAA;AACnD,WAAS,IAAI,MAAM,IAAI;AACnB,QAAI,KAAK,YAAA,MAAkB,IAAI;AAC3B,WAAK,KAAA;AACL,aAAO;AAAA,IACX,OACK;AACD,gBAAU,kBAAkB,gBAAgB,gBAAA,GAAmB,GAAG,EAAE;AACpE,aAAO;AAAA,IACX;AAAA,EACJ;AACA,WAAS,WAAW,MAAM;AACtB,QAAI,MAAM;AACV,WAAO,KAAK,kBAAkB,WAAW,KAAK,YAAA,MAAkB,SAAS;AACrE,aAAO,KAAK,YAAA;AACZ,WAAK,KAAA;AAAA,IACT;AACA,WAAO;AAAA,EACX;AACA,WAAS,WAAW,MAAM;AACtB,UAAM,MAAM,WAAW,IAAI;AAC3B,SAAK,WAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,kBAAkB,IAAI;AAC3B,QAAI,OAAO,KAAK;AACZ,aAAO;AAAA,IACX;AACA,UAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,WAAS,MAAM,MAAM,MAAM;AAAA,IACtB,MAAM,MAAM,MAAM;AAAA,IACnB,OAAO;AAAA,EAEf;AACA,WAAS,cAAc,IAAI;AACvB,QAAI,OAAO,KAAK;AACZ,aAAO;AAAA,IACX;AACA,UAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,WAAO,MAAM,MAAM,MAAM;AAAA,EAC7B;AACA,WAAS,uBAAuB,MAAMA,UAAS;AAC3C,UAAM,EAAE,gBAAgBA;AACxB,QAAI,gBAAgB,GAA8B;AAC9C,aAAO;AAAA,IACX;AACA,eAAW,IAAI;AACf,UAAM,MAAM,kBAAkB,KAAK,YAAA,CAAa;AAChD,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,sBAAsB,MAAMA,UAAS;AAC1C,UAAM,EAAE,gBAAgBA;AACxB,QAAI,gBAAgB,GAA8B;AAC9C,aAAO;AAAA,IACX;AACA,eAAW,IAAI;AACf,UAAM,KAAK,KAAK,kBAAkB,MAAM,KAAK,KAAA,IAAS,KAAK,YAAA;AAC3D,UAAM,MAAM,cAAc,EAAE;AAC5B,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,eAAe,MAAMA,UAAS;AACnC,UAAM,EAAE,gBAAgBA;AACxB,QAAI,gBAAgB,GAA8B;AAC9C,aAAO;AAAA,IACX;AACA,eAAW,IAAI;AACf,UAAM,MAAM,KAAK,YAAA,MAAkB;AACnC,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,iBAAiB,MAAMA,UAAS;AACrC,UAAM,EAAE,gBAAgBA;AACxB,QAAI,gBAAgB,GAAgC;AAChD,aAAO;AAAA,IACX;AACA,eAAW,IAAI;AACf,UAAM,MAAM,KAAK,YAAA,MAAkB;AACnC,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,sBAAsB,MAAMA,UAAS;AAC1C,UAAM,EAAE,gBAAgBA;AACxB,QAAI,gBAAgB,GAA8B;AAC9C,aAAO;AAAA,IACX;AACA,eAAW,IAAI;AACf,UAAM,MAAM,kBAAkB,KAAK,YAAA,CAAa;AAChD,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,uBAAuB,MAAMA,UAAS;AAC3C,UAAM,EAAE,gBAAgBA;AACxB,QAAI,EAAE,gBAAgB,KAClB,gBAAgB,KAAqC;AACrD,aAAO;AAAA,IACX;AACA,eAAW,IAAI;AACf,UAAM,MAAM,KAAK,YAAA,MAAkB;AACnC,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,mBAAmB,MAAMA,UAAS;AACvC,UAAM,EAAE,gBAAgBA;AACxB,QAAI,gBAAgB,GAAoC;AACpD,aAAO;AAAA,IACX;AACA,UAAM,KAAK,MAAM;AACb,YAAM,KAAK,KAAK,YAAA;AAChB,UAAI,OAAO,KAAgC;AACvC,eAAO,kBAAkB,KAAK,MAAM;AAAA,MACxC,WACS,OAAO,OACZ,OAAO,OACP,OAAO,OACP,OAAO,OACP,OAAO,WACP,CAAC,IAAI;AACL,eAAO;AAAA,MACX,WACS,OAAO,SAAS;AACrB,aAAK,KAAA;AACL,eAAO,GAAA;AAAA,MACX,OACK;AAED,eAAO,YAAY,MAAM,KAAK;AAAA,MAClC;AAAA,IACJ;AACA,UAAM,MAAM,GAAA;AACZ,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,cAAc,MAAM;AACzB,eAAW,IAAI;AACf,UAAM,MAAM,KAAK,YAAA,MAAkB;AACnC,SAAK,UAAA;AACL,WAAO;AAAA,EACX;AACA,WAAS,YAAY,MAAM,QAAQ,MAAM;AACrC,UAAM,KAAK,CAAC,WAAW,OAAO,OAAO,OAAO;AACxC,YAAM,KAAK,KAAK,YAAA;AAChB,UAAI,OAAO,KAAgC;AACvC,eAAO;AAAA,MACX,WACS,OAAO,OAAoC,CAAC,IAAI;AACrD,eAAO;AAAA,MACX,WACS,OAAO,KAA2B;AACvC,eAAO,EAAE,SAAS,WAAW,SAAS;AAAA,MAC1C,WACS,OAAO,SAAS;AACrB,aAAK,KAAA;AACL,eAAO,GAAG,MAAM,OAAO;AAAA,MAC3B,WACS,OAAO,SAAS;AACrB,aAAK,KAAA;AACL,eAAO,GAAG,MAAM,OAAO;AAAA,MAC3B,OACK;AACD,eAAO;AAAA,MACX;AAAA,IACJ;AACA,UAAM,MAAM,GAAA;AACZ,aAAS,KAAK,UAAA;AACd,WAAO;AAAA,EACX;AACA,WAAS,SAAS,MAAM,IAAI;AACxB,UAAM,KAAK,KAAK,YAAA;AAChB,QAAI,OAAO,KAAK;AACZ,aAAO;AAAA,IACX;AACA,QAAI,GAAG,EAAE,GAAG;AACR,WAAK,KAAA;AACL,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACA,WAAS,aAAa,IAAI;AACtB,UAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,WAAS,MAAM,MAAM,MAAM;AAAA,IACtB,MAAM,MAAM,MAAM;AAAA,IAClB,MAAM,MAAM,MAAM;AAAA,IACnB,OAAO;AAAA,IACP,OAAO;AAAA,EAEf;AACA,WAAS,mBAAmB,MAAM;AAC9B,WAAO,SAAS,MAAM,YAAY;AAAA,EACtC;AACA,WAAS,kBAAkB,IAAI;AAC3B,UAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,WAAS,MAAM,MAAM,MAAM;AAAA,IACtB,MAAM,MAAM,MAAM;AAAA,IAClB,MAAM,MAAM,MAAM;AAAA,IACnB,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EAEf;AACA,WAAS,wBAAwB,MAAM;AACnC,WAAO,SAAS,MAAM,iBAAiB;AAAA,EAC3C;AACA,WAAS,QAAQ,IAAI;AACjB,UAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,WAAO,MAAM,MAAM,MAAM;AAAA,EAC7B;AACA,WAAS,UAAU,MAAM;AACrB,WAAO,SAAS,MAAM,OAAO;AAAA,EACjC;AACA,WAAS,WAAW,IAAI;AACpB,UAAM,KAAK,GAAG,WAAW,CAAC;AAC1B,WAAS,MAAM,MAAM,MAAM;AAAA,IACtB,MAAM,MAAM,MAAM;AAAA,IAClB,MAAM,MAAM,MAAM;AAAA,EAC3B;AACA,WAAS,aAAa,MAAM;AACxB,WAAO,SAAS,MAAM,UAAU;AAAA,EACpC;AACA,WAAS,UAAU,MAAM;AACrB,QAAI,KAAK;AACT,QAAI,MAAM;AACV,WAAQ,KAAK,UAAU,IAAI,GAAI;AAC3B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACA,WAAS,SAAS,MAAM;AACpB,QAAI,MAAM;AACV,WAAO,MAAM;AACT,YAAM,KAAK,KAAK,YAAA;AAChB,UAAI,OAAO,MAAM;AACb,cAAM,SAAS,KAAK,KAAA;AACpB,YAAI,WAAW,OACX,WAAW,OACX,WAAW,OACX,WAAW,OACX,WAAW,MAAM;AACjB,iBAAO,KAAK;AACZ,eAAK,KAAA;AACL,eAAK,KAAA;AAAA,QACT,OACK;AACD,eAAK,UAAA;AACL,iBAAO;AACP,eAAK,KAAA;AAAA,QACT;AAAA,MACJ,WACS,OAAO,OACZ,OAAO,OACP,OAAO,OACP,OAAO,OACP,CAAC,IAAI;AACL;AAAA,MACJ,WACS,OAAO,WAAW,OAAO,SAAS;AACvC,YAAI,YAAY,IAAI,GAAG;AACnB,iBAAO;AACP,eAAK,KAAA;AAAA,QACT,WACS,cAAc,IAAI,GAAG;AAC1B;AAAA,QACJ,OACK;AACD,iBAAO;AACP,eAAK,KAAA;AAAA,QACT;AAAA,MACJ,OACK;AACD,eAAO;AACP,aAAK,KAAA;AAAA,MACT;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACA,WAAS,oBAAoB,MAAM;AAC/B,eAAW,IAAI;AACf,QAAI,KAAK;AACT,QAAI,OAAO;AACX,WAAQ,KAAK,wBAAwB,IAAI,GAAI;AACzC,cAAQ;AAAA,IACZ;AAEA,UAAM,cAAc,KAAK,YAAA;AACzB,QAAI,eACA,gBAAgB,OAChB,gBAAgB,OAChB,gBAAgB,WAChB,gBAAgB,WAChB,gBAAgB,KAAU;AAC1B,YAAM,cAAc,sBAAsB,IAAI;AAC9C,gBAAU,kBAAkB,8BAA8B,gBAAA,GAAmB,GAAG,OAAO,WAAW;AAClG,aAAO,OAAO;AAAA,IAClB;AACA,QAAI,KAAK,YAAA,MAAkB,KAAK;AAC5B,gBAAU,kBAAkB,4BAA4B,gBAAA,GAAmB,CAAC;AAAA,IAChF;AACA,WAAO;AAAA,EACX;AACA,WAAS,mBAAmB,MAAM;AAC9B,eAAW,IAAI;AACf,QAAI,QAAQ;AACZ,QAAI,KAAK,YAAA,MAAkB,KAAK;AAC5B,WAAK,KAAA;AACL,eAAS,IAAI,UAAU,IAAI,CAAC;AAAA,IAChC,OACK;AACD,eAAS,UAAU,IAAI;AAAA,IAC3B;AACA,QAAI,KAAK,YAAA,MAAkB,KAAK;AAC5B,gBAAU,kBAAkB,4BAA4B,gBAAA,GAAmB,CAAC;AAAA,IAChF;AACA,WAAO;AAAA,EACX;AACA,WAASC,WAAU,IAAI;AACnB,WAAO,OAAO,qBAAqB,OAAO;AAAA,EAC9C;AACA,WAAS,YAAY,MAAM;AACvB,eAAW,IAAI;AAEf,QAAI,MAAM,GAAI;AACd,QAAI,KAAK;AACT,QAAI,UAAU;AACd,WAAQ,KAAK,SAAS,MAAMA,UAAS,GAAI;AACrC,UAAI,OAAO,MAAM;AACb,mBAAW,mBAAmB,IAAI;AAAA,MACtC,OACK;AACD,mBAAW;AAAA,MACf;AAAA,IACJ;AACA,UAAM,UAAU,KAAK,YAAA;AACrB,QAAI,YAAY,WAAW,YAAY,KAAK;AACxC,gBAAU,kBAAkB,0CAA0C,gBAAA,GAAmB,CAAC;AAE1F,UAAI,YAAY,SAAS;AACrB,aAAK,KAAA;AAEL,YAAI,MAAM,GAAI;AAAA,MAClB;AACA,aAAO;AAAA,IACX;AAEA,QAAI,MAAM,GAAI;AACd,WAAO;AAAA,EACX;AACA,WAAS,mBAAmB,MAAM;AAC9B,UAAM,KAAK,KAAK,YAAA;AAChB,YAAQ,IAAA;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,aAAK,KAAA;AACL,eAAO,KAAK,EAAE;AAAA,MAClB,KAAK;AACD,eAAO,0BAA0B,MAAM,IAAI,CAAC;AAAA,MAChD,KAAK;AACD,eAAO,0BAA0B,MAAM,IAAI,CAAC;AAAA,MAChD;AACI,kBAAU,kBAAkB,yBAAyB,gBAAA,GAAmB,GAAG,EAAE;AAC7E,eAAO;AAAA,IAAA;AAAA,EAEnB;AACA,WAAS,0BAA0B,MAAM,SAAS,QAAQ;AACtD,QAAI,MAAM,OAAO;AACjB,QAAI,WAAW;AACf,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,YAAM,KAAK,aAAa,IAAI;AAC5B,UAAI,CAAC,IAAI;AACL,kBAAU,kBAAkB,iCAAiC,gBAAA,GAAmB,GAAG,KAAK,OAAO,GAAG,QAAQ,GAAG,KAAK,YAAA,CAAa,EAAE;AACjI;AAAA,MACJ;AACA,kBAAY;AAAA,IAChB;AACA,WAAO,KAAK,OAAO,GAAG,QAAQ;AAAA,EAClC;AACA,WAAS,oBAAoB,IAAI;AAC7B,WAAQ,OAAO,OACX,OAAO,OACP,OAAO,WACP,OAAO;AAAA,EACf;AACA,WAAS,sBAAsB,MAAM;AACjC,eAAW,IAAI;AACf,QAAI,KAAK;AACT,QAAI,cAAc;AAClB,WAAQ,KAAK,SAAS,MAAM,mBAAmB,GAAI;AAC/C,qBAAe;AAAA,IACnB;AACA,WAAO;AAAA,EACX;AACA,WAAS,mBAAmB,MAAM;AAC9B,QAAI,KAAK;AACT,QAAI,OAAO;AACX,WAAQ,KAAK,mBAAmB,IAAI,GAAI;AACpC,cAAQ;AAAA,IACZ;AACA,WAAO;AAAA,EACX;AACA,WAAS,gBAAgB,MAAM;AAC3B,UAAM,KAAK,CAAC,QAAQ;AAChB,YAAM,KAAK,KAAK,YAAA;AAChB,UAAI,OAAO,OACP,OAAO,OACP,OAAO,OACP,OAAO,OACP,OAAO,OACP,CAAC,IAAI;AACL,eAAO;AAAA,MACX,WACS,OAAO,SAAS;AACrB,eAAO;AAAA,MACX,WACS,OAAO,WAAW,OAAO,KAAK;AACnC,eAAO;AACP,aAAK,KAAA;AACL,eAAO,GAAG,GAAG;AAAA,MACjB,OACK;AACD,eAAO;AACP,aAAK,KAAA;AACL,eAAO,GAAG,GAAG;AAAA,MACjB;AAAA,IACJ;AACA,WAAO,GAAG,EAAE;AAAA,EAChB;AACA,WAAS,WAAW,MAAM;AACtB,eAAW,IAAI;AACf,UAAM,SAAS;AAAA,MAAI;AAAA,MAAM;AAAA;AAAA,IAAA;AACzB,eAAW,IAAI;AACf,WAAO;AAAA,EACX;AAEA,WAAS,uBAAuB,MAAMD,UAAS;AAC3C,QAAI,QAAQ;AACZ,UAAM,KAAK,KAAK,YAAA;AAChB,YAAQ,IAAA;AAAA,MACJ,KAAK;AACD,YAAIA,SAAQ,aAAa,GAAG;AACxB,oBAAU,kBAAkB,4BAA4B,gBAAA,GAAmB,CAAC;AAAA,QAChF;AACA,aAAK,KAAA;AACL,gBAAQ;AAAA,UAASA;AAAAA,UAAS;AAAA,UAA8B;AAAA;AAAA,QAAA;AACxD,mBAAW,IAAI;AACfA,iBAAQ;AACR,eAAO;AAAA,MACX,KAAK;AACD,YAAIA,SAAQ,YAAY,KACpBA,SAAQ,gBAAgB,GAA8B;AACtD,oBAAU,kBAAkB,mBAAmB,gBAAA,GAAmB,CAAC;AAAA,QACvE;AACA,aAAK,KAAA;AACL,gBAAQ;AAAA,UAASA;AAAAA,UAAS;AAAA,UAA+B;AAAA;AAAA,QAAA;AACzDA,iBAAQ;AACRA,iBAAQ,YAAY,KAAK,WAAW,IAAI;AACxC,YAAIA,SAAQ,YAAYA,SAAQ,cAAc,GAAG;AAC7CA,mBAAQ,WAAW;AAAA,QACvB;AACA,eAAO;AAAA,MACX,KAAK;AACD,YAAIA,SAAQ,YAAY,GAAG;AACvB,oBAAU,kBAAkB,4BAA4B,gBAAA,GAAmB,CAAC;AAAA,QAChF;AACA,gBAAQ,kBAAkB,MAAMA,QAAO,KAAK,YAAYA,QAAO;AAC/DA,iBAAQ,YAAY;AACpB,eAAO;AAAA,MACX,SAAS;AACL,YAAI,uBAAuB;AAC3B,YAAI,sBAAsB;AAC1B,YAAI,eAAe;AACnB,YAAI,cAAc,IAAI,GAAG;AACrB,cAAIA,SAAQ,YAAY,GAAG;AACvB,sBAAU,kBAAkB,4BAA4B,gBAAA,GAAmB,CAAC;AAAA,UAChF;AACA,kBAAQ,SAASA,UAAS,GAAyB,WAAW,IAAI,CAAC;AAEnEA,mBAAQ,YAAY;AACpBA,mBAAQ,WAAW;AACnB,iBAAO;AAAA,QACX;AACA,YAAIA,SAAQ,YAAY,MACnBA,SAAQ,gBAAgB,KACrBA,SAAQ,gBAAgB,KACxBA,SAAQ,gBAAgB,IAA6B;AACzD,oBAAU,kBAAkB,4BAA4B,gBAAA,GAAmB,CAAC;AAC5EA,mBAAQ,YAAY;AACpB,iBAAO,UAAU,MAAMA,QAAO;AAAA,QAClC;AACA,YAAK,uBAAuB,uBAAuB,MAAMA,QAAO,GAAI;AAChE,kBAAQ,SAASA,UAAS,GAA0B,oBAAoB,IAAI,CAAC;AAC7E,qBAAW,IAAI;AACf,iBAAO;AAAA,QACX;AACA,YAAK,sBAAsB,sBAAsB,MAAMA,QAAO,GAAI;AAC9D,kBAAQ,SAASA,UAAS,GAAyB,mBAAmB,IAAI,CAAC;AAC3E,qBAAW,IAAI;AACf,iBAAO;AAAA,QACX;AACA,YAAK,eAAe,eAAe,MAAMA,QAAO,GAAI;AAChD,kBAAQ,SAASA,UAAS,GAA4B,YAAY,IAAI,CAAC;AACvE,qBAAW,IAAI;AACf,iBAAO;AAAA,QACX;AACA,YAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,cAAc;AAEhE,kBAAQ,SAASA,UAAS,IAAkC,sBAAsB,IAAI,CAAC;AACvF,oBAAU,kBAAkB,8BAA8B,gBAAA,GAAmB,GAAG,MAAM,KAAK;AAC3F,qBAAW,IAAI;AACf,iBAAO;AAAA,QACX;AACA;AAAA,MACJ;AAAA,IAAA;AAEJ,WAAO;AAAA,EACX;AAEA,WAAS,kBAAkB,MAAMA,UAAS;AACtC,UAAM,EAAE,gBAAgBA;AACxB,QAAI,QAAQ;AACZ,UAAM,KAAK,KAAK,YAAA;AAChB,SAAK,gBAAgB,KACjB,gBAAgB,KAChB,gBAAgB,MAChB,gBAAgB,OACf,OAAO,WAAW,OAAO,UAAU;AACpC,gBAAU,kBAAkB,uBAAuB,gBAAA,GAAmB,CAAC;AAAA,IAC3E;AACA,YAAQ,IAAA;AAAA,MACJ,KAAK;AACD,aAAK,KAAA;AACL,gBAAQ;AAAA,UAASA;AAAAA,UAAS;AAAA,UAAgC;AAAA;AAAA,QAAA;AAC1DA,iBAAQ,WAAW;AACnB,eAAO;AAAA,MACX,KAAK;AACD,mBAAW,IAAI;AACf,aAAK,KAAA;AACL,eAAO;AAAA,UAASA;AAAAA,UAAS;AAAA,UAA8B;AAAA;AAAA,QAAA;AAAA,MAC3D,KAAK;AACD,mBAAW,IAAI;AACf,aAAK,KAAA;AACL,eAAO;AAAA,UAASA;AAAAA,UAAS;AAAA,UAAoC;AAAA;AAAA,QAAA;AAAA,MACjE;AACI,YAAI,cAAc,IAAI,GAAG;AACrB,kBAAQ,SAASA,UAAS,GAAyB,WAAW,IAAI,CAAC;AAEnEA,mBAAQ,YAAY;AACpBA,mBAAQ,WAAW;AACnB,iBAAO;AAAA,QACX;AACA,YAAI,iBAAiB,MAAMA,QAAO,KAC9B,uBAAuB,MAAMA,QAAO,GAAG;AACvC,qBAAW,IAAI;AACf,iBAAO,kBAAkB,MAAMA,QAAO;AAAA,QAC1C;AACA,YAAI,sBAAsB,MAAMA,QAAO,GAAG;AACtC,qBAAW,IAAI;AACf,iBAAO,SAASA,UAAS,IAAoC,mBAAmB,IAAI,CAAC;AAAA,QACzF;AACA,YAAI,mBAAmB,MAAMA,QAAO,GAAG;AACnC,qBAAW,IAAI;AACf,cAAI,OAAO,KAAgC;AAEvC,mBAAO,uBAAuB,MAAMA,QAAO,KAAK;AAAA,UACpD,OACK;AACD,mBAAO,SAASA,UAAS,IAA+B,gBAAgB,IAAI,CAAC;AAAA,UACjF;AAAA,QACJ;AACA,YAAI,gBAAgB,GAAgC;AAChD,oBAAU,kBAAkB,uBAAuB,gBAAA,GAAmB,CAAC;AAAA,QAC3E;AACAA,iBAAQ,YAAY;AACpBA,iBAAQ,WAAW;AACnB,eAAO,UAAU,MAAMA,QAAO;AAAA,IAAA;AAAA,EAE1C;AAEA,WAAS,UAAU,MAAMA,UAAS;AAC9B,QAAI,QAAQ;AAAA,MAAE,MAAM;AAAA;AAAA,IAAA;AACpB,QAAIA,SAAQ,YAAY,GAAG;AACvB,aAAO,uBAAuB,MAAMA,QAAO,KAAK,YAAYA,QAAO;AAAA,IACvE;AACA,QAAIA,SAAQ,UAAU;AAClB,aAAO,kBAAkB,MAAMA,QAAO,KAAK,YAAYA,QAAO;AAAA,IAClE;AACA,UAAM,KAAK,KAAK,YAAA;AAChB,YAAQ,IAAA;AAAA,MACJ,KAAK;AACD,eAAO,uBAAuB,MAAMA,QAAO,KAAK,YAAYA,QAAO;AAAA,MACvE,KAAK;AACD,kBAAU,kBAAkB,0BAA0B,gBAAA,GAAmB,CAAC;AAC1E,aAAK,KAAA;AACL,eAAO;AAAA,UAASA;AAAAA,UAAS;AAAA,UAA+B;AAAA;AAAA,QAAA;AAAA,MAC5D,KAAK;AACD,eAAO,kBAAkB,MAAMA,QAAO,KAAK,YAAYA,QAAO;AAAA,MAClE,SAAS;AACL,YAAI,cAAc,IAAI,GAAG;AACrB,kBAAQ,SAASA,UAAS,GAAyB,WAAW,IAAI,CAAC;AAEnEA,mBAAQ,YAAY;AACpBA,mBAAQ,WAAW;AACnB,iBAAO;AAAA,QACX;AACA,YAAI,YAAY,IAAI,GAAG;AACnB,iBAAO,SAASA,UAAS,GAAyB,SAAS,IAAI,CAAC;AAAA,QACpE;AACA;AAAA,MACJ;AAAA,IAAA;AAEJ,WAAO;AAAA,EACX;AACA,WAAS,YAAY;AACjB,UAAM,EAAE,aAAa,QAAQ,UAAU,WAAW;AAClD,aAAS,WAAW;AACpB,aAAS,aAAa;AACtB,aAAS,eAAe;AACxB,aAAS,aAAa;AACtB,aAAS,SAAS,cAAA;AAClB,aAAS,WAAW,gBAAA;AACpB,QAAI,MAAM,YAAA,MAAkB,KAAK;AAC7B,aAAO;AAAA,QAAS;AAAA,QAAU;AAAA;AAAA,MAAA;AAAA,IAC9B;AACA,WAAO,UAAU,OAAO,QAAQ;AAAA,EACpC;AACA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;AAEA,MAAM,iBAAiB;AAEvB,MAAM,gBAAgB;AAEtB,MAAM,eAAe;AACrB,SAAS,uBAAuB,QAAQ,MAAM;AAC1C,SAAO;AACX;AACA,SAAS,mBAAmB,OAAO,YAAY,YAAY;AACvD,UAAQ,OAAA;AAAA,IACJ,KAAK;AACD,aAAO;AAAA;AAAA,IAEX,KAAK;AAED,aAAO;AAAA,IACX,SAAS;AACL,YAAM,YAAY,SAAS,cAAc,YAAY,EAAE;AACvD,UAAI,aAAa,SAAU,aAAa,OAAQ;AAC5C,eAAO,OAAO,cAAc,SAAS;AAAA,MACzC;AAGA,aAAO;AAAA,IACX;AAAA,EAAA;AAER;AACA,SAAS,aAAa,UAAU,IAAI;AAChC,QAAM,WAAW,QAAQ,aAAa;AACtC,QAAM,EAAE,YAAY;AACpB,WAAS,UAAU,UAAU,MAAM,OAAO,WAAW,MAAM;AACvD,UAAM,MAAM,SAAS,gBAAA;AACrB,QAAI,UAAU;AACd,QAAI,UAAU;AACd,QAAI,SAAS;AACT,YAAM,MAAM,WAAW,eAAe,OAAO,GAAG,IAAI;AACpD,YAAM,MAAM,mBAAmB,MAAM,KAAK;AAAA,QACtC,QAAQ;AAAA,QACR;AAAA,MAAA,CACH;AACD,cAAQ,GAAG;AAAA,IACf;AAAA,EACJ;AACA,WAAS,UAAU,MAAM,QAAQ,KAAK;AAClC,UAAM,OAAO,EAAE,KAAA;AACf,QAAI,UAAU;AACV,WAAK,QAAQ;AACb,WAAK,MAAM;AACX,WAAK,MAAM,EAAE,OAAO,KAAK,KAAK,IAAA;AAAA,IAClC;AACA,WAAO;AAAA,EACX;AACA,WAAS,QAAQ,MAAM,QAAQ,KAAK,MAAM;AACtC,QAAI,UAAU;AACV,WAAK,MAAM;AACX,UAAI,KAAK,KAAK;AACV,aAAK,IAAI,MAAM;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,UAAU,WAAW,OAAO;AACjC,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,OAAO,UAAU,GAAwB,QAAQ,QAAQ,QAAQ,QAAQ;AAC/E,SAAK,QAAQ,MAAM,QAAQ,cAAc,sBAAsB;AAC/D,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,WAAS,UAAU,WAAW,OAAO;AACjC,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,EAAE,YAAY,QAAQ,cAAc,QAAQ;AAClD,UAAM,OAAO,UAAU,GAAwB,QAAQ,GAAG;AAC1D,SAAK,QAAQ,SAAS,OAAO,EAAE;AAC/B,cAAU,UAAA;AACV,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,WAAS,WAAW,WAAW,KAAK;AAChC,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,EAAE,YAAY,QAAQ,cAAc,QAAQ;AAClD,UAAM,OAAO,UAAU,GAAyB,QAAQ,GAAG;AAC3D,SAAK,MAAM;AACX,cAAU,UAAA;AACV,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,WAAS,aAAa,WAAW,OAAO;AACpC,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,EAAE,YAAY,QAAQ,cAAc,QAAQ;AAClD,UAAM,OAAO,UAAU,GAA2B,QAAQ,GAAG;AAC7D,SAAK,QAAQ,MAAM,QAAQ,eAAe,kBAAkB;AAC5D,cAAU,UAAA;AACV,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,WAAS,oBAAoB,WAAW;AACpC,UAAM,QAAQ,UAAU,UAAA;AACxB,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,EAAE,YAAY,QAAQ,cAAc,QAAQ;AAClD,UAAM,OAAO,UAAU,GAAkC,QAAQ,GAAG;AACpE,QAAI,MAAM,SAAS,IAAoC;AAEnD,gBAAU,WAAW,kBAAkB,kCAAkC,QAAQ,cAAc,CAAC;AAChG,WAAK,QAAQ;AACb,cAAQ,MAAM,QAAQ,GAAG;AACzB,aAAO;AAAA,QACH,kBAAkB;AAAA,QAClB;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,MAAM,SAAS,MAAM;AACrB,gBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,IACvH;AACA,SAAK,QAAQ,MAAM,SAAS;AAC5B,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,MACH;AAAA,IAAA;AAAA,EAER;AACA,WAAS,eAAe,WAAW,OAAO;AACtC,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,OAAO,UAAU,GAA6B,QAAQ,QAAQ,QAAQ,QAAQ;AACpF,SAAK,QAAQ;AACb,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,WAAS,YAAY,WAAW;AAC5B,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,aAAa,UAAU,GAA0B,QAAQ,QAAQ,QAAQ,QAAQ;AACvF,QAAI,QAAQ,UAAU,UAAA;AACtB,QAAI,MAAM,SAAS,GAA8B;AAC7C,YAAM,SAAS,oBAAoB,SAAS;AAC5C,iBAAW,WAAW,OAAO;AAC7B,cAAQ,OAAO,oBAAoB,UAAU,UAAA;AAAA,IACjD;AAEA,QAAI,MAAM,SAAS,GAAoC;AACnD,gBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,IACvH;AACA,YAAQ,UAAU,UAAA;AAElB,QAAI,MAAM,SAAS,GAA8B;AAC7C,cAAQ,UAAU,UAAA;AAAA,IACtB;AACA,YAAQ,MAAM,MAAA;AAAA,MACV,KAAK;AACD,YAAI,MAAM,SAAS,MAAM;AACrB,oBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,QACvH;AACA,mBAAW,MAAM,eAAe,WAAW,MAAM,SAAS,EAAE;AAC5D;AAAA,MACJ,KAAK;AACD,YAAI,MAAM,SAAS,MAAM;AACrB,oBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,QACvH;AACA,mBAAW,MAAM,WAAW,WAAW,MAAM,SAAS,EAAE;AACxD;AAAA,MACJ,KAAK;AACD,YAAI,MAAM,SAAS,MAAM;AACrB,oBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,QACvH;AACA,mBAAW,MAAM,UAAU,WAAW,MAAM,SAAS,EAAE;AACvD;AAAA,MACJ,KAAK;AACD,YAAI,MAAM,SAAS,MAAM;AACrB,oBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,QACvH;AACA,mBAAW,MAAM,aAAa,WAAW,MAAM,SAAS,EAAE;AAC1D;AAAA,MACJ,SAAS;AAEL,kBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,CAAC;AAC3F,cAAM,cAAc,UAAU,QAAA;AAC9B,cAAM,qBAAqB,UAAU,GAA6B,YAAY,QAAQ,YAAY,QAAQ;AAC1G,2BAAmB,QAAQ;AAC3B,gBAAQ,oBAAoB,YAAY,QAAQ,YAAY,QAAQ;AACpE,mBAAW,MAAM;AACjB,gBAAQ,YAAY,YAAY,QAAQ,YAAY,QAAQ;AAC5D,eAAO;AAAA,UACH,kBAAkB;AAAA,UAClB,MAAM;AAAA,QAAA;AAAA,MAEd;AAAA,IAAA;AAEJ,YAAQ,YAAY,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AAC1E,WAAO;AAAA,MACH,MAAM;AAAA,IAAA;AAAA,EAEd;AACA,WAAS,aAAa,WAAW;AAC7B,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,cAAc,QAAQ,gBAAgB,IACtC,UAAU,cAAA,IACV,QAAQ;AACd,UAAM,WAAW,QAAQ,gBAAgB,IACnC,QAAQ,SACR,QAAQ;AACd,UAAM,OAAO,UAAU,GAA2B,aAAa,QAAQ;AACvE,SAAK,QAAQ,CAAA;AACb,QAAI,YAAY;AAChB,OAAG;AACC,YAAM,QAAQ,aAAa,UAAU,UAAA;AACrC,kBAAY;AACZ,cAAQ,MAAM,MAAA;AAAA,QACV,KAAK;AACD,cAAI,MAAM,SAAS,MAAM;AACrB,sBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,UACvH;AACA,eAAK,MAAM,KAAK,UAAU,WAAW,MAAM,SAAS,EAAE,CAAC;AACvD;AAAA,QACJ,KAAK;AACD,cAAI,MAAM,SAAS,MAAM;AACrB,sBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,UACvH;AACA,eAAK,MAAM,KAAK,UAAU,WAAW,MAAM,SAAS,EAAE,CAAC;AACvD;AAAA,QACJ,KAAK;AACD,cAAI,MAAM,SAAS,MAAM;AACrB,sBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,UACvH;AACA,eAAK,MAAM,KAAK,WAAW,WAAW,MAAM,SAAS,EAAE,CAAC;AACxD;AAAA,QACJ,KAAK;AACD,cAAI,MAAM,SAAS,MAAM;AACrB,sBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,gBAAgB,KAAK,CAAC;AAAA,UACvH;AACA,eAAK,MAAM,KAAK,aAAa,WAAW,MAAM,SAAS,EAAE,CAAC;AAC1D;AAAA,QACJ,KAAK,GAAgC;AACjC,gBAAM,SAAS,YAAY,SAAS;AACpC,eAAK,MAAM,KAAK,OAAO,IAAI;AAC3B,sBAAY,OAAO,oBAAoB;AACvC;AAAA,QACJ;AAAA,MAAA;AAAA,IAER,SAAS,QAAQ,gBAAgB,MAC7B,QAAQ,gBAAgB;AAE5B,UAAM,YAAY,QAAQ,gBAAgB,IACpC,QAAQ,aACR,UAAU,cAAA;AAChB,UAAM,SAAS,QAAQ,gBAAgB,IACjC,QAAQ,aACR,UAAU,gBAAA;AAChB,YAAQ,MAAM,WAAW,MAAM;AAC/B,WAAO;AAAA,EACX;AACA,WAAS,YAAY,WAAW,QAAQ,KAAK,SAAS;AAClD,UAAM,UAAU,UAAU,QAAA;AAC1B,QAAI,kBAAkB,QAAQ,MAAM,WAAW;AAC/C,UAAM,OAAO,UAAU,GAA0B,QAAQ,GAAG;AAC5D,SAAK,QAAQ,CAAA;AACb,SAAK,MAAM,KAAK,OAAO;AACvB,OAAG;AACC,YAAM,MAAM,aAAa,SAAS;AAClC,UAAI,CAAC,iBAAiB;AAClB,0BAAkB,IAAI,MAAM,WAAW;AAAA,MAC3C;AACA,WAAK,MAAM,KAAK,GAAG;AAAA,IACvB,SAAS,QAAQ,gBAAgB;AACjC,QAAI,iBAAiB;AACjB,gBAAU,WAAW,kBAAkB,8BAA8B,KAAK,CAAC;AAAA,IAC/E;AACA,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,WAAS,cAAc,WAAW;AAC9B,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,EAAE,QAAQ,SAAA,IAAa;AAC7B,UAAM,UAAU,aAAa,SAAS;AACtC,QAAI,QAAQ,gBAAgB,IAAyB;AACjD,aAAO;AAAA,IACX,OACK;AACD,aAAO,YAAY,WAAW,QAAQ,UAAU,OAAO;AAAA,IAC3D;AAAA,EACJ;AACA,WAAShB,OAAM,QAAQ;AACnB,UAAM,YAAY,gBAAgB,QAAQ,OAAO,CAAA,GAAI,OAAO,CAAC;AAC7D,UAAM,UAAU,UAAU,QAAA;AAC1B,UAAM,OAAO,UAAU,GAA4B,QAAQ,QAAQ,QAAQ,QAAQ;AACnF,QAAI,YAAY,KAAK,KAAK;AACtB,WAAK,IAAI,SAAS;AAAA,IACtB;AACA,SAAK,OAAO,cAAc,SAAS;AACnC,QAAI,QAAQ,YAAY;AACpB,WAAK,WAAW,QAAQ,WAAW,MAAM;AAAA,IAC7C;AAEA,QAAI,QAAQ,gBAAgB,IAAyB;AACjD,gBAAU,WAAW,kBAAkB,6BAA6B,QAAQ,cAAc,GAAG,OAAO,QAAQ,MAAM,KAAK,EAAE;AAAA,IAC7H;AACA,YAAQ,MAAM,UAAU,cAAA,GAAiB,UAAU,iBAAiB;AACpE,WAAO;AAAA,EACX;AACA,SAAO,EAAE,OAAAA,OAAA;AACb;AACA,SAAS,gBAAgB,OAAO;AAC5B,MAAI,MAAM,SAAS,IAAyB;AACxC,WAAO;AAAA,EACX;AACA,QAAM,QAAQ,MAAM,SAAS,IAAI,QAAQ,WAAW,KAAK;AACzD,SAAO,KAAK,SAAS,KAAK,KAAK,MAAM,GAAG,CAAC,IAAI,MAAM;AACvD;AAEA,SAAS,kBAAkB,KAAK,UAAU,IACxC;AACE,QAAM,WAAW;AAAA,IACb;AAAA,IACA,6BAAa,IAAA;AAAA,EAAI;AAErB,QAAM,UAAU,MAAM;AACtB,QAAM,SAAS,CAAC,SAAS;AACrB,aAAS,QAAQ,IAAI,IAAI;AACzB,WAAO;AAAA,EACX;AACA,SAAO,EAAE,SAAS,OAAA;AACtB;AACA,SAAS,cAAc,OAAO,aAAa;AACvC,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,iBAAa,MAAM,CAAC,GAAG,WAAW;AAAA,EACtC;AACJ;AACA,SAAS,aAAa,MAAM,aAAa;AAErC,UAAQ,KAAK,MAAA;AAAA,IACT,KAAK;AACD,oBAAc,KAAK,OAAO,WAAW;AACrC,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB;AAAA,IACJ,KAAK;AACD,oBAAc,KAAK,OAAO,WAAW;AACrC;AAAA,IACJ,KAAK,GAA0B;AAC3B,YAAM,SAAS;AACf,mBAAa,OAAO,KAAK,WAAW;AACpC,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB;AAAA,IACJ;AAAA,IACA,KAAK;AACD,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB;AAAA,IACJ,KAAK;AACD,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB,kBAAY;AAAA,QAAO;AAAA;AAAA,MAAA;AACnB;AAAA,EAAA;AAGZ;AAEA,SAAS,UAAU,KAAK,UAAU,IAChC;AACE,QAAM,cAAc,kBAAkB,GAAG;AACzC,cAAY;AAAA,IAAO;AAAA;AAAA,EAAA;AAEnB,MAAI,QAAQ,aAAa,IAAI,MAAM,WAAW;AAE9C,QAAM,UAAU,YAAY,QAAA;AAC5B,MAAI,UAAU,MAAM,KAAK,QAAQ,OAAO;AAC5C;AAEA,SAAS,SAAS,KAAK;AACnB,QAAM,OAAO,IAAI;AACjB,MAAI,KAAK,SAAS,GAA2B;AACzC,wBAAoB,IAAI;AAAA,EAC5B,OACK;AACD,SAAK,MAAM,QAAQ,CAAA,MAAK,oBAAoB,CAAC,CAAC;AAAA,EAClD;AACA,SAAO;AACX;AACA,SAAS,oBAAoB,SAAS;AAClC,MAAI,QAAQ,MAAM,WAAW,GAAG;AAC5B,UAAM,OAAO,QAAQ,MAAM,CAAC;AAC5B,QAAI,KAAK,SAAS,KAA0B,KAAK,SAAS,GAA2B;AACjF,cAAQ,SAAS,KAAK;AACtB,aAAO,KAAK;AAAA,IAChB;AAAA,EACJ,OACK;AACD,UAAM,SAAS,CAAA;AACf,aAAS,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,KAAK;AAC3C,YAAM,OAAO,QAAQ,MAAM,CAAC;AAC5B,UAAI,EAAE,KAAK,SAAS,KAA0B,KAAK,SAAS,IAA4B;AACpF;AAAA,MACJ;AACA,UAAI,KAAK,SAAS,MAAM;AACpB;AAAA,MACJ;AACA,aAAO,KAAK,KAAK,KAAK;AAAA,IAC1B;AACA,QAAI,OAAO,WAAW,QAAQ,MAAM,QAAQ;AACxC,cAAQ,SAAS,KAAK,MAAM;AAC5B,eAAS,IAAI,GAAG,IAAI,QAAQ,MAAM,QAAQ,KAAK;AAC3C,cAAM,OAAO,QAAQ,MAAM,CAAC;AAC5B,YAAI,KAAK,SAAS,KAA0B,KAAK,SAAS,GAA2B;AACjF,iBAAO,KAAK;AAAA,QAChB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,MAAM,iBAAiB;AAEvB,SAAS,OAAO,MAAM;AAClB,OAAK,IAAI,KAAK;AACd,UAAQ,KAAK,MAAA;AAAA,IACT,KAAK,GAA4B;AAC7B,YAAM,WAAW;AACjB,aAAO,SAAS,IAAI;AACpB,eAAS,IAAI,SAAS;AACtB,aAAO,SAAS;AAChB;AAAA,IACJ;AAAA,IACA,KAAK,GAA0B;AAC3B,YAAM,SAAS;AACf,YAAM,QAAQ,OAAO;AACrB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,eAAO,MAAM,CAAC,CAAC;AAAA,MACnB;AACA,aAAO,IAAI;AACX,aAAO,OAAO;AACd;AAAA,IACJ;AAAA,IACA,KAAK,GAA2B;AAC5B,YAAM,UAAU;AAChB,YAAM,QAAQ,QAAQ;AACtB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,eAAO,MAAM,CAAC,CAAC;AAAA,MACnB;AACA,cAAQ,IAAI;AACZ,aAAO,QAAQ;AACf,UAAI,QAAQ,QAAQ;AAChB,gBAAQ,IAAI,QAAQ;AACpB,eAAO,QAAQ;AAAA,MACnB;AACA;AAAA,IACJ;AAAA,IACA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,GAA6B;AAC9B,YAAM,YAAY;AAClB,UAAI,UAAU,OAAO;AACjB,kBAAU,IAAI,UAAU;AACxB,eAAO,UAAU;AAAA,MACrB;AACA;AAAA,IACJ;AAAA,IACA,KAAK,GAA0B;AAC3B,YAAM,SAAS;AACf,aAAO,OAAO,GAAG;AACjB,aAAO,IAAI,OAAO;AAClB,aAAO,OAAO;AACd,UAAI,OAAO,UAAU;AACjB,eAAO,OAAO,QAAQ;AACtB,eAAO,IAAI,OAAO;AAClB,eAAO,OAAO;AAAA,MAClB;AACA;AAAA,IACJ;AAAA,IACA,KAAK,GAAwB;AACzB,YAAM,OAAO;AACb,WAAK,IAAI,KAAK;AACd,aAAO,KAAK;AACZ;AAAA,IACJ;AAAA,IACA,KAAK,GAAyB;AAC1B,YAAM,QAAQ;AACd,YAAM,IAAI,MAAM;AAChB,aAAO,MAAM;AACb;AAAA,IACJ;AAAA,IACA;AACI,UAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,cAAM,mBAAmB,kBAAkB,8BAA8B,MAAM;AAAA,UAC3E,QAAQ;AAAA,UACR,MAAM,CAAC,KAAK,IAAI;AAAA,QAAA,CACnB;AAAA,MACL;AAAA,EAAA;AAER,SAAO,KAAK;AAChB;AAKA,MAAM,eAAe;AACrB,SAAS,oBAAoB,KAAK,SAAS;AACvC,QAAM,EAAa,UAAU,eAAe,YAAY,gBAAgB;AACxE,QAAM,WAAW,QAAQ,aAAa;AACtC,QAAM,WAAW;AAAA,IACb;AAAA,IACA,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,IACL;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,EAAA;AAEjB,MAAI,YAAY,IAAI,KAAK;AACrB,aAAS,SAAS,IAAI,IAAI;AAAA,EAC9B;AACA,QAAM,UAAU,MAAM;AACtB,WAAS,KAAK,MAAM,MAAM;AACtB,aAAS,QAAQ;AAAA,EACrB;AACA,WAAS,SAAS,GAAG,gBAAgB,MAAM;AACvC,UAAM,iBAAiB,gBAAgB,gBAAgB;AACvD,SAAK,cAAc,iBAAiB,KAAK,OAAO,CAAC,IAAI,cAAc;AAAA,EACvE;AACA,WAAS,OAAO,cAAc,MAAM;AAChC,UAAM,QAAQ,EAAE,SAAS;AACzB,mBAAe,SAAS,KAAK;AAAA,EACjC;AACA,WAAS,SAAS,cAAc,MAAM;AAClC,UAAM,QAAQ,EAAE,SAAS;AACzB,mBAAe,SAAS,KAAK;AAAA,EACjC;AACA,WAAS,UAAU;AACf,aAAS,SAAS,WAAW;AAAA,EACjC;AACA,QAAM,SAAS,CAAC,QAAQ,IAAI,GAAG;AAC/B,QAAM,aAAa,MAAM,SAAS;AAClC,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;AACA,SAAS,mBAAmB,WAAW,MAAM;AACzC,QAAM,EAAE,WAAW;AACnB,YAAU,KAAK,GAAG;AAAA,IAAO;AAAA;AAAA,EAAA,CAAoC,GAAG;AAChE,eAAa,WAAW,KAAK,GAAG;AAChC,MAAI,KAAK,UAAU;AACf,cAAU,KAAK,IAAI;AACnB,iBAAa,WAAW,KAAK,QAAQ;AACrC,cAAU,KAAK,SAAS;AAAA,EAC5B,OACK;AACD,cAAU,KAAK,oBAAoB;AAAA,EACvC;AACA,YAAU,KAAK,GAAG;AACtB;AACA,SAAS,oBAAoB,WAAW,MAAM;AAC1C,QAAM,EAAE,QAAQ,WAAA,IAAe;AAC/B,YAAU,KAAK,GAAG;AAAA,IAAO;AAAA;AAAA,EAAA,CAA0C,IAAI;AACvE,YAAU,OAAO,YAAY;AAC7B,QAAM,SAAS,KAAK,MAAM;AAC1B,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,iBAAa,WAAW,KAAK,MAAM,CAAC,CAAC;AACrC,QAAI,MAAM,SAAS,GAAG;AAClB;AAAA,IACJ;AACA,cAAU,KAAK,IAAI;AAAA,EACvB;AACA,YAAU,SAAS,YAAY;AAC/B,YAAU,KAAK,IAAI;AACvB;AACA,SAAS,mBAAmB,WAAW,MAAM;AACzC,QAAM,EAAE,QAAQ,WAAA,IAAe;AAC/B,MAAI,KAAK,MAAM,SAAS,GAAG;AACvB,cAAU,KAAK,GAAG;AAAA,MAAO;AAAA;AAAA,IAAA,CAAoC,IAAI;AACjE,cAAU,OAAO,YAAY;AAC7B,UAAM,SAAS,KAAK,MAAM;AAC1B,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC7B,mBAAa,WAAW,KAAK,MAAM,CAAC,CAAC;AACrC,UAAI,MAAM,SAAS,GAAG;AAClB;AAAA,MACJ;AACA,gBAAU,KAAK,IAAI;AAAA,IACvB;AACA,cAAU,SAAS,YAAY;AAC/B,cAAU,KAAK,IAAI;AAAA,EACvB;AACJ;AACA,SAAS,iBAAiB,WAAW,MAAM;AACvC,MAAI,KAAK,MAAM;AACX,iBAAa,WAAW,KAAK,IAAI;AAAA,EACrC,OACK;AACD,cAAU,KAAK,MAAM;AAAA,EACzB;AACJ;AACA,SAAS,aAAa,WAAW,MAAM;AACnC,QAAM,EAAE,WAAW;AACnB,UAAQ,KAAK,MAAA;AAAA,IACT,KAAK;AACD,uBAAiB,WAAW,IAAI;AAChC;AAAA,IACJ,KAAK;AACD,yBAAmB,WAAW,IAAI;AAClC;AAAA,IACJ,KAAK;AACD,0BAAoB,WAAW,IAAI;AACnC;AAAA,IACJ,KAAK;AACD,yBAAmB,WAAW,IAAI;AAClC;AAAA,IACJ,KAAK;AACD,gBAAU,KAAK,KAAK,UAAU,KAAK,KAAK,GAAG,IAAI;AAC/C;AAAA,IACJ,KAAK;AACD,gBAAU,KAAK,KAAK,UAAU,KAAK,KAAK,GAAG,IAAI;AAC/C;AAAA,IACJ,KAAK;AACD,gBAAU,KAAK,GAAG;AAAA,QAAO;AAAA;AAAA,MAAA,CAA8C,IAAI;AAAA,QAAO;AAAA;AAAA,MAAA,CAAgC,IAAI,KAAK,KAAK,MAAM,IAAI;AAC1I;AAAA,IACJ,KAAK;AACD,gBAAU,KAAK,GAAG;AAAA,QAAO;AAAA;AAAA,MAAA,CAA8C,IAAI;AAAA,QAAO;AAAA;AAAA,MAAA,CAAkC,IAAI,KAAK,UAAU,KAAK,GAAG,CAAC,MAAM,IAAI;AAC1J;AAAA,IACJ,KAAK;AACD,gBAAU,KAAK,KAAK,UAAU,KAAK,KAAK,GAAG,IAAI;AAC/C;AAAA,IACJ,KAAK;AACD,gBAAU,KAAK,KAAK,UAAU,KAAK,KAAK,GAAG,IAAI;AAC/C;AAAA,IACJ;AACI,UAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,cAAM,mBAAmB,kBAAkB,6BAA6B,MAAM;AAAA,UAC1E,QAAQ;AAAA,UACR,MAAM,CAAC,KAAK,IAAI;AAAA,QAAA,CACnB;AAAA,MACL;AAAA,EAAA;AAEZ;AAEA,MAAM,WAAW,CAAC,KAAK,UAAU,OAAO;AACpC,QAAM,OAAO,SAAS,QAAQ,IAAI,IAAI,QAAQ,OAAO;AACrD,QAAM,WAAW,SAAS,QAAQ,QAAQ,IACpC,QAAQ,WACR;AACY,GAAC,CAAC,QAAQ;AAE5B,QAAM,gBAAgB,QAAQ,iBAAiB,OACzC,QAAQ,gBACR,SAAS,UACL,MACA;AACV,QAAM,aAAa,QAAQ,aAAa,QAAQ,aAAa,SAAS;AACtE,QAAM,UAAU,IAAI,WAAW,CAAA;AAC/B,QAAM,YAAY,oBAAoB,KAAK;AAAA,IAEvC;AAAA,IAEA;AAAA,IACA;AAAA,EAAA,CACH;AACD,YAAU,KAAK,SAAS,WAAW,6BAA6B,YAAY;AAC5E,YAAU,OAAO,UAAU;AAC3B,MAAI,QAAQ,SAAS,GAAG;AACpB,cAAU,KAAK,WAAW,KAAK,QAAQ,IAAI,CAAA,MAAK,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU;AAC/E,cAAU,QAAA;AAAA,EACd;AACA,YAAU,KAAK,SAAS;AACxB,eAAa,WAAW,GAAG;AAC3B,YAAU,SAAS,UAAU;AAC7B,YAAU,KAAK,GAAG;AAClB,SAAO,IAAI;AACX,QAAM,EAAE,MAAM,QAAQ,UAAU,QAAA;AAChC,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA,KAAK,MAAM,IAAI,WAAW;AAAA;AAAA,EAAA;AAElC;AAEA,SAASkB,cAAY,QAAQ,UAAU,IAAI;AACvC,QAAM,kBAAkB,OAAO,CAAA,GAAI,OAAO;AAC1C,QAAM,MAAM,CAAC,CAAC,gBAAgB;AAC9B,QAAM,eAAe,CAAC,CAAC,gBAAgB;AACvC,QAAM,iBAAiB,gBAAgB,YAAY,OAAO,OAAO,gBAAgB;AAEjF,QAAM,SAAS,aAAa,eAAe;AAC3C,QAAM,MAAM,OAAO,MAAM,MAAM;AAC/B,MAAI,CAAC,KAAK;AAEN,cAAU,KAAK,eAAe;AAE9B,WAAO,SAAS,KAAK,eAAe;AAAA,EACxC,OACK;AAED,sBAAkB,SAAS,GAAG;AAE9B,oBAAgB,OAAO,GAAG;AAE1B,WAAO,EAAE,KAAK,MAAM,GAAA;AAAA,EACxB;AACJ;ACv/CA,SAAS,aAAa,KAAK;AACvB,SAAQ,SAAS,GAAG,KAChB,YAAY,GAAG,MAAM,MACpB,OAAO,KAAK,GAAG,KAAK,OAAO,KAAK,MAAM;AAC/C;AACA,MAAM,aAAa,CAAC,KAAK,MAAM;AAC/B,SAAS,YAAY,MAAM;AACvB,SAAO,aAAa,MAAM,UAAU;AACxC;AACA,MAAM,cAAc,CAAC,KAAK,OAAO;AACjC,SAAS,aAAa,MAAM;AACxB,SAAO,aAAa,MAAM,aAAa,EAAE;AAC7C;AACA,MAAM,eAAe,CAAC,KAAK,QAAQ;AACnC,SAAS,cAAc,MAAM;AACzB,SAAO,aAAa,MAAM,YAAY;AAC1C;AACA,MAAM,cAAc,CAAC,KAAK,OAAO;AACjC,SAAS,aAAa,MAAM;AACxB,SAAO,aAAa,MAAM,aAAa,EAAE;AAC7C;AACA,MAAM,aAAa,CAAC,KAAK,MAAM;AAC/B,SAAS,YAAY,MAAM;AACvB,SAAO,aAAa,MAAM,UAAU;AACxC;AACA,MAAM,cAAc,CAAC,KAAK,OAAO;AACjC,SAAS,eAAe,MAAM,MAAM;AAChC,QAAM,WAAW,aAAa,MAAM,WAAW;AAC/C,MAAI,YAAY,MAAM;AAClB,WAAO;AAAA,EACX,OACK;AACD,UAAM,wBAAwB,IAAI;AAAA,EACtC;AACJ;AACA,MAAM,iBAAiB,CAAC,KAAK,UAAU;AACvC,SAAS,sBAAsB,MAAM;AACjC,SAAO,aAAa,MAAM,cAAc;AAC5C;AACA,MAAM,YAAY,CAAC,KAAK,KAAK;AAC7B,SAAS,iBAAiB,MAAM;AAC5B,QAAM,WAAW,aAAa,MAAM,SAAS;AAC7C,MAAI,UAAU;AACV,WAAO;AAAA,EACX,OACK;AACD,UAAM;AAAA,MAAwB;AAAA;AAAA,IAAA;AAAA,EAClC;AACJ;AACA,SAAS,aAAa,MAAM,OAAO,cAAc;AAC7C,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,UAAM,OAAO,MAAM,CAAC;AAEpB,QAAI,OAAO,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM;AAE1C,aAAO,KAAK,IAAI;AAAA,IACpB;AAAA,EACJ;AACA,SAAO;AACX;AACA,MAAM,sBAAsB;AAAA,EACxB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACP;AACA,SAAS,wBAAwB,MAAM;AACnC,SAAO,IAAI,MAAM,wBAAwB,IAAI,EAAE;AACnD;AAEA,SAAS,OAAO,KAAK;AACjB,QAAM,MAAM,CAAC,QAAQ,YAAY,KAAK,GAAG;AACzC,SAAO;AACX;AACA,SAAS,YAAY,KAAK,KAAK;AAC3B,QAAM,OAAO,YAAY,GAAG;AAC5B,MAAI,QAAQ,MAAM;AACd,UAAM;AAAA,MAAwB;AAAA;AAAA,IAAA;AAAA,EAClC;AACA,QAAM,OAAO,YAAY,IAAI;AAC7B,MAAI,SAAS,GAA0B;AACnC,UAAM,SAAS;AACf,UAAM,QAAQ,aAAa,MAAM;AACjC,WAAO,IAAI,OAAO,MAAM,OAAO,CAAC,UAAU,MAAM;AAAA,MAC5C,GAAG;AAAA,MACH,mBAAmB,KAAK,CAAC;AAAA,IAAA,GAC1B,CAAA,CAAE,CAAC;AAAA,EACV,OACK;AACD,WAAO,mBAAmB,KAAK,IAAI;AAAA,EACvC;AACJ;AACA,SAAS,mBAAmB,KAAK,MAAM;AACnC,QAAM,UAAU,cAAc,IAAI;AAClC,MAAI,WAAW,MAAM;AACjB,WAAO,IAAI,SAAS,SACd,UACA,IAAI,UAAU,CAAC,OAAO,CAAC;AAAA,EACjC,OACK;AACD,UAAM,WAAW,aAAa,IAAI,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,kBAAkB,KAAK,CAAC,CAAC,GAAG,CAAA,CAAE;AAC9F,WAAO,IAAI,UAAU,QAAQ;AAAA,EACjC;AACJ;AACA,SAAS,kBAAkB,KAAK,MAAM;AAClC,QAAM,OAAO,YAAY,IAAI;AAC7B,UAAQ,MAAA;AAAA,IACJ,KAAK,GAAwB;AACzB,aAAO,eAAe,MAAM,IAAI;AAAA,IACpC;AAAA,IACA,KAAK,GAA2B;AAC5B,aAAO,eAAe,MAAM,IAAI;AAAA,IACpC;AAAA,IACA,KAAK,GAAyB;AAC1B,YAAM,QAAQ;AACd,UAAI,OAAO,OAAO,GAAG,KAAK,MAAM,GAAG;AAC/B,eAAO,IAAI,YAAY,IAAI,MAAM,MAAM,CAAC,CAAC;AAAA,MAC7C;AACA,UAAI,OAAO,OAAO,KAAK,KAAK,MAAM,KAAK;AACnC,eAAO,IAAI,YAAY,IAAI,MAAM,MAAM,GAAG,CAAC;AAAA,MAC/C;AACA,YAAM,wBAAwB,IAAI;AAAA,IACtC;AAAA,IACA,KAAK,GAAwB;AACzB,YAAM,OAAO;AACb,UAAI,OAAO,MAAM,GAAG,KAAK,SAAS,KAAK,CAAC,GAAG;AACvC,eAAO,IAAI,YAAY,IAAI,KAAK,KAAK,CAAC,CAAC;AAAA,MAC3C;AACA,UAAI,OAAO,MAAM,OAAO,KAAK,SAAS,KAAK,KAAK,GAAG;AAC/C,eAAO,IAAI,YAAY,IAAI,KAAK,KAAK,KAAK,CAAC;AAAA,MAC/C;AACA,YAAM,wBAAwB,IAAI;AAAA,IACtC;AAAA,IACA,KAAK,GAA0B;AAC3B,YAAM,SAAS;AACf,YAAM,WAAW,sBAAsB,MAAM;AAC7C,YAAM,MAAM,iBAAiB,MAAM;AACnC,aAAO,IAAI,OAAO,kBAAkB,KAAK,GAAG,GAAG,WAAW,kBAAkB,KAAK,QAAQ,IAAI,QAAW,IAAI,IAAI;AAAA,IACpH;AAAA,IACA,KAAK,GAA6B;AAC9B,aAAO,eAAe,MAAM,IAAI;AAAA,IACpC;AAAA,IACA,KAAK,GAAkC;AACnC,aAAO,eAAe,MAAM,IAAI;AAAA,IACpC;AAAA,IACA;AACI,YAAM,IAAI,MAAM,0CAA0C,IAAI,EAAE;AAAA,EAAA;AAE5E;AAEA,MAAM,eAAe;AACrB,SAAS,iBAAiB,QAAQ,iBAAiB;AAC/C,MAAI,mBAAmB,cAAc,MAAM,GAAG;AAC1C,SAAK,SAAS,cAAc,EAAE,OAAA,CAAQ,CAAC;AAAA,EAC3C;AACJ;AACA,MAAM,oBAAoB,CAAC,YAAY;AACvC,IAAI,eAAe,OAAA;AAInB,SAAS,YAAY,SAAS,UAAU,IAAI;AAExC,MAAI,cAAc;AAClB,QAAM,UAAU,QAAQ,WAAW;AACnC,UAAQ,UAAU,CAAC,QAAQ;AACvB,kBAAc;AACd,YAAQ,GAAG;AAAA,EACf;AAEA,SAAO,EAAE,GAAG,cAAc,SAAS,OAAO,GAAG,YAAA;AACjD;AAAA;AAEA,SAAS,QAAQ,SAAS,SAAS;AAC/B,MACI,SAAS,OAAO,GAAG;AAEnB,UAAM,kBAAkB,UAAU,QAAQ,eAAe,IACnD,QAAQ,kBACR;AACL,YAAQ,IAAI,aAAa,gBAAiB,iBAAiB,SAAS,eAAe;AAEpF,UAAM,aAAa,QAAQ,cAAc;AACzC,UAAM,WAAW,WAAW,OAAO;AACnC,UAAM,SAAS,aAAa,QAAQ;AACpC,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AAEA,UAAM,EAAE,KAAK,gBAAgB,YAAY,SAAS;AAAA,MAC9C,GAAG;AAAA,MACH,UAAW,QAAQ,IAAI,aAAa;AAAA,MACpC,KAAK;AAAA,IAAA,CACR;AAED,UAAM,MAAM,OAAO,GAAG;AAEtB,WAAO,CAAC,cACD,aAAa,QAAQ,IAAI,MAC1B;AAAA,EACV,OACK;AACD,QAAK,QAAQ,IAAI,aAAa,gBAAiB,CAAC,aAAa,OAAO,GAAG;AACnE,WAAK,yCAAyC,QAAQ,GAAG,wCAAwC;AACjG,cAAQ,MAAM;AAAA,IAClB;AAEA,UAAM,WAAW,QAAQ;AACzB,QAAI,UAAU;AACV,YAAM,SAAS,aAAa,QAAQ;AACpC,UAAI,QAAQ;AACR,eAAO;AAAA,MACX;AAEA,aAAQ,aAAa,QAAQ,IACzB,OAAO,OAAO;AAAA,IACtB,OACK;AACD,aAAO,OAAO,OAAO;AAAA,IACzB;AAAA,EACJ;AACJ;AAEA,IAAI,WAAW;AACf,SAAS,gBAAgB,MAAM;AAC3B,aAAW;AACf;AAIA,SAAS,iBAAiB,MAAM,SAAS,MAAM;AAE3C,cACI,SAAS,KAAK,aAAa;AAAA,IACvB,WAAW,KAAK,IAAA;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACH;AACT;AACA,MAAM,uDAC4B,oBAAoB;AACtD,SAAS,mBAAmB,MAAM;AAC9B,SAAO,CAAC,aAAa,YAAY,SAAS,KAAK,MAAM,QAAQ;AACjE;AAEA,MAAM,iBAAiB;AAAA,EACnB,kBAAkB;AAAA;AAAA,EAClB,uBAAuB;AAAA,EACvB,2BAA2B;AAAA,EAC3B,gCAAgC;AAAA,EAChC,kCAAkC;AAAA,EAClC,mCAAmC;AAAA,EACnC,yBAAyB;AAC7B;AACA,MAAM,gCAAgC;AACtC,SAAS,gBAAgB,MAAM;AAC3B,SAAO,mBAAmB,MAAM,MAAO,QAAQ,IAAI,aAAa,eAAgB,EAAE,UAAUJ,gBAAA,IAAkB,MAAS;AAC3H;AAEA,MAAMA,kBAAgB;AAAA,EAClB,CAAC,eAAe,gBAAgB,GAAG;AAAA,EACnC,CAAC,eAAe,qBAAqB,GAAG;AAAA,EAExC,CAAC,eAAe,yBAAyB,GAAG;AAAA,EAC5C,CAAC,eAAe,8BAA8B,GAAG;AAAA,EACjD,CAAC,eAAe,gCAAgC,GAAG;AAAA,EACnD,CAAC,eAAe,iCAAiC,GAAG;AAAA,EACpD,CAAC,eAAe,uBAAuB,GAAG;AAC9C;AAGA,SAAS,UAAU,SAAS,SAAS;AACjC,SAAO,QAAQ,UAAU,OACnB,cAAc,QAAQ,MAAM,IAC5B,cAAc,QAAQ,MAAM;AACtC;AACA,IAAI;AAEJ,SAAS,cAAc,QAAQ;AAC3B,MAAI,SAAS,MAAM,GAAG;AAClB,WAAO;AAAA,EACX,OACK;AACD,QAAI,WAAW,MAAM,GAAG;AACpB,UAAI,OAAO,gBAAgB,kBAAkB,MAAM;AAC/C,eAAO;AAAA,MACX,WACS,OAAO,YAAY,SAAS,YAAY;AAC7C,cAAM,UAAU,OAAA;AAChB,YAAI,UAAU,OAAO,GAAG;AACpB,gBAAM,gBAAgB,eAAe,gCAAgC;AAAA,QACzE;AACA,eAAQ,iBAAiB;AAAA,MAC7B,OACK;AACD,cAAM,gBAAgB,eAAe,iCAAiC;AAAA,MAC1E;AAAA,IACJ,OACK;AACD,YAAM,gBAAgB,eAAe,uBAAuB;AAAA,IAChE;AAAA,EACJ;AACJ;AAiBA,SAAS,mBAAmB,KAAK,UAAU,OAAO;AAE9C,SAAO,CAAC,GAAG,oBAAI,IAAI;AAAA,IACX;AAAA,IACA,GAAI,QAAQ,QAAQ,IACd,WACA,SAAS,QAAQ,IACb,OAAO,KAAK,QAAQ,IACpB,SAAS,QAAQ,IACb,CAAC,QAAQ,IACT,CAAC,KAAK;AAAA,EAAA,CACvB,CAAC;AACV;AAiBA,SAAS,wBAAwB,KAAK,UAAU,OAAO;AACnD,QAAM,cAAc,SAAS,KAAK,IAAI,QAAQ;AAC9C,QAAM,UAAU;AAChB,MAAI,CAAC,QAAQ,oBAAoB;AAC7B,YAAQ,yCAAyB,IAAA;AAAA,EACrC;AACA,MAAI,QAAQ,QAAQ,mBAAmB,IAAI,WAAW;AACtD,MAAI,CAAC,OAAO;AACR,YAAQ,CAAA;AAER,QAAI,QAAQ,CAAC,KAAK;AAElB,WAAO,QAAQ,KAAK,GAAG;AACnB,cAAQ,mBAAmB,OAAO,OAAO,QAAQ;AAAA,IACrD;AAGA,UAAM,WAAW,QAAQ,QAAQ,KAAK,CAAC,cAAc,QAAQ,IACvD,WACA,SAAS,SAAS,IACd,SAAS,SAAS,IAClB;AAEV,YAAQ,SAAS,QAAQ,IAAI,CAAC,QAAQ,IAAI;AAC1C,QAAI,QAAQ,KAAK,GAAG;AAChB,yBAAmB,OAAO,OAAO,KAAK;AAAA,IAC1C;AACA,YAAQ,mBAAmB,IAAI,aAAa,KAAK;AAAA,EACrD;AACA,SAAO;AACX;AACA,SAAS,mBAAmB,OAAO,OAAO,QAAQ;AAC9C,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,UAAU,UAAU,MAAM,GAAG,KAAK;AACxD,UAAM,SAAS,MAAM,CAAC;AACtB,QAAI,SAAS,MAAM,GAAG;AAClB,eAAS,oBAAoB,OAAO,MAAM,CAAC,GAAG,MAAM;AAAA,IACxD;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,oBAAoB,OAAO,QAAQ,QAAQ;AAChD,MAAI;AACJ,QAAM,SAAS,OAAO,MAAM,GAAG;AAC/B,KAAG;AACC,UAAM,SAAS,OAAO,KAAK,GAAG;AAC9B,aAAS,kBAAkB,OAAO,QAAQ,MAAM;AAChD,WAAO,OAAO,IAAI,CAAC;AAAA,EACvB,SAAS,OAAO,UAAU,WAAW;AACrC,SAAO;AACX;AACA,SAAS,kBAAkB,OAAO,QAAQ,QAAQ;AAC9C,MAAI,SAAS;AACb,MAAI,CAAC,MAAM,SAAS,MAAM,GAAG;AACzB,aAAS;AACT,QAAI,QAAQ;AACR,eAAS,OAAO,OAAO,SAAS,CAAC,MAAM;AACvC,YAAM,SAAS,OAAO,QAAQ,MAAM,EAAE;AACtC,YAAM,KAAK,MAAM;AACjB,WAAK,QAAQ,MAAM,KAAK,cAAc,MAAM,MACxC,OAAO,MAAM,GACf;AAEE,iBAAS,OAAO,MAAM;AAAA,MAC1B;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AAEA,MAAM,mBAAmB,CAAA;AACzB;AAAA,EAAiB;AAAA;AAA0B,IAAI;AAAA,EAC3C;AAAA,IAAC;AAAA;AAAA,EAAA,GAAoC;AAAA,IAAC;AAAA;AAAA,EAAA;AAAA,EACtC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAgC;AAAA,IAAC;AAAA,IAAyB;AAAA;AAAA,EAAA;AAAA,EAC3D;AAAA,IAAC;AAAA;AAAA,EAAA,GAAuC;AAAA,IAAC;AAAA;AAAA,EAAA;AAAA,EACzC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAsC;AAAA,IAAC;AAAA;AAAA,EAAA;AAC5C;AACA;AAAA,EAAiB;AAAA;AAAsB,IAAI;AAAA,EACvC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAoC;AAAA,IAAC;AAAA;AAAA,EAAA;AAAA,EACtC;AAAA,IAAC;AAAA;AAAA,EAAA,GAA8B;AAAA,IAAC;AAAA;AAAA,EAAA;AAAA,EAChC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAuC;AAAA,IAAC;AAAA;AAAA,EAAA;AAAA,EACzC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAsC;AAAA,IAAC;AAAA;AAAA,EAAA;AAC5C;AACA;AAAA,EAAiB;AAAA;AAA2B,IAAI;AAAA,EAC5C;AAAA,IAAC;AAAA;AAAA,EAAA,GAAoC;AAAA,IAAC;AAAA;AAAA,EAAA;AAAA,EACtC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAgC;AAAA,IAAC;AAAA,IAAyB;AAAA;AAAA,EAAA;AAAA,EAC3D;AAAA,IAAC;AAAA;AAAA,EAAA,GAA+B;AAAA,IAAC;AAAA,IAAyB;AAAA;AAAA,EAAA;AAC9D;AACA;AAAA,EAAiB;AAAA;AAAuB,IAAI;AAAA,EACxC;AAAA,IAAC;AAAA;AAAA,EAAA,GAAgC;AAAA,IAAC;AAAA,IAAyB;AAAA;AAAA,EAAA;AAAA,EAC3D;AAAA,IAAC;AAAA;AAAA,EAAA,GAA+B;AAAA,IAAC;AAAA,IAAyB;AAAA;AAAA,EAAA;AAAA,EAC1D;AAAA,IAAC;AAAA;AAAA,EAAA,GAAoC;AAAA,IAAC;AAAA,IAAwB;AAAA;AAAA,EAAA;AAAA,EAC9D;AAAA,IAAC;AAAA;AAAA,EAAA,GAA8B;AAAA,IAAC;AAAA,IAA6B;AAAA;AAAA,EAAA;AAAA,EAC7D;AAAA,IAAC;AAAA;AAAA,EAAA,GAAuC;AAAA,IAAC;AAAA,IAA4B;AAAA;AAAA,EAAA;AAAA,EACrE;AAAA,IAAC;AAAA;AAAA,EAAA,GAAsC;AAAA,IAAC;AAAA,IAA2B;AAAA;AAAA,EAAA;AACvE;AACA;AAAA,EAAiB;AAAA;AAA0B,IAAI;AAAA,EAC3C;AAAA,IAAC;AAAA;AAAA,EAAA,GAAuC;AAAA,IAAC;AAAA,IAAgC;AAAA;AAAA,EAAA;AAAA,EACzE;AAAA,IAAC;AAAA;AAAA,EAAA,GAAwC;AAAA,IAAC;AAAA,IAAgC;AAAA;AAAA,EAAA;AAAA,EAC1E;AAAA,IAAC;AAAA;AAAA,EAAA,GAAuC;AAAA,IACpC;AAAA,IACA;AAAA;AAAA,EAAA;AAAA,EAEJ;AAAA,IAAC;AAAA;AAAA,EAAA,GAAwC;AAAA,IAAC;AAAA,IAAwB;AAAA;AAAA,EAAA;AAAA,EAClE;AAAA,IAAC;AAAA;AAAA,EAAA,GAAsC;AAAA,EACvC;AAAA,IAAC;AAAA;AAAA,EAAA,GAA+B;AAAA,IAAC;AAAA,IAA4B;AAAA;AAAA,EAAA;AACjE;AACA;AAAA,EAAiB;AAAA;AAA8B,IAAI;AAAA,EAC/C;AAAA,IAAC;AAAA;AAAA,EAAA,GAAuC;AAAA,IAAC;AAAA,IAA4B;AAAA;AAAA,EAAA;AAAA,EACrE;AAAA,IAAC;AAAA;AAAA,EAAA,GAAsC;AAAA,EACvC;AAAA,IAAC;AAAA;AAAA,EAAA,GAA+B;AAAA,IAAC;AAAA,IAAgC;AAAA;AAAA,EAAA;AACrE;AACA;AAAA,EAAiB;AAAA;AAA8B,IAAI;AAAA,EAC/C;AAAA,IAAC;AAAA;AAAA,EAAA,GAAwC;AAAA,IAAC;AAAA,IAA4B;AAAA;AAAA,EAAA;AAAA,EACtE;AAAA,IAAC;AAAA;AAAA,EAAA,GAAsC;AAAA,EACvC;AAAA,IAAC;AAAA;AAAA,EAAA,GAA+B;AAAA,IAAC;AAAA,IAAgC;AAAA;AAAA,EAAA;AACrE;AAIA,MAAM,iBAAiB;AACvB,SAAS,UAAU,KAAK;AACpB,SAAO,eAAe,KAAK,GAAG;AAClC;AAIA,SAAS,YAAY,KAAK;AACtB,QAAM,IAAI,IAAI,WAAW,CAAC;AAC1B,QAAM,IAAI,IAAI,WAAW,IAAI,SAAS,CAAC;AACvC,SAAO,MAAM,MAAM,MAAM,MAAQ,MAAM,MAAQ,IAAI,MAAM,GAAG,EAAE,IAAI;AACtE;AAIA,SAAS,gBAAgB,IAAI;AACzB,MAAI,OAAO,UAAa,OAAO,MAAM;AACjC,WAAO;AAAA,EACX;AACA,QAAM,OAAO,GAAG,WAAW,CAAC;AAC5B,UAAQ,MAAA;AAAA,IACJ,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AAAA;AAAA,IACL,KAAK;AACD,aAAO;AAAA,EAAA;AAEf,SAAO;AACX;AAMA,SAAS,cAAc,MAAM;AACzB,QAAM,UAAU,KAAK,KAAA;AAErB,MAAI,KAAK,OAAO,CAAC,MAAM,OAAO,MAAM,SAAS,IAAI,CAAC,GAAG;AACjD,WAAO;AAAA,EACX;AACA,SAAO,UAAU,OAAO,IAClB,YAAY,OAAO,IACnB,MAAmC;AAC7C;AAIA,SAAS,MAAM,MAAM;AACjB,QAAM,OAAO,CAAA;AACb,MAAI,QAAQ;AACZ,MAAI,OAAO;AACX,MAAI,eAAe;AACnB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,QAAM,UAAU,CAAA;AAChB;AAAA,IAAQ;AAAA;AAAA,EAAA,IAA0B,MAAM;AACpC,QAAI,QAAQ,QAAW;AACnB,YAAM;AAAA,IACV,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACA;AAAA,IAAQ;AAAA;AAAA,EAAA,IAAwB,MAAM;AAClC,QAAI,QAAQ,QAAW;AACnB,WAAK,KAAK,GAAG;AACb,YAAM;AAAA,IACV;AAAA,EACJ;AACA;AAAA,IAAQ;AAAA;AAAA,EAAA,IAAsC,MAAM;AAChD;AAAA,MAAQ;AAAA;AAAA,IAAA,EAAsB;AAC9B;AAAA,EACJ;AACA;AAAA,IAAQ;AAAA;AAAA,EAAA,IAAiC,MAAM;AAC3C,QAAI,eAAe,GAAG;AAClB;AACA,aAAO;AACP;AAAA,QAAQ;AAAA;AAAA,MAAA,EAAsB;AAAA,IAClC,OACK;AACD,qBAAe;AACf,UAAI,QAAQ,QAAW;AACnB,eAAO;AAAA,MACX;AACA,YAAM,cAAc,GAAG;AACvB,UAAI,QAAQ,OAAO;AACf,eAAO;AAAA,MACX,OACK;AACD;AAAA,UAAQ;AAAA;AAAA,QAAA,EAAoB;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AACA,WAAS,qBAAqB;AAC1B,UAAM,WAAW,KAAK,QAAQ,CAAC;AAC/B,QAAK,SAAS,KACV,aAAa,OACZ,SAAS,KACN,aAAa,KAAwC;AACzD;AACA,gBAAU,OAAO;AACjB;AAAA,QAAQ;AAAA;AAAA,MAAA,EAAsB;AAC9B,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO,SAAS,MAAM;AAClB;AACA,QAAI,KAAK,KAAK;AACd,QAAI,MAAM,QAAQ,sBAAsB;AACpC;AAAA,IACJ;AACA,WAAO,gBAAgB,CAAC;AACxB,cAAU,iBAAiB,IAAI;AAC/B,iBAAa,QAAQ,IAAI,KAAK;AAAA,MAAQ;AAAA;AAAA,IAAA,KAAiC;AAEvE,QAAI,eAAe,GAAsB;AACrC;AAAA,IACJ;AACA,WAAO,WAAW,CAAC;AACnB,QAAI,WAAW,CAAC,MAAM,QAAW;AAC7B,eAAS,QAAQ,WAAW,CAAC,CAAC;AAC9B,UAAI,QAAQ;AACR,kBAAU;AACV,YAAI,OAAA,MAAa,OAAO;AACpB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,SAAS,GAA2B;AACpC,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AAEA,MAAM,4BAAY,IAAA;AAclB,SAAS,oBAAoB,KAAK,MAAM;AACpC,SAAO,SAAS,GAAG,IAAI,IAAI,IAAI,IAAI;AACvC;AAcA,SAAS,aAAa,KAAK,MAAM;AAE7B,MAAI,CAAC,SAAS,GAAG,GAAG;AAChB,WAAO;AAAA,EACX;AAEA,MAAI,MAAM,MAAM,IAAI,IAAI;AACxB,MAAI,CAAC,KAAK;AACN,UAAM,MAAM,IAAI;AAChB,QAAI,KAAK;AACL,YAAM,IAAI,MAAM,GAAG;AAAA,IACvB;AAAA,EACJ;AAEA,MAAI,CAAC,KAAK;AACN,WAAO;AAAA,EACX;AAEA,QAAM,MAAM,IAAI;AAEhB,MAAI,OAAO;AACX,MAAI,IAAI;AACR,SAAO,IAAI,KAAK;AACZ,UAAM,MAAM,IAAI,CAAC;AAMjB,QAAI,oBAAoB,SAAS,GAAG,KAAK,aAAa,IAAI,GAAG;AACzD,aAAO;AAAA,IACX;AACA,QAAI,CAAC,SAAS,IAAI,GAAG;AACjB,aAAO;AAAA,IACX;AACA,QAAI,CAAC,OAAO,MAAM,GAAG,GAAG;AACpB,aAAO;AAAA,IACX;AACA,UAAM,MAAM,KAAK,GAAG;AACpB,QAAI,QAAQ,QAAW;AACnB,aAAO;AAAA,IACX;AACA,QAAI,WAAW,IAAI,GAAG;AAClB,aAAO;AAAA,IACX;AACA,WAAO;AACP;AAAA,EACJ;AACA,SAAO;AACX;AAEA,MAAM,gBAAgB;AAAA,EAClB,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,sCAAsC;AAAA,EACtC,yBAAyB;AAAA,EACzB,uBAAuB;AAC3B;AACA,MAAM,+BAA+B;AAErC,MAAMK,iBAAe;AAAA,EACjB,CAAC,cAAc,aAAa,GAAG;AAAA,EAC/B,CAAC,cAAc,qBAAqB,GAAG;AAAA,EACvC,CAAC,cAAc,oBAAoB,GAAG;AAAA,EACtC,CAAC,cAAc,yBAAyB,GAAG;AAAA,EAC3C,CAAC,cAAc,kBAAkB,GAAG;AAAA,EACpC,CAAC,cAAc,uBAAuB,GAAG;AAAA,EACzC,CAAC,cAAc,oCAAoC,GAAG;AAAA,EACtD,CAAC,cAAc,uBAAuB,GAAG;AAAA,EACzC,CAAC,cAAc,qBAAqB,GAAG;AAC3C;AACA,SAASC,iBAAe,SAAS,MAAM;AACnC,SAAO,SAASD,eAAa,IAAI,GAAG,GAAG,IAAI;AAC/C;AAOA,MAAME,YAAU;AAChB,MAAM,eAAe;AACrB,MAAM,iBAAiB;AACvB,MAAM,wBAAwB;AAC9B,MAAM,aAAa,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,EAAE,kBAAA,CAAmB,GAAG,IAAI,OAAO,CAAC,CAAC;AAChF,SAAS,4BAA4B;AACjC,SAAO;AAAA,IACH,OAAO,CAAC,KAAK,SAAS;AAElB,aAAO,SAAS,UAAU,SAAS,GAAG,IAChC,IAAI,gBACJ,SAAS,WAAW,SAAS,GAAG,KAAK,iBAAiB,MAClD,IAAI,SAAS,gBACb;AAAA,IACd;AAAA,IACA,OAAO,CAAC,KAAK,SAAS;AAElB,aAAO,SAAS,UAAU,SAAS,GAAG,IAChC,IAAI,gBACJ,SAAS,WAAW,SAAS,GAAG,KAAK,iBAAiB,MAClD,IAAI,SAAS,gBACb;AAAA,IACd;AAAA,IACA,YAAY,CAAC,KAAK,SAAS;AAEvB,aAAQ,SAAS,UAAU,SAAS,GAAG,IACjC,WAAW,GAAG,IACd,SAAS,WAAW,SAAS,GAAG,KAAK,iBAAiB,MAClD,WAAW,IAAI,QAAQ,IACvB;AAAA,IACd;AAAA,EAAA;AAER;AACA,IAAI;AACJ,SAAS,wBAAwB,UAAU;AACvC,cAAY;AAChB;AACA,IAAI;AAQJ,SAAS,wBAAwB,UAAU;AACvC,cAAY;AAChB;AACA,IAAI;AAQJ,SAAS,yBAAyB,YAAY;AAC1C,gBAAc;AAClB;AAEA,IAAI,kBAAkB;AAEtB,MAAM,+CAAoB,CAAC,SAAS;AAChC,oBAAkB;AACtB;AAEA,MAAM,+CAAoB,MAAM;AAChC,IAAI,mBAAmB;AACvB,MAAM,qBAAqB,CAAC,YAAY;AACpC,qBAAmB;AACvB;AACA,MAAM,qBAAqB,MAAM;AAEjC,IAAI,OAAO;AACX,SAAS,kBAAkB,UAAU,IAAI;AAErC,QAAM,SAAS,WAAW,QAAQ,MAAM,IAAI,QAAQ,SAAS;AAC7D,QAAM,UAAU,SAAS,QAAQ,OAAO,IAAI,QAAQ,UAAUA;AAC9D,QAAM,SAAS,SAAS,QAAQ,MAAM,KAAK,WAAW,QAAQ,MAAM,IAC9D,QAAQ,SACR;AACN,QAAM,UAAU,WAAW,MAAM,IAAI,iBAAiB;AACtD,QAAM,iBAAiB,QAAQ,QAAQ,cAAc,KACjD,cAAc,QAAQ,cAAc,KACpC,SAAS,QAAQ,cAAc,KAC/B,QAAQ,mBAAmB,QACzB,QAAQ,iBACR;AACN,QAAM,WAAW,cAAc,QAAQ,QAAQ,IACzC,QAAQ,WACR,gBAAgB,OAAO;AAC7B,QAAM,kBAAkB,cAAc,QAAQ,eAAe,IACnD,QAAQ,kBACR,gBAAgB,OAAO;AAEjC,QAAM,gBAAgB,cAAc,QAAQ,aAAa,IAC/C,QAAQ,gBACR,gBAAgB,OAAO;AAEjC,QAAM,YAAY,OAAO,OAAA,GAAU,QAAQ,WAAW,2BAA2B;AACjF,QAAM,cAAc,QAAQ,eAAe,OAAA;AAC3C,QAAM,UAAU,WAAW,QAAQ,OAAO,IAAI,QAAQ,UAAU;AAChE,QAAM,cAAc,UAAU,QAAQ,WAAW,KAAK,SAAS,QAAQ,WAAW,IAC5E,QAAQ,cACR;AACN,QAAM,eAAe,UAAU,QAAQ,YAAY,KAAK,SAAS,QAAQ,YAAY,IAC/E,QAAQ,eACR;AACN,QAAM,iBAAiB,CAAC,CAAC,QAAQ;AACjC,QAAM,cAAc,CAAC,CAAC,QAAQ;AAC9B,QAAM,kBAAkB,WAAW,QAAQ,eAAe,IACpD,QAAQ,kBACR;AACN,QAAM,YAAY,cAAc,QAAQ,SAAS,IAAI,QAAQ,YAAY;AACzE,QAAM,kBAAkB,UAAU,QAAQ,eAAe,IACnD,QAAQ,kBACR;AACN,QAAM,kBAAkB,CAAC,CAAC,QAAQ;AAClC,QAAM,kBAAkB,WAAW,QAAQ,eAAe,IACpD,QAAQ,kBACR;AACN,MAAK,QAAQ,IAAI,aAAa,gBAC1B,QACA,QACA,WAAW,QAAQ,eAAe,GAAG;AACrC,aAASD,iBAAe,cAAc,oCAAoC,CAAC;AAAA,EAC/E;AACA,QAAM,kBAAkB,WAAW,QAAQ,eAAe,IACpD,QAAQ,kBACR,aAAa;AACnB,QAAM,mBAAmB,WAAW,QAAQ,gBAAgB,IACtD,QAAQ,mBACR,eAAe;AACrB,QAAM,kBAAkB,SAAS,QAAQ,eAAe,IAClD,QAAQ,kBACR;AAEN,QAAM,kBAAkB;AACxB,QAAM,uBAAuB,SAAS,gBAAgB,oBAAoB,IAChE,gBAAgB,2CACZ,IAAA;AAEd,QAAM,qBAAqB,SAAS,gBAAgB,kBAAkB,IAC5D,gBAAgB,yCACZ,IAAA;AAEd,QAAM,SAAS,SAAS,gBAAgB,MAAM,IAAI,gBAAgB,SAAS,CAAA;AAC3E;AACA,QAAM,UAAU;AAAA,IACZ;AAAA,IACA,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AACI,YAAQ,kBAAkB;AAC1B,YAAQ,gBAAgB;AACxB,YAAQ,uBAAuB;AAC/B,YAAQ,qBAAqB;AAAA,EACjC;AAEA,MAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,YAAQ,cACJ,gBAAgB,eAAe,OACzB,gBAAgB,cAChB;AAAA,EACd;AAEA,MAAK,QAAQ,IAAI,aAAa,gBAAiB,OAA2B;AACtE,qBAAiB,SAAS,SAAS,MAAM;AAAA,EAC7C;AACA,SAAO;AACX;AACA,MAAM,kBAAkB,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,SAAO;AAExD,SAAS,wBAAwB,UAAU,KAAK;AAC5C,SAAO,oBAAoB,SAAS,SAAS,KAAK,GAAG,IAAI;AAC7D;AAEA,SAAS,uBAAuB,SAAS,KAAK;AAC1C,SAAO,mBAAmB,SAAS,QAAQ,KAAK,GAAG,IAAI;AAC3D;AAEA,SAAS,cAAc,SAAS,KAAK,QAAQ,aAAa,MAAM;AAC5D,QAAM,EAAE,SAAS,OAAA,IAAW;AAE5B,MAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,UAAM,UAAU,QAAQ;AACxB,QAAI,SAAS;AACT,cAAQ,KAAK,WAAW;AAAA,QACpB;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,GAAG,IAAI,IAAI,GAAG;AAAA,MAAA,CAC1B;AAAA,IACL;AAAA,EACJ;AACA,MAAI,YAAY,MAAM;AAClB,UAAM,MAAM,QAAQ,SAAS,QAAQ,KAAK,IAAI;AAC9C,WAAO,SAAS,GAAG,IAAI,MAAM;AAAA,EACjC,OACK;AACD,QAAK,QAAQ,IAAI,aAAa,gBAAiB,uBAAuB,aAAa,GAAG,GAAG;AACrF,aAAOA,iBAAe,cAAc,eAAe,EAAE,KAAK,OAAA,CAAQ,CAAC;AAAA,IACvE;AACA,WAAO;AAAA,EACX;AACJ;AAEA,SAAS,qBAAqB,KAAK,QAAQ,UAAU;AACjD,QAAM,UAAU;AAChB,UAAQ,yCAAyB,IAAA;AACjC,MAAI,iBAAiB,KAAK,UAAU,MAAM;AAC9C;AAEA,SAAS,mBAAmB,QAAQ,eAAe;AAC/C,MAAI,WAAW;AACX,WAAO;AACX,SAAO,OAAO,MAAM,GAAG,EAAE,CAAC,MAAM,cAAc,MAAM,GAAG,EAAE,CAAC;AAC9D;AAEA,SAAS,mBAAmB,cAAc,SAAS;AAC/C,QAAM,QAAQ,QAAQ,QAAQ,YAAY;AAC1C,MAAI,UAAU,IAAI;AACd,WAAO;AAAA,EACX;AACA,WAAS,IAAI,QAAQ,GAAG,IAAI,QAAQ,QAAQ,KAAK;AAC7C,QAAI,mBAAmB,cAAc,QAAQ,CAAC,CAAC,GAAG;AAC9C,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AAGA,MAAM,cAAc,OAAO,SAAS;AACpC,MAAM,iBAAiB;AAAA,EACnB,gBAAgB,eAAe,OAAO,KAAK,mBAAmB;AAAA,EAC9D,cAAc,eAAe,OAAO,KAAK,iBAAiB;AAC9D;AAGA,SAAS,SAAS,YAAY,MAAM;AAChC,QAAM,EAAE,iBAAiB,aAAa,gBAAgB,QAAQ,qBAAqB;AACnF,QAAM,EAAE,yBAAyB;AACjC,MAAK,QAAQ,IAAI,aAAa,gBAAiB,CAAC,eAAe,gBAAgB;AAC3E,WAAOA,iBAAe,cAAc,kBAAkB,CAAC;AACvD,WAAO;AAAA,EACX;AACA,MAAI,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG;AAC9D,QAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,aAAOA,iBAAe,cAAc,uBAAuB;AAAA,QACvD,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,MAAA,CACxB,CAAC;AAAA,IACN;AACA,WAAO;AAAA,EACX;AACA,QAAM,CAAC,KAAK,OAAO,SAAS,SAAS,IAAI,kBAAkB,GAAG,IAAI;AAClE,QAAM,cAAc,UAAU,QAAQ,WAAW,IAC3C,QAAQ,cACR,QAAQ;AACd,QAAM,eAAe,UAAU,QAAQ,YAAY,IAC7C,QAAQ,eACR,QAAQ;AACd,QAAM,OAAO,CAAC,CAAC,QAAQ;AACvB,QAAM,SAAS,UAAU,SAAS,OAAO;AACzC,QAAM,UAAU;AAAA,IAAiB;AAAA;AAAA,IACjC;AAAA,IAAgB;AAAA,EAAA;AAChB,MAAI,CAAC,SAAS,GAAG,KAAK,QAAQ,IAAI;AAC9B,WAAO,IAAI,KAAK,eAAe,OAAO,QAAQ,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,KAAK;AAAA,EACpF;AAEA,MAAI,iBAAiB,CAAA;AACrB,MAAI;AACJ,MAAInB,UAAS;AACb,MAAI,OAAO;AACX,MAAI,KAAK;AACT,QAAM,OAAO;AACb,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,mBAAe,KAAK,QAAQ,CAAC;AAC7B,QAAK,QAAQ,IAAI,aAAa,gBAC1B,WAAW,gBACX,wBAAwB,cAAc,GAAG,GAAG;AAC5C,aAAOmB,iBAAe,cAAc,yBAAyB;AAAA,QACzD;AAAA,QACA,QAAQ;AAAA,MAAA,CACX,CAAC;AAAA,IACN;AAEA,QAAK,QAAQ,IAAI,aAAa,gBAAiB,WAAW,cAAc;AACpE,YAAM,UAAU,QAAQ;AACxB,UAAI,SAAS;AACT,gBAAQ,KAAK,YAAY;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,GAAG,IAAI,IAAI,GAAG;AAAA,QAAA,CAC1B;AAAA,MACL;AAAA,IACJ;AACA,qBACI,gBAAgB,YAAY,KAAK,CAAA;AACrCnB,cAAS,eAAe,GAAG;AAC3B,QAAI,cAAcA,OAAM;AACpB;AACJ,kBAAc,SAAS,KAAK,cAAc,aAAa,IAAI;AAC3D,WAAO;AAAA,EACX;AAEA,MAAI,CAAC,cAAcA,OAAM,KAAK,CAAC,SAAS,YAAY,GAAG;AACnD,WAAO,cAAc,eAAe;AAAA,EACxC;AACA,MAAI,KAAK,GAAG,YAAY,KAAK,GAAG;AAChC,MAAI,CAAC,cAAc,SAAS,GAAG;AAC3B,SAAK,GAAG,EAAE,KAAK,KAAK,UAAU,SAAS,CAAC;AAAA,EAC5C;AACA,MAAI,YAAY,qBAAqB,IAAI,EAAE;AAC3C,MAAI,CAAC,WAAW;AACZ,gBAAY,IAAI,KAAK,eAAe,cAAc,OAAO,CAAA,GAAIA,SAAQ,SAAS,CAAC;AAC/E,yBAAqB,IAAI,IAAI,SAAS;AAAA,EAC1C;AACA,SAAO,CAAC,OAAO,UAAU,OAAO,KAAK,IAAI,UAAU,cAAc,KAAK;AAC1E;AAEA,MAAM,+BAA+B;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,SAAS,qBAAqB,MAAM;AAChC,QAAM,CAAC,MAAM,MAAM,MAAM,IAAI,IAAI;AACjC,QAAM,UAAU,OAAA;AAChB,MAAI,YAAY,OAAA;AAChB,MAAI;AACJ,MAAI,SAAS,IAAI,GAAG;AAGhB,UAAM,UAAU,KAAK,MAAM,gCAAgC;AAC3D,QAAI,CAAC,SAAS;AACV,YAAM,gBAAgB,eAAe,yBAAyB;AAAA,IAClE;AAGA,UAAM,WAAW,QAAQ,CAAC,IACpB,QAAQ,CAAC,EAAE,KAAA,EAAO,WAAW,GAAG,IAC5B,GAAG,QAAQ,CAAC,EAAE,KAAA,CAAM,GAAG,QAAQ,CAAC,EAAE,MAAM,KACxC,GAAG,QAAQ,CAAC,EAAE,MAAM,IAAI,QAAQ,CAAC,EAAE,KAAA,CAAM,KAC7C,QAAQ,CAAC,EAAE,KAAA;AACjB,YAAQ,IAAI,KAAK,QAAQ;AACzB,QAAI;AAEA,YAAM,YAAA;AAAA,IACV,QACM;AACF,YAAM,gBAAgB,eAAe,yBAAyB;AAAA,IAClE;AAAA,EACJ,WACS,OAAO,IAAI,GAAG;AACnB,QAAI,MAAM,KAAK,QAAA,CAAS,GAAG;AACvB,YAAM,gBAAgB,eAAe,qBAAqB;AAAA,IAC9D;AACA,YAAQ;AAAA,EACZ,WACS,SAAS,IAAI,GAAG;AACrB,YAAQ;AAAA,EACZ,OACK;AACD,UAAM,gBAAgB,eAAe,gBAAgB;AAAA,EACzD;AACA,MAAI,SAAS,IAAI,GAAG;AAChB,YAAQ,MAAM;AAAA,EAClB,WACS,cAAc,IAAI,GAAG;AAC1B,WAAO,KAAK,IAAI,EAAE,QAAQ,CAAA,QAAO;AAC7B,UAAI,6BAA6B,SAAS,GAAG,GAAG;AAC5C,kBAAU,GAAG,IAAI,KAAK,GAAG;AAAA,MAC7B,OACK;AACD,gBAAQ,GAAG,IAAI,KAAK,GAAG;AAAA,MAC3B;AAAA,IACJ,CAAC;AAAA,EACL;AACA,MAAI,SAAS,IAAI,GAAG;AAChB,YAAQ,SAAS;AAAA,EACrB,WACS,cAAc,IAAI,GAAG;AAC1B,gBAAY;AAAA,EAChB;AACA,MAAI,cAAc,IAAI,GAAG;AACrB,gBAAY;AAAA,EAChB;AACA,SAAO,CAAC,QAAQ,OAAO,IAAI,OAAO,SAAS,SAAS;AACxD;AAEA,SAAS,oBAAoB,KAAK,QAAQA,SAAQ;AAC9C,QAAM,UAAU;AAChB,aAAW,OAAOA,SAAQ;AACtB,UAAM,KAAK,GAAG,MAAM,KAAK,GAAG;AAC5B,QAAI,CAAC,QAAQ,qBAAqB,IAAI,EAAE,GAAG;AACvC;AAAA,IACJ;AACA,YAAQ,qBAAqB,OAAO,EAAE;AAAA,EAC1C;AACJ;AAGA,SAAS,OAAO,YAAY,MAAM;AAC9B,QAAM,EAAE,eAAe,aAAa,gBAAgB,QAAQ,qBAAqB;AACjF,QAAM,EAAE,uBAAuB;AAC/B,MAAK,QAAQ,IAAI,aAAa,gBAAiB,CAAC,eAAe,cAAc;AACzE,WAAOmB,iBAAe,cAAc,oBAAoB,CAAC;AACzD,WAAO;AAAA,EACX;AACA,MAAI,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG;AACpB,QAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,aAAOA,iBAAe,cAAc,yBAAyB;AAAA,QACzD,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,MAAA,CACxB,CAAC;AAAA,IACN;AACA,WAAO;AAAA,EACX;AACA,QAAM,CAAC,KAAK,OAAO,SAAS,SAAS,IAAI,gBAAgB,GAAG,IAAI;AAChE,QAAM,cAAc,UAAU,QAAQ,WAAW,IAC3C,QAAQ,cACR,QAAQ;AACd,QAAM,eAAe,UAAU,QAAQ,YAAY,IAC7C,QAAQ,eACR,QAAQ;AACd,QAAM,OAAO,CAAC,CAAC,QAAQ;AACvB,QAAM,SAAS,UAAU,SAAS,OAAO;AACzC,QAAM,UAAU;AAAA,IAAiB;AAAA;AAAA,IACjC;AAAA,IAAgB;AAAA,EAAA;AAChB,MAAI,CAAC,SAAS,GAAG,KAAK,QAAQ,IAAI;AAC9B,WAAO,IAAI,KAAK,aAAa,OAAO,QAAQ,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,KAAK;AAAA,EAClF;AAEA,MAAI,eAAe,CAAA;AACnB,MAAI;AACJ,MAAInB,UAAS;AACb,MAAI,OAAO;AACX,MAAI,KAAK;AACT,QAAM,OAAO;AACb,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,mBAAe,KAAK,QAAQ,CAAC;AAC7B,QAAK,QAAQ,IAAI,aAAa,gBAC1B,WAAW,gBACX,wBAAwB,cAAc,GAAG,GAAG;AAC5C,aAAOmB,iBAAe,cAAc,2BAA2B;AAAA,QAC3D;AAAA,QACA,QAAQ;AAAA,MAAA,CACX,CAAC;AAAA,IACN;AAEA,QAAK,QAAQ,IAAI,aAAa,gBAAiB,WAAW,cAAc;AACpE,YAAM,UAAU,QAAQ;AACxB,UAAI,SAAS;AACT,gBAAQ,KAAK,YAAY;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,GAAG,IAAI,IAAI,GAAG;AAAA,QAAA,CAC1B;AAAA,MACL;AAAA,IACJ;AACA,mBACI,cAAc,YAAY,KAAK,CAAA;AACnCnB,cAAS,aAAa,GAAG;AACzB,QAAI,cAAcA,OAAM;AACpB;AACJ,kBAAc,SAAS,KAAK,cAAc,aAAa,IAAI;AAC3D,WAAO;AAAA,EACX;AAEA,MAAI,CAAC,cAAcA,OAAM,KAAK,CAAC,SAAS,YAAY,GAAG;AACnD,WAAO,cAAc,eAAe;AAAA,EACxC;AACA,MAAI,KAAK,GAAG,YAAY,KAAK,GAAG;AAChC,MAAI,CAAC,cAAc,SAAS,GAAG;AAC3B,SAAK,GAAG,EAAE,KAAK,KAAK,UAAU,SAAS,CAAC;AAAA,EAC5C;AACA,MAAI,YAAY,mBAAmB,IAAI,EAAE;AACzC,MAAI,CAAC,WAAW;AACZ,gBAAY,IAAI,KAAK,aAAa,cAAc,OAAO,CAAA,GAAIA,SAAQ,SAAS,CAAC;AAC7E,uBAAmB,IAAI,IAAI,SAAS;AAAA,EACxC;AACA,SAAO,CAAC,OAAO,UAAU,OAAO,KAAK,IAAI,UAAU,cAAc,KAAK;AAC1E;AAEA,MAAM,6BAA6B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,SAAS,mBAAmB,MAAM;AAC9B,QAAM,CAAC,MAAM,MAAM,MAAM,IAAI,IAAI;AACjC,QAAM,UAAU,OAAA;AAChB,MAAI,YAAY,OAAA;AAChB,MAAI,CAAC,SAAS,IAAI,GAAG;AACjB,UAAM,gBAAgB,eAAe,gBAAgB;AAAA,EACzD;AACA,QAAM,QAAQ;AACd,MAAI,SAAS,IAAI,GAAG;AAChB,YAAQ,MAAM;AAAA,EAClB,WACS,cAAc,IAAI,GAAG;AAC1B,WAAO,KAAK,IAAI,EAAE,QAAQ,CAAA,QAAO;AAC7B,UAAI,2BAA2B,SAAS,GAAG,GAAG;AAC1C,kBAAU,GAAG,IAAI,KAAK,GAAG;AAAA,MAC7B,OACK;AACD,gBAAQ,GAAG,IAAI,KAAK,GAAG;AAAA,MAC3B;AAAA,IACJ,CAAC;AAAA,EACL;AACA,MAAI,SAAS,IAAI,GAAG;AAChB,YAAQ,SAAS;AAAA,EACrB,WACS,cAAc,IAAI,GAAG;AAC1B,gBAAY;AAAA,EAChB;AACA,MAAI,cAAc,IAAI,GAAG;AACrB,gBAAY;AAAA,EAChB;AACA,SAAO,CAAC,QAAQ,OAAO,IAAI,OAAO,SAAS,SAAS;AACxD;AAEA,SAAS,kBAAkB,KAAK,QAAQA,SAAQ;AAC5C,QAAM,UAAU;AAChB,aAAW,OAAOA,SAAQ;AACtB,UAAM,KAAK,GAAG,MAAM,KAAK,GAAG;AAC5B,QAAI,CAAC,QAAQ,mBAAmB,IAAI,EAAE,GAAG;AACrC;AAAA,IACJ;AACA,YAAQ,mBAAmB,OAAO,EAAE;AAAA,EACxC;AACJ;AAEA,MAAM,mBAAmB,CAAC,QAAQ;AAClC,MAAM,kBAAkB,CAAC,QAAQ;AACjC,MAAM,4BAA4B;AAClC,MAAM,oBAAoB,CAAC,WAAW,OAAO,WAAW,IAAI,KAAK,KAAK,MAAM;AAC5E,MAAM,sBAAsB;AAC5B,SAAS,cAAc,QAAQ,eAAe;AAC1C,WAAS,KAAK,IAAI,MAAM;AAExB,MAAI,kBAAkB,GAAG;AAErB,WAAO,WAAW,IACZ,IACA;AAAA,EACV;AAEA,SAAO,KAAK,IAAI,QAAQ,CAAC;AAC7B;AACA,SAAS,eAAe,SAAS;AAE7B,QAAM,QAAQ,SAAS,QAAQ,WAAW,IACpC,QAAQ,cACR;AACN,SAAO,SAAS,QAAQ,OAAO,KAAK,IAC9B,QAAQ,MAAM,QACd,SAAS,QAAQ,OAAO,CAAC,IACrB,QAAQ,MAAM,IACd;AACd;AACA,SAAS,qBAAqB,UAAU,IAAI;AACxC,QAAM,SAAS,QAAQ;AACvB,QAAM,cAAc,eAAe,OAAO;AAC1C,QAAM,aAAa,SAAS,MAAM,KAAK,WAAW,QAAQ,cAAc,MAAM,CAAC,IACzE,QAAQ,YAAY,MAAM,IAC1B;AACN,QAAM,gBAAgB,eAAe,gBAAgB,SAAY;AACjE,QAAM,SAAS,CAAC,aAAa,SAAS,WAAW,aAAa,SAAS,QAAQ,aAAa,CAAC;AAC7F,QAAM,QAAQ,QAAQ,QAAQ,CAAA;AAC9B,QAAM,OAAO,CAAC,UAAU,MAAM,KAAK;AACnC,QAAM,SAAS,QAAQ,SAAS,OAAA;AAEhC,MAAI,SAAS,QAAQ,WAAW,GAAG;AAC/B,WAAO,UAAU,QAAQ;AACzB,WAAO,MAAM,QAAQ;AAAA,EACzB;AACA,QAAM,QAAQ,CAAC,QAAQ,OAAO,GAAG;AACjC,WAAS,QAAQ,KAAK,WAAW;AAE7B,UAAM,MAAM,WAAW,QAAQ,QAAQ,IACjC,QAAQ,SAAS,KAAK,CAAC,CAAC,SAAS,IACjC,SAAS,QAAQ,QAAQ,IACrB,QAAQ,SAAS,GAAG,IACpB;AACV,WAAO,CAAC,MACF,QAAQ,SACJ,QAAQ,OAAO,QAAQ,GAAG,IAC1B,kBACJ;AAAA,EACV;AACA,QAAM,YAAY,CAAC,SAAS,QAAQ,YAC9B,QAAQ,UAAU,IAAI,IACtB;AACN,QAAM,YAAY,WAAW,QAAQ,WAAW,SAAS,IACnD,QAAQ,UAAU,YAClB;AACN,QAAM,cAAc,WAAW,QAAQ,WAAW,WAAW,IACvD,QAAQ,UAAU,cAClB;AACN,QAAM,OAAO,SAAS,QAAQ,WAAW,IAAI,IACvC,QAAQ,UAAU,OAClB;AACN,QAAM,SAAS,CAAC,QAAQ,SAAS;AAC7B,UAAM,CAAC,MAAM,IAAI,IAAI;AACrB,QAAIqB,QAAO;AACX,QAAI,WAAW;AACf,QAAI,KAAK,WAAW,GAAG;AACnB,UAAI,SAAS,IAAI,GAAG;AAChB,mBAAW,KAAK,YAAY;AAC5BA,gBAAO,KAAK,QAAQA;AAAAA,MACxB,WACS,SAAS,IAAI,GAAG;AACrB,mBAAW,QAAQ;AAAA,MACvB;AAAA,IACJ,WACS,KAAK,WAAW,GAAG;AACxB,UAAI,SAAS,IAAI,GAAG;AAChB,mBAAW,QAAQ;AAAA,MACvB;AACA,UAAI,SAAS,IAAI,GAAG;AAChBA,gBAAO,QAAQA;AAAAA,MACnB;AAAA,IACJ;AACA,UAAM,MAAM,QAAQ,KAAK,IAAI,EAAE,GAAG;AAElC,UAAM,WAAW,QAAQ,MAAM,QAAQ,SAAY,MAAM;AACzD,UAAM;AAAA;AAAA,MAENA,UAAS,WAAW,QAAQ,QAAQ,KAAK,WACnC,SAAS,CAAC,IACV;AAAA;AACN,WAAO,WAAW,UAAU,QAAQ,EAAE,KAAKA,KAAI,IAAI;AAAA,EACvD;AACA,QAAM,MAAM;AAAA,IACR;AAAA,MAAC;AAAA;AAAA,IAAA,GAAkC;AAAA,IACnC;AAAA,MAAC;AAAA;AAAA,IAAA,GAAoC;AAAA,IACrC;AAAA,MAAC;AAAA;AAAA,IAAA,GAAsC;AAAA,IACvC;AAAA,MAAC;AAAA;AAAA,IAAA,GAAsC;AAAA,IACvC;AAAA,MAAC;AAAA;AAAA,IAAA,GAAwC;AAAA,IACzC;AAAA,MAAC;AAAA;AAAA,IAAA,GAAkC;AAAA,IACnC;AAAA,MAAC;AAAA;AAAA,IAAA,GAAgD;AAAA,IACjD;AAAA,MAAC;AAAA;AAAA,IAAA,GAA4C;AAAA,IAC7C;AAAA,MAAC;AAAA;AAAA,IAAA,GAAsC,OAAO,UAAU,OAAO,MAAM;AAAA,EAAA;AAEzE,SAAO;AACX;AAEA,MAAM,wBAAwB,MAAM;AACpC,MAAM,oBAAoB,CAAC,QAAQ,WAAW,GAAG;AAEjD,SAAS,UAAU,YAAY,MAAM;AACjC,QAAM,EAAE,gBAAgB,iBAAiB,aAAa,iBAAiB,gBAAgB,aAAa;AACpG,QAAM,CAAC,KAAK,OAAO,IAAI,mBAAmB,GAAG,IAAI;AACjD,QAAM,cAAc,UAAU,QAAQ,WAAW,IAC3C,QAAQ,cACR,QAAQ;AACd,QAAM,eAAe,UAAU,QAAQ,YAAY,IAC7C,QAAQ,eACR,QAAQ;AACd,QAAM,kBAAkB,UAAU,QAAQ,eAAe,IACnD,QAAQ,kBACR,QAAQ;AACd,QAAM,kBAAkB,CAAC,CAAC,QAAQ;AAElC,QAAM,kBAAkB,SAAS,QAAQ,OAAO,KAAK,UAAU,QAAQ,OAAO,IACxE,CAAC,UAAU,QAAQ,OAAO,IACtB,QAAQ,UACP,CAAC,kBAAkB,MAAM,MAAM,MACpC,iBACK,CAAC,kBAAkB,MAAM,MAAM,MAChC;AACV,QAAM,mBAAmB,kBACpB,mBAAmB,SACf,SAAS,eAAe,KAAK,WAAW,eAAe;AAChE,QAAM,SAAS,UAAU,SAAS,OAAO;AAEzC,qBAAmB,aAAa,OAAO;AAGvC,MAAI,CAAC,aAAa,cAAc,OAAO,IAAI,CAAC,kBACtC,qBAAqB,SAAS,KAAK,QAAQ,gBAAgB,cAAc,WAAW,IACpF;AAAA,IACE;AAAA,IACA;AAAA,IACA,SAAS,MAAM,KAAK,OAAA;AAAA,EAAO;AAOnC,MAAIrB,UAAS;AAEb,MAAI,eAAe;AACnB,MAAI,CAAC,mBACD,EAAE,SAASA,OAAM,KACb,aAAaA,OAAM,KACnB,kBAAkBA,OAAM,IAAI;AAChC,QAAI,kBAAkB;AAClBA,gBAAS;AACT,qBAAeA;AAAAA,IACnB;AAAA,EACJ;AAEA,MAAI,CAAC,oBACA,EAAE,SAASA,OAAM,KACd,aAAaA,OAAM,KACnB,kBAAkBA,OAAM,MACxB,CAAC,SAAS,YAAY,IAAI;AAC9B,WAAO,cAAc,eAAe;AAAA,EACxC;AAEA,MAAK,QAAQ,IAAI,aAAa,gBAAiB,SAASA,OAAM,KAAK,QAAQ,mBAAmB,MAAM;AAChG,SAAK,yLAGgC,GAAG,IAAI;AAC5C,WAAO;AAAA,EACX;AAEA,MAAI,WAAW;AACf,QAAM,UAAU,MAAM;AAClB,eAAW;AAAA,EACf;AAEA,QAAM,MAAM,CAAC,kBAAkBA,OAAM,IAC/B,qBAAqB,SAAS,KAAK,cAAcA,SAAQ,cAAc,OAAO,IAC9EA;AAEN,MAAI,UAAU;AACV,WAAOA;AAAAA,EACX;AAEA,QAAM,aAAa,yBAAyB,SAAS,cAAc,SAAS,OAAO;AACnF,QAAM,aAAa,qBAAqB,UAAU;AAClD,QAAM,WAAW,gBAAgB,SAAS,KAAK,UAAU;AAEzD,MAAI,MAAM,kBACJ,gBAAgB,UAAU,GAAG,IAC7B;AAEN,MAAI,mBAAmB,SAAS,GAAG,GAAG;AAClC,UAAM,uBAAuB,GAAG;AAAA,EACpC;AAEA,MAAK,QAAQ,IAAI,aAAa,gBAAiB,OAA2B;AAEtE,UAAM,WAAW;AAAA,MACb,WAAW,KAAK,IAAA;AAAA,MAChB,KAAK,SAAS,GAAG,IACX,MACA,kBAAkBA,OAAM,IACpBA,QAAO,MACP;AAAA,MACV,QAAQ,iBAAiB,kBAAkBA,OAAM,IAC3CA,QAAO,SACP;AAAA,MACN,QAAQ,SAASA,OAAM,IACjBA,UACA,kBAAkBA,OAAM,IACpBA,QAAO,SACP;AAAA,MACV,SAAS;AAAA,IAAA;AAEb,aAAS,OAAO,OAAO,CAAA,GAAI,QAAQ,QAAQ,kCAAA,KAAuB,EAAE;AACpE,sBAAkB,QAAQ;AAAA,EAC9B;AACA,SAAO;AACX;AACA,SAAS,aAAa,SAAS;AAC3B,MAAI,QAAQ,QAAQ,IAAI,GAAG;AACvB,YAAQ,OAAO,QAAQ,KAAK,IAAI,CAAA,SAAQ,SAAS,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI;AAAA,EACpF,WACS,SAAS,QAAQ,KAAK,GAAG;AAC9B,WAAO,KAAK,QAAQ,KAAK,EAAE,QAAQ,CAAA,QAAO;AACtC,UAAI,SAAS,QAAQ,MAAM,GAAG,CAAC,GAAG;AAC9B,gBAAQ,MAAM,GAAG,IAAI,WAAW,QAAQ,MAAM,GAAG,CAAC;AAAA,MACtD;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AACA,SAAS,qBAAqB,SAAS,KAAK,QAAQ,gBAAgB,cAAc,aAAa;AAC3F,QAAM,EAAE,UAAU,QAAQ,iBAAiBsB,eAAc,qBAAqB;AAC9E,QAAM,UAAU,iBAAiB,SAAS,gBAAgB,MAAM;AAChE,MAAI,UAAU,OAAA;AACd,MAAI;AACJ,MAAItB,UAAS;AACb,MAAI,OAAO;AACX,MAAI,KAAK;AACT,QAAM,OAAO;AACb,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,mBAAe,KAAK,QAAQ,CAAC;AAC7B,QAAK,QAAQ,IAAI,aAAa,gBAC1B,WAAW,gBACX,CAAC,mBAAmB,QAAQ,YAAY,KACxC,wBAAwB,cAAc,GAAG,GAAG;AAC5C,aAAOmB,iBAAe,cAAc,uBAAuB;AAAA,QACvD;AAAA,QACA,QAAQ;AAAA,MAAA,CACX,CAAC;AAAA,IACN;AACA,UAAM,UAAW,QAAQ,IAAI,aAAa,eACpC,QAAQ,cACR;AAEN,QAAK,QAAQ,IAAI,aAAa,gBAAiB,WAAW,cAAc;AACpE,UAAI,SAAS;AACT,gBAAQ,KAAK,YAAY;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,GAAG,IAAI,IAAI,GAAG;AAAA,QAAA,CAC1B;AAAA,MACL;AAAA,IACJ;AACA,cACI,SAAS,YAAY,KAAK,OAAA;AAK9B,QAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAsB;AAMrE,SAAKnB,UAASsB,cAAa,SAAS,GAAG,OAAO,MAAM;AAEhDtB,gBAAS,QAAQ,GAAG;AAAA,IACxB;AAEA,QAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAsB;AAgBrE,QAAI,SAASA,OAAM,KAAK,aAAaA,OAAM,KAAK,kBAAkBA,OAAM,GAAG;AACvE;AAAA,IACJ;AACA,QAAI,CAAC,mBAAmB,cAAc,OAAO,GAAG;AAC5C,YAAM,aAAa;AAAA,QAAc;AAAA;AAAA,QACjC;AAAA,QAAK;AAAA,QAAc;AAAA,QAAa;AAAA,MAAA;AAChC,UAAI,eAAe,KAAK;AACpBA,kBAAS;AAAA,MACb;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACA,SAAO,CAACA,SAAQ,cAAc,OAAO;AACzC;AACA,SAAS,qBAAqB,SAAS,KAAK,cAAcA,SAAQ,cAAc,SAAS;AACrF,QAAM,EAAE,iBAAiB,gBAAA,IAAoB;AAC7C,MAAI,kBAAkBA,OAAM,GAAG;AAC3B,UAAMuB,OAAMvB;AACZuB,SAAI,SAASA,KAAI,UAAU;AAC3BA,SAAI,MAAMA,KAAI,OAAO;AACrB,WAAOA;AAAAA,EACX;AACA,MAAI,mBAAmB,MAAM;AACzB,UAAMA,QAAO,MAAMvB;AACnBuB,SAAI,SAAS;AACbA,SAAI,MAAM;AACV,WAAOA;AAAAA,EACX;AAEiB,UAAQ,IAAI,aAAa,eACpC,QAAQ,cACR;AAIN,MAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAsB;AAMrE,QAAM,MAAM,gBAAgBvB,SAAQ,kBAAkB,SAAS,cAAc,cAAcA,SAAQ,iBAAiB,OAAO,CAAC;AAE5H,MAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAsB;AAerE,MAAI,SAAS;AACb,MAAI,MAAM;AACV,MAAI,SAASA;AACb,SAAO;AACX;AACA,SAAS,gBAAgB,SAAS,KAAK,QAAQ;AAE1B,UAAQ,IAAI,aAAa,eACpC,QAAQ,cACR;AAIN,MAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAsB;AAMrE,QAAM,WAAW,IAAI,MAAM;AAE3B,MAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAsB;AAerE,SAAO;AACX;AAEA,SAAS,sBAAsB,MAAM;AACjC,QAAM,CAAC,MAAM,MAAM,IAAI,IAAI;AAC3B,QAAM,UAAU,OAAA;AAChB,MAAI,CAAC,SAAS,IAAI,KACd,CAAC,SAAS,IAAI,KACd,CAAC,kBAAkB,IAAI,KACvB,CAAC,aAAa,IAAI,GAAG;AACrB,UAAM,gBAAgB,eAAe,gBAAgB;AAAA,EACzD;AAEA,QAAM,MAAM,SAAS,IAAI,IACnB,OAAO,IAAI,IACX,kBAAkB,IAAI,IAClB,OACA;AACV,MAAI,SAAS,IAAI,GAAG;AAChB,YAAQ,SAAS;AAAA,EACrB,WACS,SAAS,IAAI,GAAG;AACrB,YAAQ,UAAU;AAAA,EACtB,WACS,cAAc,IAAI,KAAK,CAAC,cAAc,IAAI,GAAG;AAClD,YAAQ,QAAQ;AAAA,EACpB,WACS,QAAQ,IAAI,GAAG;AACpB,YAAQ,OAAO;AAAA,EACnB;AACA,MAAI,SAAS,IAAI,GAAG;AAChB,YAAQ,SAAS;AAAA,EACrB,WACS,SAAS,IAAI,GAAG;AACrB,YAAQ,UAAU;AAAA,EACtB,WACS,cAAc,IAAI,GAAG;AAC1B,WAAO,SAAS,IAAI;AAAA,EACxB;AACA,SAAO,CAAC,KAAK,OAAO;AACxB;AACA,SAAS,kBAAkB,SAAS,QAAQ,KAAK,QAAQ,iBAAiB,SAAS;AAC/E,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,QAAQ;AACd,iBAAW,QAAQ,GAAG;AACtB,UAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,cAAM,UAAU,sBAAsB,MAAM;AAC5C,cAAM,YAAY,IAAI,YAClB,WACA,kBAAkB,SAAS,IAAI,SAAS,MAAM,QAAQ,IAAI,SAAS,IAAI,MAAM;AACjF,cAAM,UAAU,QAAQ;AACxB,YAAI,WAAW,SAAS;AACpB,kBAAQ,KAAK,iBAAiB;AAAA,YAC1B,SAAS;AAAA,YACT,OAAO,IAAI;AAAA,YACX,OAAO,IAAI,YAAY,IAAI,SAAS,MAAM;AAAA,YAC1C,KAAK,IAAI,YAAY,IAAI,SAAS,IAAI;AAAA,YACtC,SAAS,GAAG,WAAW,IAAI,GAAG;AAAA,UAAA,CACjC;AAAA,QACL;AACA,cAAM,UAAU,8BAA8B,IAAI,OAAO;AACzD,cAAM,IAAI,YAAY,YAAY,GAAG,OAAO;AAAA,EAAK,SAAS,KAAK,OAAO;AAAA,MAC1E;AACA,YAAM;AAAA,IACV;AAAA,IACA,YAAY,CAACwB,YAAW,uBAAuB,QAAQ,KAAKA,OAAM;AAAA,EAAA;AAE1E;AACA,SAAS,sBAAsB,QAAQ;AACnC,MAAI,SAAS,MAAM,GAAG;AAClB,WAAO;AAAA,EACX,OACK;AACD,QAAI,OAAO,OAAO,OAAO,IAAI,QAAQ;AACjC,aAAO,OAAO,IAAI;AAAA,IACtB;AAAA,EACJ;AACJ;AACA,SAAS,yBAAyB,SAAS,QAAQ,SAAS,SAAS;AACjE,QAAM,EAAE,WAAW,aAAa,iBAAiBF,eAAc,gBAAgB,cAAc,aAAa,gBAAA,IAAoB;AAC9H,QAAM,iBAAiB,CAAC,KAAK,cAAc;AACvC,QAAI,MAAMA,cAAa,SAAS,GAAG;AAEnC,QAAI,OAAO,SAAS,mBAAmB,YAAY;AAC/C,YAAM,CAACtB,WAAUyB,QAAO,IAAI;AAAA,QAAqB,mBAAmB;AAAA;AAAA,QACpE;AAAA,QAAK;AAAA,QAAQ;AAAA,QAAgB;AAAA,QAAc;AAAA,MAAA;AAC3C,YAAMzB,WAAUsB,cAAaG,UAAS,GAAG;AAAA,IAC7C;AACA,QAAI,SAAS,GAAG,KAAK,aAAa,GAAG,GAAG;AACpC,UAAI,WAAW;AACf,YAAM,UAAU,MAAM;AAClB,mBAAW;AAAA,MACf;AACA,YAAM,MAAM,qBAAqB,SAAS,KAAK,QAAQ,KAAK,KAAK,OAAO;AACxE,aAAO,CAAC,WACF,MACA;AAAA,IACV,WACS,kBAAkB,GAAG,GAAG;AAC7B,aAAO;AAAA,IACX,OACK;AAED,aAAO;AAAA,IACX;AAAA,EACJ;AACA,QAAM,aAAa;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EAAA;AAEd,MAAI,QAAQ,WAAW;AACnB,eAAW,YAAY,QAAQ;AAAA,EACnC;AACA,MAAI,QAAQ,MAAM;AACd,eAAW,OAAO,QAAQ;AAAA,EAC9B;AACA,MAAI,QAAQ,OAAO;AACf,eAAW,QAAQ,QAAQ;AAAA,EAC/B;AACA,MAAI,SAAS,QAAQ,MAAM,GAAG;AAC1B,eAAW,cAAc,QAAQ;AAAA,EACrC;AACA,SAAO;AACX;ACn1DA,MAAM,UAAU;AAoBhB,MAAM,iBAAiB;AAAA;AAAA,EAEnB,wBAAwB;AAAA;AAAA;AAAA,EAExB,kBAAkB;AAAA;AAAA,EAElB,wBAAwB;AAAA,EACxB,eAAe;AAAA;AAAA,EAEf,gBAAgB;AAAA,EAChB,eAAe;AAAA;AAAA,EAEf,kCAAkC;AAAA,EAClC,4BAA4B;AAAA;AAAA,EAE5B,kBAAkB;AAAA;AAAA,EAElB,gCAAgC;AAAA;AAAA,EAEhC,qCAAqC;AACzC;AACA,SAAS,gBAAgB,SAAS,MAAM;AACpC,SAAO,mBAAmB,MAAM,MAAO,QAAQ,IAAI,aAAa,eAAgB,EAAE,UAAU,eAAe,KAAA,IAAS,MAAS;AACjI;AACA,MAAM,gBAAgB;AAAA,EAClB,CAAC,eAAe,sBAAsB,GAAG;AAAA,EACzC,CAAC,eAAe,gBAAgB,GAAG;AAAA,EACnC,CAAC,eAAe,sBAAsB,GAAG;AAAA,EACzC,CAAC,eAAe,aAAa,GAAG;AAAA,EAChC,CAAC,eAAe,gBAAgB,GAAG;AAAA,EACnC,CAAC,eAAe,cAAc,GAAG;AAAA,EACjC,CAAC,eAAe,aAAa,GAAG;AAAA,EAChC,CAAC,eAAe,gCAAgC,GAAG;AAAA,EACnD,CAAC,eAAe,0BAA0B,GAAG;AAAA,EAC7C,CAAC,eAAe,8BAA8B,GAAG;AAAA,EACjD,CAAC,eAAe,mCAAmC,GAAG;AAC1D;AAEA,MAAM,kDACoB,kBAAkB;AAC5C,MAAM,iDAAgD,iBAAiB;AACvE,MAAM,+CAA8C,eAAe;AACnE,MAAM,2CAA0C,iBAAiB;AACjE,MAAM,4CAA2C,kBAAkB;AACnE,MAAM,uBAAuB,WAAW,kBAAkB;AAE1D,MAAM,oDACoB,oBAAoB;AAC9C,MAAM,2CAA0C,WAAW;AAE3D,MAAM,gBAAgB;AAAA,EAClB,kBAAkB;AAAA;AAAA,EAClB,wBAAyB,+BAA+B;AAAA,EACxD,oBAAqB,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAIpD,uBAAwB,+BAA+B;AAAA;AAAA;AAAA;AAAA,EAIvD,uCAAwC,+BACpC;AAAA;AAAA,EAEJ,4BAA6B,+BAA+B;AAChE;AACA,MAAM,eAAe;AAAA,EACjB,CAAC,cAAc,gBAAgB,GAAG;AAAA,EAClC,CAAC,cAAc,sBAAsB,GAAG;AAAA,EACxC,CAAC,cAAc,kBAAkB,GAAG;AAAA;AAAA;AAAA;AAAA,EAIpC,CAAC,cAAc,qBAAqB,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA,EAIvC,CAAC,cAAc,qCAAqC,GAAG;AAAA,EACvD,CAAC,cAAc,0BAA0B,GAAG;AAChD;AACA,SAAS,eAAe,SAAS,MAAM;AACnC,SAAOzB,SAAO,aAAa,IAAI,GAAG,GAAG,IAAI;AAC7C;AAMA,SAAS,eAAe,KAAK;AAEzB,MAAI,CAAC,SAAS,GAAG,GAAG;AAChB,WAAO;AAAA,EACX;AACA,MAAI,aAAa,GAAG,GAAG;AACnB,WAAO;AAAA,EACX;AACA,aAAW,OAAO,KAAK;AAEnB,QAAI,CAAC,OAAO,KAAK,GAAG,GAAG;AACnB;AAAA,IACJ;AAEA,QAAI,CAAC,IAAI,SAAS,GAAG,GAAG;AAEpB,UAAI,SAAS,IAAI,GAAG,CAAC,GAAG;AACpB,uBAAe,IAAI,GAAG,CAAC;AAAA,MAC3B;AAAA,IACJ,OAEK;AAED,YAAM,UAAU,IAAI,MAAM,GAAG;AAC7B,YAAM,YAAY,QAAQ,SAAS;AACnC,UAAI,aAAa;AACjB,UAAI,iBAAiB;AACrB,eAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAChC,YAAI,QAAQ,CAAC,MAAM,aAAa;AAC5B,gBAAM,IAAI,MAAM,eAAe,QAAQ,CAAC,CAAC,EAAE;AAAA,QAC/C;AACA,YAAI,EAAE,QAAQ,CAAC,KAAK,aAAa;AAC7B,qBAAW,QAAQ,CAAC,CAAC,IAAI,OAAA;AAAA,QAC7B;AACA,YAAI,CAAC,SAAS,WAAW,QAAQ,CAAC,CAAC,CAAC,GAAG;AAClC,kBAAQ,IAAI,aAAa,gBACtB,KAAK,eAAe,cAAc,oBAAoB;AAAA,YAClD,KAAK,QAAQ,CAAC;AAAA,UAAA,CACjB,CAAC;AACN,2BAAiB;AACjB;AAAA,QACJ;AACA,qBAAa,WAAW,QAAQ,CAAC,CAAC;AAAA,MACtC;AAEA,UAAI,CAAC,gBAAgB;AACjB,YAAI,CAAC,aAAa,UAAU,GAAG;AAC3B,qBAAW,QAAQ,SAAS,CAAC,IAAI,IAAI,GAAG;AACxC,iBAAO,IAAI,GAAG;AAAA,QAClB,OACK;AAKD,cAAI,CAAC,oBAAoB,SAAS,QAAQ,SAAS,CAAC,GAAG;AACnD,mBAAO,IAAI,GAAG;AAAA,UAClB;AAAA,QACJ;AAAA,MACJ;AAEA,UAAI,CAAC,aAAa,UAAU,GAAG;AAC3B,cAAM,SAAS,WAAW,QAAQ,SAAS,CAAC;AAC5C,YAAI,SAAS,MAAM,GAAG;AAClB,yBAAe,MAAM;AAAA,QACzB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,kBAAkB,QAAQ,SAAS;AACxC,QAAM,EAAE,UAAU,QAAQ,iBAAiB,aAAa;AAExD,QAAM,MAAO,cAAc,QAAQ,IAC7B,WACA,QAAQ,MAAM,IACV,OAAA,IACA,EAAE,CAAC,MAAM,GAAG,SAAO;AAE7B,MAAI,QAAQ,MAAM,GAAG;AACjB,WAAO,QAAQ,CAAA,WAAU;AACrB,UAAI,YAAY,UAAU,cAAc,QAAQ;AAC5C,cAAM,EAAE,QAAA0B,SAAQ,SAAA,IAAa;AAC7B,YAAIA,SAAQ;AACR,cAAIA,OAAM,IAAI,IAAIA,OAAM,KAAK,OAAA;AAC7B,mBAAS,UAAU,IAAIA,OAAM,CAAC;AAAA,QAClC,OACK;AACD,mBAAS,UAAU,GAAG;AAAA,QAC1B;AAAA,MACJ,OACK;AACD,iBAAS,MAAM,KAAK,SAAS,KAAK,MAAM,MAAM,GAAG,GAAG;AAAA,MACxD;AAAA,IACJ,CAAC;AAAA,EACL;AAEA,MAAI,mBAAmB,QAAQ,UAAU;AACrC,eAAW,OAAO,KAAK;AACnB,UAAI,OAAO,KAAK,GAAG,GAAG;AAClB,uBAAe,IAAI,GAAG,CAAC;AAAA,MAC3B;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,oBAAoB,UAAU;AACnC,SAAO,SAAS;AACpB;AACA,SAAS,oBAAoB,IAAI,SAAS,kBAAkB;AAExD,MAAI,WAAW,SAAS,QAAQ,QAAQ,IAClC,QAAQ,WACR,OAAA;AACN,MAAI,kBAAkB,kBAAkB;AACpC,eAAW,kBAAkB,GAAG,OAAO,OAAO;AAAA,MAC1C;AAAA,MACA,QAAQ,iBAAiB;AAAA,IAAA,CAC5B;AAAA,EACL;AAEA,QAAM,UAAU,OAAO,KAAK,QAAQ;AACpC,MAAI,QAAQ,QAAQ;AAChB,YAAQ,QAAQ,CAAA,WAAU;AACtB,SAAG,mBAAmB,QAAQ,SAAS,MAAM,CAAC;AAAA,IAClD,CAAC;AAAA,EACL;AACA;AAEI,QAAI,SAAS,QAAQ,eAAe,GAAG;AACnC,YAAMC,WAAU,OAAO,KAAK,QAAQ,eAAe;AACnD,UAAIA,SAAQ,QAAQ;AAChBA,iBAAQ,QAAQ,CAAA,WAAU;AACtB,aAAG,oBAAoB,QAAQ,QAAQ,gBAAgB,MAAM,CAAC;AAAA,QAClE,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,QAAI,SAAS,QAAQ,aAAa,GAAG;AACjC,YAAMA,WAAU,OAAO,KAAK,QAAQ,aAAa;AACjD,UAAIA,SAAQ,QAAQ;AAChBA,iBAAQ,QAAQ,CAAA,WAAU;AACtB,aAAG,kBAAkB,QAAQ,QAAQ,cAAc,MAAM,CAAC;AAAA,QAC9D,CAAC;AAAA,MACL;AAAA,IACJ;AAAA,EACJ;AACJ;AACA,SAAS,eAAe,KAAK;AACzB,SAAO,YAAY,MAAM,MAAM,KAAK,CAAC;AACzC;AACA,SAAS,qBAAqB;AAE1B,QAAM,MAAM;AACZ,MAAI,OAAO,KAAK;AACZ,WAAO,IAAI,GAAG;AAAA,EAClB,OACK;AACD,WAAO,IAAI,mBAAA;AAAA,EACf;AACJ;AAKA,MAAM,gBAAgB;AACtB,MAAM,oBAAoB,MAAM,CAAA;AAChC,MAAM,oBAAoB,MAAM;AAChC,IAAI,aAAa;AACjB,SAAS,yBAAyB,SAAS;AACvC,UAAQ,CAAC,KAAK,QAAQ,KAAK,SAAS;AAChC,WAAO,QAAQ,QAAQ,KAAK,mBAAA,KAAwB,QAAW,IAAI;AAAA,EACvE;AACJ;AAGA,MAAM,yCAAc,MAAM;AACtB,QAAM,WAAW,mBAAA;AACjB,MAAI,OAAO;AACX,SAAO,aAAa,OAAO,oBAAoB,QAAQ,EAAE,aAAa,KAChE,EAAE,CAAC,aAAa,GAAG,KAAA,IACnB;AACV;AAMA,SAAS,eAAe,UAAU,IAAI;AAClC,QAAM,EAAE,QAAQ,mBAAA,IAAuB;AACvC,QAAM,YAAY,WAAW;AAC7B,QAAM,WAAW,QAAQ;AACzB,QAAM,OAAyB;AAC/B,MAAI,iBAAiB,UAAU,QAAQ,aAAa,IAC9C,QAAQ,gBACR;AACN,QAAM,UAAU;AAAA;AAAA,IAEhB,UAAU,iBACJ,OAAO,OAAO,QACd,SAAS,QAAQ,MAAM,IACnB,QAAQ,SACR;AAAA,EAAA;AACV,QAAM,kBAAkB;AAAA;AAAA,IAExB,UAAU,iBACJ,OAAO,eAAe,QACtB,SAAS,QAAQ,cAAc,KAC7B,QAAQ,QAAQ,cAAc,KAC9B,cAAc,QAAQ,cAAc,KACpC,QAAQ,mBAAmB,QACzB,QAAQ,iBACR,QAAQ;AAAA,EAAA;AAClB,QAAM,YAAY,KAAK,kBAAkB,QAAQ,OAAO,OAAO,CAAC;AAEhE,QAAM,mBAAmB,KAAK,cAAc,QAAQ,eAAe,IACzD,QAAQ,kBACR,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAA,GAAI;AAGjC,QAAM,iBAAiB,KAAK,cAAc,QAAQ,aAAa,IACrD,QAAQ,gBACR,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAA,GAAI;AAIjC,MAAI,eAAe,SACb,OAAO,cACP,UAAU,QAAQ,WAAW,KAAK,SAAS,QAAQ,WAAW,IAC1D,QAAQ,cACR;AAEV,MAAI,gBAAgB,SACd,OAAO,eACP,UAAU,QAAQ,YAAY,KAAK,SAAS,QAAQ,YAAY,IAC5D,QAAQ,eACR;AAEV,MAAI,gBAAgB,SACd,OAAO,eACP,UAAU,QAAQ,YAAY,IAC1B,QAAQ,eACR;AAEV,MAAI,kBAAkB,CAAC,CAAC,QAAQ;AAEhC,MAAI,WAAW,WAAW,QAAQ,OAAO,IAAI,QAAQ,UAAU;AAC/D,MAAI,kBAAkB,WAAW,QAAQ,OAAO,IAC1C,yBAAyB,QAAQ,OAAO,IACxC;AAEN,MAAI,mBAAmB,WAAW,QAAQ,eAAe,IACnD,QAAQ,kBACR;AAEN,MAAI,mBAAmB,SACjB,OAAO,kBACP,UAAU,QAAQ,eAAe,IAC7B,QAAQ,kBACR;AACV,MAAI,mBAAmB,CAAC,CAAC,QAAQ;AAGjC,QAAM,aAAa,SACb,OAAO,YACP,cAAc,QAAQ,SAAS,IAC3B,QAAQ,YACR,CAAA;AAEV,MAAI,eAAe,QAAQ,eAAgB,UAAU,OAAO;AAG5D,MAAI;AACJ,QAAM,iBAAiB,MAAM;AACzB,iBAAa,mBAAmB,IAAI;AACpC,UAAM,aAAa;AAAA,MACf,SAAS;AAAA,MACT,QAAQ,QAAQ;AAAA,MAChB,gBAAgB,gBAAgB;AAAA,MAChC,UAAU,UAAU;AAAA,MACpB,WAAW;AAAA,MACX,aAAa;AAAA,MACb,SAAS,oBAAoB,OAAO,SAAY;AAAA,MAChD,aAAa;AAAA,MACb,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,iBAAiB,qBAAqB,OAAO,SAAY;AAAA,MACzD,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB,QAAQ;AAAA,MACzB,iBAAiB,QAAQ;AAAA,MACzB,QAAQ,EAAE,WAAW,MAAA;AAAA,IAAM;AAE/B;AACI,iBAAW,kBAAkB,iBAAiB;AAC9C,iBAAW,gBAAgB,eAAe;AAC1C,iBAAW,uBAAuB,cAAc,QAAQ,IAClD,SAAS,uBACT;AACN,iBAAW,qBAAqB,cAAc,QAAQ,IAChD,SAAS,qBACT;AAAA,IACV;AACA,QAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,iBAAW,cAAc,cAAc,QAAQ,IACzC,SAAS,cACT;AAAA,IACV;AACA,UAAM,MAAM,kBAAkB,UAAU;AACxC,iBAAa,mBAAmB,GAAG;AACnC,WAAO;AAAA,EACX;AACA,aAAW,eAAA;AACX,uBAAqB,UAAU,QAAQ,OAAO,gBAAgB,KAAK;AAEnE,WAAS,wBAAwB;AAC7B,WAAO;AAAA,MACC,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,eAAe;AAAA,IAAA;AAAA,EAG3B;AAEA,QAAM,SAAS,SAAS;AAAA,IACpB,KAAK,MAAM,QAAQ;AAAA,IACnB,KAAK,CAAA,QAAO;AACR,eAAS,SAAS;AAClB,cAAQ,QAAQ;AAAA,IACpB;AAAA,EAAA,CACH;AAED,QAAM,iBAAiB,SAAS;AAAA,IAC5B,KAAK,MAAM,gBAAgB;AAAA,IAC3B,KAAK,CAAA,QAAO;AACR,eAAS,iBAAiB;AAC1B,sBAAgB,QAAQ;AACxB,2BAAqB,UAAU,QAAQ,OAAO,GAAG;AAAA,IACrD;AAAA,EAAA,CACH;AAED,QAAM,WAAW,SAAS,MAAM,UAAU,KAAK;AAE/C,QAAM,kBAAiC,yBAAS,MAAM,iBAAiB,KAAK;AAE5E,QAAM,gBAA+B,yBAAS,MAAM,eAAe,KAAK;AAExE,WAAS,4BAA4B;AACjC,WAAO,WAAW,gBAAgB,IAAI,mBAAmB;AAAA,EAC7D;AAEA,WAAS,0BAA0B,SAAS;AACxC,uBAAmB;AACnB,aAAS,kBAAkB;AAAA,EAC/B;AAEA,WAAS,oBAAoB;AACzB,WAAO;AAAA,EACX;AAEA,WAAS,kBAAkB,SAAS;AAChC,QAAI,YAAY,MAAM;AAClB,wBAAkB,yBAAyB,OAAO;AAAA,IACtD;AACA,eAAW;AACX,aAAS,UAAU;AAAA,EACvB;AACA,WAAS,2BAA2B,MAAM,KAAK;AAC3C,WAAO,SAAS,eAAe,CAAC,IAAI;AAAA,EACxC;AACA,QAAM,eAAe,CAAC,IAAI,gBAAgB,UAAU,iBAAiB,cAAc,qBAAqB;AACpG,0BAAA;AAEA,QAAI;AACJ,QAAI;AACA,UAAK,QAAQ,IAAI,aAAa,gBAAiB,OAA2B;AACtE,uEAA+B;AAAA,MACnC;AACA,UAAI,CAAC,WAAW;AACZ,iBAAS,kBAAkB,SACrB,mBAAA,IACA;AAAA,MACV;AACA,YAAM,GAAG,QAAQ;AAAA,IACrB,UAAA;AAEI,UAAK,QAAQ,IAAI,aAAa,gBAAiB,MAA2B;AAG1E,UAAI,CAAC,WAAW;AACZ,iBAAS,kBAAkB;AAAA,MAC/B;AAAA,IACJ;AACA,QAAK,aAAa;AAAA,IACd,SAAS,GAAG,KACZ,QAAQ,gBACP,aAAa,sBAAsB,CAAC,KACvC;AACE,YAAM,CAAC,KAAK,IAAI,IAAI,eAAA;AACpB,UAAK,QAAQ,IAAI,aAAa,gBAC1B,UACA,SAAS,GAAG,KACZ,2BAA2B,UAAU,IAAI,GAAG;AAC5C,YAAI,kBACC,wBAAwB,eAAe,GAAG,KACvC,uBAAuB,cAAc,GAAG,IAAI;AAChD,eAAK,eAAe,cAAc,kBAAkB;AAAA,YAChD;AAAA,YACA,MAAM;AAAA,UAAA,CACT,CAAC;AAAA,QACN;AAEA,YAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,gBAAM,EAAE,aAAa,QAAA,IAAY;AACjC,cAAI,WAAW,eAAe;AAC1B,oBAAQ,KAAK,YAAY;AAAA,cACrB,MAAM;AAAA,cACN;AAAA,cACA,IAAI;AAAA,cACJ,SAAS,GAAG,QAAQ,IAAI,GAAG;AAAA,YAAA,CAC9B;AAAA,UACL;AAAA,QACJ;AAAA,MACJ;AACA,aAAO,UAAU,gBACX,gBAAgB,MAAM,IACtB,aAAa,GAAG;AAAA,IAC1B,WACS,iBAAiB,GAAG,GAAG;AAC5B,aAAO;AAAA,IACX,OACK;AAED,YAAM,gBAAgB,eAAe,sBAAsB;AAAA,IAC/D;AAAA,EACJ;AAEA,WAAS,KAAK,MAAM;AAChB,WAAO,aAAa,CAAA,YAAW,QAAQ,MAAM,WAAW,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,mBAAmB,GAAG,IAAI,GAAG,aAAa,CAAA,SAAQ,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAA,QAAO,KAAK,CAAA,QAAO,SAAS,GAAG,CAAC;AAAA,EACvN;AAEA,WAAS,MAAM,MAAM;AACjB,UAAM,CAAC,MAAM,MAAM,IAAI,IAAI;AAC3B,QAAI,QAAQ,CAAC,SAAS,IAAI,GAAG;AACzB,YAAM,gBAAgB,eAAe,gBAAgB;AAAA,IACzD;AACA,WAAO,EAAE,GAAG,CAAC,MAAM,MAAM,OAAO,EAAE,iBAAiB,KAAA,GAAQ,QAAQ,CAAA,CAAE,CAAC,CAAC;AAAA,EAC3E;AAEA,WAAS,KAAK,MAAM;AAChB,WAAO,aAAa,CAAA,YAAW,QAAQ,MAAM,UAAU,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,kBAAkB,GAAG,IAAI,GAAG,mBAAmB,CAAA,SAAQ,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,uBAAuB,CAAA,QAAO,SAAS,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAA,EAC5P;AAEA,WAAS,KAAK,MAAM;AAChB,WAAO,aAAa,CAAA,YAAW,QAAQ,MAAM,QAAQ,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CAAA,SAAQ,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,uBAAuB,CAAA,QAAO,SAAS,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAA,EACtP;AAEA,WAAS,UAAU,QAAQ;AACvB,WAAO,OAAO,IAAI,CAAA,QAAO,SAAS,GAAG,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,IAClE,eAAe,OAAO,GAAG,CAAC,IAC1B,GAAG;AAAA,EACb;AACA,QAAM,cAAc,CAAC,QAAQ;AAC7B,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EAAA;AAGV,WAAS,kBAAkB,MAAM;AAC7B,WAAO,aAAa,CAAA,YAAW;AAC3B,UAAI;AACJ,YAAMC,YAAW;AACjB,UAAI;AACAA,kBAAS,YAAY;AACrB,cAAM,QAAQ,MAAM,WAAW,MAAM,CAACA,WAAU,GAAG,IAAI,CAAC;AAAA,MAC5D,UAAA;AAEIA,kBAAS,YAAY;AAAA,MACzB;AACA,aAAO;AAAA,IACX,GAAG,MAAM,mBAAmB,GAAG,IAAI,GAAG,aAAa,CAAA,SAAQ,KAAK,oBAAoB,EAAE,GAAG,IAAI,GAAG,CAAA,QAAO,CAAC,eAAe,GAAG,CAAC,GAAG,CAAA,QAAO,QAAQ,GAAG,CAAC;AAAA,EACrJ;AAEA,WAAS,eAAe,MAAM;AAC1B,WAAO,aAAa,CAAA,YAAW,QAAQ,MAAM,QAAQ,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CAAA,SAAQ,KAAK,iBAAiB,EAAE,GAAG,IAAI,GAAG,mBAAmB,CAAA,QAAO,SAAS,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAA,EACtO;AAEA,WAAS,iBAAiB,MAAM;AAC5B,WAAO,aAAa,CAAA,YAAW,QAAQ,MAAM,UAAU,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,kBAAkB,GAAG,IAAI,GAAG,mBAAmB,CAAA,SAAQ,KAAK,mBAAmB,EAAE,GAAG,IAAI,GAAG,mBAAmB,CAAA,QAAO,SAAS,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAA,EAC9O;AACA,WAAS,eAAe,OAAO;AAC3B,mBAAe;AACf,aAAS,cAAc;AAAA,EAC3B;AAEA,WAAS,GAAG,KAAKF,SAAQ;AACrB,WAAO,aAAa,MAAM;AACtB,UAAI,CAAC,KAAK;AACN,eAAO;AAAA,MACX;AACA,YAAM,eAAe,SAASA,OAAM,IAAIA,UAAS,QAAQ;AAGzD,YAAM,UAAU,SAASA,OAAM,IACzB,CAAC,YAAY,IACb,wBAAwB,UAAU,gBAAgB,OAAO,YAAY;AAC3E,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,cAAM,UAAU,iBAAiB,QAAQ,CAAC,CAAC;AAC3C,YAAI,WAAW,SAAS,gBAAgB,SAAS,GAAG;AAEpD,YAAI,aAAa,MAAM;AACnB,qBAAW,QAAQ,GAAG;AAAA,QAC1B;AACA,YAAI,aAAa,QAAQ,KACrB,kBAAkB,QAAQ,KAC1B,SAAS,QAAQ,GAAG;AACpB,iBAAO;AAAA,QACX;AAAA,MACJ;AACA,aAAO;AAAA,IACX,GAAG,MAAM,CAAC,GAAG,GAAG,oBAAoB,CAAA,SAAQ;AACxC,aAAO,QAAQ,MAAM,KAAK,IAAI,MAAM,CAAC,KAAKA,OAAM,CAAC;AAAA,IACrD,GAAG,mBAAmB,CAAA,QAAO,UAAU,GAAG,CAAC;AAAA,EAC/C;AACA,WAAS,gBAAgB,KAAK;AAC1B,QAAIG,YAAW;AACf,UAAM,UAAU,wBAAwB,UAAU,gBAAgB,OAAO,QAAQ,KAAK;AACtF,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,YAAM,uBAAuB,UAAU,MAAM,QAAQ,CAAC,CAAC,KAAK,CAAA;AAC5D,YAAM,eAAe,SAAS,gBAAgB,sBAAsB,GAAG;AACvE,UAAI,gBAAgB,MAAM;AACtBA,oBAAW;AACX;AAAA,MACJ;AAAA,IACJ;AACA,WAAOA;AAAAA,EACX;AAEA,WAAS,GAAG,KAAK;AACb,UAAMA,YAAW,gBAAgB,GAAG;AAEpC,WAAOA,aAAY,OACbA,YACA,SACI,OAAO,GAAG,GAAG,KAAK,CAAA,IAClB,CAAA;AAAA,EACd;AAEA,WAAS,iBAAiBH,SAAQ;AAC9B,WAAQ,UAAU,MAAMA,OAAM,KAAK,CAAA;AAAA,EACvC;AAEA,WAAS,iBAAiBA,SAAQ,SAAS;AACvC,QAAI,UAAU;AACV,YAAM,WAAW,EAAE,CAACA,OAAM,GAAG,QAAA;AAC7B,iBAAW,OAAO,UAAU;AACxB,YAAI,OAAO,UAAU,GAAG,GAAG;AACvB,yBAAe,SAAS,GAAG,CAAC;AAAA,QAChC;AAAA,MACJ;AACA,gBAAU,SAASA,OAAM;AAAA,IAC7B;AACA,cAAU,MAAMA,OAAM,IAAI;AAC1B,aAAS,WAAW,UAAU;AAAA,EAClC;AAEA,WAAS,mBAAmBA,SAAQ,SAAS;AACzC,cAAU,MAAMA,OAAM,IAAI,UAAU,MAAMA,OAAM,KAAK,CAAA;AACrD,UAAM,WAAW,EAAE,CAACA,OAAM,GAAG,QAAA;AAC7B,QAAI,UAAU;AACV,iBAAW,OAAO,UAAU;AACxB,YAAI,OAAO,UAAU,GAAG,GAAG;AACvB,yBAAe,SAAS,GAAG,CAAC;AAAA,QAChC;AAAA,MACJ;AAAA,IACJ;AACA,cAAU,SAASA,OAAM;AACzB,aAAS,SAAS,UAAU,MAAMA,OAAM,CAAC;AACzC,aAAS,WAAW,UAAU;AAAA,EAClC;AAEA,WAAS,kBAAkBA,SAAQ;AAC/B,WAAO,iBAAiB,MAAMA,OAAM,KAAK,CAAA;AAAA,EAC7C;AAEA,WAAS,kBAAkBA,SAAQ1B,SAAQ;AACvC,qBAAiB,MAAM0B,OAAM,IAAI1B;AACjC,aAAS,kBAAkB,iBAAiB;AAC5C,wBAAoB,UAAU0B,SAAQ1B,OAAM;AAAA,EAChD;AAEA,WAAS,oBAAoB0B,SAAQ1B,SAAQ;AACzC,qBAAiB,MAAM0B,OAAM,IAAI,OAAO,iBAAiB,MAAMA,OAAM,KAAK,CAAA,GAAI1B,OAAM;AACpF,aAAS,kBAAkB,iBAAiB;AAC5C,wBAAoB,UAAU0B,SAAQ1B,OAAM;AAAA,EAChD;AAEA,WAAS,gBAAgB0B,SAAQ;AAC7B,WAAO,eAAe,MAAMA,OAAM,KAAK,CAAA;AAAA,EAC3C;AAEA,WAAS,gBAAgBA,SAAQ1B,SAAQ;AACrC,mBAAe,MAAM0B,OAAM,IAAI1B;AAC/B,aAAS,gBAAgB,eAAe;AACxC,sBAAkB,UAAU0B,SAAQ1B,OAAM;AAAA,EAC9C;AAEA,WAAS,kBAAkB0B,SAAQ1B,SAAQ;AACvC,mBAAe,MAAM0B,OAAM,IAAI,OAAO,eAAe,MAAMA,OAAM,KAAK,CAAA,GAAI1B,OAAM;AAChF,aAAS,gBAAgB,eAAe;AACxC,sBAAkB,UAAU0B,SAAQ1B,OAAM;AAAA,EAC9C;AAEA;AAmBA,QAAM,WAAW;AAAA,IACb,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI,gBAAgB;AAChB,aAAO;AAAA,IACX;AAAA,IACA,IAAI,cAAc,KAAK;AACnB,uBAAiB;AACjB,UAAI,OAAO,QAAQ;AACf,gBAAQ,QAAQ,OAAO,OAAO;AAC9B,wBAAgB,QAAQ,OAAO,eAAe;AAC9C,6BAAqB,UAAU,QAAQ,OAAO,gBAAgB,KAAK;AAAA,MACvE;AAAA,IACJ;AAAA,IACA,IAAI,mBAAmB;AACnB,aAAO,OAAO,KAAK,UAAU,KAAK,EAAE,KAAA;AAAA,IACxC;AAAA,IACA;AAAA,IACA,IAAI,YAAY;AACZ,aAAO;AAAA,IACX;AAAA,IACA,IAAI,cAAc;AACd,aAAO,gBAAgB,CAAA;AAAA,IAC3B;AAAA,IACA,IAAI,WAAW;AACX,aAAO;AAAA,IACX;AAAA,IACA,IAAI,cAAc;AACd,aAAO;AAAA,IACX;AAAA,IACA,IAAI,YAAY,KAAK;AACjB,qBAAe;AACf,eAAS,cAAc;AAAA,IAC3B;AAAA,IACA,IAAI,eAAe;AACf,aAAO;AAAA,IACX;AAAA,IACA,IAAI,aAAa,KAAK;AAClB,sBAAgB;AAChB,eAAS,eAAe;AAAA,IAC5B;AAAA,IACA,IAAI,eAAe;AACf,aAAO;AAAA,IACX;AAAA,IACA,IAAI,aAAa,KAAK;AAClB,sBAAgB;AAAA,IACpB;AAAA,IACA,IAAI,iBAAiB;AACjB,aAAO;AAAA,IACX;AAAA,IACA,IAAI,eAAe,KAAK;AACpB,wBAAkB;AAClB,eAAS,iBAAiB;AAAA,IAC9B;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO;AAAA,IACX;AAAA,IACA,IAAI,gBAAgB,KAAK;AACrB,yBAAmB;AACnB,eAAS,kBAAkB;AAAA,IAC/B;AAAA,IACA,IAAI,kBAAkB;AAClB,aAAO;AAAA,IACX;AAAA,IACA,IAAI,gBAAgB,KAAK;AACrB,yBAAmB;AACnB,eAAS,kBAAkB;AAAA,IAC/B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,CAAC,oBAAoB,GAAG;AAAA,EAAA;AAE5B;AACI,aAAS,kBAAkB;AAC3B,aAAS,gBAAgB;AACzB,aAAS,KAAK;AACd,aAAS,KAAK;AACd,aAAS,KAAK;AACd,aAAS,IAAI;AACb,aAAS,IAAI;AACb,aAAS,oBAAoB;AAC7B,aAAS,oBAAoB;AAC7B,aAAS,sBAAsB;AAC/B,aAAS,kBAAkB;AAC3B,aAAS,kBAAkB;AAC3B,aAAS,oBAAoB;AAC7B,aAAS,sBAAsB,IAAI;AACnC,aAAS,oBAAoB,IAAI;AACjC,aAAS,mBAAmB,IAAI;AAChC,aAAS,iBAAiB,IAAI;AAAA,EAClC;AAEA,MAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,aAAS,aAAa,IAAI,CAAC,YAAY;AACnC,eAAS,cAAc;AAAA,IAC3B;AACA,aAAS,cAAc,IAAI,MAAM;AAC7B,eAAS,cAAc;AAAA,IAC3B;AAAA,EACJ;AACA,SAAO;AACX;AAGA,MAAM,2BAA2B;AACjC,MAAM,oBAAoB;AAAA,EACtB,gCAAgC;AAAA,EAChC,+BAA+B;AAAA,EAC/B,qBAAqB;AACzB;AACA,MAAM,0BAA0B;AAAA,EAC5B,+BAA+B;AACnC;AACA,MAAM,4BAA4B;AAAA,EAC9B,qBAAqB;AACzB;AACA,IAAI;AACJ,eAAe,eAAe,KAAK,MAAM;AACrC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,QAAI;AACA,0BAAoB;AAAA,QAChB,IAAI;AAAA,QACJ,OAAO,kBAAkB,8BAA8B;AAAA,QACvD,aAAa;AAAA,QACb,UAAU;AAAA,QACV,MAAM;AAAA,QACN,qBAAqB,CAAC,wBAAwB;AAAA,QAC9C;AAAA;AAAA,MAAA,GACD,CAAA,QAAO;AACN,sBAAc;AACd,YAAI,GAAG,mBAAmB,CAAC,EAAE,mBAAmB,eAAe;AAC3D,kCAAwB,mBAAmB,UAAU,IAAI;AAAA,QAC7D,CAAC;AACD,YAAI,GAAG,iBAAiB,CAAC,EAAE,mBAAmB,mBAAmB;AAC7D,cAAI,kBAAkB,gBAAgB,cAAc;AAChD,gBAAI,KAAK,SAAS,UAAU;AAExB,kBAAI,kBAAkB,iBAClB,KAAK,OAAO,YAAY;AACxB,gCAAgB,cAAc,kBAAkB,YAAY;AAAA,cAChE;AAAA,YACJ,OACK;AACD,8BAAgB,cAAc,kBAAkB,YAAY;AAAA,YAChE;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,YAAI,aAAa;AAAA,UACb,IAAI;AAAA,UACJ,OAAO,kBAAkB,6BAA6B;AAAA,UACtD,MAAM;AAAA,UACN,uBAAuB,wBAAwB,6BAA6B;AAAA,QAAA,CAC/E;AACD,YAAI,GAAG,iBAAiB,CAAA,YAAW;AAC/B,cAAI,QAAQ,QAAQ,OAChB,QAAQ,gBAAgB,+BAA+B;AACvD,0BAAc,SAAS,IAAI;AAAA,UAC/B;AAAA,QACJ,CAAC;AACD,cAAM,4BAAY,IAAA;AAClB,YAAI,GAAG,kBAAkB,OAAO,YAAY;AACxC,cAAI,QAAQ,QAAQ,OAChB,QAAQ,gBAAgB,+BAA+B;AACvD,gBAAI,mBAAA;AACJ,yBAAa,SAAS,IAAI;AAC1B,gBAAI,QAAQ,WAAW,UAAU;AAC7B,kBAAI,CAAC,MAAM,IAAI,QAAQ,GAAG,GAAG;AACzB,sBAAM,CAAC,IAAI,IAAI,MAAM,IAAI,sBAAsB,QAAQ,GAAG;AAC1D,sBAAM,IAAI,QAAQ,KAAK,IAAI;AAAA,cAC/B;AACA,kBAAI,iBAAiB,MAAM,IAAI,QAAQ,GAAG,CAAC;AAAA,YAC/C,OACK;AACD,oBAAM,WAAW,qBAAqB,QAAQ,QAAQ,IAAI;AAC1D,0BAAY,IAAI,iBAAiB,QAAQ;AAAA,YAC7C;AAAA,UACJ;AAAA,QACJ,CAAC;AACD,YAAI,GAAG,mBAAmB,CAAA,YAAW;AACjC,cAAI,QAAQ,QAAQ,OAChB,QAAQ,gBAAgB,+BAA+B;AACvD,sBAAU,SAAS,IAAI;AAAA,UAC3B;AAAA,QACJ,CAAC;AACD,YAAI,iBAAiB;AAAA,UACjB,IAAI;AAAA,UACJ,OAAO,kBAAkB,mBAAmB;AAAA,UAC5C,OAAO,0BAA0B,mBAAmB;AAAA,QAAA,CACvD;AACD,gBAAQ,IAAI;AAAA,MAChB,CAAC;AAAA,IACL,SACO,GAAG;AACN,cAAQ,MAAM,CAAC;AAEf,aAAO,KAAK;AAAA,IAChB;AAAA,EACJ,CAAC;AACL;AAEA,SAAS,kBAAkB,UAAU;AACjC,SAAQ,SAAS,KAAK,QAClB,SAAS,KAAK,eACd,SAAS,KAAK,UACd;AACR;AACA,SAAS,wBAAwB,UACjC,UAAU,MAAM;AAEZ,QAAM8B,UAAS,KAAK,SAAS,gBACvB,KAAK,SACL,KAAK,OAAO;AAClB,MAAI,YAAY,SAAS,cAAc;AAEnC,QAAI,SAAS,iBAAiBA,SAAQ;AAClC,YAAM,MAAM;AAAA,QACR,OAAO,SAAS,kBAAkB,QAAQ,CAAC;AAAA,QAC3C,WAAW;AAAA,QACX,iBAAiB;AAAA,MAAA;AAErB,eAAS,KAAK,KAAK,GAAG;AAAA,IAC1B;AAAA,EACJ;AACJ;AACA,SAAS,gBAAgB,cAAc,UAAU;AAC7C,QAAM,OAAO;AACb,eAAa,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO,SAAS,OAAO;AAAA,EAAA,CAC1B;AACD,eAAa,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO,SAAS;AAAA,EAAA,CACnB;AACD,eAAa,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO,SAAS,eAAe;AAAA,EAAA,CAClC;AACD,eAAa,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO,SAAS;AAAA,EAAA,CACnB;AACD,eAAa,MAAM,KAAK;AAAA,IACpB;AAAA,IACA,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO,sBAAsB,SAAS,SAAS,KAAK;AAAA,EAAA,CACvD;AACD;AACI,iBAAa,MAAM,KAAK;AAAA,MACpB;AAAA,MACA,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS,gBAAgB;AAAA,IAAA,CACnC;AACD,iBAAa,MAAM,KAAK;AAAA,MACpB;AAAA,MACA,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS,cAAc;AAAA,IAAA,CACjC;AAAA,EACL;AACJ;AAEA,SAAS,sBAAsB,UAAU;AACrC,QAAM,QAAQ,CAAA;AACd,SAAO,KAAK,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AACnC,UAAM,IAAI,SAAS,GAAG;AACtB,QAAI,WAAW,CAAC,KAAK,YAAY,GAAG;AAChC,YAAM,GAAG,IAAI,0BAA0B,CAAC;AAAA,IAC5C,WACS,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,QAAQ;AAC/C,YAAM,GAAG,IAAI,EAAE,IAAI;AAAA,IACvB,WACS,SAAS,CAAC,GAAG;AAClB,YAAM,GAAG,IAAI,sBAAsB,CAAC;AAAA,IACxC,OACK;AACD,YAAM,GAAG,IAAI;AAAA,IACjB;AAAA,EACJ,CAAC;AACD,SAAO;AACX;AACA,MAAM,MAAM;AAAA,EACR,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACT;AACA,SAAS,OAAO,GAAG;AACf,SAAO,EAAE,QAAQ,WAAW,UAAU;AAC1C;AACA,SAAS,WAAW,GAAG;AACnB,SAAO,IAAI,CAAC,KAAK;AACrB;AAEA,SAAS,0BAA0B,MAAM;AACrC,QAAM,YAAY,KAAK,SAAS,KAAK,OAAO,KAAK,MAAM,CAAC,OAAO;AAC/D,SAAO;AAAA,IACH,SAAS;AAAA,MACL,MAAM;AAAA,MACN,SAAS,kBAAkB,SAAS;AAAA,IAAA;AAAA,EACxC;AAER;AACA,SAAS,cAAc,SAAS,MAAM;AAClC,UAAQ,UAAU,KAAK;AAAA,IACnB,IAAI;AAAA,IACJ,OAAO;AAAA,EAAA,CACV;AAED,QAAMA,UAAS,KAAK,SAAS,gBACvB,KAAK,SACL,KAAK,OAAO;AAClB,aAAW,CAAC,aAAa,QAAQ,KAAK,KAAK,aAAa;AAEpD,UAAM,WAAW,KAAK,SAAS,gBACzB,WACA,SAAS;AACf,QAAIA,YAAW,UAAU;AACrB;AAAA,IACJ;AACA,YAAQ,UAAU,KAAK;AAAA,MACnB,IAAI,SAAS,GAAG,SAAA;AAAA,MAChB,OAAO,GAAG,kBAAkB,WAAW,CAAC;AAAA,IAAA,CAC3C;AAAA,EACL;AACJ;AACA,SAAS,qBAAqB,QAAQ,MAAM;AACxC,MAAI,WAAW;AACf,MAAI,WAAW,UAAU;AACrB,eAAW,CAAC,WAAW,QAAQ,KAAK,KAAK,YAAY,WAAW;AAC5D,UAAI,SAAS,GAAG,SAAA,MAAe,QAAQ;AACnC,mBAAW;AACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,cAAc,QAAQ,MAAM;AACjC,MAAI,WAAW,UAAU;AACrB,WAAO,KAAK,SAAS,gBACf,KAAK,SACL,KAAK,OAAO;AAAA,EACtB,OACK;AACD,UAAM,WAAW,MAAM,KAAK,KAAK,YAAY,OAAA,CAAQ,EAAE,KAAK,CAAA,SAAQ,KAAK,GAAG,SAAA,MAAe,MAAM;AACjG,QAAI,UAAU;AACV,aAAO,KAAK,SAAS,gBACf,WACA,SAAS;AAAA,IACnB,OACK;AACD,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;AACA,SAAS,aAAa,SAAS,MAE7B;AACE,QAAM,WAAW,cAAc,QAAQ,QAAQ,IAAI;AACnD,MAAI,UAAU;AAGV,YAAQ,QAAQ,sBAAsB,QAAQ;AAAA,EAClD;AACA,SAAO;AACX;AACA,SAAS,sBAAsB,UAAU;AACrC,QAAM,QAAQ,CAAA;AACd,QAAM,aAAa;AACnB,QAAM,eAAe;AAAA,IACjB;AAAA,MACI,MAAM;AAAA,MACN,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS,OAAO;AAAA,IAAA;AAAA,IAE3B;AAAA,MACI,MAAM;AAAA,MACN,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS,eAAe;AAAA,IAAA;AAAA,IAEnC;AAAA,MACI,MAAM;AAAA,MACN,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS;AAAA,IAAA;AAAA,IAEpB;AAAA,MACI,MAAM;AAAA,MACN,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,SAAS;AAAA,IAAA;AAAA,EACpB;AAEJ,QAAM,UAAU,IAAI;AACpB,QAAM,qBAAqB;AAC3B,QAAM,uBAAuB;AAAA,IACzB;AAAA,MACI,MAAM;AAAA,MACN,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO,sBAAsB,SAAS,SAAS,KAAK;AAAA,IAAA;AAAA,EACxD;AAEJ,QAAM,kBAAkB,IAAI;AAC5B;AACI,UAAM,sBAAsB;AAC5B,UAAM,wBAAwB;AAAA,MAC1B;AAAA,QACI,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,QACV,OAAO,SAAS,gBAAgB;AAAA,MAAA;AAAA,IACpC;AAEJ,UAAM,mBAAmB,IAAI;AAC7B,UAAM,oBAAoB;AAC1B,UAAM,sBAAsB;AAAA,MACxB;AAAA,QACI,MAAM;AAAA,QACN,KAAK;AAAA,QACL,UAAU;AAAA,QACV,OAAO,SAAS,cAAc;AAAA,MAAA;AAAA,IAClC;AAEJ,UAAM,iBAAiB,IAAI;AAAA,EAC/B;AACA,SAAO;AACX;AACA,SAAS,iBAAiB,OAAO,SAAS;AACtC,MAAI,aAAa;AACb,QAAI;AACJ,QAAI,WAAW,aAAa,SAAS;AACjC,gBAAU,QAAQ;AAClB,aAAO,QAAQ;AAAA,IACnB;AACA,gBAAY,iBAAiB;AAAA,MACzB,SAAS;AAAA,MACT,OAAO;AAAA,QACH,OAAO;AAAA,QACP;AAAA,QACA,MAAM,KAAK,IAAA;AAAA,QACX,MAAM,CAAA;AAAA,QACN,MAAM,WAAW,CAAA;AAAA,QACjB,SAAS,UAAU,kBACb,UACA,UAAU,cAAc,UAAU,YAC9B,YACA;AAAA,MAAA;AAAA,IACd,CACH;AAAA,EACL;AACJ;AACA,SAAS,UAAU,SAAS,MAAM;AAC9B,QAAM,WAAW,cAAc,QAAQ,QAAQ,IAAI;AACnD,MAAI,UAAU;AACV,UAAM,CAAC,KAAK,IAAI,QAAQ;AACxB,QAAI,UAAU,YAAY,SAAS,QAAQ,MAAM,KAAK,GAAG;AACrD,eAAS,OAAO,QAAQ,QAAQ,MAAM;AAAA,IAC1C,WACS,UAAU,qBACd,SAAS,QAAQ,MAAM,KAAK,KACzB,QAAQ,QAAQ,MAAM,KAAK,KAC3B,SAAS,QAAQ,MAAM,KAAK,IAAI;AACpC,eAAS,eAAe,QAAQ,QAAQ,MAAM;AAAA,IAClD,WACS,UAAU,mBAAmB,UAAU,QAAQ,MAAM,KAAK,GAAG;AAClE,eAAS,gBAAgB,QAAQ,MAAM;AAAA,IAC3C;AAAA,EACJ;AACJ;AAoaA,MAAM,kBAAkB;AAAA,EACpB,KAAK;AAAA,IACD,MAAM,CAAC,QAAQ,MAAM;AAAA,EAAA;AAAA,EAEzB,QAAQ;AAAA,IACJ,MAAM;AAAA,EAAA;AAAA,EAEV,OAAO;AAAA,IACH,MAAM;AAAA;AAAA,IAEN,WAAW,CAAC,QAAiC,QAAQ,YAAY,QAAQ;AAAA,IACzE,SAAS;AAAA;AAAA,EAAA;AAAA,EAEb,MAAM;AAAA,IACF,MAAM;AAAA,EAAA;AAEd;AAEA,SAAS,kBAET,EAAE,MAAA,GACF,MAAM;AACF,MAAI,KAAK,WAAW,KAAK,KAAK,CAAC,MAAM,WAAW;AAE5C,UAAM,MAAM,MAAM,UAAU,MAAM,QAAA,IAAY,CAAA;AAE9C,WAAO,IAAI,OAAO,CAAC,MAAM,YAAY;AACjC,aAAO;AAAA,QACH,GAAG;AAAA;AAAA,QAEH,GAAI,QAAQ,SAAS,WAAW,QAAQ,WAAW,CAAC,OAAO;AAAA,MAAA;AAAA,IAEnE,GAAG,CAAA,CAAE;AAAA,EACT,OACK;AAED,WAAO,KAAK,OAAO,CAAC,KAAK,QAAQ;AAC7B,YAAM,OAAO,MAAM,GAAG;AACtB,UAAI,MAAM;AACN,YAAI,GAAG,IAAI,KAAA;AAAA,MACf;AACA,aAAO;AAAA,IACX,GAAG,QAAQ;AAAA,EACf;AACJ;AAEA,SAAS,qBAAqB;AAC1B,SAAO;AACX;AAEA,MAAM,kBAAgC,gCAAgB;AAAA;AAAA,EAElD,MAAM;AAAA,EACN,OAAO,OAAO;AAAA,IACV,SAAS;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEd,QAAQ;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW,CAAC,QAAQ,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG;AAAA,IAAA;AAAA,EACnD,GACD,eAAe;AAAA;AAAA;AAAA,EAGlB,MAAM,OAAO,SAAS;AAClB,UAAM,EAAE,OAAO,MAAA,IAAU;AAEzB,UAAM,OAAO,MAAM,QACf,QAAQ;AAAA,MACJ,UAAU,MAAM;AAAA,MAChB,gBAAgB;AAAA,IAAA,CACnB;AACL,WAAO,MAAM;AACT,YAAM,iBAAiB,MAAM;AACzB,cAAM,OAAO,OAAO,KAAK,KAAK,EAAE,OAAO,CAAA,QAAO,IAAI,CAAC,MAAM,GAAG;AAC5D,cAAM,UAAU,OAAA;AAChB,YAAI,MAAM,QAAQ;AACd,kBAAQ,SAAS,MAAM;AAAA,QAC3B;AACA,YAAI,MAAM,WAAW,QAAW;AAC5B,kBAAQ,SAAS,SAAS,MAAM,MAAM,IAAI,CAAC,MAAM,SAAS,MAAM;AAAA,QACpE;AACA,cAAM,MAAM,kBAAkB,SAAS,IAAI;AAE3C,eAAO,KAAK,oBAAoB,EAAE,MAAM,SAAS,KAAK,OAAO;AAAA,MACjE;AACA,YAAM,gBAAgB,OAAO,OAAA,GAAU,KAAK;AAC5C,YAAM,MAAM,SAAS,MAAM,GAAG,KAAK,SAAS,MAAM,GAAG,IAC/C,MAAM,MACN,mBAAA;AACN,aAAO,SAAS,GAAG,IACb,EAAE,KAAK,eAAe,EAAE,SAAS,eAAA,CAAgB,IACjD,EAAE,KAAK,eAAe,gBAAgB;AAAA,IAChD;AAAA,EACJ;AACJ,CAAC;AAsDD,MAAM,cAAc;AAGpB,SAAS,QAAQ,QAAQ;AACrB,SAAO,QAAQ,MAAM,KAAK,CAAC,SAAS,OAAO,CAAC,CAAC;AACjD;AACA,SAAS,gBAAgB,OAAO,SAAS,UAAU,eAAe;AAC9D,QAAM,EAAE,OAAO,MAAA,IAAU;AACzB,SAAO,MAAM;AACT,UAAM,iBAAiB,MAAM;AACzB,YAAM,UAAU,EAAE,MAAM,KAAA;AACxB,UAAI,YAAY,OAAA;AAChB,UAAI,MAAM,QAAQ;AACd,gBAAQ,SAAS,MAAM;AAAA,MAC3B;AACA,UAAI,SAAS,MAAM,MAAM,GAAG;AACxB,gBAAQ,MAAM,MAAM;AAAA,MACxB,WACS,SAAS,MAAM,MAAM,GAAG;AAE7B,YAAI,SAAS,MAAM,OAAO,GAAG,GAAG;AAE5B,kBAAQ,MAAM,MAAM,OAAO;AAAA,QAC/B;AAEA,oBAAY,OAAO,KAAK,MAAM,MAAM,EAAE,OAAO,CAACC,UAAS,SAAS;AAC5D,iBAAO,SAAS,SAAS,IAAI,IACvB,OAAO,UAAUA,UAAS,EAAE,CAAC,IAAI,GAAG,MAAM,OAAO,IAAI,EAAA,CAAG,IACxDA;AAAAA,QACV,GAAG,QAAQ;AAAA,MACf;AACA,YAAM,QAAQ,cAAc,GAAG,CAAC,MAAM,OAAO,SAAS,SAAS,CAAC;AAChE,UAAI,WAAW,CAAC,QAAQ,GAAG;AAC3B,UAAI,QAAQ,KAAK,GAAG;AAChB,mBAAW,MAAM,IAAI,CAAC,MAAM,UAAU;AAClC,gBAAM,OAAO,MAAM,KAAK,IAAI;AAC5B,gBAAM,OAAO,OACP,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,OAAO,OAAO,MAAA,CAAO,IAC9C,CAAC,KAAK,KAAK;AACjB,cAAI,QAAQ,IAAI,GAAG;AACf,iBAAK,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,IAAI,KAAK;AAAA,UACvC;AACA,iBAAO;AAAA,QACX,CAAC;AAAA,MACL,WACS,SAAS,KAAK,GAAG;AACtB,mBAAW,CAAC,KAAK;AAAA,MACrB;AACA,aAAO;AAAA,IACX;AACA,UAAM,gBAAgB,OAAO,OAAA,GAAU,KAAK;AAC5C,UAAM,MAAM,SAAS,MAAM,GAAG,KAAK,SAAS,MAAM,GAAG,IAC/C,MAAM,MACN,mBAAA;AACN,WAAO,SAAS,GAAG,IACb,EAAE,KAAK,eAAe,EAAE,SAAS,eAAA,CAAgB,IACjD,EAAE,KAAK,eAAe,gBAAgB;AAAA,EAChD;AACJ;AAEA,MAAM,mBAAiC,gCAAgB;AAAA;AAAA,EAEnD,MAAM;AAAA,EACN,OAAO,OAAO;AAAA,IACV,OAAO;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEd,QAAQ;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,IAAA;AAAA,EACzB,GACD,eAAe;AAAA;AAAA;AAAA,EAGlB,MAAM,OAAO,SAAS;AAClB,UAAM,OAAO,MAAM,QACf,QAAQ;AAAA,MACJ,UAAU,MAAM;AAAA,MAChB,gBAAgB;AAAA,IAAA,CACnB;AACL,WAAO,gBAAgB,OAAO,SAAS,4BAA4B,IAAI;AAAA;AAAA,MAEvE,KAAK,iBAAiB,EAAE,GAAG,IAAI;AAAA,KAAC;AAAA,EACpC;AACJ,CAAC;AAsBD,MAAM,eAAe;AAGrB,SAAS,cAAc,MAAM,UAAU;AACnC,QAAM,eAAe;AACrB,MAAI,KAAK,SAAS,eAAe;AAC7B,WAAQ,aAAa,cAAc,QAAQ,KAAK,KAAK;AAAA,EACzD,OACK;AACD,UAAM,UAAU,aAAa,cAAc,QAAQ;AACnD,WAAO,WAAW,OACZ,QAAQ,aACR,KAAK,OAAO;AAAA,EACtB;AACJ;AAIA,SAAS,YAAY,MAAM;AACvB,QAAM,WAAW,CAAC,YAAY;AAC1B,QAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,eAAS,eAAe,cAAc,qCAAqC,CAAC;AAAA,IAChF;AACA,UAAM,EAAE,UAAU,MAAA,IAAU;AAE5B,QAAI,CAAC,YAAY,CAAC,SAAS,GAAG;AAC1B,YAAM,gBAAgB,eAAe,gBAAgB;AAAA,IACzD;AACA,UAAM,WAAW,cAAc,MAAM,SAAS,CAAC;AAC/C,UAAM,cAAc,WAAW,KAAK;AACpC,WAAO;AAAA,MACH,QAAQ,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,WAAW,WAAW,CAAC,CAAC;AAAA,MAChE;AAAA,IAAA;AAAA,EAER;AACA,QAAM,WAAW,CAAC,IAAI,YAAY;AAC9B,UAAM,CAAC,aAAa,QAAQ,IAAI,SAAS,OAAO;AAMhD,OAAG,aAAa;AAChB,OAAG,cAAc;AAAA,EACrB;AACA,QAAM,aAAa,CAAC,OAAO;AAMvB,QAAI,GAAG,YAAY;AACf,SAAG,aAAa;AAChB,aAAO,GAAG;AAAA,IACd;AAAA,EACJ;AACA,QAAM,SAAS,CAAC,IAAI,EAAE,YAAY;AAC9B,QAAI,GAAG,YAAY;AACf,YAAM,WAAW,GAAG;AACpB,YAAM,cAAc,WAAW,KAAK;AACpC,SAAG,cAAc,QAAQ,MAAM,SAAS,GAAG,UAAU;AAAA,QACjD,GAAG,WAAW,WAAW;AAAA,MAAA,CAC5B;AAAA,IACL;AAAA,EACJ;AACA,QAAM,cAAc,CAAC,YAAY;AAC7B,UAAM,CAAC,WAAW,IAAI,SAAS,OAAO;AACtC,WAAO,EAAE,YAAA;AAAA,EACb;AACA,SAAO;AAAA,IACH,SAAS;AAAA,IACT,WAAW;AAAA,IACX,cAAc;AAAA,IACd;AAAA,EAAA;AAER;AACA,SAAS,WAAW,OAAO;AACvB,MAAI,SAAS,KAAK,GAAG;AACjB,WAAO,EAAE,MAAM,MAAA;AAAA,EACnB,WACS,cAAc,KAAK,GAAG;AAC3B,QAAI,EAAE,UAAU,QAAQ;AACpB,YAAM,gBAAgB,eAAe,gBAAgB,MAAM;AAAA,IAC/D;AACA,WAAO;AAAA,EACX,OACK;AACD,UAAM,gBAAgB,eAAe,aAAa;AAAA,EACtD;AACJ;AACA,SAAS,WAAW,OAAO;AACvB,QAAM,EAAE,MAAM,QAAQ,MAAM,QAAQ,WAAW;AAC/C,QAAM,UAAU,CAAA;AAChB,QAAM,QAAQ,QAAQ,CAAA;AACtB,MAAI,SAAS,MAAM,GAAG;AAClB,YAAQ,SAAS;AAAA,EACrB;AACA,MAAI,SAAS,MAAM,GAAG;AAClB,YAAQ,SAAS;AAAA,EACrB;AACA,MAAI,SAAS,MAAM,GAAG;AAClB,YAAQ,SAAS;AAAA,EACrB;AACA,SAAO,CAAC,MAAM,OAAO,OAAO;AAChC;AAEA,SAAS,MAAM,KAAK,SAAS,SAAS;AAClC,QAAM,gBAAgB,cAAc,QAAQ,CAAC,CAAC,IACxC,QAAQ,CAAC,IACT,CAAA;AACN,QAAM,gBAAgB,UAAU,cAAc,aAAa,IACrD,cAAc,gBACd;AACN,MAAI,eAAe;AACf,KAAC,YAAY,MAAM,OAAO,EAAE,QAAQ,UAAQ,IAAI,UAAU,MAAM,WAAW,CAAC;AAC5E,KAAC,aAAa,MAAM,OAAO,EAAE,QAAQ,UAAQ,IAAI,UAAU,MAAM,YAAY,CAAC;AAC9E,KAAC,eAAe,MAAM,OAAO,EAAE,QAAQ,UAAQ,IAAI,UAAU,MAAM,cAAc,CAAC;AAAA,EACtF;AAEA;AACI,QAAI,UAAU,KAAK,YAAY,IAAI,CAAC;AAAA,EACxC;AACJ;AAWA,MAAM,8CACoB,iBAAiB;AAE3C,SAAS,WAAW,UAAU,IAAI;AAE9B,QAAM,eAEI;AACV,MAAK,QAAQ,IAAI,aAAa,gBAAiB,aAAc;AAI7D,QAAM,oBAAoB,UAAU,QAAQ,eAAe,IACrD,QAAQ,kBACR;AACN,QAAM,kCAAkB,IAAA;AACxB,QAAM,CAAC,aAAa,QAAQ,IAAI,aAAa,OAAqB;AAClE,QAAM,SAAwB,2BAAY,QAAQ,IAAI,aAAa,eAAgB,aAAa,EAAE;AAClG,WAAS,cAAc,WAAW;AAC9B,WAAO,YAAY,IAAI,SAAS,KAAK;AAAA,EACzC;AACA,WAAS,cAAc,WAAW,UAAU;AACxC,gBAAY,IAAI,WAAW,QAAQ;AAAA,EACvC;AACA,WAAS,iBAAiB,WAAW;AACjC,gBAAY,OAAO,SAAS;AAAA,EAChC;AACA,QAAM,OAAO;AAAA;AAAA,IAET,IAAI,OAAO;AACP,aAEM;AAAA,IACV;AAAA;AAAA,IAEA,MAAM,QAAQ,QAAQA,UAAS;AAC3B,WAAM,QAAQ,IAAI,aAAa,gBAAiB,UAA0B,MAAQ;AAC9E,YAAI,eAAe;AAAA,MACvB;AAEA,UAAI,sBAAsB;AAC1B,UAAI,QAAQ,IAAI,qBAAqB,IAAI;AAEzC,UAAI,cAAcA,SAAQ,CAAC,CAAC,GAAG;AAC3B,cAAM,OAAOA,SAAQ,CAAC;AACtB,aAAK,mBACD,KAAK;AACT,aAAK,kBACD,KAAK;AAAA,MACb;AAEA,UAAI,uBAAuB;AAC3B,UAAqB,mBAAmB;AACpC,+BAAuB,mBAAmB,KAAK,KAAK,MAAM;AAAA,MAC9D;AAE+B;AAC3B,cAAM,KAAK,MAAM,GAAGA,QAAO;AAAA,MAC/B;AAMA,YAAM,aAAa,IAAI;AACvB,UAAI,UAAU,MAAM;AAChB,gCAAwB,qBAAA;AACxB,aAAK,QAAA;AACL,mBAAA;AAAA,MACJ;AAEA,WAAM,QAAQ,IAAI,aAAa,gBAAiB,UAA0B,MAAQ;AAC9E,cAAM,MAAM,MAAM,eAAe,KAAK,IAAI;AAC1C,YAAI,CAAC,KAAK;AACN,gBAAM,gBAAgB,eAAe,gCAAgC;AAAA,QACzE;AACA,cAAM,UAAU,cAAA;AAKX;AAED,gBAAM,YAAY;AAClB,oBAAU,aAAa,KAAK,UAAU,aAAa,EAAE,OAAO;AAAA,QAChE;AACA,gBAAQ,GAAG,KAAK,gBAAgB;AAAA,MACpC;AAAA,IACJ;AAAA;AAAA,IAEA,IAAI,SAAS;AACT,aAAO;AAAA,IACX;AAAA,IACA,UAAU;AACN,kBAAY,KAAA;AAAA,IAChB;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ,SAAO;AACX;AACA,SAAS,QAAQ,UAAU,IAAI;AAC3B,QAAM,WAAW,mBAAA;AACjB,MAAI,YAAY,MAAM;AAClB,UAAM,gBAAgB,eAAe,sBAAsB;AAAA,EAC/D;AACA,MAAI,CAAC,SAAS,QACV,SAAS,WAAW,OAAO,QAC3B,CAAC,SAAS,WAAW,IAAI,qBAAqB;AAC9C,UAAM,gBAAgB,eAAe,aAAa;AAAA,EACtD;AACA,QAAM,OAAO,gBAAgB,QAAQ;AACrC,QAAM,KAAK,kBAAkB,IAAI;AACjC,QAAM,mBAAmB,oBAAoB,QAAQ;AACrD,QAAM,QAAQ,SAAS,SAAS,gBAAgB;AAChD,MAAI,UAAU,UAAU;AACpB,wBAAoB,IAAI,SAAS,gBAAgB;AACjD,WAAO;AAAA,EACX;AACA,MAAI,UAAU,UAAU;AAEpB,QAAIC,YAAW,YAAY,MAAM,UAAU,QAAQ,cAAc;AACjE,QAAIA,aAAY,MAAM;AAClB,UAAK,QAAQ,IAAI,aAAa,cAAe;AACzC,aAAK,eAAe,cAAc,sBAAsB,CAAC;AAAA,MAC7D;AACAA,kBAAW;AAAA,IACf;AACA,WAAOA;AAAAA,EACX;AAEA,MAAI,UAAU,YAAY;AAEtB,QAAI,KAAK,SAAS,eAAe;AAC7B,YAAM,gBAAgB,eAAe,mCAAmC;AAAA,IAC5E;AACA,UAAM,kBAAkB;AACxB,UAAM,kBAAkB,OAAO,CAAA,GAAI,OAAO;AAE1C,UAAM,iBAAiB,YAAY,MAAM,QAAQ;AACjD,oBAAgB,SAAS,kBAAkB;AAC3C,UAAMA,YAAW,eAAe,eAAe;AAE/C,QAAI,gBAAgB,kBAAkB;AAClCA,gBAAS,aAAa,IAClB,gBAAgB,iBAAiBA,SAAQ;AAAA,IACjD;AAGA,QAAI,UAAU;AACd,SAAM,QAAQ,IAAI,aAAa,gBAAiB,UAA0B,MAAQ;AAC9E,gBAAU,cAAA;AAEV,YAAM,YAAYA;AAClB,gBAAU,aAAa,KAAK,UAAU,aAAa,EAAE,OAAO;AAC5D,cAAQ,GAAG,KAAK,gBAAgB;AAAA,IACpC;AAEA,UAAM,eAAe,gBAAA;AACrB,QAAI,cAAc;AACd,qBAAe,MAAM;AACjB,aAAM,QAAQ,IAAI,aAAa,gBAAiB,UAA0B,MAAQ;AAC9E,qBAAW,QAAQ,IAAI,KAAK,gBAAgB;AAE5C,gBAAM,YAAYA;AAClB,oBAAU,cAAc,KAAK,UAAU,cAAc,EAAA;AAAA,QACzD;AAEA,cAAM,UAAUA,UAAS,aAAa;AACtC,YAAI,SAAS;AACT,kBAAA;AAEA,iBAAOA,UAAS,aAAa;AAAA,QACjC;AAAA,MACJ,CAAC;AAAA,IACL;AACA,WAAOA;AAAAA,EACX;AACA,QAAM,eAAe;AACrB,MAAI,WAAW,aAAa,cAAc,QAAQ;AAClD,MAAI,YAAY,MAAM;AAClB,UAAM,kBAAkB,OAAO,CAAA,GAAI,OAAO;AAC1C,QAAI,YAAY,kBAAkB;AAC9B,sBAAgB,SAAS,iBAAiB;AAAA,IAC9C;AACA,QAAI,IAAI;AACJ,sBAAgB,SAAS;AAAA,IAC7B;AACA,eAAW,eAAe,eAAe;AACzC,QAAI,aAAa,kBAAkB;AAC/B,eAAS,aAAa,IAClB,aAAa,iBAAiB,QAAQ;AAAA,IAC9C;AAEA,iBAAa,cAAc,UAAU,QAAQ;AAAA,EACjD,OACK;AACD,QAAK,QAAQ,IAAI,aAAa,gBAAiB,UAAU,SAAS;AAC9D,WAAK,eAAe,cAAc,0BAA0B,CAAC;AAAA,IACjE;AAAA,EACJ;AACA,SAAO;AACX;AACA,SAAS,aAAa,SAAS,YAAY;AACvC,QAAM,QAAQ,YAAA;AACd,QAAM,MAEA,MAAM,IAAI,MAAM,eAAe,OAAO,CAAC;AAC7C,MAAI,OAAO,MAAM;AACb,UAAM,gBAAgB,eAAe,gBAAgB;AAAA,EACzD;AACA,SAAO,CAAC,OAAO,GAAG;AACtB;AACA,SAAS,gBAAgB,UAAU;AAC/B,QAAM,OAAO,OAAO,CAAC,SAAS,OACxB,SAAS,WAAW,IAAI,sBACxB,gBAAgB;AAEtB,MAAI,CAAC,MAAM;AACP,UAAM,gBAAgB,CAAC,SAAS,OAC1B,eAAe,mBACf,eAAe,0BAA0B;AAAA,EACnD;AACA,SAAO;AACX;AAEA,SAAS,SAAS,SAAS,kBAAkB;AAEzC,SAAO,cAAc,OAAO,IACrB,YAAY,mBACT,UACA,WACJ,CAAC,QAAQ,WACL,UACA,QAAQ;AACtB;AACA,SAAS,kBAAkB,MAAM;AAE7B,SAAO,KAAK,SAAS,gBACf,KAAK,SACL,KAAK,OAAO;AACtB;AACA,SAAS,YAAY,MAAM,QAAQ,eAAe,OAAO;AACrD,MAAI,WAAW;AACf,QAAM,OAAO,OAAO;AACpB,MAAI,UAAU,2BAA2B,QAAQ,YAAY;AAC7D,SAAO,WAAW,MAAM;AACpB,UAAM,eAAe;AACrB,QAAI,KAAK,SAAS,eAAe;AAC7B,iBAAW,aAAa,cAAc,OAAO;AAAA,IACjD;AAgBA,QAAI,YAAY,MAAM;AAClB;AAAA,IACJ;AACA,QAAI,SAAS,SAAS;AAClB;AAAA,IACJ;AACA,cAAU,QAAQ;AAAA,EACtB;AACA,SAAO;AACX;AACA,SAAS,2BAA2B,QAAQ,eAAe,OAAO;AAC9D,MAAI,UAAU,MAAM;AAChB,WAAO;AAAA,EACX;AAEA,SAAO,CAAC,eACF,OAAO,SACP,OAAO,MAAM,OAAO,OAAO;AACrC;AAgCA,MAAM,oBAAoB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACJ;AACA,MAAM,sBAAsB,CAAC,KAAK,MAAM,KAAK,KAAK,MAAM,IAAI;AAE5D,SAAS,mBAAmB,KAAK,UAAU;AACvC,QAAM,OAAO,uBAAO,OAAO,IAAI;AAC/B,oBAAkB,QAAQ,CAAA,SAAQ;AAC9B,UAAM,OAAO,OAAO,yBAAyB,UAAU,IAAI;AAC3D,QAAI,CAAC,MAAM;AACP,YAAM,gBAAgB,eAAe,gBAAgB;AAAA,IACzD;AACA,UAAM,OAAO,MAAM,KAAK,KAAK,IACvB;AAAA,MACE,MAAM;AACF,eAAO,KAAK,MAAM;AAAA,MACtB;AAAA;AAAA,MAEA,IAAI,KAAK;AACL,aAAK,MAAM,QAAQ;AAAA,MACvB;AAAA,IAAA,IAEF;AAAA,MACE,MAAM;AACF,eAAO,KAAK,OAAO,KAAK,IAAA;AAAA,MAC5B;AAAA,IAAA;AAER,WAAO,eAAe,MAAM,MAAM,IAAI;AAAA,EAC1C,CAAC;AACD,MAAI,OAAO,iBAAiB,QAAQ;AACpC,sBAAoB,QAAQ,CAAA,WAAU;AAClC,UAAM,OAAO,OAAO,yBAAyB,UAAU,MAAM;AAC7D,QAAI,CAAC,QAAQ,CAAC,KAAK,OAAO;AACtB,YAAM,gBAAgB,eAAe,gBAAgB;AAAA,IACzD;AACA,WAAO,eAAe,IAAI,OAAO,kBAAkB,IAAI,MAAM,IAAI,IAAI;AAAA,EACzE,CAAC;AACD,QAAM,UAAU,MAAM;AAElB,WAAO,IAAI,OAAO,iBAAiB;AACnC,wBAAoB,QAAQ,CAAA,WAAU;AAElC,aAAO,IAAI,OAAO,iBAAiB,IAAI,MAAM,EAAE;AAAA,IACnD,CAAC;AAAA,EACL;AACA,SAAO;AACX;AAEA,MAAM,qBAAoC,gCAAgB;AAAA;AAAA,EAEtD,MAAM;AAAA,EACN,OAAO,OAAO;AAAA,IACV,OAAO;AAAA,MACH,MAAM,CAAC,QAAQ,IAAI;AAAA,MACnB,UAAU;AAAA,IAAA;AAAA,IAEd,QAAQ;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,IAAA;AAAA,EACzB,GACD,eAAe;AAAA;AAAA;AAAA,EAGlB,MAAM,OAAO,SAAS;AAClB,UAAM,OAAO,MAAM,QACf,QAAQ;AAAA,MACJ,UAAU,MAAM;AAAA,MAChB,gBAAgB;AAAA,IAAA,CACnB;AACL,WAAO,gBAAgB,OAAO,SAAS,8BAA8B,IAAI;AAAA;AAAA,MAEzE,KAAK,mBAAmB,EAAE,GAAG,IAAI;AAAA,KAAC;AAAA,EACtC;AACJ,CAAC;AAkBD,MAAM,iBAAiB;AAOvB,wBAAwB,OAAO;AAE/B,wBAAwB,YAAY;AAEpC,yBAAyB,uBAAuB;AAEhD,IAAK,QAAQ,IAAI,aAAa,gBAAiB,OAA2B;AACtE,QAAM,SAAS,cAAA;AACf,SAAO,cAAc;AACrB,kBAAgB,OAAO,gCAAgC;AAC3D;AACA,IAAK,QAAQ,IAAI,aAAa,aAAe;ACp6EtC,SAAS,iBAAiB,UAAU,cAAc;AACvD,QAAM,SAAS,qBAAqB,OAAO;AAC3C,SAAO,CAAC,UAAU;AAChB,QAAI,SAAS,MAAM;AACjB;AAAA,IACF;AACA,WAAO,OAAO,iBAAiB,KAAK,KAAK;AAAA,EAC3C;AACF;AACO,SAAS,cAAc,UAAU,cAAc;AACpD,QAAM,SAAS,qBAAqB,OAAO;AAC3C,SAAO,CAAC,OAAO,WAAW,WAAW,QAAQ,OAAO,MAAM;AAC5D;AACO,SAAS,eAAe,UAAU,cAAc;AACrD,QAAM,SAAS,qBAAqB,OAAO;AAC3C,SAAO,CAAC,OAAO,WAAW,YAAY,QAAQ,OAAO,MAAM;AAC7D;AACO,SAAS,oBAAoB,UAAU,cAAc;AAC1D,QAAM,SAAS,qBAAqB,OAAO;AAC3C,SAAO,CAAC,WAAW,iBAAiB,QAAQ,MAAM;AACpD;AC5CA,MAAM,aAAa;AACnB,MAAM,kCAAkC,IAAI;AAAA,EAC1C,CAAC,OAAO,UAAU,oBAAoB,OAAO,QAAQ,UAAU,KAAK,EAAE,KAAK,EAAE;AAAA,EAC7E;AACF;AACA,MAAA,qEAAe,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,WAAW,CAAC,aAAa;AAAA,EACzB,MAAM,OAAO;AACX,UAAM,OAAO,WAAW,MAAM,GAAG;AACjC,UAAMC,oBAAmB,oBAAoB,IAAI;AACjD,SAAK,KAAK,gBAAgB,CAAC,QAAQ;AACjC,UAAI,IAAI,cAAc,QAAQ,MAAM;AAClC;AAAA,MACF;AACA,UAAI,aAAa,OAAO,IAAI,aAAa,KAAK;AAAA,QAC5C;AAAA,QACA,CAAC,OAAO,OAAO;AACb,gBAAM,UAAU,UAAUA,kBAAiB,MAAM,EAAE,CAAC;AACpD,iBAAO,MAAM;AAAA,YACX;AAAA,YACA,SAAS,WAAW,GAAG,KAA8D,EAAE;AAAA,UAAA;AAAA,QAE3F;AAAA,MAAA;AAAA,IAEJ,CAAC;AAAA,EACH;AACF,CAAC;AC1B+B,MAAA,kEACxB,iCAAA;AAAA,EACN;EACA,WAAY,CAAO,aAAA;AAAA,EACjB,MAAA,MAAM,OAAO;AAAA,QAAA,QAAiB;AAC9B,UAAM,2BAAyB;AAC/B,UAAI,MAAyB,mBAAA,IAAA;AAS7B,UAAA,iBAAA,kBAAA;AAAW,IACT,CAAA,QAAM,SAAA,IAAApC,aAAA,MAAA,KAAA;AAAA,MAAA,MACJ;AAAA,QACA;AAAA,QACF,IAAA,WAAA,eAAA,SAAA,aAAA,MAAA,KAAA,QAAA,aAAA,KAAA;AAAA,MAAA;AAAA,IAEF,CAAA,GAAI,MAAqE,QAAA,UAAA;AACvE;AACF;AAAA,IACA;AAAA,EAUJ;;AC/BgC,MAAA,sDACxB,iCAAA;AAAA,EACN,MAAA;AAAA,EACA,YAAY,aAAO;AAAA,EACjB,MAAI,MAAmB,OAAA;AACrB;AACF;AAAA,IACA;AAAA,EAoCJ;AACA,CAAA;AC/CO,SAAS,WAAW,MAAM,EAAE,gBAAgB,uBAAsB,GAAI;AAC3E,QAAM,QAAQ,YAAW;AACzB,QAAM,cAAc,KAAK,QAAQ,KAAK,IAAI;AAC1C,OAAK,UAAU,CAAC,QAAQ,YAAY;AAClC,UAAM,gBAAgB,OAAO,CAAA,GAAI,QAAQ,CAAC,CAAC;AAC3C,kBAAc,mBAAmB,CAAC,MAAM;AACtC,6BAAuB,GAAGc,cAAY,IAAI,CAAC;AAC3C,aAAO,MAAM;AAAA,MACb;AAAA,IACF;AACA,QAAI,KAAK,SAAS,UAAU;AAC1B,oBAAc,kBAAkB,CAAC,YAAY;AAC3C,+BAAuB,SAASA,cAAY,OAAO,CAAC;AACpD,eAAO,MAAM;AAAA,QACb;AAAA,MACF;AAAA,IACF;AACA,YAAQ,MAAM,aAAa,MAAM,CAAC,KAAK,aAAa,CAAC;AACrD,UAAM,iBAAiBA,cAAY,IAAI;AACvC,UAAM,IAAI,MAAM;AACd,qBAAe,cAAc;AAC7B,UAAI,KAAK,SAAS,YAAY,gBAAgB,KAAK,QAAQ;AACzD,+BAAuB,KAAK,QAAQA,cAAY,KAAK,MAAM,CAAC;AAAA,MAC9D;AAAA,IACF,CAAC;AACD,QAAI,KAAK,SAAS,iBAAiB,IAAI,OAAO,iBAAiB,SAAS,MAAM;AAC5E,6BAAuB,IAAI,OAAO,iBAAiB,OAAO,cAAc;AAAA,IAC1E;AACA,QAAI,IAAI,SAAS;AACf,YAAM,aAAa,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAI,UAAU,MAAM;AAClB,cAAM,KAAI;AACV,mBAAU;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACF;ACrCO,MAAM,sBAAsB,OAAO,kBAAkB;AAC1D,QAAM,UAAU,MAAM,mBAAmB,cAAc;AACvD,UAAQ,SAAS,iBAAiB,QAAQ,UAAU;AACpD,UAAQ,gBAAgB;AACxB,UAAQ,mBAAmB;AAC3B,UAAQ,aAAa,CAAA;AACrB,aAAW,UAAUuB,aAAc;AACjC,YAAQ,SAAS,MAAM,MAAM,CAAA;AAAA,EAC/B;AACA,SAAO;AACT;ACZqC,IAAA,oCAAA,EAAA,IAAA,YAAA,IAAA,WAAA;AAeL,MAAA,mDACxB,iCAAA;AAAA,EACN,MAAA;AAAA,EACA;EACE,MAAA,MAAO,OAAA;AAAA,QAAe,QAAM;AAC5B,WAAM,eAAO,MAAW,UAAS,YAAA,EAAA,KAAA,MAAA,UAAA;AACjC,UAAM,OAAA;AACN,UAAM,cAAA,eAAwB,IAAA;AAC9B,UAAM,mBAAiB,KAAA,YAAA,OAA0B,SAAA,UAAgB;AACjE,UAAM,iBAAc,0BAAA,cAAA,EAAA,gBAA0B,KAAA,CAAA,EAAA,IAAA,KAAA,YAAoB,iBAAc;AAChF,UAAM,mCAAiC,CAAA,QAAA,SAAA,IAAArC,aAAA,MAAA,oBAAA,cAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA;AACvC,UAAI,gBAAoB,iBAAA;AACtB;AACF,oBAAO,QAAA,gBAAA,EAAA,QAAA,UAAA,iBAAA,CAAA;AAAA,IACL;AAMF,gCAAwB,IAAA,CAAA,WAAW,GAAA,QAAA,IAAA,kCAAA,MAAA,CAAA,IAAA,MAAA,gBAAA,CAAA;AACnC,UAAM,OAAA,sBAAyB;AAC/B,UAAM,YAAM,aAAA,wCAA2D,IAAA,GAAA,IAAA;AACvE,UAAK,MAAA,sBAAY,MAAA,MAAA,YAAA,aAAA;AACjB,SAAI,YAA6C;AAGhC,qBACA;AAAA,MACb,eAAS,UAAU;AACnB,iBAAS,UAAA,SAAc,MAAS,YAAM,OAAW;AACjD,iBAAM,cAAe,SAAI,MAAY,WAAA;AACrC,cAAA,WAAS,IAAU,IAAA,WAAe,CAAA;AAClC,iBAAI,UAAoB,SAAA,MAAA,SAAA,KAAA;AAIxB,iBAAS,WAAA;AAAmB,iBACpB,mBAAkB;AAAA,UAC1B,MAAA,kBAAA,KAAA,CAAA,MAAA,EAAA,SAAA,SAAA,OAAA,KAAA,KAAA,EAAA,MAAA,SAAA,OAAA,MAAA;AAAA,QACA;AACE,iBAAM,YAAA,kBAA6B;AACnC,gBAAM,iBAAK,MAAe,MAAM;AAClC,gBAAA,KAAA,eAAA,MAAA,SAAA,MAAA,KAAA,QAAA,aAAA,KAAA,CAAA;AAAA,QACA;AACA,iBAAS,qBAAmB,IAAA;AAC5B,iBAAS,mBAAgB;AACzB,iBAAS,gBAAA,YAAyB;AAClC,iBAAS,mBAAkB,MAA+C,uBAAA,UAAA,OAAA,CAAA;AAC1E,iBAAS,kBAAkB,MAAI,uBAAA,UAAA,OAAA,CAAA;AAC/B,iBAAS;AACP,+CAA2B,YAAA;AACzB,cAAA,CAAA,KAAA,iBAAA;AACF;AAAA,UACA;AACF,gBAAA,KAAA,gCAAA;AAAA,QACA;AACE,iBAAM,6BAAM,YAAA;AACd,gBAAA,MAAA;AAAA,QACF;AAAA,MACA;AAAA,MACE,uBAAc,UAAA,GAAA;AAAA,cACX,QAAW;AAAA,UACZ,CAAC,WAAA,MAAe,EAAA,OAAQ;AAAA,UACxB,CAAC,eAAW,MAAQ,EAAA,WAAO;AAAA,UAC3B,CAAC,WAAA,MAAY,EAAM,OAAA;AAAA,UACnB,CAAC,YAAA,MAAA,WAA4B;AAAA,UAC7B,CAAC,oBAAoB,MAAA,EAAA,gBAAmB;AAAA,UACxC,CAAC,aAAA,MAAA,CAAA,WAA6B,QAAA,MAAW,EAAA,WAAgB,GAAA,CAAA,MAAA,CAAA,CAAA;AAAA,UACzD,CAAC,sBAAoB,MAAM,CAAA,WAAqB,QAAA,MAAA,EAAA,oBAAA,GAAA,CAAA,MAAA,CAAA,CAAA;AAAA,UAChD,CAAC,oBAAiB,MAAQ,KAAA;AAAA,UAC1B,CAAC,iBAAA,MAAoB,EAAA,aAAY;AAAA,UACjC,CAAC,oBAAmB,MAAM,MAAM,QAAQ,MAAM,EAAE,kBAAiB,GAAK,CAAA,CAAC,CAAA;AAAA,UACvE,CAAC,mBAAmB,MAAM,MAAC,QAAW,MAAQ,EAAA,iBAAQ,GAAA,CAAA,CAAA,CAAiB;AAAA,UACvE,CAAC,mBAAA,MAAA,CAAA,WAAqC,QAAM,MAAQ,EAAA,iBAAQ,GAAA,CAAA,MAAA,CAAA,CAAA;AAAA,UAC5D,CAAC,+BAA8B,MAAM,MAAM,QAAQ,MAAM,EAAE,6BAA4B,GAAK,CAAA,CAAC,CAAA;AAAA,UAC/F,CAAA,8BAAA,MAAA,MAAA,QAAA,MAAA,EAAA,4BAAA,GAAA,EAAA,CAAA;AAAA,QACA;AACE,mBAAO,CAAA,KAAA,GAAA,KAAe,OAAA;AACxB,iBAAA,eAAA,UAAA,KAAA,EAAA,IAAA,CAAA;AAAA,QACF;AAAA,MACD;AAAA,IACD,CAAA;AACA,SAAA,OAAO,IAAA,IAAA;AACP,WAAK,qBAAuB,SAAA,EAAA,yBAA4B,IAAU,GAAA;AAClE,SAAK,QAAQ,cAAc,CAAA,YAAA,WAAmB,KAAA,UAAA,eAAA,OAAA,CAAA;AAC9C,SAAK,QAAQ,cAAA,cAAe,IAAe,CAAA;AAC3C,SAAK,QAAQ,eAAA,eAAiB,IAAiB,CAAA;AAC/C,SAAK,QAAQ,iBAAA,iBAAoB,IAAiB,CAAA;AAClD,SAAK,QAAQ,oBAAoB,iBAAA,IAAoB,CAAA;AACrD,SAAI,QAAqB,oBAAA,oBAAA,IAAA,CAAA;AAAA,EAM7B;AACA,CAAA;AC7GA,MAAA,yDAAe,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,WAA+B,CAAC,eAAe,iCAAiC;AAAA,EAChF,SAAS;AAAA,EACT,MAAM,OAAO;AAC2B;AACpC;AAAA,IACF;AAAA,EAQF;AACF,CAAC;ACRD,MAAA,UAAe;AAAA,EACbsC;AAAAA,EACA;AAAA,EACAC;AAAAA,EACA;AAAA,EACAC;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;ACtBA,MAAA,UAAe;AAAA,EACb,SAAS,qBAAqB,MAAM,OAAO,6BAA0B,EAAE,KAAK,OAAK,EAAE,WAAW,CAAC,CAAC;AAClG;ACMA,MAAM,oBAAoB;AAC1B,MAAM,eAAe,gBAAgB;AAAA,EACnC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,EAAA;AAAA,EAEf,MAAM,OAAO,SAAS;AACpB,WAAO,MAAM,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,aAAa,QAAQ,KAAK;AAAA,EACtE;AACF,CAAC;AACD,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,SAAS,MAAM;AAAA,IAC9B,SAAS;AAAA,EAAA;AAAA,EAEX,UAAU;AAAA,IACR,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA,EAAA;AAEb;AACA,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,EACP,MAAM,OAAO,SAAS;AACpB,UAAM,UAAU,WAAA;AAChB,UAAM,gBAAgB,OAAO,eAAe;AAC5C,UAAM,sBAAsB,CAAC,iBAAiB,kBAAkB,SAAA;AAChE,UAAM,QAAQ,sBAAsBC,WAAA,IAAsB;AAC1D,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,UAAU,MAAM,MAAM,IAAI,KAAK,OAAO,KAAK,UAAU,kBAAkB,OAAO,IAAI,EAAE,aAAa;AACrG,UAAI,WAAW,EAAE,WAAW,UAAU;AAIpC,YAAI,MAAM,UAAU;AAClB,oBAAU,MAAM,MAAM,QAAQ;AAAA,QAChC;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AACD,UAAM,YAAY,WAAA;AAClB,YAAQ,OAAO,EAAE,WAAW;AAC5B,UAAM,OAAO,QAAQ,eAAA;AAWrB,QAAI;AACJ,WAAO,MAAM;AACX,YAAM,YAAY,CAAC,CAAC,OAAO,SAAS,OAAO,SAAS;AACpD,YAAM,gBAAgB,aAAa,CAAC,EAAE,OAAO,KAAK,oBAAoBC;AACtE,YAAM,kBAAkB,iBAAiB,sBAAsB;AAAA,QAC7D,OAAO,KAAK;AAAA,QACZA;AAAAA,QACA;AAAA,UACE,gBAAgB;AACd,oBAAQ,oBAAoB,IAAI,IAAI,QAAQ,CAAC,YAAY;AACvD,sBAAQ,mBAAmB,IAAI;AAAA,YACjC,CAAC;AAAA,UACH;AAAA,UACA,eAAe;AACb,oBAAQ,mBAAmB,IAAA;AAC3B,mBAAO,QAAQ,mBAAmB;AAClC,mBAAO,QAAQ,oBAAoB;AAAA,UACrC;AAAA,QAAA;AAAA,MACF,CACD;AACD,YAAM,2BAA2B;AACjC,mBAAa,OAAO;AACpB,aAAO,kBAAkB,iBAAiB;AAAA,QACxC,SAAS,MAAM;AAAA,UACb;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,WAAW,YAAY;AACrB,oBAAM,SAAS,IAAI;AAAA,YACrB;AAAA,UAAA;AAAA,UAEF;AAAA,YACE,SAAS,MAAM;AAAA,cACb;AAAA,cACA;AAAA,gBACE,aAAa,WAAW,QAAQ,OAAO,MAAM,KAAK,eAAe,CAAA,GAAI,EAAE,KAAK,UAAA,CAAW;AAAA,gBACvF,KAAK,OAAO,SAAS;AAAA,gBACrB,MAAM,OAAO;AAAA,gBACb,eAAe,CAAC,MAAM;AAAA,gBACtB,sBAAsB,CAAC,SAAS;AAC9B,yBAAO,SAAS,4BAA4B,SAAS,OAAO;AAAA,gBAC9D;AAAA,gBACA;AAAA,cAAA;AAAA,cAEF,QAAQ;AAAA,YAAA;AAAA,UACV;AAAA,QACF;AAAA,MACF,CACD,EAAE,QAAA;AAAA,IACL;AAAA,EACF;AACF,CAAC;AACD,MAAM,iBAAiB,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,OAAO;AAAA,IAAA;AAAA,IAExB,aAAa;AAAA,MACX,MAAM;AAAA,IAAA;AAAA,IAER,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,IAER,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,IAER,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAM,OAAO,SAAS;AACpB,UAAM,OAAO,MAAM;AACnB,QAAI,MAAM,eAAe;AACvB,cAAQ,kBAAkB;AAAA;AAAA,QAExB,WAAW,CAAC,UAAU,SAAS,SAAS,UAAU,MAAM,KAAK,UAAU,kBAAkB,MAAM,IAAI,EAAE,aAAa;AAAA,MAAA,CACnH;AAAA,IACH;AACA,UAAM,gBAAgB,OAAO,eAAe;AAC5C,UAAM,sBAAsB,iBAAiB,kBAAkB,SAAA;AAC/D,QAAI,qBAAqB;AACvB,YAAM,iBAAiBD,WAAA;AACvB,YAAM,qBAAqB,CAAA;AAC3B,iBAAW,QAAQ,gBAAgB;AACjC,cAAM,MAAM;AACZ,eAAO,eAAe,oBAAoB,KAAK;AAAA,UAC7C,YAAY;AAAA,UACZ,KAAK,MAAM;AACT,mBAAO,MAAM,qBAAqB,MAAM,IAAI,IAAI,eAAe,GAAG,IAAI,cAAc,GAAG;AAAA,UACzF;AAAA,QAAA,CACD;AAAA,MACH;AACA,cAAQ,iBAAiB,gBAAgB,kBAAkB,CAAC;AAAA,IAC9D;AAeA,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,EAAE,QAAQ,UAAU;AAK3D,eAAO,QAAQ,MAAM,UAAA;AAAA,MACvB;AASA,aAAO;AAAA,QACL;AAAA,QACA,EAAE,KAAK,MAAM,aAAa,MAAM,aAAa,KAAA;AAAA,QAC7C,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAAA,EACF;AACF,CAAC;ACrMM,MAAM,sBAAsB,CAAC,OAAO,oBAAoB,gBAAgB;AAAA,EAC7E;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,gBAAgB;AAAA,EAAA;AAAA,EAElB,MAAM,OAAO;AACX,UAAM,cAAc,MAAM;AAC1B,UAAM,gBAAgB,MAAM;AAC5B,UAAM,QAAQ,CAAA;AACd,eAAW,OAAO,MAAM,OAAO;AAC7B,aAAO,eAAe,OAAO,KAAK;AAAA,QAChC,KAAK,MAAM,gBAAgB,MAAM,YAAY,MAAM,MAAM,GAAG,IAAI,cAAc,GAAG;AAAA,QACjF,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AACA,YAAQ,iBAAiB,gBAAgB,KAAK,CAAC;AAY/C,WAAO,MAAM;AACX,UAAI,CAAC,MAAM,OAAO;AAChB,eAAO,MAAM;AAAA,MACf;AAKA,aAAO,EAAE,MAAM,OAAO,EAAE,KAAK,MAAM,UAAU;AAAA,IAC/C;AAAA,EACF;AACF,CAAC;AACM,MAAM,gBAAgB,oBAAA;ACtC7B,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,IAAA;AAAA,IAER,YAAY;AAAA,MACV,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IAAA;AAAA,IAEX,WAAW;AAAA,MACT,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IAAA;AAAA,IAEX,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,IAER,SAAS;AAAA,MACP,MAAM,CAAC,UAAU,MAAM;AAAA,MACvB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAAO,EAAE,OAAO,OAAO,UAAU;AACrC,UAAM,UAAU,WAAA;AAChB,UAAM,UAAU,IAAA;AACE,WAAO,iBAAiB,IAAI;AAE9C,WAAO,EAAE,SAAS;AACE,WAAO,kBAAkB,IAAI;AAEpC,YAAQ,eAAA;AA+BrB,WAAO,MAAM;AACX,aAAO,EAAE,YAAY,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,GAAG,MAAA,GAAS;AAAA,QACvE,SAA8B,CAAC,eAAe;AAC5C,iBAAO,EAAE,UAAU,EAAE,aAAa,QAAQ;AAAA,YACxC,UAAU;AACR,qBAAO,EAAE,eAAe;AAAA,gBACtB,OAAO,MAAM,UAAU,cAAc,MAAM,SAAS,UAAU,IAAI,WAAW;AAAA,gBAC7E,OAAO,WAAW;AAAA,gBAClB,UAAU;AAAA,cAAA,CACX;AAAA,YACH;AAAA,UAAA,CACD;AAAA,QACH;AAAA,MAyGA,CACD;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAuBD,SAAS,cAAc,MAAM,MAAM;AACjC,QAAM,cAAc,KAAK,IAAI;AAC7B,SAAO,YAAY,WAAW,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,UAAU,QAAQ,WAAW;AACvF;;;;;;;;;;;;;qBC1NE,CAEa,GAAAE,QAAAC,UAAA,aAAA;;;;;UADXC,YAAY,mBAAA;AAAA;;;;;;;;;;;;;;;;;;;;ACKhB,UAAM,QAAQ;AAGd,UAAM,SAAS,MAAM;AAQrB,UAAM,SAAS,OAAO,OAAO,cAAc,GAAG;AAC9C,UAAM,QAAQ,WAAW;AACzB,UAAM,aAAa,OAAO,kBAAkB,QAAQ,mBAAmB;AACvE,UAAM,cAAc,OAAO,WAAW,OAAO,SAAA;AAC7C,UAAM,QAAuF;AAC7F,UAAM,YAAY,qBAAqB,MAAM,OAAO,+BAAiB,CAAC;AACtE,UAAM,SAAS,qBAAqB,MAAM,OAAO,+BAAiB,CAAC;AACnE,UAAM,gBAAgB,QAAQ,YAAY;;0EAxBfC,MAAA,MAAA,GAAM,YAAEA,mBAAU,YAAcA,MAAA,MAAA,kBAAuBA,MAAA,UAAA,GAAU,aAAEA,MAAA,WAAA,GAAW,OAAEA,MAAA,KAAA,KAAK,MAAA,GAAA,MAAA,OAAA,CAAA;AAAA;;;;;;;;;;;;;AC2BhH,UAAM,iBAAgJ,MAAM;AAC5J,UAAM,UAAU,WAAA;AACE,YAAQ,eAAA;AAQO,YAAQ,WAAW;AACpD,UAAM,iBAAiB;AACvB,YAAQ,iBAAiB,UAAU;AACnB,YAAQ,MAAM,aAAa,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,MAAM,GAAG,aAAa,CAAA,CAAE;AAIlG,UAAM,QAAQ,yBAAA;AACd,UAAM,cAAoC,MAAM,SAAS,CAAC,QAAQ,WAAW;AAE7E,aAAS,sBAAsB,KAAK,QAAQ,MAAM;AAChD,YAAM,eAAe,QAAQ,OAAO,OAAO;AAC3C,UAAI,gBAAgB,CAAC,aAAa,gBAAgB;AAChD,YAAI;AACF,uBAAa,KAAK,QAAQ,IAAI;AAAA,QAChC,SAAS,cAAc;AACrB,kBAAQ,MAAM,6CAA6C,YAAY;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AACA,oBAAgB,CAAC,KAAK,QAAQ,SAAS;AACrC,cAAQ,MAAM,SAAS,aAAa,KAAK,QAAQ,IAAI,EAAE,MAAM,CAAC,cAAc,QAAQ,MAAM,oCAAoC,SAAS,CAAC;AAM5D;AAC1E,cAAM,IAAI,QAAQ,eAAe,MAAM,UAAU,GAAG,CAAC;AACrD,yBAAiB,MAAM,CAAC;AACxB,8BAAsB,KAAK,QAAQ,IAAI;AACvC,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,gBAAsC,QAAQ,WAAW;;;iBAvE7D,MAeW;cAdEA,MAAA,WAAA,GAAW;;qBAETA,MAAA,KAAA,GAAK;AACf,kBAAAC,mBAAAD,MAAAE,WAAA,GAAA,EAAA,OAAOF,MAAA,KAAA,EAAA,GAAK,MAAA,OAAA,CAAA;AAAA,qBAGFA,MAAA,aAAA,GAAa;AACvB,kBAAAC,mBAAAD,MAAA,cAAA,GAAA,EAAA,SAASA,MAAA,aAAA,EAAA,GAAa,MAAA,OAAA,CAAA;AAAA,qBAIZA,MAAA,cAAA,GAAc;sEADpBA,MAAA,cAAA,CAAc,GAAA,MAAA,IAAA,GAAA,OAAA;AAAA;;;;;;;;;;;;;;;ACHzB,IAAI;AACoB;AACtB,UAAQ,eAAe,oBAAoB,YAAY;AACrD,UAAM,SAAS,UAAUG,SAAa;AACtC,UAAM,OAAO,cAAc,EAAE,QAAQ,YAAY;AACjD,QAAI;AACF,YAAM,aAAa,MAAM,OAAO;AAChC,YAAM,KAAK,MAAM,SAAS,eAAe,MAAM;AAAA,IACjD,SAAS,OAAO;AACd,YAAM,KAAK,MAAM,SAAS,aAAa,KAAK;AAC5C,WAAK,QAAQ,UAAU,YAAY,KAAK;AAAA,IAC1C;AACA,QAAI,eAAe,WAAW,iBAAiB,KAAK,WAAW,kBAAkB;AAC/E,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AACA,WAAO;AAAA,EACT;AACF;AAqDA,MAAA,iBAAgB,CAAC,eAAe,MAAM,UAAU;","x_google_ignoreList":[3,4,5,6,7,8,10,11,12,13,14,15,17,18,20,21,24,25,26,27,28,29,30,31,32,34,35,36,37,38,39,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,64,65,66,68,69,70]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/server.mjs.map.json b/frontend_admin/.nuxt/dist/server/server.mjs.map.json index 1c67766..0afcab8 100644 --- a/frontend_admin/.nuxt/dist/server/server.mjs.map.json +++ b/frontend_admin/.nuxt/dist/server/server.mjs.map.json @@ -1 +1 @@ -{"file":"server.mjs","mappings":"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","names":["$fetch","plugin","provide","plugins","createH3Error","routeRulesMatcher","toArray","__executeAsync","entry","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../virtual:nuxt:%2Fapp%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fmiddleware.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.islands.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../node_modules/nuxt/dist/app/components/client-only.js","../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.plugin.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fplugins.server.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Flayouts.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[]}\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as indexndqPXFtP262szLmLJV4PriPTgAg5k_457f05QyTfosBXQMeta } from \"/app/pages/index.vue?macro=true\";\nimport { default as loginKGJhNRZhH4FU_45RnHfId5ZCGRhKzPnQPbdAbdNd47TwsMeta } from \"/app/pages/login.vue?macro=true\";\nimport { default as indexmFHuXm1TRDyTx4rDob8_G9bfnp43YCs_HCFMFiG56X4Meta } from \"/app/pages/permissions/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/index.vue\")\n },\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(\"/app/pages/login.vue\")\n },\n {\n name: \"permissions\",\n path: \"/permissions\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/permissions/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/app/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/app/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/app/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {\n auth: () => import(\"/app/middleware/auth.ts\")\n}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createElementBlock, defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(ctx._.vnode.el, STATIC_DIV);\n };\n } else {\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M from \"/app/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/app/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/app/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/app/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs from \"/app/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/app/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M,\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n default: defineAsyncComponent(() => import(\"/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n\n\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"version":3} \ No newline at end of file +{"file":"server.mjs","mappings":"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","names":["$fetch","plugin","provide","plugins","getCurrentInstance","toArray","createH3Error","headCore","routeRulesMatcher","__executeAsync","entry","parse","format","identifier","separator","src","des","localeHead","localePath","_localeHead","vueI18nConfigs","getLocaleMessages","cache","getComposer","define_I18N_LOCALE_HASHES_default","errorMessages","index","context","isLiteral","baseCompile","warnMessages","getWarnMessage","VERSION","type","resolveValue","msg","source","message","locale","locales","_context","messages","global","options","composer","switchLocalePath","_localeCodes","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../virtual:nuxt:%2Fapp%2F.nuxt%2Ffetch.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fglobal-polyfills.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fnuxt.config.mjs","../../../node_modules/nuxt/dist/app/nuxt.js","../../../node_modules/nuxt/dist/app/components/injections.js","../../../node_modules/nuxt/dist/app/utils.js","../../../node_modules/nuxt/dist/app/composables/router.js","../../../node_modules/nuxt/dist/app/composables/error.js","../../../node_modules/nuxt/dist/head/runtime/composables/v3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froute-rules.mjs","../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../node_modules/nuxt/dist/app/composables/payload.js","../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../node_modules/nuxt/dist/head/runtime/island-head.js","../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Froutes.mjs","../../../node_modules/nuxt/dist/app/components/utils.js","../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Frouter.options.mjs","../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../node_modules/nuxt/dist/app/middleware/route-rules.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fmiddleware.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.islands.mjs","../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../node_modules/nuxt/dist/app/components/client-only.js","../../../node_modules/nuxt/dist/app/composables/state.js","../../../node_modules/nuxt/dist/app/composables/ssr.js","../../../node_modules/nuxt/dist/app/composables/cookie.js","../../../node_modules/nuxt/dist/app/composables/url.js","../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fcomponents.plugin.mjs","../../../node_modules/@intlify/shared/dist/shared.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/head.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/routing.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/head.js","../../../node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/routing.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/utils.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fi18n-options.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/messages.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/compatibility.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/utils.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/domain.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/locales.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/context.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/browser.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/detection.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/utils.js","../../../node_modules/@intlify/message-compiler/dist/message-compiler.mjs","../../../node_modules/@intlify/core-base/dist/core-base.mjs","../../../node_modules/vue-i18n/dist/vue-i18n.mjs","../../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/switch-locale-path-ssr.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/route-locale-detect.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/preload.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/routing/i18n.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/vue-i18n.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/i18n.js","../../../node_modules/@nuxtjs/i18n/dist/runtime/plugins/ssg-detect.js","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Fplugins.server.mjs","../../../virtual:nuxt:%2Fapp%2F.nuxt%2Flayouts.mjs","../../../node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../app.vue","../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appHead = {\"meta\":[{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"charset\":\"utf-8\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[]}\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = false\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"value\":null,\"errorValue\":null,\"deep\":true}\n\nexport const resetAsyncDataToUndefined = true\n\nexport const nuxtDefaultErrorValue = null\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = false\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = false\n\nexport const pendingWhenIdle = true\n\nexport const alwaysRunFetchOnKeyChange = true","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = [...trace].reverse().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/3.x/directory-structure/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~preloadManifest\"] = true;\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as indexndqPXFtP262szLmLJV4PriPTgAg5k_457f05QyTfosBXQMeta } from \"/app/pages/index.vue?macro=true\";\nimport { default as loginKGJhNRZhH4FU_45RnHfId5ZCGRhKzPnQPbdAbdNd47TwsMeta } from \"/app/pages/login.vue?macro=true\";\nimport { default as indexmGB0sc77z4nVdouTyxGPwq1E4nqHwF5EhzkXRcpUofYMeta } from \"/app/pages/garages/index.vue?macro=true\";\nimport { default as index4QOTtNxyMkSDhg1SvMqdYexX0LysiSHughzzK0HxGl0Meta } from \"/app/pages/packages/index.vue?macro=true\";\nimport { default as indexmFHuXm1TRDyTx4rDob8_G9bfnp43YCs_HCFMFiG56X4Meta } from \"/app/pages/permissions/index.vue?macro=true\";\nexport default [\n {\n name: \"index\",\n path: \"/\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/index.vue\")\n },\n {\n name: \"login\",\n path: \"/login\",\n component: () => import(\"/app/pages/login.vue\")\n },\n {\n name: \"garages\",\n path: \"/garages\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/garages/index.vue\")\n },\n {\n name: \"packages\",\n path: \"/packages\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/packages/index.vue\")\n },\n {\n name: \"permissions\",\n path: \"/permissions\",\n meta: {\"middleware\":\"auth\"},\n component: () => import(\"/app/pages/permissions/index.vue\")\n }\n]","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/app/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/app/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/app/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {\n auth: () => import(\"/app/middleware/auth.ts\")\n}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createElementBlock, defineComponent } from \"vue\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(ctx._.vnode.el, STATIC_DIV);\n };\n } else {\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return elToStaticVNode(instance?.vnode.el, STATIC_DIV);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { isRef, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nconst useStateKeyPrefix = \"$s\";\nexport function useState(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [_key, init] = args;\n if (!_key || typeof _key !== \"string\") {\n throw new TypeError(\"[nuxt] [useState] key must be a string: \" + _key);\n }\n if (init !== void 0 && typeof init !== \"function\") {\n throw new Error(\"[nuxt] [useState] init must be a function: \" + init);\n }\n const key = useStateKeyPrefix + _key;\n const nuxtApp = useNuxtApp();\n const state = toRef(nuxtApp.payload.state, key);\n if (state.value === void 0 && init) {\n const initialValue = init();\n if (isRef(initialValue)) {\n nuxtApp.payload.state[key] = initialValue;\n return initialValue;\n }\n state.value = initialValue;\n }\n return state;\n}\nexport function clearNuxtState(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.state).filter((key) => key.startsWith(useStateKeyPrefix)).map((key) => key.substring(useStateKeyPrefix.length));\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const _key of _keys) {\n const key = useStateKeyPrefix + _key;\n if (key in nuxtApp.payload.state) {\n nuxtApp.payload.state[key] = void 0;\n }\n }\n}\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { customRef, getCurrentScope, nextTick, onScopeDispose, ref, watch } from \"vue\";\nimport { parse, serialize } from \"cookie-es\";\nimport { deleteCookie, getCookie, getRequestHeader, setCookie } from \"h3\";\nimport destr from \"destr\";\nimport { isEqual } from \"ohash\";\nimport { klona } from \"klona\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRequestEvent } from \"./ssr.js\";\nimport { cookieStore } from \"#build/nuxt.config.mjs\";\nconst CookieDefaults = {\n path: \"/\",\n watch: true,\n decode: (val) => {\n const decoded = decodeURIComponent(val);\n const parsed = destr(decoded);\n if (typeof parsed === \"number\" && (!Number.isFinite(parsed) || String(parsed) !== decoded)) {\n return decoded;\n }\n return parsed;\n },\n encode: (val) => encodeURIComponent(typeof val === \"string\" ? val : JSON.stringify(val))\n};\nconst store = import.meta.client && cookieStore ? globalThis.cookieStore : void 0;\nexport function useCookie(name, _opts) {\n const opts = { ...CookieDefaults, ..._opts };\n opts.filter ??= (key) => key === name;\n const cookies = readRawCookies(opts) || {};\n let delay;\n if (opts.maxAge !== void 0) {\n delay = opts.maxAge * 1e3;\n } else if (opts.expires) {\n delay = opts.expires.getTime() - Date.now();\n }\n const hasExpired = delay !== void 0 && delay <= 0;\n const shouldSetInitialClientCookie = import.meta.client && (hasExpired || cookies[name] === void 0 || cookies[name] === null);\n const cookieValue = klona(hasExpired ? void 0 : cookies[name] ?? opts.default?.());\n const cookie = import.meta.client && delay && !hasExpired ? cookieRef(cookieValue, delay, opts.watch && opts.watch !== \"shallow\") : ref(cookieValue);\n if (import.meta.dev && hasExpired) {\n console.warn(`[nuxt] not setting cookie \\`${name}\\` as it has already expired.`);\n }\n if (import.meta.client) {\n let channel = null;\n try {\n if (!store && typeof BroadcastChannel !== \"undefined\") {\n channel = new BroadcastChannel(`nuxt:cookies:${name}`);\n }\n } catch {\n }\n const callback = (force = false) => {\n if (!force) {\n if (opts.readonly || isEqual(cookie.value, cookies[name])) {\n return;\n }\n }\n writeClientCookie(name, cookie.value, opts);\n cookies[name] = klona(cookie.value);\n channel?.postMessage({ value: opts.encode(cookie.value) });\n };\n const handleChange = (data) => {\n const value = data.refresh ? readRawCookies(opts)?.[name] : opts.decode(data.value);\n watchPaused = true;\n cookie.value = value;\n cookies[name] = klona(value);\n nextTick(() => {\n watchPaused = false;\n });\n };\n let watchPaused = false;\n const hasScope = !!getCurrentScope();\n if (hasScope) {\n onScopeDispose(() => {\n watchPaused = true;\n callback();\n channel?.close();\n });\n }\n if (store) {\n const changeHandler = (event) => {\n const changedCookie = event.changed.find((c) => c.name === name);\n const removedCookie = event.deleted.find((c) => c.name === name);\n if (changedCookie) {\n handleChange({ value: changedCookie.value });\n }\n if (removedCookie) {\n handleChange({ value: null });\n }\n };\n store.addEventListener(\"change\", changeHandler);\n if (hasScope) {\n onScopeDispose(() => store.removeEventListener(\"change\", changeHandler));\n }\n } else if (channel) {\n channel.onmessage = ({ data }) => handleChange(data);\n }\n if (opts.watch) {\n watch(\n cookie,\n () => {\n if (watchPaused) {\n return;\n }\n callback();\n },\n { deep: opts.watch !== \"shallow\" }\n );\n }\n if (shouldSetInitialClientCookie) {\n callback(shouldSetInitialClientCookie);\n }\n } else if (import.meta.server) {\n const nuxtApp = useNuxtApp();\n const writeFinalCookieValue = () => {\n if (opts.readonly || isEqual(cookie.value, cookies[name])) {\n return;\n }\n nuxtApp._cookies ||= {};\n if (name in nuxtApp._cookies) {\n if (isEqual(cookie.value, nuxtApp._cookies[name])) {\n return;\n }\n if (import.meta.dev) {\n console.warn(`[nuxt] cookie \\`${name}\\` was previously set to \\`${opts.encode(nuxtApp._cookies[name])}\\` and is being overridden to \\`${opts.encode(cookie.value)}\\`. This may cause unexpected issues.`);\n }\n }\n nuxtApp._cookies[name] = cookie.value;\n writeServerCookie(useRequestEvent(nuxtApp), name, cookie.value, opts);\n };\n const unhook = nuxtApp.hooks.hookOnce(\"app:rendered\", writeFinalCookieValue);\n nuxtApp.hooks.hookOnce(\"app:error\", () => {\n unhook();\n return writeFinalCookieValue();\n });\n }\n return cookie;\n}\nexport function refreshCookie(name) {\n if (import.meta.server || store || typeof BroadcastChannel === \"undefined\") {\n return;\n }\n try {\n const channel = new BroadcastChannel(`nuxt:cookies:${name}`);\n channel.postMessage({ refresh: true });\n channel.close();\n } catch {\n }\n}\nfunction readRawCookies(opts = {}) {\n if (import.meta.server) {\n return parse(getRequestHeader(useRequestEvent(), \"cookie\") || \"\", opts);\n } else if (import.meta.client) {\n return parse(document.cookie, opts);\n }\n}\nfunction serializeCookie(name, value, opts = {}) {\n if (value === null || value === void 0) {\n return serialize(name, value, { ...opts, maxAge: -1 });\n }\n return serialize(name, value, opts);\n}\nfunction writeClientCookie(name, value, opts = {}) {\n if (import.meta.client) {\n document.cookie = serializeCookie(name, value, opts);\n }\n}\nfunction writeServerCookie(event, name, value, opts = {}) {\n if (event) {\n if (value !== null && value !== void 0) {\n return setCookie(event, name, value, opts);\n }\n if (getCookie(event, name) !== void 0) {\n return deleteCookie(event, name, opts);\n }\n }\n}\nconst MAX_TIMEOUT_DELAY = 2147483647;\nfunction cookieRef(value, delay, shouldWatch) {\n let timeout;\n let unsubscribe;\n let elapsed = 0;\n const internalRef = shouldWatch ? ref(value) : { value };\n if (getCurrentScope()) {\n onScopeDispose(() => {\n unsubscribe?.();\n clearTimeout(timeout);\n });\n }\n return customRef((track, trigger) => {\n if (shouldWatch) {\n unsubscribe = watch(internalRef, trigger);\n }\n function scheduleTimeout() {\n const timeRemaining = delay - elapsed;\n const timeoutLength = timeRemaining < MAX_TIMEOUT_DELAY ? timeRemaining : MAX_TIMEOUT_DELAY;\n timeout = setTimeout(() => {\n elapsed += timeoutLength;\n if (elapsed < delay) {\n return scheduleTimeout();\n }\n internalRef.value = void 0;\n trigger();\n }, timeoutLength);\n }\n function createExpirationTimeout() {\n elapsed = 0;\n clearTimeout(timeout);\n scheduleTimeout();\n }\n return {\n get() {\n track();\n return internalRef.value;\n },\n set(newValue) {\n createExpirationTimeout();\n internalRef.value = newValue;\n trigger();\n }\n };\n });\n}\n","import { getRequestURL } from \"h3\";\nimport { useRequestEvent } from \"./ssr.js\";\nexport function useRequestURL(opts) {\n if (import.meta.server) {\n return getRequestURL(useRequestEvent(), opts);\n }\n return new URL(globalThis.location.href);\n}\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","/*!\n * shared v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\nif ((process.env.NODE_ENV !== 'production')) {\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nconst _create = Object.create;\nconst create = (obj = null) => _create(obj);\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : create()));\n};\nfunction escapeHtml(rawText) {\n return rawText\n .replace(/&/g, '&') // escape `&` first to avoid double escaping\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/\\//g, '/') // escape `/` to prevent closing tags or JavaScript URLs\n .replace(/=/g, '='); // escape `=` to prevent attribute injection\n}\nfunction escapeAttributeValue(value) {\n return value\n .replace(/&(?![a-zA-Z0-9#]{2,6};)/g, '&') // escape unescaped `&`\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n}\nfunction sanitizeTranslatedHtml(html) {\n // Escape dangerous characters in attribute values\n // Process attributes with double quotes\n html = html.replace(/(\\w+)\\s*=\\s*\"([^\"]*)\"/g, (_, attrName, attrValue) => `${attrName}=\"${escapeAttributeValue(attrValue)}\"`);\n // Process attributes with single quotes\n html = html.replace(/(\\w+)\\s*=\\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);\n // Detect and neutralize event handler attributes\n const eventHandlerPattern = /\\s*on\\w+\\s*=\\s*[\"']?[^\"'>]+[\"']?/gi;\n if (eventHandlerPattern.test(html)) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('Potentially dangerous event handlers detected in translation. ' +\n 'Consider removing onclick, onerror, etc. from your translation messages.');\n }\n // Neutralize event handler attributes by escaping 'on'\n html = html.replace(/(\\s+)(on)(\\w+\\s*=)/gi, '$1on$3');\n }\n // Disable javascript: URLs in various contexts\n const javascriptUrlPattern = [\n // In href, src, action, formaction attributes\n /(\\s+(?:href|src|action|formaction)\\s*=\\s*[\"']?)\\s*javascript:/gi,\n // In style attributes within url()\n /(style\\s*=\\s*[\"'][^\"']*url\\s*\\(\\s*)javascript:/gi\n ];\n javascriptUrlPattern.forEach(pattern => {\n html = html.replace(pattern, '$1javascript:');\n });\n return html;\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\nconst isSymbol = (val) => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || [])\n .slice()\n .map(handler => handler(payload));\n (events.get('*') || [])\n .slice()\n .map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\n\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{ src, des }];\n while (stack.length) {\n const { src, des } = stack.pop();\n // using `Object.keys` which skips prototype properties\n Object.keys(src).forEach(key => {\n if (key === '__proto__') {\n return;\n }\n // if src[key] is an object/array, set des[key]\n // to empty object/array to prevent setting by reference\n if (isObject(src[key]) && !isObject(des[key])) {\n des[key] = Array.isArray(src[key]) ? [] : create();\n }\n if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n }\n else {\n // src[key] and des[key] are both objects, merge them\n stack.push({ src: src[key], des: des[key] });\n }\n });\n }\n}\n\nexport { assign, create, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, sanitizeTranslatedHtml, toDisplayString, toTypeString, warn, warnOnce };\n","import { hasProtocol, joinURL, withQuery } from \"ufo\";\nconst strictSeo = __I18N_STRICT_SEO__;\nexport function localeHead(options, currentLanguage = options.getCurrentLanguage(), currentDirection = options.getCurrentDirection()) {\n const metaObject = {\n htmlAttrs: {},\n link: [],\n meta: []\n };\n if (options.dir) {\n metaObject.htmlAttrs.dir = currentDirection;\n }\n if (options.lang && currentLanguage) {\n metaObject.htmlAttrs.lang = currentLanguage;\n }\n if (options.seo) {\n const alternateLinks = getHreflangLinks(options);\n metaObject.link = metaObject.link.concat(\n alternateLinks,\n getCanonicalLink(options)\n );\n metaObject.meta = metaObject.meta.concat(\n getOgUrl(options),\n getCurrentOgLocale(options),\n getAlternateOgLocales(\n options,\n strictSeo ? alternateLinks.map((x) => x.hreflang).filter((x) => x !== \"x-default\") : options.locales.map((x) => x.language || x.code)\n )\n );\n }\n return metaObject;\n}\nfunction createLocaleMap(locales) {\n const localeMap = /* @__PURE__ */ new Map();\n for (const locale of locales) {\n if (!locale.language) {\n console.warn(\"Locale `language` ISO code is required to generate alternate link\");\n continue;\n }\n const [language, region] = locale.language.split(\"-\");\n if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) {\n localeMap.set(language, locale);\n }\n localeMap.set(locale.language, locale);\n }\n return localeMap;\n}\nfunction getHreflangLinks(options) {\n if (!options.hreflangLinks) {\n return [];\n }\n const links = [];\n const localeMap = createLocaleMap(options.locales);\n for (const [language, locale] of localeMap.entries()) {\n const link = getHreflangLink(language, locale, options);\n if (!link) {\n continue;\n }\n links.push(link);\n if (options.defaultLocale && options.defaultLocale === locale.code && links[0].hreflang !== \"x-default\") {\n links.unshift(\n strictSeo ? { rel: \"alternate\", href: link.href, hreflang: \"x-default\" } : { [options.key]: \"i18n-xd\", rel: \"alternate\", href: link.href, hreflang: \"x-default\" }\n );\n }\n }\n return links;\n}\nfunction getHreflangLink(language, locale, options, routeWithoutQuery = options.strictCanonicals ? options.getRouteWithoutQuery() : void 0) {\n const localePath = options.getLocalizedRoute(locale.code, routeWithoutQuery);\n if (!localePath) {\n return void 0;\n }\n const href = withQuery(\n hasProtocol(localePath) ? localePath : joinURL(options.baseUrl, localePath),\n options.strictCanonicals ? getCanonicalQueryParams(options) : {}\n );\n return strictSeo ? { rel: \"alternate\", href, hreflang: language } : { [options.key]: `i18n-alt-${language}`, rel: \"alternate\", href, hreflang: language };\n}\nfunction getCanonicalUrl(options, route = options.getCurrentRoute()) {\n const currentRoute = options.getLocaleRoute(\n Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) })\n );\n if (!currentRoute) {\n return \"\";\n }\n return withQuery(joinURL(options.baseUrl, currentRoute.path), getCanonicalQueryParams(options));\n}\nfunction getCanonicalLink(options, href = getCanonicalUrl(options)) {\n if (!href) {\n return [];\n }\n return [strictSeo ? { rel: \"canonical\", href } : { [options.key]: \"i18n-can\", rel: \"canonical\", href }];\n}\nfunction getCanonicalQueryParams(options, route = options.getCurrentRoute()) {\n const currentRoute = options.getLocaleRoute(\n Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) })\n );\n const currentRouteQuery = currentRoute?.query ?? {};\n const params = {};\n for (const param of options.canonicalQueries.filter((x) => x in currentRouteQuery)) {\n params[param] ??= [];\n for (const val of toArray(currentRouteQuery[param])) {\n params[param].push(val || \"\");\n }\n }\n return params;\n}\nfunction getOgUrl(options, href = getCanonicalUrl(options)) {\n if (!href) {\n return [];\n }\n return [\n strictSeo ? { property: \"og:url\", content: href } : { [options.key]: \"i18n-og-url\", property: \"og:url\", content: href }\n ];\n}\nfunction getCurrentOgLocale(options, currentLanguage = options.getCurrentLanguage()) {\n if (!currentLanguage) {\n return [];\n }\n return [\n strictSeo ? { property: \"og:locale\", content: formatOgLanguage(currentLanguage) } : { [options.key]: \"i18n-og\", property: \"og:locale\", content: formatOgLanguage(currentLanguage) }\n ];\n}\nfunction getAlternateOgLocales(options, languages, currentLanguage = options.getCurrentLanguage()) {\n const alternateLocales = languages.filter((locale) => locale && locale !== currentLanguage);\n return alternateLocales.map(\n (locale) => strictSeo ? {\n property: \"og:locale:alternate\",\n content: formatOgLanguage(locale)\n } : {\n [options.key]: `i18n-og-alt-${locale}`,\n property: \"og:locale:alternate\",\n content: formatOgLanguage(locale)\n }\n );\n}\nfunction formatOgLanguage(val = \"\") {\n return val.replace(/-/g, \"_\");\n}\nfunction toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","import { hasProtocol, parsePath, parseQuery } from \"ufo\";\nimport { assign, isString } from \"@intlify/shared\";\nexport function localePath(ctx, route, locale = ctx.getLocale()) {\n if (isString(route) && hasProtocol(route, { acceptRelative: true })) {\n return route;\n }\n try {\n return resolveRoute(ctx, route, locale).fullPath;\n } catch {\n return \"\";\n }\n}\nexport function localeRoute(ctx, route, locale = ctx.getLocale()) {\n try {\n return resolveRoute(ctx, route, locale);\n } catch {\n return;\n }\n}\nfunction normalizeRawLocation(route) {\n if (!isString(route)) {\n return assign({}, route);\n }\n if (route[0] === \"/\") {\n const { pathname: path, search, hash } = parsePath(route);\n return { path, query: parseQuery(search), hash };\n }\n return { name: route };\n}\nfunction resolveRoute(ctx, route, locale) {\n const normalized = normalizeRawLocation(route);\n const resolved = ctx.router.resolve(ctx.resolveLocalizedRouteObject(normalized, locale));\n if (resolved.name) {\n return resolved;\n }\n return ctx.router.resolve(route);\n}\nexport function switchLocalePath(ctx, locale, route = ctx.router.currentRoute.value) {\n const name = ctx.getRouteBaseName(route);\n if (!name) {\n return \"\";\n }\n const routeCopy = {\n name,\n params: assign(\n {},\n route.params,\n ctx.getLocalizedDynamicParams(locale)\n ),\n fullPath: route.fullPath,\n query: route.query,\n hash: route.hash,\n path: route.path,\n meta: route.meta\n };\n const path = localePath(ctx, routeCopy, locale);\n return ctx.afterSwitchLocalePath(path, locale);\n}\n","import { computed, getCurrentScope, onScopeDispose, ref, useHead, useRequestEvent, watch } from \"#imports\";\nimport { assign } from \"@intlify/shared\";\nimport { localeHead as _localeHead } from \"#i18n-kit/head\";\nimport { localeRoute, switchLocalePath } from \"./routing.js\";\nfunction createHeadContext(ctx, config, locale = ctx.getLocale(), locales = ctx.getLocales(), baseUrl = ctx.getBaseUrl()) {\n const currentLocale = locales.find((l) => l.code === locale) || { code: locale };\n const canonicalQueries = typeof config.seo === \"object\" && config.seo?.canonicalQueries || [];\n if (!baseUrl && !__DIFFERENT_DOMAINS__ && !__MULTI_DOMAIN_LOCALES__) {\n if (__I18N_STRICT_SEO__) {\n throw new Error(\"I18n `baseUrl` is required to generate valid SEO tag links.\");\n }\n console.warn(\"I18n `baseUrl` is required to generate valid SEO tag links.\");\n }\n return {\n ...config,\n key: __I18N_STRICT_SEO__ ? \"key\" : \"id\",\n locales,\n baseUrl,\n canonicalQueries,\n hreflangLinks: ctx.routingOptions.hreflangLinks,\n defaultLocale: ctx.routingOptions.defaultLocale,\n strictCanonicals: __I18N_STRICT_SEO__ || ctx.routingOptions.strictCanonicals,\n getRouteBaseName: ctx.getRouteBaseName,\n getCurrentRoute: () => ctx.router.currentRoute.value,\n getCurrentLanguage: () => currentLocale.language,\n getCurrentDirection: () => currentLocale.dir || __DEFAULT_DIRECTION__,\n getLocaleRoute: (route) => localeRoute(ctx, route),\n getLocalizedRoute: (locale2, route) => switchLocalePath(ctx, locale2, route),\n getRouteWithoutQuery: () => {\n try {\n return assign({}, ctx.router.resolve({ query: {} }), { meta: ctx.router.currentRoute.value.meta });\n } catch {\n return void 0;\n }\n }\n };\n}\nexport function localeHead(ctx, { dir = true, lang = true, seo = true }) {\n return _localeHead(createHeadContext(ctx, { dir, lang, seo }));\n}\nexport function _useLocaleHead(ctx, options) {\n const metaObject = ref(_localeHead(createHeadContext(ctx, options)));\n if (import.meta.client) {\n const unsub = watch([() => ctx.router.currentRoute.value, () => ctx.getLocale()], () => {\n metaObject.value = _localeHead(createHeadContext(ctx, options));\n __I18N_STRICT_SEO__ && ctx.head?.patch(metaObject.value);\n });\n if (getCurrentScope()) {\n onScopeDispose(unsub);\n }\n }\n __I18N_STRICT_SEO__ && ctx.head?.patch(metaObject.value);\n return metaObject;\n}\nexport function _useSetI18nParams(ctx, seo, router = ctx.router) {\n const head = __I18N_STRICT_SEO__ ? ctx.head : useHead({});\n const evt = __I18N_STRICT_SEO__ && import.meta.server && useRequestEvent();\n const _i18nParams = ref({});\n const i18nParams = computed({\n get() {\n return router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__];\n },\n set(val) {\n _i18nParams.value = val;\n router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__] = val;\n if (evt && evt?.context.nuxtI18n?.slp) {\n evt.context.nuxtI18n.slp = val;\n }\n }\n });\n const unsub = watch(\n () => router.currentRoute.value.fullPath,\n () => {\n router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__] = _i18nParams.value;\n __I18N_STRICT_SEO__ && updateState();\n }\n );\n if (getCurrentScope()) {\n onScopeDispose(unsub);\n }\n function updateState() {\n ctx.metaState = _localeHead(createHeadContext(ctx, ctxOptions.value));\n head?.patch(ctx.metaState);\n }\n const ctxOptions = ref({\n ...ctx.seoSettings,\n key: __I18N_STRICT_SEO__ ? \"key\" : \"id\",\n seo: seo ?? ctx.seoSettings.seo\n });\n return function(params) {\n i18nParams.value = { ...params };\n __I18N_STRICT_SEO__ && updateState();\n if (!__I18N_STRICT_SEO__) {\n const val = _localeHead(createHeadContext(ctx, ctxOptions.value));\n head?.patch(val);\n }\n };\n}\n","const objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nfunction isURL(val) {\n return toTypeString(val) === \"[object URL]\";\n}\nfunction isURLSearchParams(val) {\n return toTypeString(val) === \"[object URLSearchParams]\";\n}\nfunction isLocale(val) {\n return toTypeString(val) === \"[object Intl.Locale]\";\n}\nfunction toLocale(val) {\n return isLocale(val) ? val : new Intl.Locale(val);\n}\nfunction validateLangTag(lang) {\n try {\n Intl.getCanonicalLocales(lang);\n return true;\n } catch {\n return false;\n }\n}\nfunction parseAcceptLanguage(value) {\n return value.split(\",\").map((tag) => tag.split(\";\")[0]).filter(\n (tag) => !(tag === \"*\" || tag === \"\")\n );\n}\nfunction normalizeLanguageName(langName) {\n const [lang] = langName.split(\".\");\n return lang.replace(/_/g, \"-\");\n}\nfunction createPathIndexLanguageParser(index = 0) {\n return (path) => {\n const rawPath = typeof path === \"string\" ? path : path.pathname;\n const normalizedPath = rawPath.split(\"?\")[0];\n const parts = normalizedPath.split(\"/\");\n if (parts[0] === \"\") {\n parts.shift();\n }\n return parts.length > index ? parts[index] || \"\" : \"\";\n };\n}\nlet pathLanguageParser = /* @__PURE__ */ createPathIndexLanguageParser();\nfunction registerPathLanguageParser(parser) {\n pathLanguageParser = parser;\n}\n\nconst DEFAULT_LANG_TAG = \"en-US\";\nconst DEFAULT_COOKIE_NAME = \"i18n_locale\";\nconst ACCEPT_LANGUAGE_HEADER = \"accept-language\";\n\nfunction parseDefaultHeader(input) {\n return [input];\n}\nfunction getHeaderLanguagesWithGetter(getter, {\n name = ACCEPT_LANGUAGE_HEADER,\n parser = parseDefaultHeader\n} = {}) {\n const langString = getter();\n return langString ? name === ACCEPT_LANGUAGE_HEADER ? parser === parseDefaultHeader ? parseAcceptLanguage(langString) : parser(langString) : parser(langString) : [];\n}\nfunction getLocaleWithGetter(getter) {\n return toLocale(getter());\n}\nfunction validateLocale(locale) {\n if (!(isLocale(locale) || typeof locale === \"string\" && validateLangTag(locale))) {\n throw new SyntaxError(`locale is invalid: ${locale.toString()}`);\n }\n}\nfunction mapToLocaleFromLanguageTag(getter, ...args) {\n return Reflect.apply(getter, null, args).map(\n (lang) => getLocaleWithGetter(() => lang)\n );\n}\nfunction getExistCookies(name, getter) {\n let setCookies = getter();\n if (!Array.isArray(setCookies)) {\n setCookies = [setCookies];\n }\n setCookies = setCookies.filter(\n (cookieValue) => cookieValue && !cookieValue.startsWith(name + \"=\")\n );\n return setCookies;\n}\nfunction getPathLanguage(path, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) {\n return (parser || pathLanguageParser)(path) || lang;\n}\nfunction getPathLocale(path, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) {\n return new Intl.Locale(getPathLanguage(path, { lang, parser }));\n}\nfunction getURLSearchParams(input) {\n if (isURLSearchParams(input)) {\n return input;\n } else if (isURL(input)) {\n return input.searchParams;\n } else {\n return new URLSearchParams(input);\n }\n}\nfunction getQueryLanguage(query, { lang = DEFAULT_LANG_TAG, name = \"lang\" } = {}) {\n const queryParams = getURLSearchParams(query);\n return queryParams.get(name) || lang;\n}\nfunction getQueryLocale(query, { lang = DEFAULT_LANG_TAG, name = \"locale\" } = {}) {\n return new Intl.Locale(getQueryLanguage(query, { lang, name }));\n}\n\nexport { ACCEPT_LANGUAGE_HEADER as A, DEFAULT_LANG_TAG as D, getLocaleWithGetter as a, DEFAULT_COOKIE_NAME as b, getExistCookies as c, getPathLocale as d, pathLanguageParser as e, getQueryLocale as f, getHeaderLanguagesWithGetter as g, createPathIndexLanguageParser as h, isLocale as i, parseAcceptLanguage as j, validateLangTag as k, mapToLocaleFromLanguageTag as m, normalizeLanguageName as n, parseDefaultHeader as p, registerPathLanguageParser as r, validateLocale as v };\n","import { createPathIndexLanguageParser } from \"@intlify/utils\";\nconst separator = __ROUTE_NAME_SEPARATOR__ || \"___\";\nconst defaultSuffix = __ROUTE_NAME_DEFAULT_SUFFIX__ || \"default\";\nexport const defaultRouteNameSuffix = separator + defaultSuffix;\nexport function normalizeRouteName(routeName) {\n if (typeof routeName === \"string\") {\n return routeName;\n }\n if (routeName != null) {\n return routeName.toString();\n }\n return \"\";\n}\nexport function getRouteBaseName(route) {\n return normalizeRouteName(typeof route === \"object\" ? route?.name : route).split(separator)[0];\n}\nexport function getLocalizedRouteName(routeName, locale, isDefault) {\n return !isDefault ? routeName + separator + locale : routeName + separator + locale + defaultRouteNameSuffix;\n}\nconst pathLanguageParser = createPathIndexLanguageParser(0);\nexport const getLocaleFromRoutePath = (path) => pathLanguageParser(path);\nexport const getLocaleFromRouteName = (name) => name.split(separator).at(1) ?? \"\";\nfunction normalizeInput(input) {\n return typeof input !== \"object\" ? String(input) : String(input?.name || input?.path || \"\");\n}\nexport function getLocaleFromRoute(route) {\n const input = normalizeInput(route);\n if (input[0] === \"/\") {\n return getLocaleFromRoutePath(input);\n }\n const fromName = getLocaleFromRouteName(input);\n if (fromName) {\n return fromName;\n }\n if (typeof route === \"object\" && route?.path) {\n return getLocaleFromRoutePath(String(route.path));\n }\n return \"\";\n}\n","import { assign } from \"@intlify/shared\";\nimport { getLocalizedRouteName, normalizeRouteName } from \"#i18n-kit/routing\";\nexport function createLocaleRouteNameGetter(defaultLocale) {\n if (!__I18N_ROUTING__ && !__DIFFERENT_DOMAINS__) {\n return (routeName) => normalizeRouteName(routeName);\n }\n if (__I18N_STRATEGY__ === \"prefix_and_default\") {\n return (name, locale) => getLocalizedRouteName(normalizeRouteName(name), locale, locale === defaultLocale);\n }\n return (name, locale) => getLocalizedRouteName(normalizeRouteName(name), locale, false);\n}\nexport function createLocalizedRouteByPathResolver(router) {\n if (!__I18N_ROUTING__) {\n return (route) => route;\n }\n if (__I18N_STRATEGY__ === \"prefix\") {\n return (route, locale) => {\n const targetPath = \"/\" + locale + (route.path === \"/\" ? \"\" : route.path);\n const _route = router.options.routes.find((r) => r.path === targetPath);\n if (_route != null) {\n return router.resolve(assign({}, route, _route, { path: targetPath }));\n }\n return route;\n };\n }\n return (route) => router.resolve(route);\n}\n","// @ts-nocheck\n\nexport const localeCodes = [\n \"hu\",\n \"en\"\n]\nexport const localeLoaders = {\n hu: [\n {\n key: \"locale_hu_46json_ee06c965\",\n load: () => import(\"#nuxt-i18n/ee06c965\" /* webpackChunkName: \"locale_hu_46json_ee06c965\" */),\n cache: true\n }\n ],\n en: [\n {\n key: \"locale_en_46json_0b63539c\",\n load: () => import(\"#nuxt-i18n/0b63539c\" /* webpackChunkName: \"locale_en_46json_0b63539c\" */),\n cache: true\n }\n ]\n}\nexport const vueI18nConfigs = []\nexport const normalizedLocales = [\n {\n code: \"hu\",\n iso: \"hu-HU\",\n name: \"Magyar\",\n language: undefined\n },\n {\n code: \"en\",\n iso: \"en-GB\",\n name: \"English\",\n language: undefined\n }\n]\n\n","import { create, deepCopy, isFunction, toTypeString } from \"@intlify/shared\";\nimport { useNuxtApp } from \"#app\";\nimport { createDefu } from \"defu\";\nconst cacheMessages = /* @__PURE__ */ new Map();\nconst merger = createDefu((obj, key, value) => {\n if (key === \"messages\" || key === \"datetimeFormats\" || key === \"numberFormats\") {\n obj[key] ??= create(null);\n deepCopy(value, obj[key]);\n return true;\n }\n});\nexport async function loadVueI18nOptions(vueI18nConfigs) {\n const nuxtApp = useNuxtApp();\n let vueI18nOptions = { messages: create(null) };\n for (const configFile of vueI18nConfigs) {\n const resolver = await configFile().then((x) => isModule(x) ? x.default : x);\n const resolved = isFunction(resolver) ? await nuxtApp.runWithContext(() => resolver()) : resolver;\n vueI18nOptions = merger(create(null), resolved, vueI18nOptions);\n }\n vueI18nOptions.fallbackLocale ??= false;\n return vueI18nOptions;\n}\nconst isModule = (val) => toTypeString(val) === \"[object Module]\";\nasync function getLocaleMessages(locale, loader) {\n const nuxtApp = useNuxtApp();\n try {\n const getter = await nuxtApp.runWithContext(loader.load).then((x) => isModule(x) ? x.default : x);\n return isFunction(getter) ? await nuxtApp.runWithContext(() => getter(locale)) : getter;\n } catch (e) {\n throw new Error(`Failed loading locale (${locale}): ` + e.message);\n }\n}\nexport async function getLocaleMessagesMerged(locale, loaders = []) {\n const nuxtApp = useNuxtApp();\n const messages = await Promise.all(\n loaders.map((loader) => nuxtApp.runWithContext(() => getLocaleMessages(locale, loader)))\n );\n const merged = {};\n for (const message of messages) {\n deepCopy(message, merged);\n }\n return merged;\n}\nexport async function getLocaleMessagesMergedCached(locale, loaders = []) {\n const nuxtApp = useNuxtApp();\n const messages = await Promise.all(loaders.map(async (loader) => {\n const cached = getCachedMessages(loader);\n const messages2 = cached || await nuxtApp.runWithContext(() => getLocaleMessages(locale, loader));\n if (!cached && loader.cache !== false) {\n cacheMessages.set(loader.key, { ttl: Date.now() + __I18N_CACHE_LIFETIME__ * 1e3, value: messages2 });\n }\n return messages2;\n }));\n const merged = {};\n for (const message of messages) {\n deepCopy(message, merged);\n }\n return merged;\n}\nfunction getCachedMessages(loader) {\n if (!__I18N_CACHE__) {\n return;\n }\n if (loader.cache === false) {\n return;\n }\n const cache = cacheMessages.get(loader.key);\n if (cache == null) {\n return;\n }\n return __I18N_CACHE_LIFETIME__ === 0 || cache.ttl > Date.now() ? cache.value : void 0;\n}\n","export function getI18nTarget(i18n) {\n return i18n != null && \"global\" in i18n && \"mode\" in i18n ? i18n.global : i18n;\n}\nexport function getComposer(i18n) {\n const target = getI18nTarget(i18n);\n return \"__composer\" in target ? target.__composer : target;\n}\n","import { useRuntimeConfig } from \"#imports\";\nimport { isString } from \"@intlify/shared\";\nexport function useRuntimeI18n(nuxtApp, event) {\n if (!nuxtApp) {\n return useRuntimeConfig(event).public.i18n;\n }\n return nuxtApp.$config.public.i18n;\n}\nexport function useI18nDetection(nuxtApp) {\n const detectBrowserLanguage = useRuntimeI18n(nuxtApp).detectBrowserLanguage;\n const detect = detectBrowserLanguage || {};\n return {\n ...detect,\n enabled: !!detectBrowserLanguage,\n cookieKey: detect.cookieKey || __DEFAULT_COOKIE_KEY__\n };\n}\nexport function resolveRootRedirect(config) {\n if (!config) {\n return void 0;\n }\n return {\n path: \"/\" + (isString(config) ? config : config.path).replace(/^\\//, \"\"),\n code: !isString(config) && config.statusCode || 302\n };\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","import { hasProtocol } from \"ufo\";\nimport { normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { toArray } from \"./utils.js\";\nexport function matchDomainLocale(locales, host, pathLocale) {\n const normalizeDomain = (domain = \"\") => domain.replace(/https?:\\/\\//, \"\");\n const matches = locales.filter(\n (locale) => normalizeDomain(locale.domain) === host || toArray(locale.domains).includes(host)\n );\n if (matches.length <= 1) {\n return matches[0]?.code;\n }\n return (\n // match by current path locale\n matches.find((l) => l.code === pathLocale)?.code || matches.find((l) => l.defaultForDomains?.includes(host) ?? l.domainDefault)?.code\n );\n}\nexport function domainFromLocale(domainLocales, url, locale) {\n const lang = normalizedLocales.find((x) => x.code === locale);\n const domain = domainLocales?.[locale]?.domain || lang?.domain || lang?.domains?.find((v) => v === url.host);\n if (!domain) {\n import.meta.dev && console.warn(\"[nuxt-i18n] Could not find domain name for locale \" + locale);\n return;\n }\n if (hasProtocol(domain, { strict: true })) {\n return domain;\n }\n return url.protocol + \"//\" + domain;\n}\n","import { localeCodes, localeLoaders, normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { isArray, isString } from \"@intlify/shared\";\nexport function createLocaleConfigs(fallbackLocale) {\n const localeConfigs = {};\n for (const locale of localeCodes) {\n const fallbacks = getFallbackLocaleCodes(fallbackLocale, [locale]);\n const cacheable = isLocaleWithFallbacksCacheable(locale, fallbacks);\n localeConfigs[locale] = { fallbacks, cacheable };\n }\n return localeConfigs;\n}\nfunction getFallbackLocaleCodes(fallback, locales) {\n if (fallback === false) {\n return [];\n }\n if (isArray(fallback)) {\n return fallback;\n }\n let fallbackLocales = [];\n if (isString(fallback)) {\n if (locales.every((locale) => locale !== fallback)) {\n fallbackLocales.push(fallback);\n }\n return fallbackLocales;\n }\n const targets = [...locales, \"default\"];\n for (const locale of targets) {\n if (locale in fallback == false) {\n continue;\n }\n fallbackLocales = [...fallbackLocales, ...fallback[locale].filter(Boolean)];\n }\n return fallbackLocales;\n}\nexport function isLocaleCacheable(locale) {\n return localeLoaders[locale] != null && localeLoaders[locale].every((loader) => loader.cache !== false);\n}\nexport function isLocaleWithFallbacksCacheable(locale, fallbackLocales) {\n return isLocaleCacheable(locale) && fallbackLocales.every((fallbackLocale) => isLocaleCacheable(fallbackLocale));\n}\nexport function getDefaultLocaleForDomain(host) {\n return normalizedLocales.find((l) => !!l.defaultForDomains?.includes(host))?.code;\n}\nexport const isSupportedLocale = (locale) => localeCodes.includes(locale || \"\");\nexport const resolveSupportedLocale = (locale) => isSupportedLocale(locale) ? locale : void 0;\n","import { isRef, unref } from \"vue\";\nimport { useCookie, useRequestURL, useState } from \"#imports\";\nimport { localeLoaders } from \"#build/i18n-options.mjs\";\nimport { getLocaleMessagesMergedCached } from \"./shared/messages.js\";\nimport { createBaseUrlGetter, createComposableContext } from \"./utils.js\";\nimport { getI18nTarget } from \"./compatibility.js\";\nimport { domainFromLocale } from \"./shared/domain.js\";\nimport { isSupportedLocale } from \"./shared/locales.js\";\nimport { resolveRootRedirect, useI18nDetection, useRuntimeI18n } from \"./shared/utils.js\";\nimport { joinURL } from \"ufo\";\nimport { isString } from \"@intlify/shared\";\nexport const useLocaleConfigs = () => useState(\n \"i18n:cached-locale-configs\",\n () => void 0\n);\nexport const useResolvedLocale = () => useState(\"i18n:resolved-locale\", () => \"\");\nfunction useI18nCookie({ cookieCrossOrigin, cookieDomain, cookieSecure, cookieKey }) {\n const date = /* @__PURE__ */ new Date();\n return useCookie(cookieKey || __DEFAULT_COOKIE_KEY__, {\n path: \"/\",\n readonly: false,\n expires: new Date(date.setDate(date.getDate() + 365)),\n sameSite: cookieCrossOrigin ? \"none\" : \"lax\",\n domain: cookieDomain || void 0,\n secure: cookieCrossOrigin || cookieSecure\n });\n}\nexport function createNuxtI18nContext(nuxt, vueI18n, defaultLocale) {\n const i18n = getI18nTarget(vueI18n);\n const runtimeI18n = useRuntimeI18n(nuxt);\n const detectConfig = useI18nDetection(nuxt);\n const serverLocaleConfigs = useLocaleConfigs();\n const localeCookie = useI18nCookie(detectConfig);\n const loadMap = /* @__PURE__ */ new Set();\n const getLocaleConfig = (locale) => serverLocaleConfigs.value[locale];\n const getDomainFromLocale = (locale) => domainFromLocale(runtimeI18n.domainLocales, useRequestURL({ xForwardedHost: true }), locale);\n const baseUrl = createBaseUrlGetter(nuxt, runtimeI18n.baseUrl, defaultLocale, getDomainFromLocale);\n const resolvedLocale = useResolvedLocale();\n if (__I18N_SERVER_REDIRECT__ && import.meta.server && nuxt.ssrContext?.event?.context?.nuxtI18n?.detectLocale) {\n resolvedLocale.value = nuxt.ssrContext.event.context.nuxtI18n.detectLocale;\n }\n const loadMessagesFromClient = async (locale) => {\n const locales = getLocaleConfig(locale)?.fallbacks ?? [];\n if (!locales.includes(locale)) {\n locales.push(locale);\n }\n for (const k of locales) {\n const msg = await nuxt.runWithContext(() => getLocaleMessagesMergedCached(k, localeLoaders[k]));\n i18n.mergeLocaleMessage(k, msg);\n }\n };\n const loadMessagesFromServer = async (locale) => {\n if (locale in localeLoaders === false) {\n return;\n }\n const headers = getLocaleConfig(locale)?.cacheable ? {} : { \"Cache-Control\": \"no-cache\" };\n const prefix = import.meta.client && __I18N_CDN__ ? nuxt.$config.app.cdnURL || \"\" : \"\";\n const url = joinURL(prefix, __I18N_SERVER_ROUTE__, __I18N_LOCALE_HASHES__[locale], locale, \"messages.json\");\n const messages = await $fetch(url, { headers });\n for (const k of Object.keys(messages)) {\n i18n.mergeLocaleMessage(k, messages[k]);\n }\n };\n const ctx = {\n vueI18n,\n initial: true,\n preloaded: false,\n config: runtimeI18n,\n rootRedirect: resolveRootRedirect(runtimeI18n.rootRedirect),\n redirectStatusCode: runtimeI18n.redirectStatusCode ?? 302,\n dynamicResourcesSSG: !__IS_SSR__ || !__I18N_FULL_STATIC__ && (import.meta.prerender || __IS_SSG__),\n getDefaultLocale: () => defaultLocale,\n getLocale: () => unref(i18n.locale),\n setLocale: async (locale) => {\n const oldLocale = ctx.getLocale();\n if (locale === oldLocale || !isSupportedLocale(locale)) {\n return;\n }\n if (isRef(i18n.locale)) {\n i18n.locale.value = locale;\n } else {\n i18n.locale = locale;\n }\n await nuxt.callHook(\"i18n:localeSwitched\", { newLocale: locale, oldLocale });\n resolvedLocale.value = locale;\n },\n setLocaleSuspend: async (locale) => {\n if (!isSupportedLocale(locale)) {\n return;\n }\n ctx.vueI18n.__pendingLocale = locale;\n ctx.vueI18n.__pendingLocalePromise = new Promise((resolve) => {\n ctx.vueI18n.__resolvePendingLocalePromise = async () => {\n ctx.setCookieLocale(locale);\n await ctx.setLocale(locale);\n ctx.vueI18n.__pendingLocale = void 0;\n resolve();\n };\n });\n if (import.meta.server || nuxt.isHydrating || !ctx.config.skipSettingLocaleOnNavigate) {\n await ctx.vueI18n.__resolvePendingLocalePromise?.();\n }\n },\n getLocales: () => unref(i18n.locales).map((x) => isString(x) ? { code: x } : x),\n setCookieLocale: (locale) => {\n if (detectConfig.useCookie && isSupportedLocale(locale)) {\n localeCookie.value = locale;\n }\n },\n getBaseUrl: (locale) => {\n if (locale) {\n return joinURL(getDomainFromLocale(locale) || baseUrl(), nuxt.$config.app.baseURL);\n }\n return joinURL(baseUrl(), nuxt.$config.app.baseURL);\n },\n loadMessages: async (locale) => {\n if (nuxt.isHydrating && loadMap.has(locale)) {\n return;\n }\n try {\n return ctx.dynamicResourcesSSG || import.meta.dev ? await loadMessagesFromClient(locale) : await loadMessagesFromServer(locale);\n } catch (e) {\n console.warn(`Failed to load messages for locale \"${locale}\"`, e);\n } finally {\n loadMap.add(locale);\n }\n },\n composableCtx: void 0\n };\n ctx.composableCtx = createComposableContext(ctx, nuxt);\n return ctx;\n}\nexport function useNuxtI18nContext(nuxt) {\n if (nuxt._nuxtI18n == null) {\n throw new Error(\"Nuxt I18n context has not been set up yet.\");\n }\n return nuxt._nuxtI18n;\n}\n","function matchBrowserLocale(locales, browserLocales) {\n const matchedLocales = [];\n for (const [index, browserCode] of browserLocales.entries()) {\n const matchedLocale = locales.find((l) => l.language?.toLowerCase() === browserCode.toLowerCase());\n if (matchedLocale) {\n matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length });\n break;\n }\n }\n for (const [index, browserCode] of browserLocales.entries()) {\n const languageCode = browserCode.split(\"-\")[0].toLowerCase();\n const matchedLocale = locales.find((l) => l.language?.split(\"-\")[0].toLowerCase() === languageCode);\n if (matchedLocale) {\n matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length });\n break;\n }\n }\n return matchedLocales;\n}\nfunction compareBrowserLocale(a, b) {\n if (a.score === b.score) {\n return b.code.length - a.code.length;\n }\n return b.score - a.score;\n}\nexport function findBrowserLocale(locales, browserLocales) {\n const matchedLocales = matchBrowserLocale(\n locales.map((l) => ({ code: l.code, language: l.language || l.code })),\n browserLocales\n );\n return matchedLocales.sort(compareBrowserLocale).at(0)?.code ?? \"\";\n}\n","import { getCookie, getRequestHeader, getRequestURL } from \"h3\";\nimport { normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { getLocaleFromRoute, getLocaleFromRoutePath } from \"#i18n-kit/routing\";\nimport { findBrowserLocale } from \"#i18n-kit/browser\";\nimport { parseAcceptLanguage } from \"@intlify/utils\";\nimport { matchDomainLocale } from \"./domain.js\";\nimport { useRuntimeI18n } from \"../shared/utils.js\";\nimport { useCookie } from \"#app\";\nconst getCookieLocale = (event, cookieName) => (import.meta.client ? useCookie(cookieName).value : getCookie(event, cookieName)) || void 0;\nconst getRouteLocale = (event, route) => getLocaleFromRoute(route);\nconst getHeaderLocale = (event) => findBrowserLocale(normalizedLocales, parseAcceptLanguage(getRequestHeader(event, \"accept-language\") || \"\"));\nconst getNavigatorLocale = (event) => findBrowserLocale(normalizedLocales, navigator.languages);\nconst getHostLocale = (event, path, domainLocales) => {\n const host = import.meta.client ? new URL(window.location.href).host : getRequestURL(event, { xForwardedHost: true }).host;\n const locales = normalizedLocales.map((l) => ({\n ...l,\n domain: domainLocales[l.code]?.domain ?? l.domain\n }));\n return matchDomainLocale(locales, host, getLocaleFromRoutePath(path));\n};\nexport const useDetectors = (event, config, nuxtApp) => {\n if (import.meta.server && !event) {\n throw new Error(\"H3Event is required for server-side locale detection\");\n }\n const runtimeI18n = useRuntimeI18n(nuxtApp);\n return {\n cookie: () => getCookieLocale(event, config.cookieKey),\n header: () => import.meta.server ? getHeaderLocale(event) : void 0,\n navigator: () => import.meta.client ? getNavigatorLocale(event) : void 0,\n host: (path) => getHostLocale(event, path, runtimeI18n.domainLocales),\n route: (path) => getRouteLocale(event, path)\n };\n};\n","import { isEqual, joinURL, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { isFunction, isString } from \"@intlify/shared\";\nimport { navigateTo, useHead, useNuxtApp, useRequestEvent, useRequestURL, useRouter } from \"#imports\";\nimport { createLocaleRouteNameGetter, createLocalizedRouteByPathResolver } from \"./routing/utils.js\";\nimport { getRouteBaseName } from \"#i18n-kit/routing\";\nimport {\n localePath,\n switchLocalePath\n} from \"./routing/routing.js\";\nimport { useNuxtI18nContext } from \"./context.js\";\nimport { getDefaultLocaleForDomain, isSupportedLocale } from \"./shared/locales.js\";\nimport { useDetectors } from \"./shared/detection.js\";\nimport { useI18nDetection } from \"./shared/utils.js\";\nexport const isRouteLocationPathRaw = (val) => !!val.path && !val.name;\nexport function useComposableContext(nuxtApp) {\n const context = nuxtApp?._nuxtI18n?.composableCtx;\n if (!context) {\n throw new Error(\n \"i18n context is not initialized. Ensure the i18n plugin is installed and the composable is used within a Vue component or setup function.\"\n );\n }\n return context;\n}\nconst formatTrailingSlash = __TRAILING_SLASH__ ? withTrailingSlash : withoutTrailingSlash;\nexport function createComposableContext(ctx, nuxtApp = useNuxtApp()) {\n const router = useRouter();\n const detectors = useDetectors(useRequestEvent(), useI18nDetection(nuxtApp), nuxtApp);\n const defaultLocale = ctx.getDefaultLocale();\n const getLocalizedRouteName = createLocaleRouteNameGetter(defaultLocale);\n function resolveLocalizedRouteByName(route, locale) {\n route.name = getRouteBaseName(route.name || router.currentRoute.value);\n const localizedName = getLocalizedRouteName(route.name, locale);\n if (router.hasRoute(localizedName)) {\n route.name = localizedName;\n if (__I18N_COMPACT_ROUTES__ && route.params) {\n delete route.params.locale;\n }\n } else if (__I18N_COMPACT_ROUTES__ && isSupportedLocale(locale) && getCompactRouteNames().has(route.name)) {\n route.params = { ...route.params || {}, locale };\n return route;\n }\n route.name = localizedName;\n return route;\n }\n const routeByPathResolver = createLocalizedRouteByPathResolver(router);\n let compactRouteRecords;\n function getCompactRouteNames() {\n if (compactRouteRecords) {\n return compactRouteRecords;\n }\n compactRouteRecords = /* @__PURE__ */ new Set();\n if (__I18N_COMPACT_ROUTES__) {\n for (const r of router.getRoutes()) {\n if (r.name != null && /^\\/:locale\\(/.test(r.path)) {\n compactRouteRecords.add(String(r.name));\n }\n }\n }\n return compactRouteRecords;\n }\n function resolveLocalizedRouteByPath(input, locale) {\n const route = routeByPathResolver(input, locale);\n const baseName = getRouteBaseName(route);\n if (baseName) {\n const localizedName = getLocalizedRouteName(baseName, locale);\n if (router.hasRoute(localizedName)) {\n route.name = localizedName;\n return route;\n }\n if (__I18N_COMPACT_ROUTES__ && getCompactRouteNames().has(baseName)) {\n const compacted = route;\n compacted.name = baseName;\n compacted.params = { ...compacted.params || {}, locale };\n return compacted;\n }\n route.name = localizedName;\n return route;\n }\n if (prefixable(locale, defaultLocale)) {\n route.path = \"/\" + locale + route.path;\n }\n route.path = formatTrailingSlash(route.path, true);\n return route;\n }\n const composableCtx = {\n router,\n _head: void 0,\n get head() {\n this._head ??= useHead({});\n return this._head;\n },\n metaState: { htmlAttrs: {}, meta: [], link: [] },\n seoSettings: {\n dir: __I18N_STRICT_SEO__,\n lang: __I18N_STRICT_SEO__,\n seo: __I18N_STRICT_SEO__\n },\n localePathPayload: getLocalePathPayload(),\n routingOptions: {\n defaultLocale,\n strictCanonicals: ctx.config.experimental.alternateLinkCanonicalQueries ?? true,\n hreflangLinks: !(!__I18N_ROUTING__ && !__DIFFERENT_DOMAINS__)\n },\n getLocale: ctx.getLocale,\n getLocales: ctx.getLocales,\n getBaseUrl: ctx.getBaseUrl,\n getRouteBaseName,\n getRouteLocalizedParams: () => router.currentRoute.value.meta[__DYNAMIC_PARAMS_KEY__] ?? {},\n getLocalizedDynamicParams: (locale) => {\n if (__I18N_STRICT_SEO__ && import.meta.client && nuxtApp.isHydrating && composableCtx.localePathPayload) {\n return composableCtx.localePathPayload[locale] || {};\n }\n return composableCtx.getRouteLocalizedParams()?.[locale];\n },\n afterSwitchLocalePath: (path, locale) => {\n const params = composableCtx.getRouteLocalizedParams();\n if (__I18N_STRICT_SEO__ && locale && Object.keys(params).length && !params[locale]) {\n return \"\";\n }\n if (__MULTI_DOMAIN_LOCALES__ && __I18N_STRATEGY__ === \"prefix_except_default\") {\n const defaultLocale2 = getDefaultLocaleForDomain(useRequestURL({ xForwardedHost: true }).host);\n if (locale !== defaultLocale2 || detectors.route(path) !== defaultLocale2) {\n return path;\n }\n return path.slice(locale.length + 1);\n }\n if (__DIFFERENT_DOMAINS__) {\n return joinURL(ctx.getBaseUrl(locale), path);\n }\n return path;\n },\n resolveLocalizedRouteObject: (route, locale) => {\n return isRouteLocationPathRaw(route) ? resolveLocalizedRouteByPath(route, locale) : resolveLocalizedRouteByName(route, locale);\n }\n };\n return composableCtx;\n}\nfunction getLocalePathPayload(nuxtApp = useNuxtApp()) {\n const payload = import.meta.client && document.querySelector(`[data-nuxt-i18n-slp=\"${nuxtApp._id}\"]`)?.textContent;\n return JSON.parse(payload || \"{}\");\n}\nexport async function loadAndSetLocale(nuxtApp, locale) {\n const ctx = useNuxtI18nContext(nuxtApp);\n const oldLocale = ctx.getLocale();\n if (locale === oldLocale && !ctx.initial && (!ctx.vueI18n.__pendingLocale || ctx.vueI18n.__pendingLocale === locale)) {\n return locale;\n }\n const data = { oldLocale, newLocale: locale, initialSetup: ctx.initial, context: nuxtApp };\n let override = await nuxtApp.callHook(\"i18n:beforeLocaleSwitch\", data);\n if (override != null && import.meta.dev) {\n console.warn(\"[nuxt-i18n] Do not return in `i18n:beforeLocaleSwitch`, mutate `data.newLocale` instead.\");\n }\n override ??= data.newLocale;\n if (isSupportedLocale(override)) {\n locale = override;\n }\n await ctx.loadMessages(locale);\n await ctx.setLocaleSuspend(locale);\n return locale;\n}\nfunction skipDetect(detect, path, pathLocale) {\n if (!__I18N_ROUTING__) {\n return false;\n }\n if (detect.redirectOn === \"root\" && path !== \"/\") {\n return true;\n }\n if (detect.redirectOn === \"no prefix\" && !detect.alwaysRedirect && isSupportedLocale(pathLocale)) {\n return true;\n }\n return false;\n}\nexport function detectLocale(nuxtApp, route) {\n const detectConfig = useI18nDetection(nuxtApp);\n const detectors = useDetectors(useRequestEvent(nuxtApp), detectConfig, nuxtApp);\n const ctx = useNuxtI18nContext(nuxtApp);\n const path = isString(route) ? route : route.path;\n function* detect() {\n if (ctx.initial && detectConfig.enabled && !skipDetect(detectConfig, path, detectors.route(path))) {\n yield detectors.cookie();\n yield detectors.header();\n yield detectors.navigator();\n yield detectConfig.fallbackLocale;\n }\n if (__DIFFERENT_DOMAINS__ || __MULTI_DOMAIN_LOCALES__) {\n yield detectors.host(path);\n }\n if (__I18N_ROUTING__) {\n yield detectors.route(route);\n }\n }\n for (const detected of detect()) {\n if (detected && isSupportedLocale(detected)) {\n return detected;\n }\n }\n return ctx.getLocale() || ctx.getDefaultLocale() || \"\";\n}\nexport function navigate(nuxtApp, to, locale) {\n if (!__I18N_ROUTING__ || __DIFFERENT_DOMAINS__) {\n return;\n }\n const ctx = useNuxtI18nContext(nuxtApp);\n const _ctx = useComposableContext(nuxtApp);\n if (to.path === \"/\" && ctx.rootRedirect) {\n return navigateTo(localePath(_ctx, ctx.rootRedirect.path, locale), { redirectCode: ctx.rootRedirect.code });\n }\n if (ctx.vueI18n.__pendingLocale && useNuxtApp()._processingMiddleware) {\n return;\n }\n const detectors = useDetectors(useRequestEvent(), useI18nDetection(nuxtApp), nuxtApp);\n if (detectors.route(to) === locale) {\n return;\n }\n const destination = switchLocalePath(_ctx, locale, to) || localePath(_ctx, to.fullPath, locale);\n if (isEqual(destination, to.fullPath)) {\n return;\n }\n return navigateTo(destination, { redirectCode: ctx.redirectStatusCode });\n}\nexport function prefixable(currentLocale, defaultLocale) {\n return !__DIFFERENT_DOMAINS__ && __I18N_ROUTING__ && (currentLocale !== defaultLocale || __I18N_STRATEGY__ === \"prefix\");\n}\nexport function createBaseUrlGetter(nuxt, baseUrl, defaultLocale, getDomainFromLocale) {\n if (isFunction(baseUrl)) {\n import.meta.dev && console.warn(\"[nuxt-i18n] Configuring baseUrl as a function is deprecated and will be removed in v11.\");\n return () => baseUrl(nuxt);\n }\n return () => {\n if (__DIFFERENT_DOMAINS__ && defaultLocale) {\n return (getDomainFromLocale(defaultLocale) || baseUrl) ?? \"\";\n }\n return baseUrl ?? \"\";\n };\n}\n","/*!\n * message-compiler v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, join, isString } from '@intlify/shared';\n\nconst LOCATION_STUB = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n};\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16\n};\n// Special value for higher-order compilers to pick up the last code\n// to avoid collision of error codes.\n// This should always be kept as the last item.\nconst COMPILE_ERROR_CODES_EXTEND_POINT = 17;\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = (process.env.NODE_ENV !== 'production')\n ? format((messages || errorMessages)[code] || '', ...(args || []))\n : code;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 13 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 13 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 13 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 7 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '') => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return hasSpace;\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 || // $\n cc === 45 // -\n );\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readText(scnr) {\n let buf = '';\n while (true) {\n const ch = scnr.currentChar();\n if (ch === '\\\\') {\n const nextCh = scnr.peek();\n if (nextCh === \"{\" /* TokenChars.BraceLeft */ ||\n nextCh === \"}\" /* TokenChars.BraceRight */ ||\n nextCh === \"@\" /* TokenChars.LinkedAlias */ ||\n nextCh === \"|\" /* TokenChars.Pipe */ ||\n nextCh === '\\\\') {\n buf += ch + nextCh;\n scnr.next();\n scnr.next();\n }\n else {\n scnr.resetPeek();\n buf += ch;\n scnr.next();\n }\n }\n else if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n // Check if takeNamedIdentifierChar stoped because of invalid characters\n const currentChar = scnr.currentChar();\n if (currentChar &&\n currentChar !== '}' &&\n currentChar !== EOF &&\n currentChar !== CHAR_SP &&\n currentChar !== CHAR_LF &&\n currentChar !== '\\u3000') {\n const invalidPart = readInvalidIdentifier(scnr);\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart);\n return name + invalidPart;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default: {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 4 /* TokenTypes.Named */ ||\n context.currentType === 5 /* TokenTypes.List */ ||\n context.currentType === 6 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 4 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 12 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 7 /* TokenTypes.LinkedAlias */ ||\n currentType === 8 /* TokenTypes.LinkedDot */ ||\n currentType === 11 /* TokenTypes.LinkedModifier */ ||\n currentType === 9 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 7 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 8 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 11 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 10 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 7 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 13 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default: {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 13 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\n// Text context escape sequences: \\\\, \\@, \\{, \\}, \\|\nconst TEXT_ESCAPES = /\\\\([\\\\@{}|])/g;\nfunction fromTextEscapeSequence(_match, char) {\n return char;\n}\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value.replace(TEXT_ESCAPES, fromTextEscapeSequence);\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 11 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 8 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 9 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 10 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default: {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 5 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 7 /* TokenTypes.LinkedAlias */: {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 13 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 13 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 13 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 13 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 13 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */: {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */: {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */: {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */: {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n if ((process.env.NODE_ENV !== 'production')) {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n if ((process.env.NODE_ENV !== 'production')) {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {}) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nexport { COMPILE_ERROR_CODES_EXTEND_POINT, CompileErrorCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages };\n","/*!\n * core-base v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, isObject, hasOwn, isNumber, create, isString, isBoolean, warn, format as format$1, isFunction, isPromise, isArray, isPlainObject, assign, isRegExp, warnOnce, isDate, isEmptyObject, join, toDisplayString, sanitizeTranslatedHtml, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey } from '@intlify/shared';\nimport { detectHtmlTag, defaultOnError, baseCompile as baseCompile$1, COMPILE_ERROR_CODES_EXTEND_POINT, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\n\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n}\n\nfunction isMessageAST(val) {\n return (isObject(val) &&\n resolveType(val) === 0 &&\n (hasOwn(val, 'b') || hasOwn(val, 'body')));\n}\nconst PROPS_BODY = ['b', 'body'];\nfunction resolveBody(node) {\n return resolveProps(node, PROPS_BODY);\n}\nconst PROPS_CASES = ['c', 'cases'];\nfunction resolveCases(node) {\n return resolveProps(node, PROPS_CASES, []);\n}\nconst PROPS_STATIC = ['s', 'static'];\nfunction resolveStatic(node) {\n return resolveProps(node, PROPS_STATIC);\n}\nconst PROPS_ITEMS = ['i', 'items'];\nfunction resolveItems(node) {\n return resolveProps(node, PROPS_ITEMS, []);\n}\nconst PROPS_TYPE = ['t', 'type'];\nfunction resolveType(node) {\n return resolveProps(node, PROPS_TYPE);\n}\nconst PROPS_VALUE = ['v', 'value'];\nfunction resolveValue$1(node, type) {\n const resolved = resolveProps(node, PROPS_VALUE);\n if (resolved != null) {\n return resolved;\n }\n else {\n throw createUnhandleNodeError(type);\n }\n}\nconst PROPS_MODIFIER = ['m', 'modifier'];\nfunction resolveLinkedModifier(node) {\n return resolveProps(node, PROPS_MODIFIER);\n}\nconst PROPS_KEY = ['k', 'key'];\nfunction resolveLinkedKey(node) {\n const resolved = resolveProps(node, PROPS_KEY);\n if (resolved) {\n return resolved;\n }\n else {\n throw createUnhandleNodeError(6 /* NodeTypes.Linked */);\n }\n}\nfunction resolveProps(node, props, defaultValue) {\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (hasOwn(node, prop) && node[prop] != null) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return node[prop];\n }\n }\n return defaultValue;\n}\nconst AST_NODE_PROPS_KEYS = [\n ...PROPS_BODY,\n ...PROPS_CASES,\n ...PROPS_STATIC,\n ...PROPS_ITEMS,\n ...PROPS_KEY,\n ...PROPS_MODIFIER,\n ...PROPS_VALUE,\n ...PROPS_TYPE\n];\nfunction createUnhandleNodeError(type) {\n return new Error(`unhandled node type: ${type}`);\n}\n\nfunction format(ast) {\n const msg = (ctx) => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = resolveBody(ast);\n if (body == null) {\n throw createUnhandleNodeError(0 /* NodeTypes.Resource */);\n }\n const type = resolveType(body);\n if (type === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = resolveCases(plural);\n return ctx.plural(cases.reduce((messages, c) => [\n ...messages,\n formatMessageParts(ctx, c)\n ], []));\n }\n else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const static_ = resolveStatic(node);\n if (static_ != null) {\n return ctx.type === 'text'\n ? static_\n : ctx.normalize([static_]);\n }\n else {\n const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = resolveType(node);\n switch (type) {\n case 3 /* NodeTypes.Text */: {\n return resolveValue$1(node, type);\n }\n case 9 /* NodeTypes.Literal */: {\n return resolveValue$1(node, type);\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n if (hasOwn(named, 'k') && named.k) {\n return ctx.interpolate(ctx.named(named.k));\n }\n if (hasOwn(named, 'key') && named.key) {\n return ctx.interpolate(ctx.named(named.key));\n }\n throw createUnhandleNodeError(type);\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n if (hasOwn(list, 'i') && isNumber(list.i)) {\n return ctx.interpolate(ctx.list(list.i));\n }\n if (hasOwn(list, 'index') && isNumber(list.index)) {\n return ctx.interpolate(ctx.list(list.index));\n }\n throw createUnhandleNodeError(type);\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n const modifier = resolveLinkedModifier(linked);\n const key = resolveLinkedKey(linked);\n return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n }\n case 7 /* NodeTypes.LinkedKey */: {\n return resolveValue$1(node, type);\n }\n case 8 /* NodeTypes.LinkedModifier */: {\n return resolveValue$1(node, type);\n }\n default:\n throw new Error(`unhandled node on format message part: ${type}`);\n }\n}\n\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && detectHtmlTag(source)) {\n warn(format$1(WARN_MESSAGE, { source }));\n }\n}\nconst defaultOnCacheKey = (message) => message;\nlet compileCache = create();\nfunction clearCompileCache() {\n compileCache = create();\n}\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || defaultOnError;\n options.onError = (err) => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return { ...baseCompile$1(message, options), detectError };\n}\n/* #__NO_SIDE_EFFECTS__ */\nfunction compile(message, context) {\n if ((!__INTLIFY_DROP_MESSAGE_COMPILER__) &&\n isString(message)) {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const { ast, detectError } = baseCompile(message, {\n ...context,\n location: (process.env.NODE_ENV !== 'production'),\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !isMessageAST(message)) {\n warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return (() => message);\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return (compileCache[cacheKey] =\n format(message));\n }\n else {\n return format(message);\n }\n }\n}\n\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools &&\n devtools.emit('i18n:init', {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = \n/* #__PURE__*/ createDevToolsHook('function:translate');\nfunction createDevToolsHook(hook) {\n return (payloads) => devtools && devtools.emit(hook, payloads);\n}\n\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT, // 17\n INVALID_DATE_ARGUMENT: 18,\n INVALID_ISO_DATE_ARGUMENT: 19,\n NOT_SUPPORT_NON_STRING_MESSAGE: 20,\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21,\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22,\n NOT_SUPPORT_LOCALE_TYPE: 23\n};\nconst CORE_ERROR_CODES_EXTEND_POINT = 24;\nfunction createCoreError(code) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\n 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null\n ? resolveLocale(options.locale)\n : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if (isString(locale)) {\n return locale;\n }\n else {\n if (isFunction(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n }\n else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if (isPromise(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return (_resolveLocale = resolve);\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start) {\n // prettier-ignore\n return [...new Set([\n start,\n ...(isArray(fallback)\n ? fallback\n : isObject(fallback)\n ? Object.keys(fallback)\n : isString(fallback)\n ? [fallback]\n : [start])\n ])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while (isArray(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = isArray(fallback) || !isPlainObject(fallback)\n ? fallback\n : fallback['default']\n ? fallback['default']\n : null;\n // convert defaults to array\n block = isString(defaults) ? [defaults] : defaults;\n if (isArray(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\n const locale = block[i];\n if (isString(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if ((isArray(blocks) || isPlainObject(blocks)) &&\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [\n 4 /* States.IN_SUB_PATH */,\n 2 /* Actions.INC_SUB_PATH_DEPTH */\n ],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27: // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d: // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029: // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\n}\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed)\n ? stripQuotes(trimmed)\n : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n }\n else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n }\n else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n }\n else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&\n nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */) ||\n (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&\n nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */)) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return isObject(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!isObject(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- for generic object\n let last = obj;\n let i = 0;\n while (i < len) {\n const key = hit[i];\n /**\n * NOTE:\n * if `key` is intlify message format AST node key and `last` is intlify message format AST, skip it.\n * because the AST node is not a key-value structure.\n */\n if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) {\n return null;\n }\n if (!isObject(last)) {\n return null;\n }\n if (!hasOwn(last, key)) {\n return null;\n }\n const val = last[key];\n if (val === undefined) {\n return null;\n }\n if (isFunction(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\n\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: 1,\n FALLBACK_TO_TRANSLATE: 2,\n CANNOT_FORMAT_NUMBER: 3,\n FALLBACK_TO_NUMBER_FORMAT: 4,\n CANNOT_FORMAT_DATE: 5,\n FALLBACK_TO_DATE_FORMAT: 6,\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7,\n INVALID_NUMBER_ARGUMENT: 8,\n INVALID_DATE_ARGUMENT: 9\n};\nconst CORE_WARN_CODES_EXTEND_POINT = 10;\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`,\n [CoreWarnCodes.INVALID_NUMBER_ARGUMENT]: `Invalid argument for number formatting: expected a number but received '{value}'.`,\n [CoreWarnCodes.INVALID_DATE_ARGUMENT]: `Invalid argument for datetime formatting: expected a Date, number, or ISO string but received '{value}'.`\n};\nfunction getWarnMessage(code, ...args) {\n return format$1(warnMessages[code], ...args);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '11.4.2';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toUpperCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toUpperCase()\n : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toLowerCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toLowerCase()\n : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return (type === 'text' && isString(val)\n ? capitalize(val)\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? capitalize(val.children)\n : val);\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = (meta) => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = (context) => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n const version = isString(options.version) ? options.version : VERSION;\n const locale = isString(options.locale) || isFunction(options.locale)\n ? options.locale\n : DEFAULT_LOCALE;\n const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n isString(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale;\n const messages = isPlainObject(options.messages)\n ? options.messages\n : createResources(_locale);\n const datetimeFormats = isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : createResources(_locale)\n ;\n const numberFormats = isPlainObject(options.numberFormats)\n ? options.numberFormats\n : createResources(_locale)\n ;\n const modifiers = assign(create(), options.modifiers, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || create();\n const missing = isFunction(options.missing) ? options.missing : null;\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n const processor = isPlainObject(options.processor) ? options.processor : null;\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = isFunction(options.messageCompiler)\n ? options.messageCompiler\n : _compiler;\n if ((process.env.NODE_ENV !== 'production') &&\n !false &&\n !false &&\n isFunction(options.messageCompiler)) {\n warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = isFunction(options.messageResolver)\n ? options.messageResolver\n : _resolver || resolveWithKeyValue;\n const localeFallbacker = isFunction(options.localeFallbacker)\n ? options.localeFallbacker\n : _fallbacker || fallbackWithSimple;\n const fallbackContext = isObject(options.fallbackContext)\n ? options.fallbackContext\n : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\n ? internalOptions.__datetimeFormatters\n : new Map()\n ;\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\n ? internalOptions.__numberFormatters\n : new Map()\n ;\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n context.__v_emitter =\n internalOptions.__v_emitter != null\n ? internalOptions.__v_emitter\n : undefined;\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\nconst createResources = (locale) => ({ [locale]: create() });\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const { missing, onWarn } = context;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('missing', {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return isString(ret) ? ret : key;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/** @internal */\nfunction isAlmostSameLocale(locale, compareLocale) {\n if (locale === compareLocale)\n return false;\n return locale.split('-')[0] === compareLocale.split('-')[0];\n}\n/** @internal */\nfunction isImplicitFallback(targetLocale, locales) {\n const index = locales.indexOf(targetLocale);\n if (index === -1) {\n return false;\n }\n for (let i = index + 1; i < locales.length; i++) {\n if (isAlmostSameLocale(targetLocale, locales[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __datetimeFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) {\n if ((process.env.NODE_ENV !== 'production')) {\n onWarn(getWarnMessage(CoreWarnCodes.INVALID_DATE_ARGUMENT, {\n value: String(args[0])\n }));\n }\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.DateTimeFormat(locale.replace(/!/g, ''), overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat =\n datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'formatMatcher',\n 'hour12',\n 'timeZone',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'dayPeriod',\n 'numberingSystem',\n 'hourCycle',\n 'fractionalSecondDigits'\n];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = create();\n let overrides = create();\n let value;\n if (isString(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3]\n ? matches[3].trim().startsWith('T')\n ? `${matches[1].trim()}${matches[3].trim()}`\n : `${matches[1].trim()}T${matches[3].trim()}`\n : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n }\n catch {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n }\n else if (isDate(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n }\n else if (isNumber(arg1)) {\n value = arg1;\n }\n else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __numberFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n if (!isNumber(args[0])) {\n if ((process.env.NODE_ENV !== 'production')) {\n onWarn(getWarnMessage(CoreWarnCodes.INVALID_NUMBER_ARGUMENT, {\n value: String(args[0])\n }));\n }\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.NumberFormat(locale.replace(/!/g, ''), overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat =\n numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'compactDisplay',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'roundingMode',\n 'roundingPriority',\n 'roundingIncrement',\n 'trailingZeroDisplay'\n];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = create();\n let overrides = create();\n if (!isNumber(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\nconst DEFAULT_INTERPOLATE = toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n // singular (0) | plural (1)\n if (choicesLength === 2) {\n // prettier-ignore\n return choice === 1\n ? 0\n : 1;\n }\n // zero (0) | singular (1) | plural (2)\n return Math.min(choice, 2);\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = isNumber(options.pluralIndex)\n ? options.pluralIndex\n : -1;\n return isNumber(options.named?.count)\n ? options.named.count\n : isNumber(options.named?.n)\n ? options.named.n\n : index;\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = isString(locale) && isFunction(options.pluralRules?.[locale])\n ? options.pluralRules[locale]\n : pluralDefault;\n const orgPluralRule = pluralRule === pluralDefault ? undefined : pluralDefault;\n const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n const _list = options.list || [];\n const list = (index) => _list[index];\n const _named = options.named || create(); // eslint-disable-line @typescript-eslint/no-explicit-any\n // normalize named\n if (isNumber(options.pluralIndex)) {\n _named.count ||= options.pluralIndex;\n _named.n ||= options.pluralIndex;\n }\n const named = (key) => _named[key];\n function message(key, useLinked) {\n // prettier-ignore\n const msg = isFunction(options.messages)\n ? options.messages(key, !!useLinked)\n : isObject(options.messages)\n ? options.messages[key]\n : false;\n return !msg\n ? options.parent\n ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE\n : msg;\n }\n const _modifier = (name) => options.modifiers\n ? options.modifiers[name]\n : DEFAULT_MODIFIER;\n const normalize = isFunction(options.processor?.normalize)\n ? options.processor.normalize\n : DEFAULT_NORMALIZE;\n const interpolate = isFunction(options.processor?.interpolate)\n ? options.processor.interpolate\n : DEFAULT_INTERPOLATE;\n const type = isString(options.processor?.type)\n ? options.processor.type\n : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if (isObject(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n }\n else if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n }\n else if (args.length === 2) {\n if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n if (isString(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key, true)(ctx);\n // If the linked message is not resolved (empty string), fall back to the key itself\n const resolved = ret === '' || ret === undefined ? key : ret;\n const msg = \n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && isArray(resolved) && modifier\n ? resolved[0]\n : resolved;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: assign(create(), _list, _named)\n };\n return ctx;\n}\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = (val) => isFunction(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const escapeParameter = isBoolean(options.escapeParameter)\n ? options.escapeParameter\n : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\n ? !isBoolean(options.default)\n ? options.default\n : (!messageCompiler ? () => key : key)\n : fallbackFormat // default by `fallbackFormat` option\n ? (!messageCompiler ? () => key : key)\n : null;\n const enableDefaultMsg = fallbackFormat ||\n (defaultMsgOrKey != null &&\n (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey)));\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\n : [\n key,\n locale,\n messages[locale] || create()\n ];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage &&\n !(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage &&\n (!(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format)) ||\n !isString(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\n warn(`The message format compilation is not supported in this build. ` +\n `Because message compiler isn't included. ` +\n `You need to pre-compilation all message format. ` +\n `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format)\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError)\n : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n let ret = postTranslation\n ? postTranslation(messaged, key)\n : messaged;\n // apply HTML sanitization for security\n if (escapeParameter && isString(ret)) {\n ret = sanitizeTranslatedHtml(ret);\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: isString(key)\n ? key\n : isMessageFunction(format)\n ? format.key\n : '',\n locale: targetLocale || (isMessageFunction(format)\n ? format.locale\n : ''),\n format: isString(format)\n ? format\n : isMessageFunction(format)\n ? format.source\n : '',\n message: ret\n };\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if (isArray(options.list)) {\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\n }\n else if (isObject(options.named)) {\n Object.keys(options.named).forEach(key => {\n if (isString(options.named[key])) {\n options.named[key] = escapeHtml(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = create();\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n !isAlmostSameLocale(locale, targetLocale) &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n const emitter = (process.env.NODE_ENV !== 'production')\n ? context.__v_emitter\n : undefined;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n if (emitter) {\n emitter.emit('fallback', {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message =\n messages[targetLocale] || create();\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n mark && mark(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n const end = window.performance.now();\n if (emitter && start && format) {\n emitter.emit('message-resolve', {\n type: 'message-resolve',\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message resolve', startTag, endTag);\n }\n }\n if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n if (!isImplicitFallback(targetLocale, locales)) {\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const { messageCompiler, warnHtmlMessage } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = (() => format);\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n const emitter = (process.env.NODE_ENV !== 'production')\n ? context.__v_emitter\n : undefined;\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n mark && mark(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n const end = window.performance.now();\n if (emitter && start) {\n emitter.emit('message-compilation', {\n type: 'message-compilation',\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n const emitter = (process.env.NODE_ENV !== 'production')\n ? context.__v_emitter\n : undefined;\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n mark && mark(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) {\n const end = window.performance.now();\n if (emitter && start) {\n emitter.emit('message-evaluation', {\n type: 'message-evaluation',\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = create();\n if (!isString(arg1) &&\n !isNumber(arg1) &&\n !isMessageFunction(arg1) &&\n !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = isNumber(arg1)\n ? String(arg1)\n : isMessageFunction(arg1)\n ? arg1\n : arg1;\n if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isString(arg2)) {\n options.default = arg2;\n }\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\n options.named = arg2;\n }\n else if (isArray(arg2)) {\n options.list = arg2;\n }\n if (isNumber(arg3)) {\n options.plural = arg3;\n }\n else if (isString(arg3)) {\n options.default = arg3;\n }\n else if (isPlainObject(arg3)) {\n assign(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: (err) => {\n onError && onError(err);\n if ((process.env.NODE_ENV !== 'production')) {\n const _source = getSourceForCodeFrame(source);\n const codeFrame = err.location &&\n _source &&\n generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit('compile-error', {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n const message = `Message compilation error: ${err.message}`;\n throw new SyntaxError(codeFrame ? `${message}\\n${codeFrame}` : message);\n }\n throw err;\n },\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if (isString(source)) {\n return source;\n }\n else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\n const resolveMessage = (key, useLinked) => {\n let val = resolveValue(message, key);\n // fallback\n if (val == null && (fallbackContext || useLinked)) {\n const [format, , message] = resolveMessageFormat(fallbackContext || context, // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context\n key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = format ?? resolveValue(message, key);\n }\n if (isString(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred\n ? msg\n : NOOP_MESSAGE_FUNCTION;\n }\n else if (isMessageFunction(val)) {\n return val;\n }\n else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if (isNumber(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\n\n{\n initFeatureFlags();\n}\n\nexport { AST_NODE_PROPS_KEYS, CORE_ERROR_CODES_EXTEND_POINT, CORE_WARN_CODES_EXTEND_POINT, CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isAlmostSameLocale, isImplicitFallback, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v11.4.2\n * (c) 2026 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { CORE_ERROR_CODES_EXTEND_POINT, createCompileError, CORE_WARN_CODES_EXTEND_POINT, isMessageAST, AST_NODE_PROPS_KEYS, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, isMessageFunction, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compile, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { getGlobalThis, makeSymbol, format, isObject, create, isPlainObject, isArray, deepCopy, isString, hasOwn, warn, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, createEmitter, warnOnce, isEmptyObject } from '@intlify/shared';\nimport * as Vue from 'vue';\nimport { createVNode, Text, computed, watch, ref, shallowRef, Fragment, defineComponent, h, getCurrentScope, onScopeDispose, effectScope, inject, onMounted, onUnmounted, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * Vue I18n Version\n *\n * @remarks\n * Semver format. Same format as the package.json `version` field.\n *\n * @VueI18nGeneral\n */\nconst VERSION = '11.4.2';\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\n }\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n}\n\nconst I18nErrorCodes = {\n // composer module errors\n UNEXPECTED_RETURN_TYPE: CORE_ERROR_CODES_EXTEND_POINT, // 24\n // legacy module errors\n INVALID_ARGUMENT: 25,\n // i18n module errors\n MUST_BE_CALL_SETUP_TOP: 26,\n NOT_INSTALLED: 27,\n // directive module errors\n REQUIRED_VALUE: 28,\n INVALID_VALUE: 29,\n // vue-devtools errors\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: 30,\n NOT_INSTALLED_WITH_PROVIDE: 31,\n // unexpected error\n UNEXPECTED_ERROR: 32,\n // not compatible legacy vue-i18n constructor\n NOT_COMPATIBLE_LEGACY_VUE_I18N: 33,\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: 34\n};\nfunction createI18nError(code, ...args) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\n}\nconst errorMessages = {\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\n [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function',\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\n [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\n};\n\nconst TranslateVNodeSymbol = \n/* #__PURE__*/ makeSymbol('__translateVNode');\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\nmakeSymbol('__intlifyMeta');\nconst InejctWithOptionSymbol = \n/* #__PURE__*/ makeSymbol('__injectWithOption');\nconst DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose');\n\nconst I18nWarnCodes = {\n FALLBACK_TO_ROOT: CORE_WARN_CODES_EXTEND_POINT, // 10\n NOT_FOUND_PARENT_SCOPE: (CORE_WARN_CODES_EXTEND_POINT + 1),\n IGNORE_OBJ_FLATTEN: (CORE_WARN_CODES_EXTEND_POINT + 2),\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n DEPRECATE_LEGACY_MODE: (CORE_WARN_CODES_EXTEND_POINT + 3),\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE: (CORE_WARN_CODES_EXTEND_POINT +\n 4),\n // duplicate `useI18n` calling\n DUPLICATE_USE_I18N_CALLING: (CORE_WARN_CODES_EXTEND_POINT + 5)\n};\nconst warnMessages = {\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,\n [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n [I18nWarnCodes.DEPRECATE_LEGACY_MODE]: `Legacy API mode has been deprecated in v11. Use Composition API mode instead.\\nAbout how to use the Composition API mode, see https://vue-i18n.intlify.dev/guide/advanced/composition.html`,\n /**\n * @deprecated will be removed at vue-i18n v12\n */\n [I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE]: `'v-t' has been deprecated in v11. Use translate APIs ('t' or '$t') instead.`,\n [I18nWarnCodes.DUPLICATE_USE_I18N_CALLING]: \"Duplicate `useI18n` calling by local scope. Please don't call it on local scope, due to it does not work properly in component.\"\n};\nfunction getWarnMessage(code, ...args) {\n return format(warnMessages[code], ...args);\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Transform flat json in obj to normal json in obj\n */\nfunction handleFlatJson(obj) {\n // check obj\n if (!isObject(obj)) {\n return obj;\n }\n if (isMessageAST(obj)) {\n return obj;\n }\n for (const key in obj) {\n // check key\n if (!hasOwn(obj, key)) {\n continue;\n }\n // handle for normal json\n if (!key.includes('.')) {\n // recursive process value if value is also a object\n if (isObject(obj[key])) {\n handleFlatJson(obj[key]);\n }\n }\n // handle for flat json, transform to normal json\n else {\n // go to the last object\n const subKeys = key.split('.');\n const lastIndex = subKeys.length - 1;\n let currentObj = obj;\n let hasStringValue = false;\n for (let i = 0; i < lastIndex; i++) {\n if (subKeys[i] === '__proto__') {\n throw new Error(`unsafe key: ${subKeys[i]}`);\n }\n if (!(subKeys[i] in currentObj)) {\n currentObj[subKeys[i]] = create();\n }\n if (!isObject(currentObj[subKeys[i]])) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {\n key: subKeys[i]\n }));\n hasStringValue = true;\n break;\n }\n currentObj = currentObj[subKeys[i]];\n }\n // update last object value, delete old property\n if (!hasStringValue) {\n if (!isMessageAST(currentObj)) {\n currentObj[subKeys[lastIndex]] = obj[key];\n delete obj[key];\n }\n else {\n /**\n * NOTE:\n * if the last object is a message AST and subKeys[lastIndex] has message AST prop key, ignore to copy and key deletion\n */\n if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) {\n delete obj[key];\n }\n }\n }\n // recursive process value if value is also a object\n if (!isMessageAST(currentObj)) {\n const target = currentObj[subKeys[lastIndex]];\n if (isObject(target)) {\n handleFlatJson(target);\n }\n }\n }\n }\n return obj;\n}\nfunction getLocaleMessages(locale, options) {\n const { messages, __i18n, messageResolver, flatJson } = options;\n // prettier-ignore\n const ret = (isPlainObject(messages)\n ? messages\n : isArray(__i18n)\n ? create()\n : { [locale]: create() });\n // merge locale messages of i18n custom block\n if (isArray(__i18n)) {\n __i18n.forEach(custom => {\n if ('locale' in custom && 'resource' in custom) {\n const { locale, resource } = custom;\n if (locale) {\n ret[locale] = ret[locale] || create();\n deepCopy(resource, ret[locale]);\n }\n else {\n deepCopy(resource, ret);\n }\n }\n else {\n isString(custom) && deepCopy(JSON.parse(custom), ret);\n }\n });\n }\n // handle messages for flat json\n if (messageResolver == null && flatJson) {\n for (const key in ret) {\n if (hasOwn(ret, key)) {\n handleFlatJson(ret[key]);\n }\n }\n }\n return ret;\n}\nfunction getComponentOptions(instance) {\n return instance.type;\n}\nfunction adjustI18nResources(gl, options, componentOptions) {\n // prettier-ignore\n let messages = isObject(options.messages)\n ? options.messages\n : create();\n if ('__i18nGlobal' in componentOptions) {\n messages = getLocaleMessages(gl.locale.value, {\n messages,\n __i18n: componentOptions.__i18nGlobal\n });\n }\n // merge locale messages\n const locales = Object.keys(messages);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeLocaleMessage(locale, messages[locale]);\n });\n }\n {\n // merge datetime formats\n if (isObject(options.datetimeFormats)) {\n const locales = Object.keys(options.datetimeFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\n });\n }\n }\n // merge number formats\n if (isObject(options.numberFormats)) {\n const locales = Object.keys(options.numberFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeNumberFormat(locale, options.numberFormats[locale]);\n });\n }\n }\n }\n}\nfunction createTextNode(key) {\n return createVNode(Text, null, key, 0);\n}\nfunction getCurrentInstance() {\n // NOTE(kazupon): avoid bundler warning\n const key = 'currentInstance';\n if (key in Vue) {\n return Vue[key];\n }\n else {\n return Vue.getCurrentInstance();\n }\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// extend VNode interface\nconst DEVTOOLS_META = '__INTLIFY_META__';\nconst NOOP_RETURN_ARRAY = () => [];\nconst NOOP_RETURN_FALSE = () => false;\nlet composerID = 0;\nfunction defineCoreMissingHandler(missing) {\n return ((ctx, locale, key, type) => {\n return missing(locale, key, getCurrentInstance() || undefined, type);\n });\n}\n// for Intlify DevTools\n/* #__NO_SIDE_EFFECTS__ */\nconst getMetaInfo = () => {\n const instance = getCurrentInstance();\n let meta = null;\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n ? { [DEVTOOLS_META]: meta }\n : null;\n};\n/**\n * Create composer interface factory\n *\n * @internal\n */\nfunction createComposer(options = {}) {\n const { __root, __injectWithOption } = options;\n const _isGlobal = __root === undefined;\n const flatJson = options.flatJson;\n const _ref = inBrowser ? ref : shallowRef;\n let _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : true;\n const _locale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = _ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} })\n ;\n // prettier-ignore\n const _numberFormats = _ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} })\n ;\n // warning suppress options\n // prettier-ignore\n let _missingWarn = __root\n ? __root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n let _fallbackWarn = __root\n ? __root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n let _fallbackRoot = __root\n ? __root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n let _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n let _missing = isFunction(options.missing) ? options.missing : null;\n let _runtimeMissing = isFunction(options.missing)\n ? defineCoreMissingHandler(options.missing)\n : null;\n // postTranslation handler\n let _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n let _warnHtmlMessage = __root\n ? __root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n let _escapeParameter = !!options.escapeParameter;\n // custom linked modifiers\n // prettier-ignore\n const _modifiers = __root\n ? __root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\n // runtime context\n // eslint-disable-next-line prefer-const\n let _context;\n const getCoreContext = () => {\n _isGlobal && setFallbackContext(null);\n const ctxOptions = {\n version: VERSION,\n locale: _locale.value,\n fallbackLocale: _fallbackLocale.value,\n messages: _messages.value,\n modifiers: _modifiers,\n pluralRules: _pluralRules,\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\n missingWarn: _missingWarn,\n fallbackWarn: _fallbackWarn,\n fallbackFormat: _fallbackFormat,\n unresolving: true,\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\n warnHtmlMessage: _warnHtmlMessage,\n escapeParameter: _escapeParameter,\n messageResolver: options.messageResolver,\n messageCompiler: options.messageCompiler,\n __meta: { framework: 'vue' }\n };\n {\n ctxOptions.datetimeFormats = _datetimeFormats.value;\n ctxOptions.numberFormats = _numberFormats.value;\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\n ? _context.__datetimeFormatters\n : undefined;\n ctxOptions.__numberFormatters = isPlainObject(_context)\n ? _context.__numberFormatters\n : undefined;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n ctxOptions.__v_emitter = isPlainObject(_context)\n ? _context.__v_emitter\n : undefined;\n }\n const ctx = createCoreContext(ctxOptions);\n _isGlobal && setFallbackContext(ctx);\n return ctx;\n };\n _context = getCoreContext();\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ]\n ;\n }\n // locale\n const locale = computed({\n get: () => _locale.value,\n set: val => {\n _context.locale = val;\n _locale.value = val;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => _fallbackLocale.value,\n set: val => {\n _context.fallbackLocale = val;\n _fallbackLocale.value = val;\n updateFallbackLocale(_context, _locale.value, val);\n }\n });\n // messages\n const messages = computed(() => _messages.value);\n // datetimeFormats\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\n // numberFormats\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\n // getPostTranslationHandler\n function getPostTranslationHandler() {\n return isFunction(_postTranslation) ? _postTranslation : null;\n }\n // setPostTranslationHandler\n function setPostTranslationHandler(handler) {\n _postTranslation = handler;\n _context.postTranslation = handler;\n }\n // getMissingHandler\n function getMissingHandler() {\n return _missing;\n }\n // setMissingHandler\n function setMissingHandler(handler) {\n if (handler !== null) {\n _runtimeMissing = defineCoreMissingHandler(handler);\n }\n _missing = handler;\n _context.missing = _runtimeMissing;\n }\n function isResolvedTranslateMessage(type, arg) {\n return type !== 'translate' || !arg.resolvedMessage;\n }\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\n trackReactivityValues(); // track reactive dependency\n // NOTE: experimental !!\n let ret;\n try {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(getMetaInfo());\n }\n if (!_isGlobal) {\n _context.fallbackContext = __root\n ? getFallbackContext()\n : undefined;\n }\n ret = fn(_context);\n }\n finally {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(null);\n }\n if (!_isGlobal) {\n _context.fallbackContext = undefined;\n }\n }\n if ((warnType !== 'translate exists' && // for not `te` (e.g `t`)\n isNumber(ret) &&\n ret === NOT_REOSLVED) ||\n (warnType === 'translate exists' && !ret) // for `te`\n ) {\n const [key, arg2] = argumentParser();\n if ((process.env.NODE_ENV !== 'production') &&\n __root &&\n isString(key) &&\n isResolvedTranslateMessage(warnType, arg2)) {\n if (_fallbackRoot &&\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\n isTranslateMissingWarn(_missingWarn, key))) {\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\n key,\n type: warnType\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const { __v_emitter: emitter } = _context;\n if (emitter && _fallbackRoot) {\n emitter.emit('fallback', {\n type: warnType,\n key,\n to: 'global',\n groupId: `${warnType}:${key}`\n });\n }\n }\n }\n return __root && _fallbackRoot\n ? fallbackSuccess(__root)\n : fallbackFail(key);\n }\n else if (successCondition(ret)) {\n return ret;\n }\n else {\n /* istanbul ignore next */\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\n }\n };\n // t\n function t(...args) {\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\n }\n // rt\n function rt(...args) {\n const [arg1, arg2, arg3] = args;\n if (arg3 && !isObject(arg3)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\n }\n // d\n function d(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val) || isArray(val));\n }\n // n\n function n(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val) || isArray(val));\n }\n // for custom processor\n function normalize(values) {\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\n ? createTextNode(String(val))\n : val);\n }\n const interpolate = (val) => val;\n const processor = {\n normalize,\n interpolate,\n type: 'vnode'\n };\n // translateVNode, using for `i18n-t` component\n function translateVNode(...args) {\n return wrapWithDeps(context => {\n let ret;\n const _context = context;\n try {\n _context.processor = processor;\n ret = Reflect.apply(translate, null, [_context, ...args]);\n }\n finally {\n _context.processor = null;\n }\n return ret;\n }, () => parseTranslateArgs(...args), 'translate', root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\n }\n // numberParts, using for `i18n-n` component\n function numberParts(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n // datetimeParts, using for `i18n-d` component\n function datetimeParts(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n function setPluralRules(rules) {\n _pluralRules = rules;\n _context.pluralRules = _pluralRules;\n }\n // te\n function te(key, locale) {\n return wrapWithDeps(() => {\n if (!key) {\n return false;\n }\n const targetLocale = isString(locale) ? locale : _locale.value;\n // When locale is explicitly specified, check only that locale (no fallback chain)\n // When locale is not specified, check the fallback locale chain\n const locales = isString(locale)\n ? [targetLocale]\n : fallbackWithLocaleChain(_context, _fallbackLocale.value, targetLocale);\n for (let i = 0; i < locales.length; i++) {\n const message = getLocaleMessage(locales[i]);\n let resolved = _context.messageResolver(message, key);\n // if null, resolve with object key path (for flat keys containing dots)\n if (resolved === null) {\n resolved = message[key];\n }\n if (isMessageAST(resolved) ||\n isMessageFunction(resolved) ||\n isString(resolved)) {\n return true;\n }\n }\n return false;\n }, () => [key], 'translate exists', root => {\n return Reflect.apply(root.te, root, [key, locale]);\n }, NOOP_RETURN_FALSE, val => isBoolean(val));\n }\n function resolveMessages(key) {\n let messages = null;\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\n for (let i = 0; i < locales.length; i++) {\n const targetLocaleMessages = _messages.value[locales[i]] || {};\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\n if (messageValue != null) {\n messages = messageValue;\n break;\n }\n }\n return messages;\n }\n // tm\n function tm(key) {\n const messages = resolveMessages(key);\n // prettier-ignore\n return messages != null\n ? messages\n : __root\n ? __root.tm(key) || {}\n : {};\n }\n // getLocaleMessage\n function getLocaleMessage(locale) {\n return (_messages.value[locale] || {});\n }\n // setLocaleMessage\n function setLocaleMessage(locale, message) {\n if (flatJson) {\n const _message = { [locale]: message };\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n message = _message[locale];\n }\n _messages.value[locale] = message;\n _context.messages = _messages.value;\n }\n // mergeLocaleMessage\n function mergeLocaleMessage(locale, message) {\n _messages.value[locale] = _messages.value[locale] || {};\n const _message = { [locale]: message };\n if (flatJson) {\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n }\n message = _message[locale];\n deepCopy(message, _messages.value[locale]);\n _context.messages = _messages.value;\n }\n // getDateTimeFormat\n function getDateTimeFormat(locale) {\n return _datetimeFormats.value[locale] || {};\n }\n // setDateTimeFormat\n function setDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = format;\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // mergeDateTimeFormat\n function mergeDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // getNumberFormat\n function getNumberFormat(locale) {\n return _numberFormats.value[locale] || {};\n }\n // setNumberFormat\n function setNumberFormat(locale, format) {\n _numberFormats.value[locale] = format;\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // mergeNumberFormat\n function mergeNumberFormat(locale, format) {\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // for debug\n composerID++;\n // watch root locale & fallbackLocale\n if (__root && inBrowser) {\n watch(__root.locale, (val) => {\n if (_inheritLocale) {\n _locale.value = val;\n _context.locale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n watch(__root.fallbackLocale, (val) => {\n if (_inheritLocale) {\n _fallbackLocale.value = val;\n _context.fallbackLocale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n }\n // define basic composition API!\n const composer = {\n id: composerID,\n locale,\n fallbackLocale,\n get inheritLocale() {\n return _inheritLocale;\n },\n set inheritLocale(val) {\n _inheritLocale = val;\n if (val && __root) {\n _locale.value = __root.locale.value;\n _fallbackLocale.value = __root.fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n },\n get availableLocales() {\n return Object.keys(_messages.value).sort();\n },\n messages,\n get modifiers() {\n return _modifiers;\n },\n get pluralRules() {\n return _pluralRules || {};\n },\n get isGlobal() {\n return _isGlobal;\n },\n get missingWarn() {\n return _missingWarn;\n },\n set missingWarn(val) {\n _missingWarn = val;\n _context.missingWarn = _missingWarn;\n },\n get fallbackWarn() {\n return _fallbackWarn;\n },\n set fallbackWarn(val) {\n _fallbackWarn = val;\n _context.fallbackWarn = _fallbackWarn;\n },\n get fallbackRoot() {\n return _fallbackRoot;\n },\n set fallbackRoot(val) {\n _fallbackRoot = val;\n },\n get fallbackFormat() {\n return _fallbackFormat;\n },\n set fallbackFormat(val) {\n _fallbackFormat = val;\n _context.fallbackFormat = _fallbackFormat;\n },\n get warnHtmlMessage() {\n return _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n _warnHtmlMessage = val;\n _context.warnHtmlMessage = val;\n },\n get escapeParameter() {\n return _escapeParameter;\n },\n set escapeParameter(val) {\n _escapeParameter = val;\n _context.escapeParameter = val;\n },\n t,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n [SetPluralRulesSymbol]: setPluralRules\n };\n {\n composer.datetimeFormats = datetimeFormats;\n composer.numberFormats = numberFormats;\n composer.rt = rt;\n composer.te = te;\n composer.tm = tm;\n composer.d = d;\n composer.n = n;\n composer.getDateTimeFormat = getDateTimeFormat;\n composer.setDateTimeFormat = setDateTimeFormat;\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\n composer.getNumberFormat = getNumberFormat;\n composer.setNumberFormat = setNumberFormat;\n composer.mergeNumberFormat = mergeNumberFormat;\n composer[InejctWithOptionSymbol] = __injectWithOption;\n composer[TranslateVNodeSymbol] = translateVNode;\n composer[DatetimePartsSymbol] = datetimeParts;\n composer[NumberPartsSymbol] = numberParts;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n composer[EnableEmitter] = (emitter) => {\n _context.__v_emitter = emitter;\n };\n composer[DisableEmitter] = () => {\n _context.__v_emitter = undefined;\n };\n }\n return composer;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\nconst VueDevToolsLabels = {\n 'vue-devtools-plugin-vue-i18n': 'Vue I18n DevTools',\n 'vue-i18n-resource-inspector': 'Vue I18n DevTools',\n 'vue-i18n-timeline': 'Vue I18n'\n};\nconst VueDevToolsPlaceholders = {\n 'vue-i18n-resource-inspector': 'Search for scopes ...'\n};\nconst VueDevToolsTimelineColors = {\n 'vue-i18n-timeline': 0xffcd19\n};\nlet devtoolsApi;\nasync function enableDevTools(app, i18n) {\n return new Promise((resolve, reject) => {\n try {\n setupDevtoolsPlugin({\n id: 'vue-devtools-plugin-vue-i18n',\n label: VueDevToolsLabels['vue-devtools-plugin-vue-i18n'],\n packageName: 'vue-i18n',\n homepage: 'https://vue-i18n.intlify.dev',\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\n }, api => {\n devtoolsApi = api;\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\n updateComponentTreeTags(componentInstance, treeNode, i18n);\n });\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\n if (componentInstance.__VUE_I18N__ && instanceData) {\n if (i18n.mode === 'legacy') {\n // ignore global scope on legacy mode\n if (componentInstance.__VUE_I18N__ !==\n i18n.global.__composer) {\n inspectComposer(instanceData, componentInstance.__VUE_I18N__);\n }\n }\n else {\n inspectComposer(instanceData, componentInstance.__VUE_I18N__);\n }\n }\n });\n api.addInspector({\n id: 'vue-i18n-resource-inspector',\n label: VueDevToolsLabels['vue-i18n-resource-inspector'],\n icon: 'language',\n treeFilterPlaceholder: VueDevToolsPlaceholders['vue-i18n-resource-inspector']\n });\n api.on.getInspectorTree(payload => {\n if (payload.app === app &&\n payload.inspectorId === 'vue-i18n-resource-inspector') {\n registerScope(payload, i18n);\n }\n });\n const roots = new Map();\n api.on.getInspectorState(async (payload) => {\n if (payload.app === app &&\n payload.inspectorId === 'vue-i18n-resource-inspector') {\n api.unhighlightElement();\n inspectScope(payload, i18n);\n if (payload.nodeId === 'global') {\n if (!roots.has(payload.app)) {\n const [root] = await api.getComponentInstances(payload.app);\n roots.set(payload.app, root);\n }\n api.highlightElement(roots.get(payload.app));\n }\n else {\n const instance = getComponentInstance(payload.nodeId, i18n);\n instance && api.highlightElement(instance);\n }\n }\n });\n api.on.editInspectorState(payload => {\n if (payload.app === app &&\n payload.inspectorId === 'vue-i18n-resource-inspector') {\n editScope(payload, i18n);\n }\n });\n api.addTimelineLayer({\n id: 'vue-i18n-timeline',\n label: VueDevToolsLabels['vue-i18n-timeline'],\n color: VueDevToolsTimelineColors['vue-i18n-timeline']\n });\n resolve(true);\n });\n }\n catch (e) {\n console.error(e);\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n reject(false);\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getI18nScopeLable(instance) {\n return (instance.type.name ||\n instance.type.displayName ||\n instance.type.__file ||\n 'Anonymous');\n}\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\ntreeNode, i18n) {\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n if (instance && instance.__VUE_I18N__) {\n // add custom tags local scope only\n if (instance.__VUE_I18N__ !== global) {\n const tag = {\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\n textColor: 0x000000,\n backgroundColor: 0xffcd19\n };\n treeNode.tags.push(tag);\n }\n }\n}\nfunction inspectComposer(instanceData, composer) {\n const type = VUE_I18N_COMPONENT_TYPES;\n instanceData.state.push({\n type,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n });\n instanceData.state.push({\n type,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n });\n instanceData.state.push({\n type,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n });\n instanceData.state.push({\n type,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n });\n instanceData.state.push({\n type,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n });\n {\n instanceData.state.push({\n type,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n });\n instanceData.state.push({\n type,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n });\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getLocaleMessageValue(messages) {\n const value = {};\n Object.keys(messages).forEach((key) => {\n const v = messages[key];\n if (isFunction(v) && 'source' in v) {\n value[key] = getMessageFunctionDetails(v);\n }\n else if (isMessageAST(v) && v.loc && v.loc.source) {\n value[key] = v.loc.source;\n }\n else if (isObject(v)) {\n value[key] = getLocaleMessageValue(v);\n }\n else {\n value[key] = v;\n }\n });\n return value;\n}\nconst ESC = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '&': '&'\n};\nfunction escape(s) {\n return s.replace(/[<>\"&]/g, escapeChar);\n}\nfunction escapeChar(a) {\n return ESC[a] || a;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getMessageFunctionDetails(func) {\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\n return {\n _custom: {\n type: 'function',\n display: `ƒ ${argString}`\n }\n };\n}\nfunction registerScope(payload, i18n) {\n payload.rootNodes.push({\n id: 'global',\n label: 'Global Scope'\n });\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n for (const [keyInstance, instance] of i18n.__instances) {\n // prettier-ignore\n const composer = i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n if (global === composer) {\n continue;\n }\n payload.rootNodes.push({\n id: composer.id.toString(),\n label: `${getI18nScopeLable(keyInstance)} Scope`\n });\n }\n}\nfunction getComponentInstance(nodeId, i18n) {\n let instance = null;\n if (nodeId !== 'global') {\n for (const [component, composer] of i18n.__instances.entries()) {\n if (composer.id.toString() === nodeId) {\n instance = component;\n break;\n }\n }\n }\n return instance;\n}\nfunction getComposer$2(nodeId, i18n) {\n if (nodeId === 'global') {\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n }\n else {\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\n if (instance) {\n return i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n }\n else {\n return null;\n }\n }\n}\nfunction inspectScope(payload, i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const composer = getComposer$2(payload.nodeId, i18n);\n if (composer) {\n // TODO:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload.state = makeScopeInspectState(composer);\n }\n return null;\n}\nfunction makeScopeInspectState(composer) {\n const state = {};\n const localeType = 'Locale related info';\n const localeStates = [\n {\n type: localeType,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n },\n {\n type: localeType,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n },\n {\n type: localeType,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n },\n {\n type: localeType,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n }\n ];\n state[localeType] = localeStates;\n const localeMessagesType = 'Locale messages info';\n const localeMessagesStates = [\n {\n type: localeMessagesType,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n }\n ];\n state[localeMessagesType] = localeMessagesStates;\n {\n const datetimeFormatsType = 'Datetime formats info';\n const datetimeFormatsStates = [\n {\n type: datetimeFormatsType,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n }\n ];\n state[datetimeFormatsType] = datetimeFormatsStates;\n const numberFormatsType = 'Datetime formats info';\n const numberFormatsStates = [\n {\n type: numberFormatsType,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n }\n ];\n state[numberFormatsType] = numberFormatsStates;\n }\n return state;\n}\nfunction addTimelineEvent(event, payload) {\n if (devtoolsApi) {\n let groupId;\n if (payload && 'groupId' in payload) {\n groupId = payload.groupId;\n delete payload.groupId;\n }\n devtoolsApi.addTimelineEvent({\n layerId: 'vue-i18n-timeline',\n event: {\n title: event,\n groupId,\n time: Date.now(),\n meta: {},\n data: payload || {},\n logType: event === 'compile-error'\n ? 'error'\n : event === 'fallback' || event === 'missing'\n ? 'warning'\n : 'default'\n }\n });\n }\n}\nfunction editScope(payload, i18n) {\n const composer = getComposer$2(payload.nodeId, i18n);\n if (composer) {\n const [field] = payload.path;\n if (field === 'locale' && isString(payload.state.value)) {\n composer.locale.value = payload.state.value;\n }\n else if (field === 'fallbackLocale' &&\n (isString(payload.state.value) ||\n isArray(payload.state.value) ||\n isObject(payload.state.value))) {\n composer.fallbackLocale.value = payload.state.value;\n }\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\n composer.inheritLocale = payload.state.value;\n }\n }\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Convert to I18n Composer Options from VueI18n Options\n *\n * @internal\n */\nfunction convertComposerOptions(options) {\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\n const fallbackLocale = isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : locale;\n const missing = isFunction(options.missing) ? options.missing : undefined;\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\n isRegExp(options.silentTranslationWarn)\n ? !options.silentTranslationWarn\n : true;\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\n isRegExp(options.silentFallbackWarn)\n ? !options.silentFallbackWarn\n : true;\n const fallbackRoot = isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n const fallbackFormat = !!options.formatFallbackMessages;\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\n const pluralizationRules = options.pluralizationRules;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : undefined;\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\n ? options.warnHtmlInMessage !== 'off'\n : true;\n const escapeParameter = !!options.escapeParameterHtml;\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\n let messages = options.messages;\n if (isPlainObject(options.sharedMessages)) {\n const sharedMessages = options.sharedMessages;\n const locales = Object.keys(sharedMessages);\n messages = locales.reduce((messages, locale) => {\n const message = messages[locale] || (messages[locale] = {});\n assign(message, sharedMessages[locale]);\n return messages;\n }, (messages || {}));\n }\n const { __i18n, __root, __injectWithOption } = options;\n const datetimeFormats = options.datetimeFormats;\n const numberFormats = options.numberFormats;\n const flatJson = options.flatJson;\n return {\n locale,\n fallbackLocale,\n messages,\n flatJson,\n datetimeFormats,\n numberFormats,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackRoot,\n fallbackFormat,\n modifiers,\n pluralRules: pluralizationRules,\n postTranslation,\n warnHtmlMessage,\n escapeParameter,\n messageResolver: options.messageResolver,\n inheritLocale,\n __i18n,\n __root,\n __injectWithOption\n };\n}\n/**\n * create VueI18n interface factory\n *\n * @internal\n *\n * @deprecated will be removed at vue-i18n v12\n */\nfunction createVueI18n(options = {}) {\n const composer = createComposer(convertComposerOptions(options));\n const { __extender } = options;\n // defines VueI18n\n const vueI18n = {\n // id\n id: composer.id,\n // locale\n get locale() {\n return composer.locale.value;\n },\n set locale(val) {\n composer.locale.value = val;\n },\n // fallbackLocale\n get fallbackLocale() {\n return composer.fallbackLocale.value;\n },\n set fallbackLocale(val) {\n composer.fallbackLocale.value = val;\n },\n // messages\n get messages() {\n return composer.messages.value;\n },\n // datetimeFormats\n get datetimeFormats() {\n return composer.datetimeFormats.value;\n },\n // numberFormats\n get numberFormats() {\n return composer.numberFormats.value;\n },\n // availableLocales\n get availableLocales() {\n return composer.availableLocales;\n },\n // missing\n get missing() {\n return composer.getMissingHandler();\n },\n set missing(handler) {\n composer.setMissingHandler(handler);\n },\n // silentTranslationWarn\n get silentTranslationWarn() {\n return isBoolean(composer.missingWarn)\n ? !composer.missingWarn\n : composer.missingWarn;\n },\n set silentTranslationWarn(val) {\n composer.missingWarn = isBoolean(val) ? !val : val;\n },\n // silentFallbackWarn\n get silentFallbackWarn() {\n return isBoolean(composer.fallbackWarn)\n ? !composer.fallbackWarn\n : composer.fallbackWarn;\n },\n set silentFallbackWarn(val) {\n composer.fallbackWarn = isBoolean(val) ? !val : val;\n },\n // modifiers\n get modifiers() {\n return composer.modifiers;\n },\n // formatFallbackMessages\n get formatFallbackMessages() {\n return composer.fallbackFormat;\n },\n set formatFallbackMessages(val) {\n composer.fallbackFormat = val;\n },\n // postTranslation\n get postTranslation() {\n return composer.getPostTranslationHandler();\n },\n set postTranslation(handler) {\n composer.setPostTranslationHandler(handler);\n },\n // sync\n get sync() {\n return composer.inheritLocale;\n },\n set sync(val) {\n composer.inheritLocale = val;\n },\n // warnInHtmlMessage\n get warnHtmlInMessage() {\n return composer.warnHtmlMessage ? 'warn' : 'off';\n },\n set warnHtmlInMessage(val) {\n composer.warnHtmlMessage = val !== 'off';\n },\n // escapeParameterHtml\n get escapeParameterHtml() {\n return composer.escapeParameter;\n },\n set escapeParameterHtml(val) {\n composer.escapeParameter = val;\n },\n // pluralizationRules\n get pluralizationRules() {\n return composer.pluralRules || {};\n },\n // for internal\n __composer: composer,\n // t\n t(...args) {\n return Reflect.apply(composer.t, composer, [...args]);\n },\n // rt\n rt(...args) {\n return Reflect.apply(composer.rt, composer, [...args]);\n },\n // te\n te(key, locale) {\n return composer.te(key, locale);\n },\n // tm\n tm(key) {\n return composer.tm(key);\n },\n // getLocaleMessage\n getLocaleMessage(locale) {\n return composer.getLocaleMessage(locale);\n },\n // setLocaleMessage\n setLocaleMessage(locale, message) {\n composer.setLocaleMessage(locale, message);\n },\n // mergeLocaleMessage\n mergeLocaleMessage(locale, message) {\n composer.mergeLocaleMessage(locale, message);\n },\n // d\n d(...args) {\n return Reflect.apply(composer.d, composer, [...args]);\n },\n // getDateTimeFormat\n getDateTimeFormat(locale) {\n return composer.getDateTimeFormat(locale);\n },\n // setDateTimeFormat\n setDateTimeFormat(locale, format) {\n composer.setDateTimeFormat(locale, format);\n },\n // mergeDateTimeFormat\n mergeDateTimeFormat(locale, format) {\n composer.mergeDateTimeFormat(locale, format);\n },\n // n\n n(...args) {\n return Reflect.apply(composer.n, composer, [...args]);\n },\n // getNumberFormat\n getNumberFormat(locale) {\n return composer.getNumberFormat(locale);\n },\n // setNumberFormat\n setNumberFormat(locale, format) {\n composer.setNumberFormat(locale, format);\n },\n // mergeNumberFormat\n mergeNumberFormat(locale, format) {\n composer.mergeNumberFormat(locale, format);\n }\n };\n vueI18n.__extender = __extender;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n vueI18n.__enableEmitter = (emitter) => {\n const __composer = composer;\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\n };\n vueI18n.__disableEmitter = () => {\n const __composer = composer;\n __composer[DisableEmitter] && __composer[DisableEmitter]();\n };\n }\n return vueI18n;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/**\n * Supports compatibility for legacy vue-i18n APIs\n * This mixin is used when we use vue-i18n@v9.x or later\n */\nfunction defineMixin(vuei18n, composer, i18n) {\n return {\n beforeCreate() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const options = this.$options;\n if (options.i18n) {\n const optionsI18n = options.i18n;\n if (options.__i18n) {\n optionsI18n.__i18n = options.__i18n;\n }\n optionsI18n.__root = composer;\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, optionsI18n);\n }\n else {\n optionsI18n.__injectWithOption = true;\n optionsI18n.__extender = i18n.__vueI18nExtend;\n // atttach local VueI18n instance\n this.$i18n = createVueI18n(optionsI18n);\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else if (options.__i18n) {\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, options);\n }\n else {\n // atttach local VueI18n instance\n this.$i18n = createVueI18n({\n __i18n: options.__i18n,\n __injectWithOption: true,\n __extender: i18n.__vueI18nExtend,\n __root: composer\n });\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else {\n // attach global VueI18n instance\n this.$i18n = vuei18n;\n }\n if (options.__i18nGlobal) {\n adjustI18nResources(composer, options, options);\n }\n // defines vue-i18n legacy APIs\n this.$t = (...args) => this.$i18n.t(...args);\n this.$rt = (...args) => this.$i18n.rt(...args);\n this.$te = (key, locale) => this.$i18n.te(key, locale);\n this.$d = (...args) => this.$i18n.d(...args);\n this.$n = (...args) => this.$i18n.n(...args);\n this.$tm = (key) => this.$i18n.tm(key);\n i18n.__setInstance(instance, this.$i18n);\n },\n mounted() {\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$i18n) {\n const instance = getCurrentInstance();\n if (!instance) {\n return;\n }\n const _vueI18n = this.$i18n;\n instance.__VUE_I18N__ = _vueI18n.__composer;\n const emitter = (this.__v_emitter =\n createEmitter());\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n emitter.on('*', addTimelineEvent);\n }\n },\n unmounted() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const _vueI18n = this.$i18n;\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n instance.__VUE_I18N__) {\n if (this.__v_emitter) {\n this.__v_emitter.off('*', addTimelineEvent);\n delete this.__v_emitter;\n }\n if (this.$i18n) {\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n delete instance.__VUE_I18N__;\n }\n }\n delete this.$t;\n delete this.$rt;\n delete this.$te;\n delete this.$d;\n delete this.$n;\n delete this.$tm;\n if (_vueI18n.__disposer) {\n _vueI18n.__disposer();\n delete _vueI18n.__disposer;\n delete _vueI18n.__extender;\n }\n i18n.__deleteInstance(instance);\n delete this.$i18n;\n }\n };\n}\nfunction mergeToGlobal(g, options) {\n g.locale = options.locale || g.locale;\n g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;\n g.missing = options.missing || g.missing;\n g.silentTranslationWarn =\n options.silentTranslationWarn || g.silentFallbackWarn;\n g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;\n g.formatFallbackMessages =\n options.formatFallbackMessages || g.formatFallbackMessages;\n g.postTranslation = options.postTranslation || g.postTranslation;\n g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;\n g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;\n g.sync = options.sync || g.sync;\n g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);\n const messages = getLocaleMessages(g.locale, {\n messages: options.messages,\n __i18n: options.__i18n\n });\n Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale]));\n if (options.datetimeFormats) {\n Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\n }\n if (options.numberFormats) {\n Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale]));\n }\n return g;\n}\n\nconst baseFormatProps = {\n tag: {\n type: [String, Object]\n },\n locale: {\n type: String\n },\n scope: {\n type: String,\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global',\n default: 'parent' /* ComponentI18nScope */\n },\n i18n: {\n type: Object\n }\n};\n\nfunction getInterpolateArg(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n{ slots }, // SetupContext,\nkeys) {\n if (keys.length === 1 && keys[0] === 'default') {\n // default slot with list\n const ret = slots.default ? slots.default() : [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ret.reduce((slot, current) => {\n return [\n ...slot,\n // prettier-ignore\n ...(current.type === Fragment ? current.children : [current])\n ];\n }, []);\n }\n else {\n // named slots\n return keys.reduce((arg, key) => {\n const slot = slots[key];\n if (slot) {\n arg[key] = slot();\n }\n return arg;\n }, create());\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getFragmentableTag() {\n return Fragment;\n}\n\nconst TranslationImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-t',\n props: assign({\n keypath: {\n type: String,\n required: true\n },\n plural: {\n type: [Number, String],\n validator: (val) => isNumber(val) || !isNaN(val)\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const { slots, attrs } = context;\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return () => {\n const renderChildren = () => {\n const keys = Object.keys(slots).filter(key => key[0] !== '_');\n const options = create();\n if (props.locale) {\n options.locale = props.locale;\n }\n if (props.plural !== undefined) {\n options.plural = isString(props.plural) ? +props.plural : props.plural;\n }\n const arg = getInterpolateArg(context, keys);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n };\n const assignedAttrs = assign(create(), attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return isObject(tag)\n ? h(tag, assignedAttrs, { default: renderChildren })\n : h(tag, assignedAttrs, renderChildren());\n };\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Translation Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [TranslationProps](component#translationprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\n *\n * @example\n * ```html\n *
\n * \n * \n * {{ $t('tos') }}\n * \n * \n *
\n * ```\n * ```js\n * import { createApp } from 'vue'\n * import { createI18n } from 'vue-i18n'\n *\n * const messages = {\n * en: {\n * tos: 'Term of Service',\n * term: 'I accept xxx {0}.'\n * },\n * ja: {\n * tos: '利用規約',\n * term: '私は xxx の{0}に同意します。'\n * }\n * }\n *\n * const i18n = createI18n({\n * locale: 'en',\n * messages\n * })\n *\n * const app = createApp({\n * data: {\n * url: '/term'\n * }\n * }).use(i18n).mount('#app')\n * ```\n *\n * @VueI18nComponent\n */\nconst Translation = TranslationImpl;\nconst I18nT = Translation;\n\nfunction isVNode(target) {\n return isArray(target) && !isString(target[0]);\n}\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\n const { slots, attrs } = context;\n return () => {\n const renderChildren = () => {\n const options = { part: true };\n let overrides = create();\n if (props.locale) {\n options.locale = props.locale;\n }\n if (isString(props.format)) {\n options.key = props.format;\n }\n else if (isObject(props.format)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isString(props.format.key)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.key = props.format.key;\n }\n // Filter out number format options only\n overrides = Object.keys(props.format).reduce((options, prop) => {\n return slotKeys.includes(prop)\n ? assign(create(), options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\n : options;\n }, create());\n }\n const parts = partFormatter(...[props.value, options, overrides]);\n let children = [options.key];\n if (isArray(parts)) {\n children = parts.map((part, index) => {\n const slot = slots[part.type];\n const node = slot\n ? slot({ [part.type]: part.value, index, parts })\n : [part.value];\n if (isVNode(node)) {\n node[0].key = `${part.type}-${index}`;\n }\n return node;\n });\n }\n else if (isString(parts)) {\n children = [parts];\n }\n return children;\n };\n const assignedAttrs = assign(create(), attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return isObject(tag)\n ? h(tag, assignedAttrs, { default: renderChildren })\n : h(tag, assignedAttrs, renderChildren());\n };\n}\n\nconst NumberFormatImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-n',\n props: assign({\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[NumberPartsSymbol](...args));\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Number Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\n *\n * @VueI18nComponent\n */\nconst NumberFormat = NumberFormatImpl;\nconst I18nN = NumberFormat;\n\nfunction getComposer$1(i18n, instance) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n return (i18nInternal.__getInstance(instance) || i18n.global);\n }\n else {\n const vueI18n = i18nInternal.__getInstance(instance);\n return vueI18n != null\n ? vueI18n.__composer\n : i18n.global.__composer;\n }\n}\n/**\n * @deprecated will be removed at vue-i18n v12\n */\nfunction vTDirective(i18n) {\n const _process = (binding) => {\n if ((process.env.NODE_ENV !== 'production')) {\n warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_TRANSLATE_CUSTOME_DIRECTIVE));\n }\n const { instance, value } = binding;\n /* istanbul ignore if */\n if (!instance || !instance.$) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const composer = getComposer$1(i18n, instance.$);\n const parsedValue = parseValue(value);\n return [\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\n composer\n ];\n };\n const register = (el, binding) => {\n const [textContent, composer] = _process(binding);\n if (inBrowser) {\n el.__i18nWatcher = watch(composer.locale, () => {\n binding.instance && binding.instance.$forceUpdate();\n });\n }\n el.__composer = composer;\n el.textContent = textContent;\n };\n const unregister = (el) => {\n if (inBrowser && el.__i18nWatcher) {\n el.__i18nWatcher();\n el.__i18nWatcher = undefined;\n delete el.__i18nWatcher;\n }\n if (el.__composer) {\n el.__composer = undefined;\n delete el.__composer;\n }\n };\n const update = (el, { value }) => {\n if (el.__composer) {\n const composer = el.__composer;\n const parsedValue = parseValue(value);\n el.textContent = Reflect.apply(composer.t, composer, [\n ...makeParams(parsedValue)\n ]);\n }\n };\n const getSSRProps = (binding) => {\n const [textContent] = _process(binding);\n return { textContent };\n };\n return {\n created: register,\n unmounted: unregister,\n beforeUpdate: update,\n getSSRProps\n };\n}\nfunction parseValue(value) {\n if (isString(value)) {\n return { path: value };\n }\n else if (isPlainObject(value)) {\n if (!('path' in value)) {\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\n }\n return value;\n }\n else {\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\n }\n}\nfunction makeParams(value) {\n const { path, locale, args, choice, plural } = value;\n const options = {};\n const named = args || {};\n if (isString(locale)) {\n options.locale = locale;\n }\n if (isNumber(choice)) {\n options.plural = choice;\n }\n if (isNumber(plural)) {\n options.plural = plural;\n }\n return [path, named, options];\n}\n\nfunction apply(app, i18n, ...options) {\n const pluginOptions = isPlainObject(options[0])\n ? options[0]\n : {};\n const globalInstall = isBoolean(pluginOptions.globalInstall)\n ? pluginOptions.globalInstall\n : true;\n if (globalInstall) {\n [Translation.name, 'I18nT'].forEach(name => app.component(name, Translation));\n [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat));\n [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat));\n }\n // install directive\n {\n app.directive('t', vTDirective(i18n));\n }\n}\n\n/**\n * Injection key for {@link useI18n}\n *\n * @remarks\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\n *\n * @VueI18nGeneral\n */\nconst I18nInjectionKey = \n/* #__PURE__*/ makeSymbol('global-vue-i18n');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createI18n(options = {}) {\n // prettier-ignore\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\n ? options.legacy\n : __VUE_I18N_LEGACY_API__;\n if ((process.env.NODE_ENV !== 'production') && __legacyMode) {\n warnOnce(getWarnMessage(I18nWarnCodes.DEPRECATE_LEGACY_MODE));\n }\n // prettier-ignore\n const __globalInjection = isBoolean(options.globalInjection)\n ? options.globalInjection\n : true;\n const __instances = new Map();\n const [globalScope, __global] = createGlobal(options, __legacyMode);\n const symbol = /* #__PURE__*/ makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\n function __getInstance(component) {\n return __instances.get(component) || null;\n }\n function __setInstance(component, instance) {\n __instances.set(component, instance);\n }\n function __deleteInstance(component) {\n __instances.delete(component);\n }\n const i18n = {\n // mode\n get mode() {\n return __VUE_I18N_LEGACY_API__ && __legacyMode\n ? 'legacy'\n : 'composition';\n },\n // install plugin\n async install(app, ...options) {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n app.__VUE_I18N__ = i18n;\n }\n // setup global provider\n app.__VUE_I18N_SYMBOL__ = symbol;\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\n // set composer & vuei18n extend hook options from plugin options\n if (isPlainObject(options[0])) {\n const opts = options[0];\n i18n.__composerExtend =\n opts.__composerExtend;\n i18n.__vueI18nExtend =\n opts.__vueI18nExtend;\n }\n // global method and properties injection for Composition API\n let globalReleaseHandler = null;\n if (!__legacyMode && __globalInjection) {\n globalReleaseHandler = injectGlobalFields(app, i18n.global);\n }\n // install built-in components and directive\n if (__VUE_I18N_FULL_INSTALL__) {\n apply(app, i18n, ...options);\n }\n // setup mixin for Legacy API\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\n app.mixin(defineMixin(__global, __global.__composer, i18n));\n }\n // release global scope\n const unmountApp = app.unmount;\n app.unmount = () => {\n globalReleaseHandler && globalReleaseHandler();\n i18n.dispose();\n unmountApp();\n };\n // setup vue-devtools plugin\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n const ret = await enableDevTools(app, i18n);\n if (!ret) {\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\n }\n const emitter = createEmitter();\n if (__legacyMode) {\n const _vueI18n = __global;\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = __global;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n }\n emitter.on('*', addTimelineEvent);\n }\n },\n // global accessor\n get global() {\n return __global;\n },\n dispose() {\n globalScope.stop();\n },\n // @internal\n __instances,\n // @internal\n __getInstance,\n // @internal\n __setInstance,\n // @internal\n __deleteInstance\n };\n return i18n;\n}\nfunction useI18n(options = {}) {\n const instance = getCurrentInstance();\n if (instance == null) {\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\n }\n if (!instance.isCE &&\n instance.appContext.app != null &&\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\n throw createI18nError(I18nErrorCodes.NOT_INSTALLED);\n }\n const i18n = getI18nInstance(instance);\n const gl = getGlobalComposer(i18n);\n const componentOptions = getComponentOptions(instance);\n const scope = getScope(options, componentOptions);\n if (scope === 'global') {\n adjustI18nResources(gl, options, componentOptions);\n return gl;\n }\n if (scope === 'parent') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let composer = getComposer(i18n, instance, options.__useComponent);\n if (composer == null) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\n }\n composer = gl;\n }\n return composer;\n }\n // Isolated scope - independent composer not tied to component\n if (scope === 'isolated') {\n // Composition API mode only\n if (i18n.mode !== 'composition') {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n }\n const i18nInternalIso = i18n;\n const composerOptions = assign({}, options);\n // Find parent composer via parent chain (or fall back to global)\n const parentComposer = getComposer(i18n, instance);\n composerOptions.__root = parentComposer || gl;\n const composer = createComposer(composerOptions);\n // ComposerExtend hook\n if (i18nInternalIso.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternalIso.__composerExtend(composer);\n }\n // Setup devtools emitter (no target.__VUE_I18N__ attachment -\n // multiple isolated composers per component are allowed)\n let emitter = null;\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n // Lifecycle cleanup via onScopeDispose\n const currentScope = getCurrentScope();\n if (currentScope) {\n onScopeDispose(() => {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n emitter && emitter.off('*', addTimelineEvent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const dispose = composer[DisposeSymbol];\n if (dispose) {\n dispose();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete composer[DisposeSymbol];\n }\n });\n }\n return composer;\n }\n const i18nInternal = i18n;\n let composer = i18nInternal.__getInstance(instance);\n if (composer == null) {\n const composerOptions = assign({}, options);\n if ('__i18n' in componentOptions) {\n composerOptions.__i18n = componentOptions.__i18n;\n }\n if (gl) {\n composerOptions.__root = gl;\n }\n composer = createComposer(composerOptions);\n if (i18nInternal.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternal.__composerExtend(composer);\n }\n setupLifeCycle(i18nInternal, instance, composer);\n i18nInternal.__setInstance(instance, composer);\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && scope === 'local') {\n warn(getWarnMessage(I18nWarnCodes.DUPLICATE_USE_I18N_CALLING));\n }\n }\n return composer;\n}\nfunction createGlobal(options, legacyMode) {\n const scope = effectScope();\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\n ? scope.run(() => createVueI18n(options))\n : scope.run(() => createComposer(options));\n if (obj == null) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n return [scope, obj];\n}\nfunction getI18nInstance(instance) {\n const i18n = inject(!instance.isCE\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\n : I18nInjectionKey);\n /* istanbul ignore if */\n if (!i18n) {\n throw createI18nError(!instance.isCE\n ? I18nErrorCodes.UNEXPECTED_ERROR\n : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);\n }\n return i18n;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScope(options, componentOptions) {\n // prettier-ignore\n return isEmptyObject(options)\n ? ('__i18n' in componentOptions)\n ? 'local'\n : 'global'\n : !options.useScope\n ? 'local'\n : options.useScope;\n}\nfunction getGlobalComposer(i18n) {\n // prettier-ignore\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n}\nfunction getComposer(i18n, target, useComponent = false) {\n let composer = null;\n const root = target.root;\n let current = getParentComponentInstance(target, useComponent);\n while (current != null) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n composer = i18nInternal.__getInstance(current);\n }\n else {\n if (__VUE_I18N_LEGACY_API__) {\n const vueI18n = i18nInternal.__getInstance(current);\n if (vueI18n != null) {\n composer = vueI18n\n .__composer;\n if (useComponent &&\n composer &&\n !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n composer = null;\n }\n }\n }\n }\n if (composer != null) {\n break;\n }\n if (root === current) {\n break;\n }\n current = current.parent;\n }\n return composer;\n}\nfunction getParentComponentInstance(target, useComponent = false) {\n if (target == null) {\n return null;\n }\n // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots\n return !useComponent\n ? target.parent\n : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any\n}\nfunction setupLifeCycle(i18n, target, composer) {\n let emitter = null;\n onMounted(() => {\n // inject composer instance to DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n target.__VUE_I18N__ = composer;\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n }, target);\n onUnmounted(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n // remove composer instance from DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n emitter && emitter.off('*', addTimelineEvent);\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n delete target.__VUE_I18N__;\n }\n i18n.__deleteInstance(target);\n // dispose extended resources\n const dispose = _composer[DisposeSymbol];\n if (dispose) {\n dispose();\n delete _composer[DisposeSymbol];\n }\n }, target);\n}\nconst globalExportProps = [\n 'locale',\n 'fallbackLocale',\n 'availableLocales'\n];\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\n ;\nfunction injectGlobalFields(app, composer) {\n const i18n = Object.create(null);\n globalExportProps.forEach(prop => {\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\n if (!desc) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const wrap = isRef(desc.value) // check computed props\n ? {\n get() {\n return desc.value.value;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(val) {\n desc.value.value = val;\n }\n }\n : {\n get() {\n return desc.get && desc.get();\n }\n };\n Object.defineProperty(i18n, prop, wrap);\n });\n app.config.globalProperties.$i18n = i18n;\n globalExportMethods.forEach(method => {\n const desc = Object.getOwnPropertyDescriptor(composer, method);\n if (!desc || !desc.value) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\n });\n const dispose = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties.$i18n;\n globalExportMethods.forEach(method => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties[`$${method}`];\n });\n };\n return dispose;\n}\n\nconst DatetimeFormatImpl = /* #__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-d',\n props: assign({\n value: {\n type: [Number, Date],\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[DatetimePartsSymbol](...args));\n }\n});\n/**\n * Datetime Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\n *\n * @VueI18nComponent\n */\nconst DatetimeFormat = DatetimeFormatImpl;\nconst I18nD = DatetimeFormat;\n\n{\n initFeatureFlags();\n}\n// register message compiler at vue-i18n\nregisterMessageCompiler(compile);\n// register message resolver at vue-i18n\nregisterMessageResolver(resolveValue);\n// register fallback locale at vue-i18n\nregisterLocaleFallbacker(fallbackWithLocaleChain);\n// NOTE: experimental !!\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n const target = getGlobalThis();\n target.__INTLIFY__ = true;\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\n}\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nD, I18nInjectionKey, I18nN, I18nT, NumberFormat, Translation, VERSION, createI18n, useI18n, vTDirective };\n","import { useCookie, useNuxtApp, useRequestEvent } from \"#imports\";\nimport { ref, watch } from \"vue\";\nimport { _useLocaleHead, _useSetI18nParams } from \"../routing/head.js\";\nimport { useComposableContext } from \"../utils.js\";\nimport { localePath, localeRoute, switchLocalePath } from \"../routing/routing.js\";\nexport * from \"vue-i18n\";\nexport * from \"./shared.js\";\nexport function useSetI18nParams(seo, nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return _useSetI18nParams(common, seo);\n}\nexport function useLocaleHead({ dir = true, lang = true, seo = true } = {}, nuxtApp = useNuxtApp()) {\n if (__I18N_STRICT_SEO__) {\n throw new Error(\n \"Strict SEO mode is enabled, `useLocaleHead` should not be used as localized head tags are handled internally by `@nuxtjs/i18n`\"\n );\n }\n const common = useComposableContext(nuxtApp);\n common.seoSettings = { dir, lang, seo };\n const head = _useLocaleHead(common, common.seoSettings);\n if (import.meta.client) {\n watch(head, () => common.metaState = head.value);\n }\n common.metaState = head.value;\n return head;\n}\nexport function useRouteBaseName(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (route) => {\n if (route == null) {\n return;\n }\n return common.getRouteBaseName(route) || void 0;\n };\n}\nexport function useLocalePath(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (route, locale) => localePath(common, route, locale);\n}\nexport function useLocaleRoute(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (route, locale) => localeRoute(common, route, locale);\n}\nexport function useSwitchLocalePath(nuxtApp = useNuxtApp()) {\n const common = useComposableContext(nuxtApp);\n return (locale) => switchLocalePath(common, locale);\n}\nexport function useBrowserLocale(nuxtApp = useNuxtApp()) {\n return (nuxtApp || useNuxtApp()).$i18n.getBrowserLocale() || null;\n}\nexport function useCookieLocale(nuxtApp = useNuxtApp()) {\n const locale = ref(\"\");\n const nuxt = nuxtApp || useNuxtApp();\n const detect = nuxt.$config.public.i18n.detectBrowserLanguage;\n if (!detect || !detect.useCookie) {\n return locale;\n }\n const locales = useComposableContext(nuxt).getLocales();\n const code = useCookie(detect.cookieKey).value;\n if (code && locales.some((x) => x.code === code)) {\n locale.value = code;\n }\n return locale;\n}\nconst warnRuntimeUsage = (method) => console.warn(\n method + \"() is a compiler-hint helper that is only usable inside the script block of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.\"\n);\nexport function defineI18nRoute(route) {\n if (import.meta.dev) {\n warnRuntimeUsage(\"defineI18nRoute\");\n }\n}\nexport function useI18nPreloadKeys(keys) {\n if (import.meta.server) {\n const ctx = useRequestEvent()?.context?.nuxtI18n;\n if (ctx == null) {\n console.warn(\"useI18nPreloadKeys(): `nuxtI18n` server context is accessible.\");\n return;\n }\n const locale = useComposableContext(useNuxtApp()).getLocale();\n if (!locale) {\n console.warn(\"useI18nPreloadKeys(): Could not resolve locale during server-side render.\");\n return;\n }\n for (const k of keys) {\n ctx?.trackKey(k, locale);\n }\n }\n}\n","import { defineNuxtPlugin, useNuxtApp } from \"#imports\";\nimport { useSwitchLocalePath } from \"#i18n\";\nconst identifier = __SWITCH_LOCALE_PATH_LINK_IDENTIFIER__;\nconst switchLocalePathLinkWrapperExpr = new RegExp(\n [``, `.+?`, ``].join(\"\"),\n \"g\"\n);\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:switch-locale-path-ssr\",\n dependsOn: [\"i18n:plugin\"],\n setup(_nuxt) {\n const nuxt = useNuxtApp(_nuxt._id);\n const switchLocalePath = useSwitchLocalePath(nuxt);\n nuxt.hook(\"app:rendered\", (ctx) => {\n if (ctx.renderResult?.html == null) {\n return;\n }\n ctx.renderResult.html = ctx.renderResult.html.replaceAll(\n switchLocalePathLinkWrapperExpr,\n (match, p1) => {\n const encoded = encodeURI(switchLocalePath(p1 ?? \"\"));\n return match.replace(\n /href=\"([^\"]+)\"/,\n `href=\"${encoded || \"#\"}\" ${!encoded && __I18N_STRICT_SEO__ ? \"data-i18n-disabled\" : \"\"}`\n );\n }\n );\n });\n }\n});\n","import { useNuxtI18nContext, useResolvedLocale } from \"../context.js\";\nimport { detectLocale, loadAndSetLocale, navigate } from \"../utils.js\";\nimport { addRouteMiddleware, defineNuxtPlugin, defineNuxtRouteMiddleware, useNuxtApp, useRouter } from \"#imports\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:route-locale-detect\",\n dependsOn: !__I18N_PRELOAD__ ? [\"i18n:plugin\"] : [\"i18n:plugin\", \"i18n:plugin:preload\"],\n async setup(_nuxt) {\n const nuxt = useNuxtApp(_nuxt._id);\n const ctx = useNuxtI18nContext(nuxt);\n if (__I18N_COMPACT_ROUTES__) {\n const router = useRouter();\n for (const route of router.getRoutes()) {\n if (route.meta?.__i18nCompact && route.meta.key == null) {\n route.meta.key = (r) => r.path;\n }\n }\n }\n const resolvedLocale = useResolvedLocale();\n await nuxt.runWithContext(\n () => loadAndSetLocale(\n nuxt,\n ctx.initial && resolvedLocale.value || detectLocale(nuxt, nuxt.$router.currentRoute.value)\n )\n );\n if (!__I18N_ROUTING__ || import.meta.server && __I18N_SERVER_REDIRECT__) {\n return;\n }\n addRouteMiddleware(\n \"locale-changing\",\n defineNuxtRouteMiddleware(async (to) => {\n const locale = await nuxt.runWithContext(() => loadAndSetLocale(nuxt, detectLocale(nuxt, to)));\n ctx.initial = false;\n return nuxt.runWithContext(() => navigate(nuxt, to, locale));\n }),\n { global: true }\n );\n }\n});\n","import { parse } from \"devalue\";\nimport { unref } from \"vue\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { localeCodes, localeLoaders } from \"#build/i18n-options.mjs\";\nimport { getLocaleMessagesMergedCached } from \"../shared/messages.js\";\nimport { useNuxtI18nContext } from \"../context.js\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:preload\",\n dependsOn: [\"i18n:plugin\"],\n async setup(_nuxt) {\n if (!__I18N_PRELOAD__) {\n return;\n }\n const nuxt = useNuxtApp(_nuxt._id);\n const ctx = useNuxtI18nContext(nuxt);\n if (import.meta.server) {\n for (const locale of localeCodes) {\n try {\n const messages = await $fetch(`${__I18N_SERVER_ROUTE__}/${__I18N_LOCALE_HASHES__[locale]}/${locale}/messages.json`);\n for (const locale2 of Object.keys(messages)) {\n nuxt.$i18n.mergeLocaleMessage(locale2, messages[locale2]);\n }\n } catch (e) {\n console.warn(\"Error loading messages\", e);\n }\n }\n ctx.preloaded = true;\n const serverI18n = nuxt.ssrContext?.event.context.nuxtI18n;\n if (serverI18n) {\n const msg = unref(ctx.vueI18n.global.messages);\n serverI18n.messages ??= {};\n for (const k in msg) {\n serverI18n.messages[k] = msg[k];\n }\n }\n }\n if (import.meta.client) {\n await mergePayloadMessages(ctx, ctx.vueI18n.global, nuxt);\n if (ctx.preloaded && __I18N_STRIP_UNUSED__) {\n const unsub = nuxt.$router.beforeResolve(async (to, from) => {\n if (to.path === from.path) {\n return;\n }\n await ctx.loadMessages(ctx.getLocale());\n unsub();\n });\n }\n }\n }\n});\nasync function mergePayloadMessages(ctx, i18n, nuxt = useNuxtApp()) {\n const content = document.querySelector(`[data-nuxt-i18n=\"${nuxt._id}\"]`)?.textContent;\n const preloadedMessages = content && parse(content);\n const preloadedKeys = Object.keys(preloadedMessages || {});\n if (preloadedKeys.length) {\n if (ctx.dynamicResourcesSSG) {\n const getKeyedLocaleMessages = async (locale) => {\n return { [locale]: await getLocaleMessagesMergedCached(locale, localeLoaders[locale]) };\n };\n try {\n const msg = await Promise.all(preloadedKeys.map(getKeyedLocaleMessages));\n for (const m of msg) {\n for (const k in m) {\n i18n.mergeLocaleMessage(k, m[k]);\n }\n }\n } catch (e) {\n console.warn(\"Error loading messages\", e);\n }\n ctx.preloaded = true;\n } else {\n for (const locale of preloadedKeys) {\n const messages = preloadedMessages[locale];\n if (messages) {\n i18n.mergeLocaleMessage(locale, messages);\n }\n }\n ctx.preloaded = true;\n }\n }\n}\n","import { effectScope } from \"#imports\";\nimport { assign } from \"@intlify/shared\";\nimport { getComposer } from \"../compatibility.js\";\nexport function extendI18n(i18n, { extendComposer, extendComposerInstance }) {\n const scope = effectScope();\n const installI18n = i18n.install.bind(i18n);\n i18n.install = (app, ...options) => {\n const pluginOptions = assign({}, options[0]);\n pluginOptions.__composerExtend = (c) => {\n extendComposerInstance(c, getComposer(i18n));\n return () => {\n };\n };\n if (i18n.mode === \"legacy\") {\n pluginOptions.__vueI18nExtend = (vueI18n) => {\n extendComposerInstance(vueI18n, getComposer(vueI18n));\n return () => {\n };\n };\n }\n Reflect.apply(installI18n, i18n, [app, pluginOptions]);\n const globalComposer = getComposer(i18n);\n scope.run(() => {\n extendComposer(globalComposer);\n if (i18n.mode === \"legacy\" && \"__composer\" in i18n.global) {\n extendComposerInstance(i18n.global, getComposer(i18n.global));\n }\n });\n if (i18n.mode === \"composition\" && app.config.globalProperties.$i18n != null) {\n extendComposerInstance(app.config.globalProperties.$i18n, globalComposer);\n }\n if (app.unmount) {\n const unmountApp = app.unmount.bind(app);\n app.unmount = () => {\n scope.stop();\n unmountApp();\n };\n }\n };\n}\n","import { loadVueI18nOptions } from \"./messages.js\";\nimport { localeCodes as _localeCodes, vueI18nConfigs } from \"#build/i18n-options.mjs\";\nexport const setupVueI18nOptions = async (defaultLocale) => {\n const options = await loadVueI18nOptions(vueI18nConfigs);\n options.locale = defaultLocale || options.locale || \"en-US\";\n options.defaultLocale = defaultLocale;\n options.fallbackLocale ??= false;\n options.messages ??= {};\n for (const locale of _localeCodes) {\n options.messages[locale] ??= {};\n }\n return options;\n};\n","import { computed, ref, watch } from \"vue\";\nimport { createI18n } from \"vue-i18n\";\nimport { defineNuxtPlugin, prerenderRoutes, useNuxtApp, useRequestEvent, useRequestURL } from \"#imports\";\nimport { localeCodes, normalizedLocales } from \"#build/i18n-options.mjs\";\nimport { loadAndSetLocale, navigate } from \"../utils.js\";\nimport { extendI18n } from \"../routing/i18n.js\";\nimport { getI18nTarget } from \"../compatibility.js\";\nimport { _useLocaleHead, localeHead } from \"../routing/head.js\";\nimport { useLocalePath, useLocaleRoute, useRouteBaseName, useSwitchLocalePath } from \"../composables/index.js\";\nimport { createLocaleConfigs, getDefaultLocaleForDomain, resolveSupportedLocale } from \"../shared/locales.js\";\nimport { setupVueI18nOptions } from \"../shared/vue-i18n.js\";\nimport { createNuxtI18nContext, useLocaleConfigs } from \"../context.js\";\nimport { useI18nDetection, useRuntimeI18n } from \"../shared/utils.js\";\nimport { useDetectors } from \"../shared/detection.js\";\nimport { setupMultiDomainLocales } from \"../routing/domain.js\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin\",\n parallel: __PARALLEL_PLUGIN__,\n async setup(_nuxt) {\n Object.defineProperty(_nuxt.versions, \"nuxtI18n\", { get: () => __NUXT_I18N_VERSION__ });\n const nuxt = useNuxtApp(_nuxt._id);\n const runtimeI18n = useRuntimeI18n(nuxt);\n const preloadedOptions = nuxt.ssrContext?.event?.context?.nuxtI18n?.vueI18nOptions;\n const _defaultLocale = getDefaultLocaleForDomain(useRequestURL({ xForwardedHost: true }).host) || runtimeI18n.defaultLocale || \"\";\n const optionsI18n = preloadedOptions || await setupVueI18nOptions(_defaultLocale);\n const localeConfigs = useLocaleConfigs();\n if (import.meta.server) {\n localeConfigs.value = useRequestEvent().context.nuxtI18n?.localeConfigs || {};\n } else {\n localeConfigs.value ??= createLocaleConfigs(optionsI18n.fallbackLocale);\n }\n if (__MULTI_DOMAIN_LOCALES__) {\n setupMultiDomainLocales(optionsI18n.defaultLocale);\n }\n prerenderRoutes(localeCodes.map((locale) => `${__I18N_SERVER_ROUTE__}/${__I18N_LOCALE_HASHES__[locale]}/${locale}/messages.json`));\n const i18n = createI18n(optionsI18n);\n const detectors = useDetectors(useRequestEvent(nuxt), useI18nDetection(nuxt), nuxt);\n const ctx = createNuxtI18nContext(nuxt, i18n, optionsI18n.defaultLocale);\n nuxt._nuxtI18n = ctx;\n if (__I18N_STRIP_UNUSED__ && import.meta.server) {\n wrapTranslationFunctions(ctx);\n }\n extendI18n(i18n, {\n extendComposer(composer) {\n composer.locales = computed(() => runtimeI18n.locales);\n composer.localeCodes = computed(() => localeCodes);\n const _baseUrl = ref(ctx.getBaseUrl());\n composer.baseUrl = computed(() => _baseUrl.value);\n if (import.meta.client) {\n watch(composer.locale, () => _baseUrl.value = ctx.getBaseUrl());\n }\n composer.strategy = __I18N_STRATEGY__;\n composer.localeProperties = computed(\n () => normalizedLocales.find((l) => l.code === composer.locale.value) || { code: composer.locale.value }\n );\n composer.setLocale = async (locale) => {\n await loadAndSetLocale(nuxt, locale);\n await nuxt.runWithContext(() => navigate(nuxt, nuxt.$router.currentRoute.value, locale));\n };\n composer.loadLocaleMessages = ctx.loadMessages;\n composer.differentDomains = __DIFFERENT_DOMAINS__;\n composer.defaultLocale = optionsI18n.defaultLocale;\n composer.getBrowserLocale = () => import.meta.client ? resolveSupportedLocale(detectors.navigator()) : resolveSupportedLocale(detectors.header());\n composer.getLocaleCookie = () => resolveSupportedLocale(detectors.cookie());\n composer.setLocaleCookie = ctx.setCookieLocale;\n composer.finalizePendingLocaleChange = async () => {\n if (!i18n.__pendingLocale) {\n return;\n }\n await i18n.__resolvePendingLocalePromise?.();\n };\n composer.waitForPendingLocaleChange = async () => {\n await i18n?.__pendingLocalePromise;\n };\n },\n extendComposerInstance(instance, c) {\n const props = [\n [\"locales\", () => c.locales],\n [\"localeCodes\", () => c.localeCodes],\n [\"baseUrl\", () => c.baseUrl],\n [\"strategy\", () => __I18N_STRATEGY__],\n [\"localeProperties\", () => c.localeProperties],\n [\"setLocale\", () => (locale) => Reflect.apply(c.setLocale, c, [locale])],\n [\"loadLocaleMessages\", () => (locale) => Reflect.apply(c.loadLocaleMessages, c, [locale])],\n [\"differentDomains\", () => __DIFFERENT_DOMAINS__],\n [\"defaultLocale\", () => c.defaultLocale],\n [\"getBrowserLocale\", () => () => Reflect.apply(c.getBrowserLocale, c, [])],\n [\"getLocaleCookie\", () => () => Reflect.apply(c.getLocaleCookie, c, [])],\n [\"setLocaleCookie\", () => (locale) => Reflect.apply(c.setLocaleCookie, c, [locale])],\n [\"finalizePendingLocaleChange\", () => () => Reflect.apply(c.finalizePendingLocaleChange, c, [])],\n [\"waitForPendingLocaleChange\", () => () => Reflect.apply(c.waitForPendingLocaleChange, c, [])]\n ];\n for (const [key, get] of props) {\n Object.defineProperty(instance, key, { get });\n }\n }\n });\n nuxt.vueApp.use(i18n);\n Object.defineProperty(nuxt, \"$i18n\", { get: () => getI18nTarget(i18n) });\n nuxt.provide(\"localeHead\", (options) => localeHead(nuxt._nuxtI18n.composableCtx, options));\n nuxt.provide(\"localePath\", useLocalePath(nuxt));\n nuxt.provide(\"localeRoute\", useLocaleRoute(nuxt));\n nuxt.provide(\"routeBaseName\", useRouteBaseName(nuxt));\n nuxt.provide(\"getRouteBaseName\", useRouteBaseName(nuxt));\n nuxt.provide(\"switchLocalePath\", useSwitchLocalePath(nuxt));\n if (__I18N_STRICT_SEO__) {\n nuxt.hook(import.meta.server ? \"app:rendered\" : \"app:mounted\", () => {\n _useLocaleHead(nuxt._nuxtI18n.composableCtx, { dir: true, lang: true, seo: true });\n });\n }\n }\n});\nfunction wrapTranslationFunctions(ctx, serverI18n = useRequestEvent()?.context?.nuxtI18n) {\n if (!serverI18n) {\n return;\n }\n const i18n = ctx.vueI18n.global;\n const originalT = i18n.t.bind(i18n);\n i18n.t = (key, listOrNamed, opts) => {\n const locale = typeof opts === \"object\" && opts?.locale || ctx.getLocale();\n serverI18n?.trackKey(key, locale);\n return originalT(key, listOrNamed, opts);\n };\n const originalTe = i18n.te.bind(i18n);\n i18n.te = (key, locale) => {\n serverI18n?.trackKey(key, locale || ctx.getLocale());\n return originalTe(key, locale);\n };\n const originalTm = i18n.tm.bind(i18n);\n i18n.tm = (key) => {\n serverI18n?.trackKey(key, ctx.getLocale());\n return originalTm(key);\n };\n}\n","import { defineNuxtPlugin, useNuxtApp } from \"#imports\";\nimport { useNuxtI18nContext } from \"../context.js\";\nimport { detectLocale } from \"../utils.js\";\nexport default defineNuxtPlugin({\n name: \"i18n:plugin:ssg-detect\",\n dependsOn: !__I18N_PRELOAD__ ? [\"i18n:plugin\", \"i18n:plugin:route-locale-detect\"] : [\"i18n:plugin\", \"i18n:plugin:route-locale-detect\", \"i18n:plugin:preload\"],\n enforce: \"post\",\n setup(_nuxt) {\n if (!__IS_SSG__ || !__I18N_ROUTING__) {\n return;\n }\n const nuxt = useNuxtApp(_nuxt._id);\n const ctx = useNuxtI18nContext(nuxt);\n nuxt.hook(\"app:mounted\", async () => {\n const detected = detectLocale(nuxt, nuxt.$router.currentRoute.value);\n await nuxt.runWithContext(() => nuxt.$i18n.setLocale(detected));\n ctx.initial = false;\n });\n }\n});\n","import payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M from \"/app/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU from \"/app/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw from \"/app/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms from \"/app/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs from \"/app/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 from \"/app/.nuxt/components.plugin.mjs\";\nimport switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/switch-locale-path-ssr.js\";\nimport route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/route-locale-detect.js\";\nimport preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24 from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/preload.js\";\nimport i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/i18n.js\";\nimport ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs from \"/app/node_modules/@nuxtjs/i18n/dist/runtime/plugins/ssg-detect.js\";\nexport default [\n payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M,\n unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU,\n router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw,\n revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms,\n plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs,\n components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4,\n switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw,\n route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U,\n preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24,\n i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM,\n ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n default: defineAsyncComponent(() => import(\"/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n\n\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"version":3} \ No newline at end of file diff --git a/frontend_admin/.nuxt/dist/server/styles.mjs b/frontend_admin/.nuxt/dist/server/styles.mjs index dd14e3c..976d846 100644 --- a/frontend_admin/.nuxt/dist/server/styles.mjs +++ b/frontend_admin/.nuxt/dist/server/styles.mjs @@ -1,6 +1,6 @@ const interopDefault = r => r.default || r || [] export default { - "node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.BhrIOCGw.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.w3HlJ-9O.mjs').then(interopDefault), "app.vue": () => import('./_nuxt/app-styles.BKebClGy.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-404.vue": () => import('./_nuxt/error-404-styles.CiJjK6WX.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-500.vue": () => import('./_nuxt/error-500-styles.ulHNpcF1.mjs').then(interopDefault) diff --git a/frontend_admin/.nuxt/i18n-route-resources.mjs b/frontend_admin/.nuxt/i18n-route-resources.mjs new file mode 100644 index 0000000..9cb5ac1 --- /dev/null +++ b/frontend_admin/.nuxt/i18n-route-resources.mjs @@ -0,0 +1,4 @@ +// Generated by @nuxtjs/i18n +export const pathToI18nConfig = {}; +export const i18nPathToPath = {} +export const disabledI18nPathToPath = {}; \ No newline at end of file diff --git a/frontend_admin/.nuxt/imports.d.ts b/frontend_admin/.nuxt/imports.d.ts index 6d9f407..9df6e11 100644 --- a/frontend_admin/.nuxt/imports.d.ts +++ b/frontend_admin/.nuxt/imports.d.ts @@ -28,8 +28,12 @@ export { onBeforeRouteLeave, onBeforeRouteUpdate, useLink } from 'vue-router'; export { withCtx, withDirectives, withKeys, withMemo, withModifiers, withScopeId, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, computed, customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref, watch, watchEffect, watchPostEffect, watchSyncEffect, onWatcherCleanup, isShallow, effect, effectScope, getCurrentScope, onScopeDispose, defineComponent, defineAsyncComponent, resolveComponent, getCurrentInstance, h, inject, hasInjectionContext, nextTick, provide, toValue, useModel, useAttrs, useCssModule, useSlots, useTransitionState, useId, useTemplateRef, useShadowRoot, useCssVars, Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'; export { requestIdleCallback, cancelIdleCallback } from '#app/compat/idle-callback'; export { setInterval } from '#app/compat/interval'; +export { useRouteBaseName, useLocalePath, useLocaleRoute, useSwitchLocalePath, useLocaleHead, useBrowserLocale, useCookieLocale, useSetI18nParams, useI18nPreloadKeys, defineI18nRoute, defineI18nLocale, defineI18nConfig } from '../node_modules/@nuxtjs/i18n/dist/runtime/composables/index'; export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables'; export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration'; +export { useFormatter } from '../composables/useFormatter'; export { useAuthStore, UserProfile } from '../stores/auth'; +export { useRegionStore, RegionConfig } from '../stores/region'; export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../node_modules/@pinia/nuxt/dist/runtime/composables'; +export { useI18n } from 'vue-i18n'; export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools'; \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/latest.json b/frontend_admin/.nuxt/manifest/latest.json index 9c58b77..32b6852 100644 --- a/frontend_admin/.nuxt/manifest/latest.json +++ b/frontend_admin/.nuxt/manifest/latest.json @@ -1 +1 @@ -{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021} \ No newline at end of file +{"id":"dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233","timestamp":1782345679846} \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json b/frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json deleted file mode 100644 index baae62d..0000000 --- a/frontend_admin/.nuxt/manifest/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json b/frontend_admin/.nuxt/manifest/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json new file mode 100644 index 0000000..5fb889c --- /dev/null +++ b/frontend_admin/.nuxt/manifest/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json @@ -0,0 +1 @@ +{"id":"dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233","timestamp":1782345679846,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/manifest/meta/dev.json b/frontend_admin/.nuxt/manifest/meta/dev.json index f5503bc..8a6a5b5 100644 --- a/frontend_admin/.nuxt/manifest/meta/dev.json +++ b/frontend_admin/.nuxt/manifest/meta/dev.json @@ -1 +1 @@ -{"id":"dev","timestamp":1782300411347,"prerendered":[]} \ No newline at end of file +{"id":"dev","timestamp":1782345680189,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.nuxt/nitro.json b/frontend_admin/.nuxt/nitro.json index ef7702f..a461f6c 100644 --- a/frontend_admin/.nuxt/nitro.json +++ b/frontend_admin/.nuxt/nitro.json @@ -1,5 +1,5 @@ { - "date": "2026-06-24T11:26:57.278Z", + "date": "2026-06-25T01:04:57.360Z", "preset": "nitro-dev", "framework": { "name": "nuxt", @@ -11,7 +11,7 @@ "dev": { "pid": 19, "workerAddress": { - "socketPath": "\u0000nitro-worker-19-7-7-7587.sock" + "socketPath": "\u0000nitro-worker-19-20-20-8127.sock" } } } \ No newline at end of file diff --git a/frontend_admin/.nuxt/nuxt.d.ts b/frontend_admin/.nuxt/nuxt.d.ts index 746c708..9986ffb 100644 --- a/frontend_admin/.nuxt/nuxt.d.ts +++ b/frontend_admin/.nuxt/nuxt.d.ts @@ -1,7 +1,8 @@ /// -/// -/// +/// /// +/// +/// /// /// /// @@ -13,6 +14,7 @@ /// /// /// +/// /// /// /// diff --git a/frontend_admin/.nuxt/tailwind/postcss.mjs b/frontend_admin/.nuxt/tailwind/postcss.mjs index 92d07e8..b0c6af4 100644 --- a/frontend_admin/.nuxt/tailwind/postcss.mjs +++ b/frontend_admin/.nuxt/tailwind/postcss.mjs @@ -1,4 +1,4 @@ -// generated by the @nuxtjs/tailwindcss module at 6/24/2026, 11:26:52 AM +// generated by the @nuxtjs/tailwindcss module at 6/25/2026, 1:04:56 AM import "@nuxtjs/tailwindcss/config-ctx" import configMerger from "@nuxtjs/tailwindcss/merger"; diff --git a/frontend_admin/.nuxt/tsconfig.json b/frontend_admin/.nuxt/tsconfig.json index 7d16e88..8f2fae7 100644 --- a/frontend_admin/.nuxt/tsconfig.json +++ b/frontend_admin/.nuxt/tsconfig.json @@ -19,6 +19,34 @@ "nuxt": [ "../node_modules/nuxt" ], + "vue-i18n": [ + "../node_modules/vue-i18n/dist/vue-i18n", + "../node_modules/vue-i18n" + ], + "@intlify/shared": [ + "../node_modules/@intlify/shared/dist/shared", + "../node_modules/@intlify/shared" + ], + "@intlify/core": [ + "../node_modules/@intlify/core/dist/core.node.mjs", + "../node_modules/@intlify/core" + ], + "@intlify/core-base": [ + "../node_modules/@intlify/core-base/dist/core-base", + "../node_modules/@intlify/core-base" + ], + "@intlify/utils": [ + "../node_modules/@intlify/utils/dist/index", + "../node_modules/@intlify/utils" + ], + "@intlify/utils/h3": [ + "../node_modules/@intlify/utils/dist/h3", + "../node_modules/@intlify/utils" + ], + "@intlify/message-compiler": [ + "../node_modules/@intlify/message-compiler/dist/message-compiler", + "../node_modules/@intlify/message-compiler" + ], "nitropack": [ "../node_modules/nitropack" ], @@ -106,6 +134,18 @@ "vue-demi": [ "../node_modules/nuxt/dist/app/compat/vue-demi" ], + "#i18n": [ + "../node_modules/@nuxtjs/i18n/dist/runtime/composables/index" + ], + "#i18n-kit": [ + "../node_modules/@nuxtjs/i18n/dist/runtime/kit" + ], + "#i18n-kit/*": [ + "../node_modules/@nuxtjs/i18n/dist/runtime/kit/*" + ], + "#internal-i18n-types": [ + "../node_modules/@nuxtjs/i18n/dist/types.d.mts" + ], "#vue-router": [ "../node_modules/vue-router" ], @@ -141,7 +181,7 @@ "noUncheckedIndexedAccess": false, "forceConsistentCasingInFileNames": true, "noImplicitOverride": true, - "module": "ESNext", + "module": "preserve", "noEmit": true, "lib": [ "ESNext", @@ -158,6 +198,7 @@ "allowSyntheticDefaultImports": true }, "include": [ + "../i18n/**/*", "../**/*", "../.config/nuxt.*", "./nuxt.d.ts", diff --git a/frontend_admin/.nuxt/tsconfig.server.json b/frontend_admin/.nuxt/tsconfig.server.json index 004d117..f3ebaa2 100644 --- a/frontend_admin/.nuxt/tsconfig.server.json +++ b/frontend_admin/.nuxt/tsconfig.server.json @@ -47,6 +47,27 @@ "nuxt": [ "../node_modules/nuxt" ], + "vue-i18n": [ + "../node_modules/vue-i18n" + ], + "@intlify/shared": [ + "../node_modules/@intlify/shared" + ], + "@intlify/core": [ + "../node_modules/@intlify/core" + ], + "@intlify/core-base": [ + "../node_modules/@intlify/core-base" + ], + "@intlify/utils": [ + "../node_modules/@intlify/utils" + ], + "@intlify/utils/h3": [ + "../node_modules/@intlify/utils" + ], + "@intlify/message-compiler": [ + "../node_modules/@intlify/message-compiler" + ], "nitropack": [ "../node_modules/nitropack" ], @@ -110,6 +131,18 @@ "#internal/nuxt/paths": [ "../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths" ], + "#i18n": [ + "../node_modules/@nuxtjs/i18n/dist/runtime/composables/index-server" + ], + "#i18n-kit": [ + "../node_modules/@nuxtjs/i18n/dist/runtime/kit" + ], + "#i18n-kit/*": [ + "../node_modules/@nuxtjs/i18n/dist/runtime/kit/*" + ], + "#internal-i18n-types": [ + "../node_modules/@nuxtjs/i18n/dist/types" + ], "#unhead/composables": [ "../node_modules/nuxt/dist/head/runtime/composables/v3" ] @@ -136,6 +169,7 @@ "../node_modules/nuxt/node_modules", "../node_modules/@nuxtjs/tailwindcss/node_modules", "../node_modules/@pinia/nuxt/node_modules", + "../node_modules/@nuxtjs/i18n/node_modules", "../node_modules/@nuxt/devtools/node_modules", "../node_modules/@nuxt/telemetry/node_modules", "../dist" diff --git a/frontend_admin/.nuxt/types/build.d.ts b/frontend_admin/.nuxt/types/build.d.ts index a1cdae5..e610844 100644 --- a/frontend_admin/.nuxt/types/build.d.ts +++ b/frontend_admin/.nuxt/types/build.d.ts @@ -12,6 +12,7 @@ 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/i18n-options.mjs"; declare module "#build/devtools/settings.mjs"; declare module "#build/runtime.vue-devtools-client.mO0jQZn70aHSC8aSferkiM7YJfzA1Me1TLPRySMCbq4.js"; declare module "#build/routes.mjs"; diff --git a/frontend_admin/.nuxt/types/components.d.ts b/frontend_admin/.nuxt/types/components.d.ts index bdded17..4a96657 100644 --- a/frontend_admin/.nuxt/types/components.d.ts +++ b/frontend_admin/.nuxt/types/components.d.ts @@ -26,6 +26,8 @@ interface _GlobalComponents { NuxtRouteAnnouncer: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default'] NuxtImg: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg'] NuxtPicture: typeof import("../../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture'] + NuxtLinkLocale: typeof import("../../node_modules/@nuxtjs/i18n/dist/runtime/components/NuxtLinkLocale")['default'] + SwitchLocalePathLink: typeof import("../../node_modules/@nuxtjs/i18n/dist/runtime/components/SwitchLocalePathLink")['default'] NuxtPage: typeof import("../../node_modules/nuxt/dist/pages/runtime/page")['default'] NoScript: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['NoScript'] Link: typeof import("../../node_modules/nuxt/dist/head/runtime/components")['Link'] @@ -49,6 +51,8 @@ interface _GlobalComponents { LazyNuxtRouteAnnouncer: LazyComponent LazyNuxtImg: LazyComponent LazyNuxtPicture: LazyComponent + LazyNuxtLinkLocale: LazyComponent + LazySwitchLocalePathLink: LazyComponent LazyNuxtPage: LazyComponent LazyNoScript: LazyComponent LazyLink: LazyComponent diff --git a/frontend_admin/.nuxt/types/i18n-plugin.d.ts b/frontend_admin/.nuxt/types/i18n-plugin.d.ts new file mode 100644 index 0000000..2266889 --- /dev/null +++ b/frontend_admin/.nuxt/types/i18n-plugin.d.ts @@ -0,0 +1,115 @@ +// Generated by @nuxtjs/i18n +import type { Composer } from 'vue-i18n' +import type { ComposerCustomProperties } from '../../node_modules/@nuxtjs/i18n/dist/runtime/types.ts' +import type { Strategies, Directions, LocaleObject } from '../../node_modules/@nuxtjs/i18n/dist/types.d.mts' +import type { I18nRoute } from '#i18n' + +declare module 'vue-i18n' { + interface ComposerCustom extends ComposerCustomProperties {} + interface ExportedGlobalComposer extends ComposerCustomProperties {} + interface VueI18n extends ComposerCustomProperties {} +} + +declare module '@intlify/core-base' { + // generated based on configured locales + interface GeneratedTypeConfig { + locale: "hu" | "en" + legacy: false + } +} + +interface I18nMeta { + i18n?: I18nRoute | false +} + +declare module '#app' { + interface NuxtApp { + $i18n: Composer + } + interface PageMeta extends I18nMeta {} +} + + +declare module 'vue-router' { + interface RouteMeta extends I18nMeta {} +} + + +declare module 'vue-router' { + export type RouteMapI18n = + TypesConfig extends Record<'RouteNamedMapI18n', infer RouteNamedMap> ? RouteNamedMap : RouteMapGeneric + + // Prefer named resolution for i18n + export type RouteLocationNamedI18n = + | Name + | Omit & { path?: string } + /** + * Note: disabled route path string autocompletion, this can break depending on `strategy` + * this can be enabled again after route resolve has been improved. + */ + // | RouteLocationAsStringI18n + // | RouteLocationAsPathI18n + + export type RouteLocationRawI18n = + RouteMapGeneric extends RouteMapI18n + ? RouteLocationAsStringI18n | RouteLocationAsRelativeGeneric | RouteLocationAsPathGeneric + : + | _LiteralUnion[Name], string> + | RouteLocationAsRelativeTypedList[Name] + + export type RouteLocationResolvedI18n = + RouteMapGeneric extends RouteMapI18n + ? RouteLocationResolvedGeneric + : RouteLocationResolvedTypedList[Name] + + export interface RouteLocationNormalizedLoadedTypedI18n< + RouteMapI18n extends RouteMapGeneric = RouteMapGeneric, + Name extends keyof RouteMapI18n = keyof RouteMapI18n + > extends RouteLocationNormalizedLoadedGeneric { + name: Extract + params: RouteMapI18n[Name]['params'] + } + export type RouteLocationNormalizedLoadedTypedListI18n = { + [N in keyof RouteMapOriginal]: RouteLocationNormalizedLoadedTypedI18n + } + export type RouteLocationNormalizedLoadedI18n = + RouteMapGeneric extends RouteMapI18n + ? RouteLocationNormalizedLoadedGeneric + : RouteLocationNormalizedLoadedTypedListI18n[Name] + + export type RouteLocationAsStringI18n = + RouteMapGeneric extends RouteMapI18n + ? string + : _LiteralUnion[Name], string> + + export type RouteLocationAsRelativeI18n = + RouteMapGeneric extends RouteMapI18n + ? RouteLocationAsRelativeGeneric + : RouteLocationAsRelativeTypedList[Name] + + export type RouteLocationAsPathI18n = + RouteMapGeneric extends RouteMapI18n ? RouteLocationAsPathGeneric : RouteLocationAsPathTypedList[Name] + + /** + * Helper to generate a type safe version of the {@link RouteLocationAsRelative} type. + */ + export interface RouteLocationAsRelativeTypedI18n< + RouteMapI18n extends RouteMapGeneric = RouteMapGeneric, + Name extends keyof RouteMapI18n = keyof RouteMapI18n + > extends RouteLocationAsRelativeGeneric { + name?: Extract + params?: RouteMapI18n[Name]['paramsRaw'] + } +} + + +declare global { + var $t: (Composer)['t'] + var $rt: (Composer)['rt'] + var $n: (Composer)['n'] + var $d: (Composer)['d'] + var $tm: (Composer)['tm'] + var $te: (Composer)['te'] +} + +export {} \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/imports.d.ts b/frontend_admin/.nuxt/types/imports.d.ts index 11477d9..19d5638 100644 --- a/frontend_admin/.nuxt/types/imports.d.ts +++ b/frontend_admin/.nuxt/types/imports.d.ts @@ -15,6 +15,9 @@ declare global { const defineAppConfig: typeof import('../../node_modules/nuxt/dist/app/nuxt').defineAppConfig const defineAsyncComponent: typeof import('vue').defineAsyncComponent const defineComponent: typeof import('vue').defineComponent + const defineI18nConfig: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').defineI18nConfig + const defineI18nLocale: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').defineI18nLocale + const defineI18nRoute: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').defineI18nRoute const defineLazyHydrationComponent: typeof import('../../node_modules/nuxt/dist/app/composables/lazy-hydration').defineLazyHydrationComponent const defineNuxtComponent: typeof import('../../node_modules/nuxt/dist/app/composables/component').defineNuxtComponent const defineNuxtLink: typeof import('../../node_modules/nuxt/dist/app/components/nuxt-link').defineNuxtLink @@ -101,25 +104,34 @@ declare global { const useAsyncData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useAsyncData const useAttrs: typeof import('vue').useAttrs const useAuthStore: typeof import('../../stores/auth').useAuthStore + const useBrowserLocale: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useBrowserLocale const useCookie: typeof import('../../node_modules/nuxt/dist/app/composables/cookie').useCookie + const useCookieLocale: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useCookieLocale const useCssModule: typeof import('vue').useCssModule const useCssVars: typeof import('vue').useCssVars const useError: typeof import('../../node_modules/nuxt/dist/app/composables/error').useError const useFetch: typeof import('../../node_modules/nuxt/dist/app/composables/fetch').useFetch + const useFormatter: typeof import('../../composables/useFormatter').useFormatter const useHead: typeof import('../../node_modules/nuxt/dist/app/composables/head').useHead const useHeadSafe: typeof import('../../node_modules/nuxt/dist/app/composables/head').useHeadSafe const useHydration: typeof import('../../node_modules/nuxt/dist/app/composables/hydrate').useHydration + const useI18n: typeof import('../../node_modules/vue-i18n/dist/vue-i18n').useI18n + const useI18nPreloadKeys: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useI18nPreloadKeys const useId: typeof import('vue').useId const useLazyAsyncData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useLazyAsyncData const useLazyFetch: typeof import('../../node_modules/nuxt/dist/app/composables/fetch').useLazyFetch const useLink: typeof import('vue-router').useLink const useLoadingIndicator: typeof import('../../node_modules/nuxt/dist/app/composables/loading-indicator').useLoadingIndicator + const useLocaleHead: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useLocaleHead + const useLocalePath: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useLocalePath + const useLocaleRoute: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useLocaleRoute const useModel: typeof import('vue').useModel const useNuxtApp: typeof import('../../node_modules/nuxt/dist/app/nuxt').useNuxtApp const useNuxtData: typeof import('../../node_modules/nuxt/dist/app/composables/asyncData').useNuxtData const useNuxtDevTools: typeof import('../../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools').useNuxtDevTools const usePinia: typeof import('../../node_modules/@pinia/nuxt/dist/runtime/composables').usePinia const usePreviewMode: typeof import('../../node_modules/nuxt/dist/app/composables/preview').usePreviewMode + const useRegionStore: typeof import('../../stores/region').useRegionStore const useRequestEvent: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestEvent const useRequestFetch: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestFetch const useRequestHeader: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useRequestHeader @@ -128,6 +140,7 @@ declare global { const useResponseHeader: typeof import('../../node_modules/nuxt/dist/app/composables/ssr').useResponseHeader const useRoute: typeof import('../../node_modules/nuxt/dist/app/composables/router').useRoute const useRouteAnnouncer: typeof import('../../node_modules/nuxt/dist/app/composables/route-announcer').useRouteAnnouncer + const useRouteBaseName: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useRouteBaseName const useRouter: typeof import('../../node_modules/nuxt/dist/app/composables/router').useRouter const useRuntimeConfig: typeof import('../../node_modules/nuxt/dist/app/nuxt').useRuntimeConfig const useRuntimeHook: typeof import('../../node_modules/nuxt/dist/app/composables/runtime-hook').useRuntimeHook @@ -178,9 +191,11 @@ declare global { const useServerHead: typeof import('../../node_modules/nuxt/dist/app/composables/head').useServerHead const useServerHeadSafe: typeof import('../../node_modules/nuxt/dist/app/composables/head').useServerHeadSafe const useServerSeoMeta: typeof import('../../node_modules/nuxt/dist/app/composables/head').useServerSeoMeta + const useSetI18nParams: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useSetI18nParams const useShadowRoot: typeof import('vue').useShadowRoot const useSlots: typeof import('vue').useSlots const useState: typeof import('../../node_modules/nuxt/dist/app/composables/state').useState + const useSwitchLocalePath: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/index').useSwitchLocalePath const useTemplateRef: typeof import('vue').useTemplateRef const useTransitionState: typeof import('vue').useTransitionState const watch: typeof import('vue').watch @@ -202,6 +217,9 @@ declare global { // @ts-ignore export type { UserProfile } from '../../stores/auth' import('../../stores/auth') + // @ts-ignore + export type { RegionConfig } from '../../stores/region' + import('../../stores/region') } // for vue template auto import import { UnwrapRef } from 'vue' @@ -221,6 +239,9 @@ declare module 'vue' { readonly defineAppConfig: UnwrapRef readonly defineAsyncComponent: UnwrapRef readonly defineComponent: UnwrapRef + readonly defineI18nConfig: UnwrapRef + readonly defineI18nLocale: UnwrapRef + readonly defineI18nRoute: UnwrapRef readonly defineLazyHydrationComponent: UnwrapRef readonly defineNuxtComponent: UnwrapRef readonly defineNuxtLink: UnwrapRef @@ -307,25 +328,34 @@ declare module 'vue' { readonly useAsyncData: UnwrapRef readonly useAttrs: UnwrapRef readonly useAuthStore: UnwrapRef + readonly useBrowserLocale: UnwrapRef readonly useCookie: UnwrapRef + readonly useCookieLocale: UnwrapRef readonly useCssModule: UnwrapRef readonly useCssVars: UnwrapRef readonly useError: UnwrapRef readonly useFetch: UnwrapRef + readonly useFormatter: UnwrapRef readonly useHead: UnwrapRef readonly useHeadSafe: UnwrapRef readonly useHydration: UnwrapRef + readonly useI18n: UnwrapRef + readonly useI18nPreloadKeys: UnwrapRef readonly useId: UnwrapRef readonly useLazyAsyncData: UnwrapRef readonly useLazyFetch: UnwrapRef readonly useLink: UnwrapRef readonly useLoadingIndicator: UnwrapRef + readonly useLocaleHead: UnwrapRef + readonly useLocalePath: UnwrapRef + readonly useLocaleRoute: UnwrapRef readonly useModel: UnwrapRef readonly useNuxtApp: UnwrapRef readonly useNuxtData: UnwrapRef readonly useNuxtDevTools: UnwrapRef readonly usePinia: UnwrapRef readonly usePreviewMode: UnwrapRef + readonly useRegionStore: UnwrapRef readonly useRequestEvent: UnwrapRef readonly useRequestFetch: UnwrapRef readonly useRequestHeader: UnwrapRef @@ -334,6 +364,7 @@ declare module 'vue' { readonly useResponseHeader: UnwrapRef readonly useRoute: UnwrapRef readonly useRouteAnnouncer: UnwrapRef + readonly useRouteBaseName: UnwrapRef readonly useRouter: UnwrapRef readonly useRuntimeConfig: UnwrapRef readonly useRuntimeHook: UnwrapRef @@ -384,9 +415,11 @@ declare module 'vue' { readonly useServerHead: UnwrapRef readonly useServerHeadSafe: UnwrapRef readonly useServerSeoMeta: UnwrapRef + readonly useSetI18nParams: UnwrapRef readonly useShadowRoot: UnwrapRef readonly useSlots: UnwrapRef readonly useState: UnwrapRef + readonly useSwitchLocalePath: UnwrapRef readonly useTemplateRef: UnwrapRef readonly useTransitionState: UnwrapRef readonly watch: UnwrapRef diff --git a/frontend_admin/.nuxt/types/layouts.d.ts b/frontend_admin/.nuxt/types/layouts.d.ts index e0087ca..df61405 100644 --- a/frontend_admin/.nuxt/types/layouts.d.ts +++ b/frontend_admin/.nuxt/types/layouts.d.ts @@ -6,6 +6,7 @@ type ComponentProps = T extends new(...args: any) => { $props: infer P } ? No declare module 'nuxt/app' { interface NuxtLayouts { + blank: ComponentProps, default: ComponentProps, } export type LayoutKey = keyof NuxtLayouts extends never ? string : keyof NuxtLayouts diff --git a/frontend_admin/.nuxt/types/nitro-imports.d.ts b/frontend_admin/.nuxt/types/nitro-imports.d.ts index 5ab5195..9d9c622 100644 --- a/frontend_admin/.nuxt/types/nitro-imports.d.ts +++ b/frontend_admin/.nuxt/types/nitro-imports.d.ts @@ -26,6 +26,9 @@ declare global { const defineCachedEventHandler: typeof import('../../node_modules/nitropack/dist/runtime/internal/cache').defineCachedEventHandler const defineCachedFunction: typeof import('../../node_modules/nitropack/dist/runtime/internal/cache').defineCachedFunction const defineEventHandler: typeof import('../../node_modules/h3').defineEventHandler + const defineI18nConfig: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/shared').defineI18nConfig + const defineI18nLocale: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/shared').defineI18nLocale + const defineI18nLocaleDetector: typeof import('../../node_modules/@nuxtjs/i18n/dist/runtime/composables/server').defineI18nLocaleDetector const defineLazyEventHandler: typeof import('../../node_modules/h3').defineLazyEventHandler const defineNitroErrorHandler: typeof import('../../node_modules/nitropack/dist/runtime/internal/error/utils').defineNitroErrorHandler const defineNitroPlugin: typeof import('../../node_modules/nitropack/dist/runtime/internal/plugin').defineNitroPlugin @@ -46,11 +49,18 @@ declare global { const fromPlainHandler: typeof import('../../node_modules/h3').fromPlainHandler const fromWebHandler: typeof import('../../node_modules/h3').fromWebHandler const getCookie: typeof import('../../node_modules/h3').getCookie + const getCookieLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').getCookieLocale const getHeader: typeof import('../../node_modules/h3').getHeader + const getHeaderLanguage: typeof import('../../node_modules/@intlify/utils/dist/h3').getHeaderLanguage + const getHeaderLanguages: typeof import('../../node_modules/@intlify/utils/dist/h3').getHeaderLanguages + const getHeaderLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').getHeaderLocale + const getHeaderLocales: typeof import('../../node_modules/@intlify/utils/dist/h3').getHeaderLocales const getHeaders: typeof import('../../node_modules/h3').getHeaders const getMethod: typeof import('../../node_modules/h3').getMethod + const getPathLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').getPathLocale const getProxyRequestHeaders: typeof import('../../node_modules/h3').getProxyRequestHeaders const getQuery: typeof import('../../node_modules/h3').getQuery + const getQueryLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').getQueryLocale const getRequestFingerprint: typeof import('../../node_modules/h3').getRequestFingerprint const getRequestHeader: typeof import('../../node_modules/h3').getRequestHeader const getRequestHeaders: typeof import('../../node_modules/h3').getRequestHeaders @@ -105,6 +115,7 @@ declare global { const sendWebResponse: typeof import('../../node_modules/h3').sendWebResponse const serveStatic: typeof import('../../node_modules/h3').serveStatic const setCookie: typeof import('../../node_modules/h3').setCookie + const setCookieLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').setCookieLocale const setHeader: typeof import('../../node_modules/h3').setHeader const setHeaders: typeof import('../../node_modules/h3').setHeaders const setResponseHeader: typeof import('../../node_modules/h3').setResponseHeader @@ -116,6 +127,11 @@ declare global { const toPlainHandler: typeof import('../../node_modules/h3').toPlainHandler const toWebHandler: typeof import('../../node_modules/h3').toWebHandler const toWebRequest: typeof import('../../node_modules/h3').toWebRequest + const tryCookieLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').tryCookieLocale + const tryHeaderLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').tryHeaderLocale + const tryHeaderLocales: typeof import('../../node_modules/@intlify/utils/dist/h3').tryHeaderLocales + const tryPathLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').tryPathLocale + const tryQueryLocale: typeof import('../../node_modules/@intlify/utils/dist/h3').tryQueryLocale const unsealSession: typeof import('../../node_modules/h3').unsealSession const updateSession: typeof import('../../node_modules/h3').updateSession const useAppConfig: typeof import('../../node_modules/nitropack/dist/runtime/internal/config').useAppConfig @@ -125,6 +141,7 @@ declare global { const useRuntimeConfig: typeof import('../../node_modules/nitropack/dist/runtime/internal/config').useRuntimeConfig const useSession: typeof import('../../node_modules/h3').useSession const useStorage: typeof import('../../node_modules/nitropack/dist/runtime/internal/storage').useStorage + const useTranslation: typeof import('../../node_modules/@intlify/h3').useTranslation const writeEarlyHints: typeof import('../../node_modules/h3').writeEarlyHints } // for type re-export @@ -146,4 +163,8 @@ export { useEvent } from 'nitropack/runtime/internal/context'; export { defineTask, runTask } from 'nitropack/runtime/internal/task'; export { defineNitroErrorHandler } from 'nitropack/runtime/internal/error/utils'; export { buildAssetsURL as __buildAssetsURL, publicAssetsURL as __publicAssetsURL } from '/app/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths'; -export { defineAppConfig } from '/app/node_modules/@nuxt/nitro-server/dist/runtime/utils/config'; \ No newline at end of file +export { defineAppConfig } from '/app/node_modules/@nuxt/nitro-server/dist/runtime/utils/config'; +export { defineI18nLocale, defineI18nConfig } from '/app/node_modules/@nuxtjs/i18n/dist/runtime/composables/shared'; +export { defineI18nLocaleDetector } from '/app/node_modules/@nuxtjs/i18n/dist/runtime/composables/server'; +export { useTranslation } from '@intlify/h3'; +export { getCookieLocale, getHeaderLanguage, getHeaderLanguages, getHeaderLocale, getHeaderLocales, getPathLocale, getQueryLocale, setCookieLocale, tryCookieLocale, tryHeaderLocale, tryHeaderLocales, tryPathLocale, tryQueryLocale } from '@intlify/utils/h3'; \ No newline at end of file diff --git a/frontend_admin/.nuxt/types/nitro-layouts.d.ts b/frontend_admin/.nuxt/types/nitro-layouts.d.ts index 80f48fe..67fd595 100644 --- a/frontend_admin/.nuxt/types/nitro-layouts.d.ts +++ b/frontend_admin/.nuxt/types/nitro-layouts.d.ts @@ -1,4 +1,4 @@ -export type LayoutKey = "default" +export type LayoutKey = "blank" | "default" declare module 'nitropack' { interface NitroRouteConfig { appLayout?: LayoutKey | false diff --git a/frontend_admin/.nuxt/types/nitro-routes.d.ts b/frontend_admin/.nuxt/types/nitro-routes.d.ts index e49e74c..cfda845 100644 --- a/frontend_admin/.nuxt/types/nitro-routes.d.ts +++ b/frontend_admin/.nuxt/types/nitro-routes.d.ts @@ -6,6 +6,9 @@ declare module "nitropack/types" { '/__nuxt_error': { 'default': Simplify>>> } + '/_i18n/:hash/:locale/messages.json': { + 'default': Simplify>>> + } '/__nuxt_island/**': { 'default': Simplify>>> } diff --git a/frontend_admin/.nuxt/types/plugins.d.ts b/frontend_admin/.nuxt/types/plugins.d.ts index f431c4b..c6b276d 100644 --- a/frontend_admin/.nuxt/types/plugins.d.ts +++ b/frontend_admin/.nuxt/types/plugins.d.ts @@ -22,14 +22,20 @@ type NuxtAppInjections = InjectionType & InjectionType & InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & + InjectionType & InjectionType & - InjectionType + InjectionType & + InjectionType declare module '#app' { interface NuxtApp extends NuxtAppInjections { } interface NuxtAppLiterals { - pluginName: 'vue-devtools-client' | 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed' + pluginName: 'vue-devtools-client' | 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'i18n:plugin:switch-locale-path-ssr' | 'i18n:plugin:route-locale-detect' | 'i18n:plugin:preload' | 'i18n:dev' | 'i18n:plugin' | 'nuxt:checkIfLayoutUsed' | 'i18n:plugin:ssg-detect' } } diff --git a/frontend_admin/.nuxt/types/schema.d.ts b/frontend_admin/.nuxt/types/schema.d.ts index 044612a..2468b22 100644 --- a/frontend_admin/.nuxt/types/schema.d.ts +++ b/frontend_admin/.nuxt/types/schema.d.ts @@ -16,12 +16,83 @@ import { NuxtModule, ModuleDependencyMeta } from '@nuxt/schema' }, } interface SharedPublicRuntimeConfig { + i18n: { + baseUrl: string, + defaultLocale: string, + + rootRedirect: any, + + redirectStatusCode: number, + + skipSettingLocaleOnNavigate: boolean, + + locales: Array<{ + + }>, + + detectBrowserLanguage: { + alwaysRedirect: boolean, + + cookieCrossOrigin: boolean, + + cookieDomain: any, + + cookieKey: string, + + cookieSecure: boolean, + + fallbackLocale: string, + + redirectOn: string, + + useCookie: boolean, + }, + + experimental: { + localeDetector: string, + + typedPages: boolean, + + typedOptionsAndMessages: boolean, + + alternateLinkCanonicalQueries: boolean, + + devCache: boolean, + + cacheLifetime: any, + + stripMessagesPayload: boolean, + + preload: boolean, + + strictSeo: boolean, + + nitroContextDetection: boolean, + + httpCacheDuration: number, + + compactRoutes: boolean, + + prerenderMessages: boolean, + }, + + domainLocales: { + hu: { + domain: string, + }, + + en: { + domain: string, + }, + }, + }, } declare module '@nuxt/schema' { interface ModuleDependencies { ["@nuxtjs/tailwindcss"]?: ModuleDependencyMeta ? O | false : Record> | false ["pinia"]?: ModuleDependencyMeta ? O | false : Record> | false + ["@nuxtjs/i18n"]?: ModuleDependencyMeta ? O | false : Record> | false ["@nuxt/devtools"]?: ModuleDependencyMeta ? O | false : Record> | false ["@nuxt/telemetry"]?: ModuleDependencyMeta ? O | false : Record> | false } @@ -34,6 +105,10 @@ declare module '@nuxt/schema' { * Configuration for `@pinia/nuxt` */ ["pinia"]: typeof import("@pinia/nuxt").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@nuxtjs/i18n` + */ + ["i18n"]: typeof import("@nuxtjs/i18n").default extends NuxtModule ? O | false : Record | false /** * Configuration for `@nuxt/devtools` */ @@ -52,6 +127,10 @@ declare module '@nuxt/schema' { * Configuration for `@pinia/nuxt` */ ["pinia"]?: typeof import("@pinia/nuxt").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@nuxtjs/i18n` + */ + ["i18n"]?: typeof import("@nuxtjs/i18n").default extends NuxtModule ? Partial | false : Record | false /** * Configuration for `@nuxt/devtools` */ @@ -60,7 +139,7 @@ declare module '@nuxt/schema' { * Configuration for `@nuxt/telemetry` */ ["telemetry"]?: typeof import("@nuxt/telemetry").default extends NuxtModule ? Partial | false : Record | false - modules?: (undefined | null | false | NuxtModule | string | [NuxtModule | string, Record] | ["@nuxtjs/tailwindcss", Exclude] | ["@pinia/nuxt", Exclude] | ["@nuxt/devtools", Exclude] | ["@nuxt/telemetry", Exclude])[], + modules?: (undefined | null | false | NuxtModule | string | [NuxtModule | string, Record] | ["@nuxtjs/tailwindcss", Exclude] | ["@pinia/nuxt", Exclude] | ["@nuxtjs/i18n", Exclude] | ["@nuxt/devtools", Exclude] | ["@nuxt/telemetry", Exclude])[], } interface RuntimeConfig extends UserRuntimeConfig {} interface PublicRuntimeConfig extends UserPublicRuntimeConfig {} @@ -69,6 +148,7 @@ declare module 'nuxt/schema' { interface ModuleDependencies { ["@nuxtjs/tailwindcss"]?: ModuleDependencyMeta ? O | false : Record> | false ["pinia"]?: ModuleDependencyMeta ? O | false : Record> | false + ["@nuxtjs/i18n"]?: ModuleDependencyMeta ? O | false : Record> | false ["@nuxt/devtools"]?: ModuleDependencyMeta ? O | false : Record> | false ["@nuxt/telemetry"]?: ModuleDependencyMeta ? O | false : Record> | false } @@ -83,6 +163,11 @@ declare module 'nuxt/schema' { * @see https://www.npmjs.com/package/@pinia/nuxt */ ["pinia"]: typeof import("@pinia/nuxt").default extends NuxtModule ? O | false : Record | false + /** + * Configuration for `@nuxtjs/i18n` + * @see https://www.npmjs.com/package/@nuxtjs/i18n + */ + ["i18n"]: typeof import("@nuxtjs/i18n").default extends NuxtModule ? O | false : Record | false /** * Configuration for `@nuxt/devtools` * @see https://www.npmjs.com/package/@nuxt/devtools @@ -105,6 +190,11 @@ declare module 'nuxt/schema' { * @see https://www.npmjs.com/package/@pinia/nuxt */ ["pinia"]?: typeof import("@pinia/nuxt").default extends NuxtModule ? Partial | false : Record | false + /** + * Configuration for `@nuxtjs/i18n` + * @see https://www.npmjs.com/package/@nuxtjs/i18n + */ + ["i18n"]?: typeof import("@nuxtjs/i18n").default extends NuxtModule ? Partial | false : Record | false /** * Configuration for `@nuxt/devtools` * @see https://www.npmjs.com/package/@nuxt/devtools @@ -115,7 +205,7 @@ declare module 'nuxt/schema' { * @see https://www.npmjs.com/package/@nuxt/telemetry */ ["telemetry"]?: typeof import("@nuxt/telemetry").default extends NuxtModule ? Partial | false : Record | false - modules?: (undefined | null | false | NuxtModule | string | [NuxtModule | string, Record] | ["@nuxtjs/tailwindcss", Exclude] | ["@pinia/nuxt", Exclude] | ["@nuxt/devtools", Exclude] | ["@nuxt/telemetry", Exclude])[], + modules?: (undefined | null | false | NuxtModule | string | [NuxtModule | string, Record] | ["@nuxtjs/tailwindcss", Exclude] | ["@pinia/nuxt", Exclude] | ["@nuxtjs/i18n", Exclude] | ["@nuxt/devtools", Exclude] | ["@nuxt/telemetry", Exclude])[], } interface RuntimeConfig extends SharedRuntimeConfig {} interface PublicRuntimeConfig extends SharedPublicRuntimeConfig {} diff --git a/frontend_admin/.output/nitro.json b/frontend_admin/.output/nitro.json index 7c2b1a7..3d7057f 100644 --- a/frontend_admin/.output/nitro.json +++ b/frontend_admin/.output/nitro.json @@ -1,5 +1,5 @@ { - "date": "2026-06-24T11:26:59.414Z", + "date": "2026-06-25T00:01:32.696Z", "preset": "node-server", "framework": { "name": "nuxt", diff --git a/frontend_admin/.output/public/_nuxt/9W9VXtTt.js b/frontend_admin/.output/public/_nuxt/9W9VXtTt.js new file mode 100644 index 0000000..853ccd9 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/9W9VXtTt.js @@ -0,0 +1 @@ +import{_ as h}from"./Da4aCGAe.js";import{p as v,e as y,g as _,c as n,a as t,f as k,h as s,t as c,i as u,j as S,k as p,v as m,l as x,b as V,w as L,m as f,o as i,d as C}from"./CqYPuxVf.js";import{u as N}from"./CWA6Xjbg.js";const B=v("/sf_logo.png"),E={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},R={class:"w-full max-w-md"},j={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},A={key:0,class:"mb-6 p-3 rounded-lg bg-red-900/40 border border-red-700 text-red-300 text-sm"},D=["disabled"],F={key:0,class:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},I={class:"mt-6 text-center"},T=y({__name:"login",setup(M){const a=f(""),l=f(""),b=_(),o=N();async function g(){try{await o.login(a.value,l.value),b.push("/")}catch(d){console.error("Login failed:",d)}}return(d,e)=>{const w=h;return i(),n("div",E,[t("div",R,[e[6]||(e[6]=k('
ServiceFinder LogoSERVICEFINDER

Staff Portal

Authorised personnel only

',1)),t("div",j,[s(o).error?(i(),n("div",A,c(s(o).error),1)):u("",!0),t("form",{onSubmit:S(g,["prevent"]),class:"space-y-5"},[t("div",null,[e[2]||(e[2]=t("label",{for:"email",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Email Address ",-1)),p(t("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=r=>x(a)?a.value=r:null),type:"email",autocomplete:"email",required:"",placeholder:"admin@example.com",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(a)]])]),t("div",null,[e[3]||(e[3]=t("label",{for:"password",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Password ",-1)),p(t("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=r=>x(l)?l.value=r:null),type:"password",autocomplete:"current-password",required:"",placeholder:"••••••••",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(l)]])]),t("button",{type:"submit",disabled:s(o).isLoading,class:"w-full py-2.5 px-4 bg-cyan-600 hover:bg-cyan-500 disabled:bg-cyan-800 disabled:cursor-not-allowed text-white font-semibold rounded-lg transition duration-200 flex items-center justify-center gap-2"},[s(o).isLoading?(i(),n("svg",F,[...e[4]||(e[4]=[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):u("",!0),t("span",null,c(s(o).isLoading?"Signing in...":"Sign In"),1)],8,D)],32),t("div",I,[V(w,{to:"/",class:"text-sm text-slate-500 hover:text-cyan-400 transition"},{default:L(()=>[...e[5]||(e[5]=[C(" ← Back to ServiceFinder ",-1)])]),_:1})])])])])}}});export{T as default}; diff --git a/frontend_admin/.output/public/_nuxt/BFfxzM5G.js b/frontend_admin/.output/public/_nuxt/BFfxzM5G.js deleted file mode 100644 index df223de..0000000 --- a/frontend_admin/.output/public/_nuxt/BFfxzM5G.js +++ /dev/null @@ -1 +0,0 @@ -import{y as e,z as t}from"./C3Ck-LNv.js";import{u as a}from"./BoAo7BJa.js";const u=e((o,i)=>{if(o.path==="/login")return;if(!a("access_token").value)return t("/login")});export{u as default}; diff --git a/frontend_admin/.output/public/_nuxt/BO90Bn6x.js b/frontend_admin/.output/public/_nuxt/BO90Bn6x.js new file mode 100644 index 0000000..00eb82c --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/BO90Bn6x.js @@ -0,0 +1 @@ +import{e as O,y as q,c as a,a as e,t as o,F as f,n as M,i as k,d as S,r as h,m as p,x as P,A as B,o as n}from"./CqYPuxVf.js";const J={class:"mb-8"},Q={class:"text-2xl font-bold text-white"},W={class:"text-slate-400 mt-1"},X={key:0,class:"flex items-center justify-center py-20"},Y={class:"ml-3 text-slate-400"},Z={key:1,class:"bg-red-500/10 border border-red-500/20 rounded-xl p-6 mb-8"},ee={class:"flex items-center gap-3"},se={class:"text-red-300 font-medium"},te={class:"text-red-400/80 text-sm mt-1"},re={key:1,class:"mb-6 flex items-center gap-3"},oe={class:"text-sm text-slate-400"},ae={class:"bg-indigo-500/10 border border-indigo-500/20 rounded-xl p-4 mb-8 flex items-start gap-3"},ne={class:"text-sm text-indigo-300"},le={class:"font-semibold"},ie={key:0,class:"ml-3 text-indigo-400/70"},de={class:"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"},ce={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},ue={class:"flex items-center gap-3 mb-4"},pe={class:"text-lg font-semibold text-white"},me={class:"text-sm text-slate-400 mb-4"},fe={class:"space-y-3"},he={class:"text-sm text-slate-300"},ge={class:"relative inline-flex items-center cursor-pointer"},be=["checked","onChange"],ve={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},xe={class:"flex items-center gap-3 mb-4"},ke={class:"text-lg font-semibold text-white"},_e={class:"text-sm text-slate-400 mb-4"},ye={class:"space-y-3"},we={class:"text-sm text-slate-300"},Ce={class:"relative inline-flex items-center cursor-pointer"},$e=["checked","onChange"],Me={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},Pe={class:"flex items-center gap-3 mb-4"},Be={class:"text-lg font-semibold text-white"},je={class:"text-sm text-slate-400 mb-4"},Ve={class:"space-y-3"},Ae={class:"flex flex-col"},ze={class:"text-sm text-slate-300"},Fe={class:"text-xs text-slate-500"},Ne={class:"relative inline-flex items-center cursor-pointer"},Le=["checked","onChange"],Se={class:"bg-slate-800/50 border border-slate-700 rounded-xl p-6 mb-8"},He={class:"text-lg font-semibold text-white mb-4"},De={class:"text-sm text-slate-400 mb-6"},Te={class:"overflow-x-auto"},Ee={class:"w-full text-sm"},Ue={class:"border-b border-slate-700"},Ke={class:"text-left py-3 px-4 text-slate-400 font-medium"},Re={class:"py-2.5 px-4 text-slate-300"},Ie={key:0,class:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-emerald-400/10"},Ge={key:1,class:"inline-flex items-center justify-center w-6 h-6 rounded-full bg-slate-700"},Oe={key:2,class:"flex items-center gap-3 pb-8"},Qe=O({__name:"index",setup(qe){const _=p(!0),x=p(null),m=p({tier:"free",features:{},expires_at:null}),y=p([]),j=p([]),c=p(new Map),g=p(new Map),u=p(null),H=P(()=>Object.entries(m.value.features||{})),V=P(()=>c.value.size>0),D=P(()=>{const s=m.value.tier;return s==="enterprise"?"bg-purple-500/20 text-purple-300":s==="premium"?"bg-amber-500/20 text-amber-300":"bg-slate-500/20 text-slate-300"}),w=[{key:"user_mgmt",label:"User Management",enabled:!0},{key:"billing_admin",label:"Billing Administration",enabled:!0},{key:"robot_config",label:"Robot Configuration",enabled:!0},{key:"system_logs",label:"System Logs Access",enabled:!0},{key:"api_keys",label:"API Key Management",enabled:!1}],C=[{key:"vehicle_crud",label:"Vehicle CRUD",enabled:!0},{key:"service_booking",label:"Service Booking",enabled:!0},{key:"customer_view",label:"Customer Data View",enabled:!0},{key:"report_export",label:"Report Export",enabled:!1},{key:"bulk_import",label:"Bulk Import",enabled:!1}];function A(s,t){const r=`${s}:${t}`;if(c.value.has(r))return c.value.get(r);const d=(s==="superadmin"?w:C).find(l=>l.key===t);return d?d.enabled:!1}function T(s){return s.replace(/^cost_category:/,"").replace(/_/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function E(s){try{return new Date(s).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"})}catch{return s}}function U(s,t){return s.actions.includes(t)}function $(s,t,r){const d=r.target.checked,l=`${s}:${t}`;if(!g.value.has(l)){const L=(s==="superadmin"?w:C).find(G=>G.key===t);g.value.set(l,L?L.enabled:!1)}const v=g.value.get(l);d===v?c.value.delete(l):c.value.set(l,d),c.value=new Map(c.value),console.log(`[Permissions] Toggle: group=${s}, key=${t}, newValue=${d}`)}function b(){setTimeout(()=>{u.value=null},5e3)}async function z(){u.value=null;try{const t=B("access_token").value;if(!t){u.value={type:"error",message:"Not authenticated"},b();return}const r=[];if(c.value.forEach((l,v)=>{const N=v.replace(/^(superadmin|garage):/,"").toUpperCase();r.push({action:N,granted:l})}),r.length===0){u.value={type:"error",message:"No changes to save"},b();return}const d=(await Promise.allSettled(r.map(l=>$fetch("/api/v1/admin/permissions/override/0",{method:"PATCH",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:{action:l.action,granted:l.granted}})))).filter(l=>l.status==="rejected");if(d.length>0){const l=d.map(v=>v.reason?.message||"Unknown error");u.value={type:"error",message:`Failed to save ${d.length} permission(s): ${l.join("; ")}`},b();return}c.value=new Map,g.value=new Map,u.value={type:"success",message:`Successfully saved ${r.length} permission change(s).`},b(),console.log("[Permissions] Save successful:",r)}catch(s){console.error("[Permissions] Save failed:",s),u.value={type:"error",message:s?.message||"Failed to save permissions"},b()}}function K(){c.value=new Map,g.value=new Map,u.value=null}async function R(){try{const t=B("access_token").value;if(!t){console.warn("[Permissions] No access token found for feature flags");return}const r=await $fetch("/api/v1/subscriptions/feature-flags",{headers:{Authorization:`Bearer ${t}`}});console.log("[Permissions] Feature flags loaded:",r),m.value=r}catch(s){console.error("[Permissions] Feature flags fetch failed:",s?.message||s)}}async function I(){try{const t=B("access_token").value;if(!t){console.warn("[Permissions] No access token found for permission matrix");return}const r=await $fetch("/api/v1/admin/permissions/matrix",{headers:{Authorization:`Bearer ${t}`}});console.log("[Permissions] Permission matrix loaded:",r),y.value=r.matrix,j.value=r.all_actions}catch(s){console.error("[Permissions] Permission matrix fetch failed:",s?.message||s)}}async function F(){_.value=!0,x.value=null;try{await Promise.all([R(),I()])}catch(s){console.error("[Permissions] fetchAll failed:",s?.message||s),x.value=s?.message||"Failed to load permissions data"}finally{_.value=!1}}return q(()=>{F()}),(s,t)=>(n(),a("div",null,[e("div",J,[e("h1",Q,o(s.$t("permissions.title")),1),e("p",W,o(s.$t("permissions.subtitle")),1)]),_.value?(n(),a("div",X,[t[0]||(t[0]=e("svg",{class:"animate-spin h-8 w-8 text-indigo-400",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),e("span",Y,o(s.$t("permissions.loading")),1)])):x.value?(n(),a("div",Z,[e("div",ee,[t[1]||(t[1]=e("svg",{class:"w-6 h-6 text-red-400 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),e("div",null,[e("h3",se,o(s.$t("permissions.error_title")),1),e("p",te,o(x.value),1)])]),e("button",{onClick:F,class:"mt-4 px-4 py-2 text-sm bg-red-600 hover:bg-red-500 text-white rounded-lg transition"},o(s.$t("permissions.retry")),1)])):(n(),a(f,{key:2},[u.value?(n(),a("div",{key:0,class:M(["mb-6 px-4 py-3 rounded-lg text-sm font-medium",u.value.type==="success"?"bg-emerald-500/10 border border-emerald-500/20 text-emerald-300":"bg-red-500/10 border border-red-500/20 text-red-300"])},o(u.value.message),3)):k("",!0),V.value?(n(),a("div",re,[e("button",{onClick:z,class:"px-6 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded-lg shadow-lg shadow-emerald-600/20 transition-all hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2"},[t[2]||(t[2]=e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4"})],-1)),S(" "+o(s.$t("permissions.save_changes")),1)]),e("span",oe,o(s.$t("permissions.modified_count",{count:c.value.size})),1)])):k("",!0),e("div",ae,[t[3]||(t[3]=e("svg",{class:"w-5 h-5 text-indigo-400 flex-shrink-0 mt-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),e("div",ne,[e("span",le,o(s.$t("permissions.current_tier"))+":",1),e("span",{class:M(["ml-2 px-2 py-0.5 rounded-full text-xs font-medium",D.value])},o(m.value.tier||"free"),3),m.value.expires_at?(n(),a("span",ie,o(s.$t("permissions.expires"))+": "+o(E(m.value.expires_at)),1)):k("",!0)])]),e("div",de,[e("div",ce,[e("div",ue,[t[4]||(t[4]=e("div",{class:"p-2 rounded-lg bg-purple-500/10 text-purple-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z"})])],-1)),e("h2",pe,o(s.$t("permissions.superadmin")),1)]),e("p",me,o(s.$t("permissions.superadmin_desc")),1),e("div",fe,[(n(),a(f,null,h(w,r=>e("div",{key:r.key,class:"flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"},[e("span",he,o(s.$t(`permissions.perms.${r.key}`)),1),e("label",ge,[e("input",{type:"checkbox",checked:A("superadmin",r.key),class:"sr-only peer",onChange:i=>$("superadmin",r.key,i)},null,40,be),t[5]||(t[5]=e("div",{class:"w-9 h-5 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-purple-500/50 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-slate-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-purple-600"},null,-1))])])),64))])]),e("div",ve,[e("div",xe,[t[6]||(t[6]=e("div",{class:"p-2 rounded-lg bg-cyan-500/10 text-cyan-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8.25 18.75a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 01-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h1.125c.621 0 1.129-.504 1.09-1.124a17.902 17.902 0 00-3.213-9.193 2.056 2.056 0 00-1.58-.86H14.25M16.5 18.75h-2.25m0-11.177v-.958c0-.568-.422-1.048-.987-1.106a48.554 48.554 0 00-10.026 0 1.106 1.106 0 00-.987 1.106v7.635m12-6.677v6.677m0 4.5v-4.5m0 0h-12"})])],-1)),e("h2",ke,o(s.$t("permissions.garages")),1)]),e("p",_e,o(s.$t("permissions.garages_desc")),1),e("div",ye,[(n(),a(f,null,h(C,r=>e("div",{key:r.key,class:"flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"},[e("span",we,o(s.$t(`permissions.perms.${r.key}`)),1),e("label",Ce,[e("input",{type:"checkbox",checked:A("garage",r.key),class:"sr-only peer",onChange:i=>$("garage",r.key,i)},null,40,$e),t[7]||(t[7]=e("div",{class:"w-9 h-5 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-cyan-500/50 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-slate-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all peer-checked:bg-cyan-600"},null,-1))])])),64))])]),e("div",Me,[e("div",Pe,[t[8]||(t[8]=e("div",{class:"p-2 rounded-lg bg-amber-500/10 text-amber-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0l-3-3m3 3l3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"})])],-1)),e("h2",Be,o(s.$t("permissions.feature_flags")),1)]),e("p",je,o(s.$t("permissions.feature_flags_desc",{tier:m.value.tier||"free"})),1),e("div",Ve,[(n(!0),a(f,null,h(H.value,([r,i])=>(n(),a("div",{key:r,class:"flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"},[e("div",Ae,[e("span",ze,o(T(r)),1),e("span",Fe,o(r),1)]),e("label",Ne,[e("input",{type:"checkbox",checked:i,class:"sr-only peer",disabled:!0,onChange:d=>$("feature",r,d)},null,40,Le),e("div",{class:M(["w-9 h-5 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-amber-500/50 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-slate-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all",i?"peer-checked:bg-amber-600":""])},null,2)])]))),128))])])]),e("div",Se,[e("h3",He,o(s.$t("permissions.rbac_title")),1),e("p",De,o(s.$t("permissions.rbac_desc")),1),e("div",Te,[e("table",Ee,[e("thead",null,[e("tr",Ue,[e("th",Ke,o(s.$t("permissions.action")),1),(n(!0),a(f,null,h(y.value,r=>(n(),a("th",{key:r.role,class:"text-center py-3 px-4 text-slate-400 font-medium"},o(r.role),1))),128))])]),e("tbody",null,[(n(!0),a(f,null,h(j.value,r=>(n(),a("tr",{key:r,class:"border-b border-slate-700/50 hover:bg-slate-700/30"},[e("td",Re,o(r),1),(n(!0),a(f,null,h(y.value,i=>(n(),a("td",{key:i.role,class:"text-center py-2.5 px-4"},[U(i,r)?(n(),a("span",Ie,[...t[9]||(t[9]=[e("svg",{class:"w-4 h-4 text-emerald-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)])])):(n(),a("span",Ge,[...t[10]||(t[10]=[e("svg",{class:"w-4 h-4 text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]))]))),128))]))),128))])])])]),V.value?(n(),a("div",Oe,[e("button",{onClick:z,class:"px-6 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded-lg shadow-lg shadow-emerald-600/20 transition-all hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2"},[t[11]||(t[11]=e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4"})],-1)),S(" "+o(s.$t("permissions.save_changes")),1)]),e("button",{onClick:K,class:"px-4 py-2.5 bg-slate-700 hover:bg-slate-600 text-slate-300 font-medium rounded-lg transition"},o(s.$t("permissions.discard")),1)])):k("",!0)],64))]))}});export{Qe as default}; diff --git a/frontend_admin/.output/public/_nuxt/BW9w-mbE.js b/frontend_admin/.output/public/_nuxt/BW9w-mbE.js deleted file mode 100644 index f8b9901..0000000 --- a/frontend_admin/.output/public/_nuxt/BW9w-mbE.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as E}from"./QKJPEFuj.js";import{g as D,A as N,k as W,B as O,C as P,o as s,c as l,m as k,a as e,n as v,F as x,r as y,t as d,q as m,D as g,E as H,w as M,b as K,d as L,G as J,x as f,H as z}from"./C3Ck-LNv.js";import{u as U,_ as S}from"./ByPKVH1D.js";import"./BoAo7BJa.js";const q={class:"min-h-screen bg-slate-900 text-white flex"},I={class:"flex items-center h-16 px-4 border-b border-slate-700"},Q={key:0,class:"flex items-center gap-3"},X={key:1,class:"mx-auto"},Y={class:"flex-1 px-2 py-4 space-y-2 overflow-y-auto"},Z={key:0,class:"px-3 py-1 text-xs font-semibold uppercase tracking-wider text-slate-500"},ee={key:0},te=["onClick"],se=["innerHTML"],oe={class:"ml-2 mt-1 space-y-1 overflow-hidden transition-all duration-200"},le=["innerHTML"],ne={class:"whitespace-nowrap"},ae=["innerHTML"],re={class:"p-4 border-t border-slate-700"},ie={key:0,class:"text-xs text-slate-500"},de={class:"flex-1 flex flex-col min-w-0"},ue={class:"sticky top-0 z-10 bg-slate-800/95 backdrop-blur-sm border-b border-slate-700"},he={class:"flex items-center justify-between h-16 px-4 lg:px-6"},ce={class:"flex items-center gap-3"},ve={class:"text-lg font-semibold text-white truncate"},pe={class:"w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold text-white"},xe={class:"hidden sm:block text-sm text-slate-300"},fe={key:0,class:"absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"},ke={class:"px-4 py-3 border-b border-slate-700"},me={class:"text-sm font-medium text-white"},ge={class:"flex-1 p-4 lg:p-6 overflow-auto"},ze=D({__name:"default",setup(we){const u=N(),V=W(),w=U(),n=f(!1),r=f(!1),c=f(!1),b=f(null),p=f(new Set(["Központ"])),j=z(()=>w.userEmail||"admin@servicefinder.hu"),F=z(()=>{const o=w.userEmail;return o?o.split("@")[0].split(".").map(t=>t[0]).join("").toUpperCase().slice(0,2):"AD"}),$=[{title:"Központ",items:[{path:"/",label:"Dashboard",icon:''}]},{title:"Felhasználók & Partnerek",items:[{label:"Garázsok",icon:'',children:[{path:"/garages",label:"Garázsok listája",icon:''}]},{label:"Felhasználók",icon:'',children:[{path:"/users",label:"Felhasználók listája",icon:''}]}]},{title:"Rendszer",items:[{path:"/permissions",label:"Jogosultságok",icon:''},{label:"Rendszernaplók",icon:'',children:[{path:"/logs",label:"Rendszernaplók",icon:''}]}]}],A=z(()=>u.path==="/"?"Dashboard":u.path.startsWith("/permissions")?"Jogosultság Kezelés":u.path.startsWith("/garages")?"Garázsok":u.path.startsWith("/users")?"Felhasználók":u.path.startsWith("/logs")?"Rendszernaplók":"Admin Panel");function _(o){return o==="/"?u.path==="/":u.path.startsWith(o)}function G(o){return o.children?o.children.some(t=>_(t.path)):!1}function R(o){p.value.has(o.label)?p.value.delete(o.label):p.value.add(o.label)}function T(){w.logout(),c.value=!1,V.push("/login")}function B(o){b.value&&!b.value.contains(o.target)&&(c.value=!1)}return O(()=>{document.addEventListener("click",B)}),P(()=>{document.removeEventListener("click",B)}),(o,t)=>{const C=E;return s(),l("div",q,[n.value?(s(),l("div",{key:0,class:"fixed inset-0 bg-black/50 z-20 lg:hidden",onClick:t[0]||(t[0]=i=>n.value=!1)})):k("",!0),e("aside",{class:v(["fixed lg:static inset-y-0 left-0 z-30 flex flex-col bg-slate-800 border-r border-slate-700 transition-all duration-300",n.value?"w-64 translate-x-0":"-translate-x-full lg:translate-x-0 lg:w-20"])},[e("div",I,[n.value||!r.value?(s(),l("div",Q,[...t[7]||(t[7]=[e("img",{src:S,class:"h-8 w-auto",alt:"SF Logo"},null,-1),e("span",{class:"text-lg font-bold text-white whitespace-nowrap"},"Admin Panel",-1)])])):(s(),l("div",X,[...t[8]||(t[8]=[e("img",{src:S,class:"h-8 w-auto",alt:"SF Logo"},null,-1)])]))]),e("button",{class:"hidden lg:flex items-center justify-center h-10 mx-2 mt-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",onClick:t[1]||(t[1]=i=>r.value=!r.value)},[(s(),l("svg",{class:v(["w-5 h-5 transition-transform duration-300",{"rotate-180":r.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[9]||(t[9]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"},null,-1)])],2))]),e("nav",Y,[(s(),l(x,null,y($,i=>(s(),l(x,{key:i.title},[!r.value||n.value?(s(),l("div",Z,d(i.title),1)):k("",!0),(s(!0),l(x,null,y(i.items,a=>(s(),l(x,{key:a.label},[a.children?(s(),l("div",ee,[e("button",{class:v(["flex items-center w-full gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition",G(a)?"bg-indigo-600/20 text-indigo-300":"text-slate-300 hover:bg-slate-700 hover:text-white"]),onClick:h=>R(a)},[e("span",{class:"flex-shrink-0 w-5 h-5",innerHTML:a.icon},null,8,se),m(e("span",{class:"flex-1 text-left whitespace-nowrap"},d(a.label),513),[[g,!r.value||n.value]]),m((s(),l("svg",{class:v(["w-4 h-4 transition-transform duration-200",{"rotate-90":p.value.has(a.label)}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[10]||(t[10]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)),[[g,!r.value||n.value]])],10,te),m(e("div",oe,[(s(!0),l(x,null,y(a.children,h=>(s(),H(C,{key:h.path,to:h.path,class:v(["flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition",_(h.path)?"bg-indigo-600 text-white":"text-slate-400 hover:bg-slate-700 hover:text-white"]),onClick:t[2]||(t[2]=be=>n.value=!1)},{default:M(()=>[e("span",{class:"flex-shrink-0 w-4 h-4",innerHTML:h.icon},null,8,le),e("span",ne,d(h.label),1)]),_:2},1032,["to","class"]))),128))],512),[[g,p.value.has(a.label)&&(!r.value||n.value)]])])):(s(),H(C,{key:1,to:a.path,class:v(["flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition",_(a.path)?"bg-indigo-600 text-white":"text-slate-300 hover:bg-slate-700 hover:text-white"]),onClick:t[3]||(t[3]=h=>n.value=!1)},{default:M(()=>[e("span",{class:"flex-shrink-0 w-5 h-5",innerHTML:a.icon},null,8,ae),m(e("span",{class:"whitespace-nowrap"},d(a.label),513),[[g,!r.value||n.value]])]),_:2},1032,["to","class"]))],64))),128))],64))),64))]),e("div",re,[!r.value||n.value?(s(),l("div",ie," ServiceFinder v2.0 ")):k("",!0)])],2),e("div",de,[e("header",ue,[e("div",he,[e("div",ce,[e("button",{class:"lg:hidden p-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",onClick:t[4]||(t[4]=i=>n.value=!0)},[...t[11]||(t[11]=[e("svg",{class:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])]),e("h1",ve,d(A.value),1)]),e("div",{class:"relative",ref_key:"dropdownRef",ref:b},[e("button",{class:"flex items-center gap-2 p-1.5 rounded-lg hover:bg-slate-700 transition",onClick:t[5]||(t[5]=i=>c.value=!c.value)},[e("div",pe,d(F.value),1),e("span",xe,d(j.value),1),t[12]||(t[12]=e("svg",{class:"w-4 h-4 text-slate-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1))]),c.value?(s(),l("div",fe,[e("div",ke,[e("p",me,d(j.value),1),t[13]||(t[13]=e("p",{class:"text-xs text-slate-400 mt-0.5"},"Administrator",-1))]),K(C,{to:"/profile",class:"flex items-center gap-3 px-4 py-2.5 text-sm text-slate-300 hover:bg-slate-700 hover:text-white transition",onClick:t[6]||(t[6]=i=>c.value=!1)},{default:M(()=>[...t[14]||(t[14]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})],-1),L(" Profile Settings ",-1)])]),_:1}),e("button",{class:"flex items-center gap-3 w-full px-4 py-2.5 text-sm text-red-400 hover:bg-slate-700 hover:text-red-300 transition",onClick:T},[...t[15]||(t[15]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})],-1),L(" Sign Out ",-1)])])])):k("",!0)],512)])]),e("main",ge,[J(o.$slots,"default")])])])}}});export{ze as default}; diff --git a/frontend_admin/.output/public/_nuxt/BoAo7BJa.js b/frontend_admin/.output/public/_nuxt/BoAo7BJa.js deleted file mode 100644 index 044eed0..0000000 --- a/frontend_admin/.output/public/_nuxt/BoAo7BJa.js +++ /dev/null @@ -1 +0,0 @@ -import{x as k,a2 as O,a3 as z,a4 as C,a5 as w,a6 as I,a7 as D}from"./C3Ck-LNv.js";function v(t){return typeof t=="string"?`'${t}'`:new R().serialize(t)}const R=(function(){class t{#e=new Map;compare(e,r){const o=typeof e,a=typeof r;return o==="string"&&a==="string"?e.localeCompare(r):o==="number"&&a==="number"?e-r:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(r,!0))}serialize(e,r){if(e===null)return"null";switch(typeof e){case"string":return r?e:`'${e}'`;case"bigint":return`${e}n`;case"object":return this.$object(e);case"function":return this.$function(e)}return String(e)}serializeObject(e){const r=Object.prototype.toString.call(e);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),e);const o=e.constructor,a=o===Object||o===void 0?"":o.name;if(a!==""&&globalThis[a]===o)return this.serializeBuiltInType(a,e);if(typeof e.toJSON=="function"){const n=e.toJSON();return a+(n!==null&&typeof n=="object"?this.$object(n):`(${this.serialize(n)})`)}return this.serializeObjectEntries(a,Object.entries(e))}serializeBuiltInType(e,r){const o=this["$"+e];if(o)return o.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(e,r.entries());throw new Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,r){const o=Array.from(r).sort((n,s)=>this.compare(n[0],s[0]));let a=`${e}{`;for(let n=0;nthis.compare(r,o)))}`}$Map(e){return this.serializeObjectEntries("Map",e.entries())}}for(const i of["Error","RegExp","URL"])t.prototype["$"+i]=function(e){return`${i}(${e})`};for(const i of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])t.prototype["$"+i]=function(e){return`${i}[${e.join(",")}]`};for(const i of["BigInt64Array","BigUint64Array"])t.prototype["$"+i]=function(e){return`${i}[${e.join("n,")}${e.length>0?"n":""}]`};return t})();function N(t,i){return t===i||v(t)===v(i)}const U=(()=>{const t=function(){};return t.prototype=Object.create(null),t})();function x(t,i){if(typeof t!="string")throw new TypeError("argument str must be a string");const e=new U,r=i||{},o=r.decode||M;let a=0;for(;a{const i=decodeURIComponent(t),e=z(i);return typeof e=="number"&&(!Number.isFinite(e)||String(e)!==i)?i:e},encode:t=>encodeURIComponent(typeof t=="string"?t:JSON.stringify(t))},m=globalThis.cookieStore;function V(t,i){const e={...P,...i};e.filter??=u=>u===t;const r=A(e)||{};let o;e.maxAge!==void 0?o=e.maxAge*1e3:e.expires&&(o=e.expires.getTime()-Date.now());const a=o!==void 0&&o<=0,n=a||r[t]===void 0||r[t]===null,s=l(a?void 0:r[t]??e.default?.()),c=o&&!a?H(s,o,e.watch&&e.watch!=="shallow"):k(s);{let u=null;try{!m&&typeof BroadcastChannel<"u"&&(u=new BroadcastChannel(`nuxt:cookies:${t}`))}catch{}const h=(f=!1)=>{!f&&(e.readonly||N(c.value,r[t]))||(_(t,c.value,e),r[t]=l(c.value),u?.postMessage({value:e.encode(c.value)}))},p=f=>{const y=f.refresh?A(e)?.[t]:e.decode(f.value);d=!0,c.value=y,r[t]=l(y),D(()=>{d=!1})};let d=!1;const $=!!C();if($&&w(()=>{d=!0,h(),u?.close()}),m){const f=y=>{const S=y.changed.find(b=>b.name===t),T=y.deleted.find(b=>b.name===t);S&&p({value:S.value}),T&&p({value:null})};m.addEventListener("change",f),$&&w(()=>m.removeEventListener("change",f))}else u&&(u.onmessage=({data:f})=>p(f));e.watch&&O(c,()=>{d||h()},{deep:e.watch!=="shallow"}),n&&h(n)}return c}function A(t={}){return x(document.cookie,t)}function F(t,i,e={}){return i==null?j(t,i,{...e,maxAge:-1}):j(t,i,e)}function _(t,i,e={}){document.cookie=F(t,i,e)}const E=2147483647;function H(t,i,e){let r,o,a=0;const n=e?k(t):{value:t};return C()&&w(()=>{o?.(),clearTimeout(r)}),I((s,c)=>{e&&(o=O(n,c));function u(){const p=i-a,d=p{if(a+=d,a{const a=u(null),n=u(null),c=u(!1),s=u(null),v=u(!1),p=l(()=>!!n.value&&!!a.value),d=l(()=>{const e=a.value?.role;return e?["SUPERADMIN","ADMIN","MODERATOR","SALES_REP","SERVICE_MGR"].includes(e.toUpperCase()):!1}),h=l(()=>{if(!a.value)return"";const{first_name:e,last_name:o}=a.value;return e&&o?`${e} ${o}`:e||o||a.value.email}),k=l(()=>a.value?.email??""),_=l(()=>a.value?.role??"guest");async function w(e,o){c.value=!0,s.value=null;try{const t=new URLSearchParams;t.append("username",e),t.append("password",o);const m=await $fetch("/api/v1/auth/login",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:t}),A=r("access_token",{maxAge:3600*24*7,path:"/",sameSite:"lax",secure:!0});A.value=m.access_token,n.value=m.access_token,await i()}catch(t){throw s.value=t?.data?.detail||t?.message||"Login failed",t}finally{c.value=!1}}async function i(){const o=r("access_token").value||n.value;if(o)try{const t=await $fetch("/api/v1/auth/me",{headers:{Authorization:`Bearer ${o}`}});a.value=t}catch(t){throw t?.response?.status===401&&f(),t}}function f(){n.value=null,a.value=null,s.value=null;const e=r("access_token");e.value=null}async function R(){const e=r("access_token");if(e.value){n.value=e.value;try{await i()}catch{f()}}v.value=!0}function g(){s.value=null}return{user:a,token:n,isLoading:c,error:s,isInitialized:v,isAuthenticated:p,isAdmin:d,userName:h,userEmail:k,userRole:_,login:w,fetchUser:i,logout:f,init:R,clearError:g}});export{x as _,I as u}; diff --git a/frontend_admin/.output/public/_nuxt/C3Ck-LNv.js b/frontend_admin/.output/public/_nuxt/C3Ck-LNv.js deleted file mode 100644 index 5cd84da..0000000 --- a/frontend_admin/.output/public/_nuxt/C3Ck-LNv.js +++ /dev/null @@ -1,4 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./XMkMKtwS.js","./QKJPEFuj.js","./ByPKVH1D.js","./BoAo7BJa.js","./BFfxzM5G.js","./BW9w-mbE.js","./Oih3kTQ2.js","./Di-57MrI.js","./error-404.DL_4WIao.css","./usmOON9X.js","./error-500.I1Dtv2V5.css"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function fo(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const fe={},hn=[],dt=()=>{},_l=()=>!1,rr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Dr=e=>e.startsWith("onUpdate:"),Te=Object.assign,ho=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Jc=Object.prototype.hasOwnProperty,ie=(e,t)=>Jc.call(e,t),Y=Array.isArray,pn=e=>An(e)==="[object Map]",bl=e=>An(e)==="[object Set]",qo=e=>An(e)==="[object Date]",Yc=e=>An(e)==="[object RegExp]",Q=e=>typeof e=="function",he=e=>typeof e=="string",We=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",vl=e=>(se(e)||Q(e))&&Q(e.then)&&Q(e.catch),wl=Object.prototype.toString,An=e=>wl.call(e),zc=e=>An(e).slice(8,-1),El=e=>An(e)==="[object Object]",jr=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Gt=fo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Fr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Qc=/-\w/g,Le=Fr(e=>e.replace(Qc,t=>t.slice(1).toUpperCase())),Xc=/\B([A-Z])/g,nn=Fr(e=>e.replace(Xc,"-$1").toLowerCase()),Br=Fr(e=>e.charAt(0).toUpperCase()+e.slice(1)),ts=Fr(e=>e?`on${Br(e)}`:""),ct=(e,t)=>!Object.is(e,t),gn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},po=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Tl=e=>{const t=he(e)?Number(e):NaN;return isNaN(t)?e:t};let Jo;const Ur=()=>Jo||(Jo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function $r(e){if(Y(e)){const t={};for(let n=0;n{if(n){const r=n.split(eu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Vr(e){let t="";if(he(e))t=e;else if(Y(e))for(let n=0;n!!(e&&e.__v_isRef===!0),lu=e=>he(e)?e:e==null?"":Y(e)||se(e)&&(e.toString===wl||!Q(e.toString))?Cl(e)?lu(e.value):JSON.stringify(e,Al,2):String(e),Al=(e,t)=>Cl(t)?Al(e,t.value):pn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[ns(r,o)+" =>"]=s,n),{})}:bl(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ns(n))}:We(t)?ns(t):se(t)&&!Y(t)&&!El(t)?String(t):t,ns=(e,t="")=>{var n;return We(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ee;class Pl{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Ee===this)Ee=this.prevScope;else{let t=Ee;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if($n){let t=$n;for($n=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Un;){let t=Un;for(Un=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Nl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Il(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),vo(r),cu(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function As(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ml(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ml(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===zn)||(e.globalVersion=zn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!As(e))))return;e.flags|=2;const t=e.dep,n=de,r=et;de=e,et=!0;try{Nl(e);const s=e.fn(e._value);(t.version===0||ct(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{de=n,et=r,Il(e),e.flags&=-3}}function vo(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)vo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function cu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let et=!0;const Ll=[];function Tt(){Ll.push(et),et=!1}function St(){const e=Ll.pop();et=e===void 0?!0:e}function Yo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=de;de=void 0;try{t()}finally{de=n}}}let zn=0;class uu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Wr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!de||!et||de===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==de)n=this.activeLink=new uu(de,this),de.deps?(n.prevDep=de.depsTail,de.depsTail.nextDep=n,de.depsTail=n):de.deps=de.depsTail=n,Hl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=de.depsTail,n.nextDep=void 0,de.depsTail.nextDep=n,de.depsTail=n,de.deps===n&&(de.deps=r)}return n}trigger(t){this.version++,zn++,this.notify(t)}notify(t){_o();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{bo()}}}function Hl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Hl(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const vr=new WeakMap,qt=Symbol(""),Ps=Symbol(""),Qn=Symbol("");function ke(e,t,n){if(et&&de){let r=vr.get(e);r||vr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new Wr),s.map=r,s.key=n),s.track()}}function wt(e,t,n,r,s,o){const i=vr.get(e);if(!i){zn++;return}const l=a=>{a&&a.trigger()};if(_o(),t==="clear")i.forEach(l);else{const a=Y(e),f=a&&jr(n);if(a&&n==="length"){const c=Number(r);i.forEach((u,h)=>{(h==="length"||h===Qn||!We(h)&&h>=c)&&l(u)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),f&&l(i.get(Qn)),t){case"add":a?f&&l(i.get("length")):(l(i.get(qt)),pn(e)&&l(i.get(Ps)));break;case"delete":a||(l(i.get(qt)),pn(e)&&l(i.get(Ps)));break;case"set":pn(e)&&l(i.get(qt));break}}bo()}function fu(e,t){const n=vr.get(e);return n&&n.get(t)}function on(e){const t=te(e);return t===e?t:(ke(t,"iterate",Qn),Ve(e)?t:t.map(tt))}function Kr(e){return ke(e=te(e),"iterate",Qn),e}function at(e,t){return gt(e)?bn(ht(e)?tt(t):t):tt(t)}const du={__proto__:null,[Symbol.iterator](){return ss(this,Symbol.iterator,e=>at(this,e))},concat(...e){return on(this).concat(...e.map(t=>Y(t)?on(t):t))},entries(){return ss(this,"entries",e=>(e[1]=at(this,e[1]),e))},every(e,t){return mt(this,"every",e,t,void 0,arguments)},filter(e,t){return mt(this,"filter",e,t,n=>n.map(r=>at(this,r)),arguments)},find(e,t){return mt(this,"find",e,t,n=>at(this,n),arguments)},findIndex(e,t){return mt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return mt(this,"findLast",e,t,n=>at(this,n),arguments)},findLastIndex(e,t){return mt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return mt(this,"forEach",e,t,void 0,arguments)},includes(...e){return os(this,"includes",e)},indexOf(...e){return os(this,"indexOf",e)},join(e){return on(this).join(e)},lastIndexOf(...e){return os(this,"lastIndexOf",e)},map(e,t){return mt(this,"map",e,t,void 0,arguments)},pop(){return Nn(this,"pop")},push(...e){return Nn(this,"push",e)},reduce(e,...t){return zo(this,"reduce",e,t)},reduceRight(e,...t){return zo(this,"reduceRight",e,t)},shift(){return Nn(this,"shift")},some(e,t){return mt(this,"some",e,t,void 0,arguments)},splice(...e){return Nn(this,"splice",e)},toReversed(){return on(this).toReversed()},toSorted(e){return on(this).toSorted(e)},toSpliced(...e){return on(this).toSpliced(...e)},unshift(...e){return Nn(this,"unshift",e)},values(){return ss(this,"values",e=>at(this,e))}};function ss(e,t,n){const r=Kr(e),s=r[t]();return r!==e&&!Ve(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const hu=Array.prototype;function mt(e,t,n,r,s,o){const i=Kr(e),l=i!==e&&!Ve(e),a=i[t];if(a!==hu[t]){const u=a.apply(e,o);return l?tt(u):u}let f=n;i!==e&&(l?f=function(u,h){return n.call(this,at(e,u),h,e)}:n.length>2&&(f=function(u,h){return n.call(this,u,h,e)}));const c=a.call(i,f,r);return l&&s?s(c):c}function zo(e,t,n,r){const s=Kr(e),o=s!==e&&!Ve(e);let i=n,l=!1;s!==e&&(o?(l=r.length===0,i=function(f,c,u){return l&&(l=!1,f=at(e,f)),n.call(this,f,at(e,c),u,e)}):n.length>3&&(i=function(f,c,u){return n.call(this,f,c,u,e)}));const a=s[t](i,...r);return l?at(e,a):a}function os(e,t,n){const r=te(e);ke(r,"iterate",Qn);const s=r[t](...n);return(s===-1||s===!1)&&Gr(n[0])?(n[0]=te(n[0]),r[t](...n)):s}function Nn(e,t,n=[]){Tt(),_o();const r=te(e)[t].apply(e,n);return bo(),St(),r}const pu=fo("__proto__,__v_isRef,__isVue"),Dl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(We));function gu(e){We(e)||(e=String(e));const t=te(this);return ke(t,"has",e),t.hasOwnProperty(e)}class jl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Su:$l:o?Ul:Bl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=Y(t);if(!s){let a;if(i&&(a=du[n]))return a;if(n==="hasOwnProperty")return gu}const l=Reflect.get(t,n,ge(t)?t:r);if((We(n)?Dl.has(n):pu(n))||(s||ke(t,"get",n),o))return l;if(ge(l)){const a=i&&jr(n)?l:l.value;return s&&se(a)?xs(a):a}return se(l)?s?xs(l):At(l):l}}class Fl extends jl{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=Y(t)&&jr(n);if(!this._isShallow){const f=gt(o);if(!Ve(r)&&!gt(r)&&(o=te(o),r=te(r)),!i&&ge(o)&&!ge(r))return f||(o.value=r),!0}const l=i?Number(n)e,ar=e=>Reflect.getPrototypeOf(e);function vu(e,t,n){return function(...r){const s=this.__v_raw,o=te(s),i=pn(o),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,f=s[e](...r),c=n?ks:t?bn:tt;return!t&&ke(o,"iterate",a?Ps:qt),Te(Object.create(f),{next(){const{value:u,done:h}=f.next();return h?{value:u,done:h}:{value:l?[c(u[0]),c(u[1])]:c(u),done:h}}})}}function cr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function wu(e,t){const n={get(s){const o=this.__v_raw,i=te(o),l=te(s);e||(ct(s,l)&&ke(i,"get",s),ke(i,"get",l));const{has:a}=ar(i),f=t?ks:e?bn:tt;if(a.call(i,s))return f(o.get(s));if(a.call(i,l))return f(o.get(l));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&ke(te(s),"iterate",qt),s.size},has(s){const o=this.__v_raw,i=te(o),l=te(s);return e||(ct(s,l)&&ke(i,"has",s),ke(i,"has",l)),s===l?o.has(s):o.has(s)||o.has(l)},forEach(s,o){const i=this,l=i.__v_raw,a=te(l),f=t?ks:e?bn:tt;return!e&&ke(a,"iterate",qt),l.forEach((c,u)=>s.call(o,f(c),f(u),i))}};return Te(n,e?{add:cr("add"),set:cr("set"),delete:cr("delete"),clear:cr("clear")}:{add(s){const o=te(this),i=ar(o),l=te(s),a=!t&&!Ve(s)&&!gt(s)?l:s;return i.has.call(o,a)||ct(s,a)&&i.has.call(o,s)||ct(l,a)&&i.has.call(o,l)||(o.add(a),wt(o,"add",a,a)),this},set(s,o){!t&&!Ve(o)&&!gt(o)&&(o=te(o));const i=te(this),{has:l,get:a}=ar(i);let f=l.call(i,s);f||(s=te(s),f=l.call(i,s));const c=a.call(i,s);return i.set(s,o),f?ct(o,c)&&wt(i,"set",s,o):wt(i,"add",s,o),this},delete(s){const o=te(this),{has:i,get:l}=ar(o);let a=i.call(o,s);a||(s=te(s),a=i.call(o,s)),l&&l.call(o,s);const f=o.delete(s);return a&&wt(o,"delete",s,void 0),f},clear(){const s=te(this),o=s.size!==0,i=s.clear();return o&&wt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=vu(s,e,t)}),n}function wo(e,t){const n=wu(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ie(n,s)&&s in r?n:r,s,o)}const Eu={get:wo(!1,!1)},Ru={get:wo(!1,!0)},Tu={get:wo(!0,!1)};const Bl=new WeakMap,Ul=new WeakMap,$l=new WeakMap,Su=new WeakMap;function Cu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function At(e){return gt(e)?e:Eo(e,!1,yu,Eu,Bl)}function ft(e){return Eo(e,!1,bu,Ru,Ul)}function xs(e){return Eo(e,!0,_u,Tu,$l)}function Eo(e,t,n,r,s){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Cu(zc(e));if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function ht(e){return gt(e)?ht(e.__v_raw):!!(e&&e.__v_isReactive)}function gt(e){return!!(e&&e.__v_isReadonly)}function Ve(e){return!!(e&&e.__v_isShallow)}function Gr(e){return e?!!e.__v_raw:!1}function te(e){const t=e&&e.__v_raw;return t?te(t):e}function Ro(e){return!ie(e,"__v_skip")&&Object.isExtensible(e)&&Rl(e,"__v_skip",!0),e}const tt=e=>se(e)?At(e):e,bn=e=>se(e)?xs(e):e;function ge(e){return e?e.__v_isRef===!0:!1}function pt(e){return Vl(e,!1)}function vn(e){return Vl(e,!0)}function Vl(e,t){return ge(e)?e:new Au(e,t)}class Au{constructor(t,n){this.dep=new Wr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:te(t),this._value=n?t:tt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Ve(t)||gt(t);t=r?t:te(t),ct(t,n)&&(this._rawValue=t,this._value=r?t:tt(t),this.dep.trigger())}}function ce(e){return ge(e)?e.value:e}function Pu(e){return Q(e)?e():ce(e)}const ku={get:(e,t,n)=>t==="__v_raw"?e:ce(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ge(s)&&!ge(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Wl(e){return ht(e)?e:new Proxy(e,ku)}class xu{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Wr,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function uy(e){return new xu(e)}function Ou(e){const t=Y(e)?new Array(e.length):{};for(const n in e)t[n]=Kl(e,n);return t}class Nu{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=We(n)?n:String(n),this._raw=te(t);let s=!0,o=t;if(!Y(t)||We(this._key)||!jr(this._key))do s=!Gr(o)||Ve(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ce(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ge(this._raw[this._key])){const n=this._object[this._key];if(ge(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return fu(this._raw,this._key)}}class Iu{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Mu(e,t,n){return ge(e)?e:Q(e)?new Iu(e):se(e)&&arguments.length>1?Kl(e,t,n):pt(e)}function Kl(e,t,n){return new Nu(e,t,n)}class Lu{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Wr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=zn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&de!==this)return Ol(this,!0),!0}get value(){const t=this.dep.track();return Ml(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hu(e,t,n=!1){let r,s;return Q(e)?r=e:(r=e.get,s=e.set),new Lu(r,s,n)}const ur={},wr=new WeakMap;let Vt;function Du(e,t=!1,n=Vt){if(n){let r=wr.get(n);r||wr.set(n,r=[]),r.push(e)}}function ju(e,t,n=fe){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:l,call:a}=n,f=b=>s?b:Ve(b)||s===!1||s===0?Et(b,1):Et(b);let c,u,h,d,g=!1,y=!1;if(ge(e)?(u=()=>e.value,g=Ve(e)):ht(e)?(u=()=>f(e),g=!0):Y(e)?(y=!0,g=e.some(b=>ht(b)||Ve(b)),u=()=>e.map(b=>{if(ge(b))return b.value;if(ht(b))return f(b);if(Q(b))return a?a(b,2):b()})):Q(e)?t?u=a?()=>a(e,2):e:u=()=>{if(h){Tt();try{h()}finally{St()}}const b=Vt;Vt=c;try{return a?a(e,3,[d]):e(d)}finally{Vt=b}}:u=dt,t&&s){const b=u,v=s===!0?1/0:s;u=()=>Et(b(),v)}const P=yo(),R=()=>{c.stop(),P&&P.active&&ho(P.effects,c)};if(o&&t){const b=t;t=(...v)=>{const x=b(...v);return R(),x}}let w=y?new Array(e.length).fill(ur):ur;const m=b=>{if(!(!(c.flags&1)||!c.dirty&&!b))if(t){const v=c.run();if(b||s||g||(y?v.some((x,A)=>ct(x,w[A])):ct(v,w))){h&&h();const x=Vt;Vt=c;try{const A=[v,w===ur?void 0:y&&w[0]===ur?[]:w,d];w=v,a?a(t,3,A):t(...A)}finally{Vt=x}}}else c.run()};return l&&l(m),c=new kl(u),c.scheduler=i?()=>i(m,!1):m,d=b=>Du(b,!1,c),h=c.onStop=()=>{const b=wr.get(c);if(b){if(a)a(b,4);else for(const v of b)v();wr.delete(c)}},t?r?m(!0):w=c.run():i?i(m.bind(null,!0),!0):c.run(),R.pause=c.pause.bind(c),R.resume=c.resume.bind(c),R.stop=R,R}function Et(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ge(e))Et(e.value,t,n);else if(Y(e))for(let r=0;r{Et(r,t,n)});else if(El(e)){for(const r in e)Et(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Et(e[r],t,n)}return e}function sr(e,t,n,r){try{return r?e(...r):e()}catch(s){Pn(s,t,n)}}function Qe(e,t,n,r){if(Q(e)){const s=sr(e,t,n,r);return s&&vl(s)&&s.catch(o=>{Pn(o,t,n)}),s}if(Y(e)){const s=[];for(let o=0;o>>1,s=Me[r],o=Xn(s);o=Xn(n)?Me.push(e):Me.splice(Bu(t),0,e),e.flags|=1,ql()}}function ql(){Er||(Er=Gl.then(Jl))}function Os(e){Y(e)?mn.push(...e):It&&e.id===-1?It.splice(cn+1,0,e):e.flags&1||(mn.push(e),e.flags|=1),ql()}function Qo(e,t,n=it+1){for(;nXn(n)-Xn(r));if(mn.length=0,It){It.push(...t);return}for(It=t,cn=0;cne.id==null?e.flags&2?-1:1/0:e.id;function Jl(e){try{for(it=0;it{r._d&&kr(-1);const o=Tr(t);let i;try{i=e(...s)}finally{Tr(o),r._d&&kr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function fy(e,t){if(Ae===null)return e;const n=Qr(Ae),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&Q(t)?t.call(r&&r.proxy):t}}function qr(){return!!(kn()||Yt)}const Uu=Symbol.for("v-scx"),$u=()=>Pe(Uu);function Vu(e,t){return Co(e,null,t)}function Jt(e,t,n){return Co(e,t,n)}function Co(e,t,n=fe){const{immediate:r,deep:s,flush:o,once:i}=n,l=Te({},n),a=t&&r||!t&&o!=="post";let f;if(Rn){if(o==="sync"){const d=$u();f=d.__watcherHandles||(d.__watcherHandles=[])}else if(!a){const d=()=>{};return d.stop=dt,d.resume=dt,d.pause=dt,d}}const c=Ce;l.call=(d,g,y)=>Qe(d,c,g,y);let u=!1;o==="post"?l.scheduler=d=>{Re(d,c&&c.suspense)}:o!=="sync"&&(u=!0,l.scheduler=(d,g)=>{g?d():To(d)}),l.augmentJob=d=>{t&&(d.flags|=4),u&&(d.flags|=2,c&&(d.id=c.uid,d.i=c))};const h=ju(e,t,l);return Rn&&(f?f.push(h):a&&h()),h}function Wu(e,t,n){const r=this.proxy,s=he(e)?e.includes(".")?zl(r,e):()=>r[e]:e.bind(r,r);let o;Q(t)?o=t:(o=t.handler,n=t);const i=lr(this),l=Co(s,o.bind(r),n);return i(),l}function zl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,Ye=Symbol("_leaveCb"),In=Symbol("_enterCb");function Gu(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Po(()=>{e.isMounted=!0}),ir(()=>{e.isUnmounting=!0}),e}const qe=[Function,Array],Xl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:qe,onEnter:qe,onAfterEnter:qe,onEnterCancelled:qe,onBeforeLeave:qe,onLeave:qe,onAfterLeave:qe,onLeaveCancelled:qe,onBeforeAppear:qe,onAppear:qe,onAfterAppear:qe,onAppearCancelled:qe},Zl=e=>{const t=e.subTree;return t.component?Zl(t.component):t},qu={name:"BaseTransition",props:Xl,setup(e,{slots:t}){const n=kn(),r=Gu();return()=>{const s=t.default&&na(t.default(),!0),o=s&&s.length?ea(s):n.subTree?$f():void 0;if(!o)return;const i=te(e),{mode:l}=i;if(r.isLeaving)return is(o);const a=Xo(o);if(!a)return is(o);let f=Ns(a,i,r,n,u=>f=u);a.type!==be&&wn(a,f);let c=n.subTree&&Xo(n.subTree);if(c&&c.type!==be&&!Ze(c,a)&&Zl(n).type!==be){let u=Ns(c,i,r,n);if(wn(c,u),l==="out-in"&&a.type!==be)return r.isLeaving=!0,u.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete u.afterLeave,c=void 0},is(o);l==="in-out"&&a.type!==be?u.delayLeave=(h,d,g)=>{const y=ta(r,c);y[String(c.key)]=c,h[Ye]=()=>{d(),h[Ye]=void 0,delete f.delayedLeave,c=void 0},f.delayedLeave=()=>{g(),delete f.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function ea(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==be){t=n;break}}return t}const Ju=qu;function ta(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Ns(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:f,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:h,onLeave:d,onAfterLeave:g,onLeaveCancelled:y,onBeforeAppear:P,onAppear:R,onAfterAppear:w,onAppearCancelled:m}=t,b=String(e.key),v=ta(n,e),x=(S,k)=>{S&&Qe(S,r,9,k)},A=(S,k)=>{const W=k[1];x(S,k),Y(S)?S.every(M=>M.length<=1)&&W():S.length<=1&&W()},L={mode:i,persisted:l,beforeEnter(S){let k=a;if(!n.isMounted)if(o)k=P||a;else return;S[Ye]&&S[Ye](!0);const W=v[b];W&&Ze(e,W)&&W.el[Ye]&&W.el[Ye](),x(k,[S])},enter(S){if(v[b]===e)return;let k=f,W=c,M=u;if(!n.isMounted)if(o)k=R||f,W=w||c,M=m||u;else return;let K=!1;S[In]=ne=>{K||(K=!0,ne?x(M,[S]):x(W,[S]),L.delayedLeave&&L.delayedLeave(),S[In]=void 0)};const Z=S[In].bind(null,!1);k?A(k,[S,Z]):Z()},leave(S,k){const W=String(e.key);if(S[In]&&S[In](!0),n.isUnmounting)return k();x(h,[S]);let M=!1;S[Ye]=Z=>{M||(M=!0,k(),Z?x(y,[S]):x(g,[S]),S[Ye]=void 0,v[W]===e&&delete v[W])};const K=S[Ye].bind(null,!1);v[W]=e,d?A(d,[S,K]):K()},clone(S){const k=Ns(S,t,n,r,s);return s&&s(k),k}};return L}function is(e){if(or(e))return e=Ct(e),e.children=null,e}function Xo(e){if(!or(e))return Ql(e.type)&&e.children?ea(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Q(n.default))return n.default()}}function wn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,wn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function na(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oyn(y,t&&(Y(t)?t[P]:t),n,r,s));return}if(Rt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&yn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Qr(r.component):r.el,i=s?null:o,{i:l,r:a}=e,f=t&&t.r,c=l.refs===fe?l.refs={}:l.refs,u=l.setupState,h=te(u),d=u===fe?_l:y=>Zo(c,y)?!1:ie(h,y),g=(y,P)=>!(P&&Zo(c,P));if(f!=null&&f!==a){if(ei(t),he(f))c[f]=null,d(f)&&(u[f]=null);else if(ge(f)){const y=t;g(f,y.k)&&(f.value=null),y.k&&(c[y.k]=null)}}if(Q(a))sr(a,l,12,[i,c]);else{const y=he(a),P=ge(a);if(y||P){const R=()=>{if(e.f){const w=y?d(a)?u[a]:c[a]:g()||!e.k?a.value:c[e.k];if(s)Y(w)&&ho(w,o);else if(Y(w))w.includes(o)||w.push(o);else if(y)c[a]=[o],d(a)&&(u[a]=c[a]);else{const m=[o];g(a,e.k)&&(a.value=m),e.k&&(c[e.k]=m)}}else y?(c[a]=i,d(a)&&(u[a]=i)):P&&(g(a,e.k)&&(a.value=i),e.k&&(c[e.k]=i))};if(i){const w=()=>{R(),Sr.delete(e)};w.id=-1,Sr.set(e,w),Re(w,n)}else ei(e),R()}}}function ei(e){const t=Sr.get(e);t&&(t.flags|=8,Sr.delete(e))}let ti=!1;const ln=()=>{ti||(console.error("Hydration completed but contains mismatches."),ti=!0)},Yu=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",zu=e=>e.namespaceURI.includes("MathML"),fr=e=>{if(e.nodeType===1){if(Yu(e))return"svg";if(zu(e))return"mathml"}},dn=e=>e.nodeType===8;function Qu(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:a,createComment:f}}=e,c=(m,b)=>{if(!b.hasChildNodes()){n(null,m,b),Rr(),b._vnode=m;return}u(b.firstChild,m,null,null,null),Rr(),b._vnode=m},u=(m,b,v,x,A,L=!1)=>{L=L||!!b.dynamicChildren;const S=dn(m)&&m.data==="[",k=()=>y(m,b,v,x,A,S),{type:W,ref:M,shapeFlag:K,patchFlag:Z}=b;let ne=m.nodeType;b.el=m,Z===-2&&(L=!1,b.dynamicChildren=null);let U=null;switch(W){case zt:ne!==3?b.children===""?(a(b.el=s(""),i(m),m),U=m):U=k():(m.data!==b.children&&(ln(),m.data=b.children),U=o(m));break;case be:w(m)?(U=o(m),R(b.el=m.content.firstChild,m,v)):ne!==8||S?U=k():U=o(m);break;case Wn:if(S&&(m=o(m),ne=m.nodeType),ne===1||ne===3){U=m;const G=!b.children.length;for(let $=0;${L=L||!!b.dynamicChildren;const{type:S,props:k,patchFlag:W,shapeFlag:M,dirs:K,transition:Z}=b,ne=S==="input"||S==="option";if(ne||W!==-1){K&<(b,null,v,"created");let U=!1;if(w(m)){U=Ca(null,Z)&&v&&v.vnode.props&&v.vnode.props.appear;const $=m.content.firstChild;if(U){const le=$.getAttribute("class");le&&($.$cls=le),Z.beforeEnter($)}R($,m,v),b.el=m=$}if(M&16&&!(k&&(k.innerHTML||k.textContent))){let $=d(m.firstChild,b,m,v,x,A,L);for($&&!dr(m,1)&&ln();$;){const le=$;$=$.nextSibling,l(le)}}else if(M&8){let $=b.children;$[0]===` -`&&(m.tagName==="PRE"||m.tagName==="TEXTAREA")&&($=$.slice(1));const{textContent:le}=m;le!==$&&le!==$.replace(/\r\n|\r/g,` -`)&&(dr(m,0)||ln(),m.textContent=b.children)}if(k){if(ne||!L||W&48){const $=m.tagName.includes("-");for(const le in k)(ne&&(le.endsWith("value")||le==="indeterminate")||rr(le)&&!Gt(le)||le[0]==="."||$&&!Gt(le))&&r(m,le,null,k[le],void 0,v)}else if(k.onClick)r(m,"onClick",null,k.onClick,void 0,v);else if(W&4&&ht(k.style))for(const $ in k.style)k.style[$]}let G;(G=k&&k.onVnodeBeforeMount)&&De(G,v,b),K&<(b,null,v,"beforeMount"),((G=k&&k.onVnodeMounted)||K||U)&&Oa(()=>{G&&De(G,v,b),U&&Z.enter(m),K&<(b,null,v,"mounted")},x)}return m.nextSibling},d=(m,b,v,x,A,L,S)=>{S=S||!!b.dynamicChildren;const k=b.children,W=k.length;let M=!1;for(let K=0;K{const{slotScopeIds:S}=b;S&&(A=A?A.concat(S):S);const k=i(m),W=d(o(m),b,k,v,x,A,L);return W&&dn(W)&&W.data==="]"?o(b.anchor=W):(ln(),a(b.anchor=f("]"),k,W),W)},y=(m,b,v,x,A,L)=>{if(dr(m.parentElement,1)||ln(),b.el=null,L){const W=P(m);for(;;){const M=o(m);if(M&&M!==W)l(M);else break}}const S=o(m),k=i(m);return l(m),n(null,b,k,S,v,x,fr(k),A),v&&(v.vnode.el=b.el,zr(v,b.el)),S},P=(m,b="[",v="]")=>{let x=0;for(;m;)if(m=o(m),m&&dn(m)&&(m.data===b&&x++,m.data===v)){if(x===0)return o(m);x--}return m},R=(m,b,v)=>{const x=b.parentNode;x&&x.replaceChild(m,b);let A=v;for(;A;)A.vnode.el===b&&(A.vnode.el=A.subTree.el=m),A=A.parent},w=m=>m.nodeType===1&&m.tagName==="TEMPLATE";return[c,u]}const ni="data-allow-mismatch",Xu={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function dr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ni);)e=e.parentElement;const n=e&&e.getAttribute(ni);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:r.includes(Xu[t])}}Ur().requestIdleCallback;Ur().cancelIdleCallback;function Zu(e,t){if(dn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(dn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Rt=e=>!!e.type.__asyncLoader;function Is(e){Q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:o,timeout:i,suspensible:l=!0,onError:a}=e;let f=null,c,u=0;const h=()=>(u++,f=null,d()),d=()=>{let g;return f||(g=f=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),a)return new Promise((P,R)=>{a(y,()=>P(h()),()=>R(y),u+1)});throw y}).then(y=>g!==f&&f?f:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return Dt({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(g,y,P){let R=!1;(y.bu||(y.bu=[])).push(()=>R=!0);const w=()=>{R||P()},m=o?()=>{const b=o(w,v=>Zu(g,v));b&&(y.bum||(y.bum=[])).push(b)}:w;c?m():d().then(()=>!y.isUnmounted&&m())},get __asyncResolved(){return c},setup(){const g=Ce;if(Ao(g),c)return()=>hr(c,g);const y=v=>{f=null,Pn(v,g,13,!r)};if(l&&g.suspense||Rn)return d().then(v=>()=>hr(v,g)).catch(v=>(y(v),()=>r?ye(r,{error:v}):null));const P=pt(!1),R=pt(),w=pt(!!s);let m,b;return ko(()=>{m!=null&&clearTimeout(m),b!=null&&clearTimeout(b)}),s&&(b=setTimeout(()=>{g.isUnmounted||(w.value=!1)},s)),i!=null&&(m=setTimeout(()=>{if(!g.isUnmounted&&!P.value&&!R.value){const v=new Error(`Async component timed out after ${i}ms.`);y(v),R.value=v}},i)),d().then(()=>{g.isUnmounted||(P.value=!0,g.parent&&or(g.parent.vnode)&&g.parent.update())}).catch(v=>{if(g.isUnmounted){f=null;return}y(v),R.value=v}),()=>{if(P.value&&c)return hr(c,g);if(R.value&&r)return ye(r,{error:R.value});if(n&&!w.value)return hr(n,g)}}})}function hr(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ye(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const or=e=>e.type.__isKeepAlive,ef={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=kn(),r=n.ctx;if(!r.renderer)return()=>{const w=t.default&&t.default();return w&&w.length===1?w[0]:w};const s=new Map,o=new Set;let i=null;const l=n.suspense,{renderer:{p:a,m:f,um:c,o:{createElement:u}}}=r,h=u("div");r.activate=(w,m,b,v,x)=>{const A=w.component;f(w,m,b,0,l),a(A.vnode,w,m,b,A,l,v,w.slotScopeIds,x),Re(()=>{A.isDeactivated=!1,A.a&&gn(A.a);const L=w.props&&w.props.onVnodeMounted;L&&De(L,A.parent,w)},l)},r.deactivate=w=>{const m=w.component;Ar(m.m),Ar(m.a),f(w,h,null,1,l),Re(()=>{m.da&&gn(m.da);const b=w.props&&w.props.onVnodeUnmounted;b&&De(b,m.parent,w),m.isDeactivated=!0},l)};function d(w){ls(w),c(w,n,l,!0)}function g(w){s.forEach((m,b)=>{const v=$s(Rt(m)?m.type.__asyncResolved||{}:m.type);v&&!w(v)&&y(b)})}function y(w){const m=s.get(w);m&&(!i||!Ze(m,i))?d(m):i&&ls(i),s.delete(w),o.delete(w)}Jt(()=>[e.include,e.exclude],([w,m])=>{w&&g(b=>jn(w,b)),m&&g(b=>!jn(m,b))},{flush:"post",deep:!0});let P=null;const R=()=>{P!=null&&(Pr(n.subTree.type)?Re(()=>{s.set(P,pr(n.subTree))},n.subTree.suspense):s.set(P,pr(n.subTree)))};return Po(R),ia(R),ir(()=>{s.forEach(w=>{const{subTree:m,suspense:b}=n,v=pr(m);if(w.type===v.type&&w.key===v.key){ls(v);const x=v.component.da;x&&Re(x,b);return}d(w)})}),()=>{if(P=null,!t.default)return i=null;const w=t.default(),m=w[0];if(w.length>1)return i=null,w;if(!en(m)||!(m.shapeFlag&4)&&!(m.shapeFlag&128))return i=null,m;let b=pr(m);if(b.type===be)return i=null,b;const v=b.type,x=$s(Rt(b)?b.type.__asyncResolved||{}:v),{include:A,exclude:L,max:S}=e;if(A&&(!x||!jn(A,x))||L&&x&&jn(L,x))return b.shapeFlag&=-257,i=b,m;const k=b.key==null?v:b.key,W=s.get(k);return b.el&&(b=Ct(b),m.shapeFlag&128&&(m.ssContent=b)),P=k,W?(b.el=W.el,b.component=W.component,b.transition&&wn(b,b.transition),b.shapeFlag|=512,o.delete(k),o.add(k)):(o.add(k),S&&o.size>parseInt(S,10)&&y(o.values().next().value)),b.shapeFlag|=256,i=b,Pr(m.type)?m:b}}},tf=ef;function jn(e,t){return Y(e)?e.some(n=>jn(n,t)):he(e)?e.split(",").includes(t):Yc(e)?(e.lastIndex=0,e.test(t)):!1}function ra(e,t){oa(e,"a",t)}function sa(e,t){oa(e,"da",t)}function oa(e,t,n=Ce){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Jr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)or(s.parent.vnode)&&nf(r,t,n,s),s=s.parent}}function nf(e,t,n,r){const s=Jr(t,e,r,!0);ko(()=>{ho(r[t],s)},n)}function ls(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function pr(e){return e.shapeFlag&128?e.ssContent:e}function Jr(e,t,n=Ce,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Tt();const l=lr(n),a=Qe(t,n,e,i);return l(),St(),a});return r?s.unshift(o):s.push(o),o}}const Pt=e=>(t,n=Ce)=>{(!Rn||e==="sp")&&Jr(e,(...r)=>t(...r),n)},rf=Pt("bm"),Po=Pt("m"),sf=Pt("bu"),ia=Pt("u"),ir=Pt("bum"),ko=Pt("um"),of=Pt("sp"),lf=Pt("rtg"),af=Pt("rtc");function la(e,t=Ce){Jr("ec",e,t)}const aa="components";function dy(e,t){return ua(aa,e,!0,t)||e}const ca=Symbol.for("v-ndc");function cf(e){return he(e)?ua(aa,e,!1)||e:e||ca}function ua(e,t,n=!0,r=!1){const s=Ae||Ce;if(s){const o=s.type;{const l=$s(o,!1);if(l&&(l===t||l===Le(t)||l===Br(Le(t))))return o}const i=ri(s[e]||o[e],t)||ri(s.appContext[e],t);return!i&&r?o:i}}function ri(e,t){return e&&(e[t]||e[Le(t)]||e[Br(Le(t))])}function hy(e,t,n,r){let s;const o=n,i=Y(e);if(i||he(e)){const l=i&&ht(e);let a=!1,f=!1;l&&(a=!Ve(e),f=gt(e),e=Kr(e)),s=new Array(e.length);for(let c=0,u=e.length;ct(l,a,void 0,o));else{const l=Object.keys(e);s=new Array(l.length);for(let a=0,f=l.length;a0;return ze(),ut(xe,null,[ye("slot",n,r)],f?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),ze();const i=o&&fa(o(n)),l=n.key||i&&i.key,a=ut(xe,{key:(l&&!We(l)?l:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),o&&o._c&&(o._d=!0),a}function fa(e){return e.some(t=>en(t)?!(t.type===be||t.type===xe&&!fa(t.children)):!0)?e:null}const Ms=e=>e?Fa(e)?Qr(e):Ms(e.parent):null,Vn=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ms(e.parent),$root:e=>Ms(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ha(e),$forceUpdate:e=>e.f||(e.f=()=>{To(e.update)}),$nextTick:e=>e.n||(e.n=Zt.bind(e.proxy)),$watch:e=>Wu.bind(e)}),as=(e,t)=>e!==fe&&!e.__isScriptSetup&&ie(e,t),uf={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:a}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(as(r,t))return i[t]=1,r[t];if(s!==fe&&ie(s,t))return i[t]=2,s[t];if(ie(o,t))return i[t]=3,o[t];if(n!==fe&&ie(n,t))return i[t]=4,n[t];Ls&&(i[t]=0)}}const f=Vn[t];let c,u;if(f)return t==="$attrs"&&ke(e.attrs,"get",""),f(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==fe&&ie(n,t))return i[t]=4,n[t];if(u=a.config.globalProperties,ie(u,t))return u[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return as(s,t)?(s[t]=n,!0):r!==fe&&ie(r,t)?(r[t]=n,!0):ie(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:o,type:i}},l){let a;return!!(n[l]||e!==fe&&l[0]!=="$"&&ie(e,l)||as(t,l)||ie(o,l)||ie(r,l)||ie(Vn,l)||ie(s.config.globalProperties,l)||(a=i.__cssModules)&&a[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function si(e){return Y(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ls=!0;function ff(e){const t=ha(e),n=e.proxy,r=e.ctx;Ls=!1,t.beforeCreate&&oi(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:a,inject:f,created:c,beforeMount:u,mounted:h,beforeUpdate:d,updated:g,activated:y,deactivated:P,beforeDestroy:R,beforeUnmount:w,destroyed:m,unmounted:b,render:v,renderTracked:x,renderTriggered:A,errorCaptured:L,serverPrefetch:S,expose:k,inheritAttrs:W,components:M,directives:K,filters:Z}=t;if(f&&df(f,r,null),i)for(const G in i){const $=i[G];Q($)&&(r[G]=$.bind(n))}if(s){const G=s.call(n,n);se(G)&&(e.data=At(G))}if(Ls=!0,o)for(const G in o){const $=o[G],le=Q($)?$.bind(n,n):Q($.get)?$.get.bind(n,n):dt,kt=!Q($)&&Q($.set)?$.set.bind(n):dt,st=$e({get:le,set:kt});Object.defineProperty(r,G,{enumerable:!0,configurable:!0,get:()=>st.value,set:He=>st.value=He})}if(l)for(const G in l)da(l[G],r,n,G);if(a){const G=Q(a)?a.call(n):a;Reflect.ownKeys(G).forEach($=>{Ht($,G[$])})}c&&oi(c,e,"c");function U(G,$){Y($)?$.forEach(le=>G(le.bind(n))):$&&G($.bind(n))}if(U(rf,u),U(Po,h),U(sf,d),U(ia,g),U(ra,y),U(sa,P),U(la,L),U(af,x),U(lf,A),U(ir,w),U(ko,b),U(of,S),Y(k))if(k.length){const G=e.exposed||(e.exposed={});k.forEach($=>{Object.defineProperty(G,$,{get:()=>n[$],set:le=>n[$]=le,enumerable:!0})})}else e.exposed||(e.exposed={});v&&e.render===dt&&(e.render=v),W!=null&&(e.inheritAttrs=W),M&&(e.components=M),K&&(e.directives=K),S&&Ao(e)}function df(e,t,n=dt){Y(e)&&(e=Hs(e));for(const r in e){const s=e[r];let o;se(s)?"default"in s?o=Pe(s.from||r,s.default,!0):o=Pe(s.from||r):o=Pe(s),ge(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function oi(e,t,n){Qe(Y(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function da(e,t,n,r){let s=r.includes(".")?zl(n,r):()=>n[r];if(he(e)){const o=t[e];Q(o)&&Jt(s,o)}else if(Q(e))Jt(s,e.bind(n));else if(se(e))if(Y(e))e.forEach(o=>da(o,t,n,r));else{const o=Q(e.handler)?e.handler.bind(n):t[e.handler];Q(o)&&Jt(s,o,e)}}function ha(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let a;return l?a=l:!s.length&&!n&&!r?a=t:(a={},s.length&&s.forEach(f=>Cr(a,f,i,!0)),Cr(a,t,i)),se(t)&&o.set(t,a),a}function Cr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Cr(e,o,n,!0),s&&s.forEach(i=>Cr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=hf[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const hf={data:ii,props:li,emits:li,methods:Fn,computed:Fn,beforeCreate:Ne,created:Ne,beforeMount:Ne,mounted:Ne,beforeUpdate:Ne,updated:Ne,beforeDestroy:Ne,beforeUnmount:Ne,destroyed:Ne,unmounted:Ne,activated:Ne,deactivated:Ne,errorCaptured:Ne,serverPrefetch:Ne,components:Fn,directives:Fn,watch:gf,provide:ii,inject:pf};function ii(e,t){return t?e?function(){return Te(Q(e)?e.call(this,this):e,Q(t)?t.call(this,this):t)}:t:e}function pf(e,t){return Fn(Hs(e),Hs(t))}function Hs(e){if(Y(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${nn(t)}Modifiers`];function bf(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||fe;let s=n;const o=t.startsWith("update:"),i=o&&_f(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>he(c)?c.trim():c)),i.number&&(s=n.map(po)));let l,a=r[l=ts(t)]||r[l=ts(Le(t))];!a&&o&&(a=r[l=ts(nn(t))]),a&&Qe(a,e,6,s);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Qe(f,e,6,s)}}const vf=new WeakMap;function ga(e,t,n=!1){const r=n?vf:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!Q(e)){const a=f=>{const c=ga(f,t,!0);c&&(l=!0,Te(i,c))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!o&&!l?(se(e)&&r.set(e,null),null):(Y(o)?o.forEach(a=>i[a]=null):Te(i,o),se(e)&&r.set(e,i),i)}function Yr(e,t){return!e||!rr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,nn(t))||ie(e,t))}function cs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:a,render:f,renderCache:c,props:u,data:h,setupState:d,ctx:g,inheritAttrs:y}=e,P=Tr(e);let R,w;try{if(n.shapeFlag&4){const b=s||r,v=b;R=Ue(f.call(v,b,c,u,d,h,g)),w=l}else{const b=t;R=Ue(b.length>1?b(u,{attrs:l,slots:i,emit:a}):b(u,null)),w=t.props?l:Ef(l)}}catch(b){Kn.length=0,Pn(b,e,1),R=ye(be)}let m=R;if(w&&y!==!1){const b=Object.keys(w),{shapeFlag:v}=m;b.length&&v&7&&(o&&b.some(Dr)&&(w=Rf(w,o)),m=Ct(m,w,!1,!0))}return n.dirs&&(m=Ct(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(n.dirs):n.dirs),n.transition&&wn(m,n.transition),R=m,Tr(P),R}function wf(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||rr(n))&&((t||(t={}))[n]=e[n]);return t},Rf=(e,t)=>{const n={};for(const r in e)(!Dr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Tf(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:a}=t,f=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?ai(r,i,f):!!i;if(a&8){const c=t.dynamicProps;for(let u=0;uObject.create(ya),ba=e=>Object.getPrototypeOf(e)===ya;function Sf(e,t,n,r=!1){const s={},o=_a();e.propsDefaults=Object.create(null),va(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ft(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Cf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=te(s),[a]=e.propsOptions;let f=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let u=0;u{a=!0;const[h,d]=wa(u,t,!0);Te(i,h),d&&l.push(...d)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!a)return se(e)&&r.set(e,hn),hn;if(Y(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Oo=e=>Y(e)?e.map(Ue):[Ue(e)],Pf=(e,t,n)=>{if(t._n)return t;const r=So((...s)=>Oo(t(...s)),n);return r._c=!1,r},Ea=(e,t,n)=>{const r=e._ctx;for(const s in e){if(xo(s))continue;const o=e[s];if(Q(o))t[s]=Pf(s,o,r);else if(o!=null){const i=Oo(o);t[s]=()=>i}}},Ra=(e,t)=>{const n=Oo(t);e.slots.default=()=>n},Ta=(e,t,n)=>{for(const r in t)(n||!xo(r))&&(e[r]=t[r])},kf=(e,t,n)=>{const r=e.slots=_a();if(e.vnode.shapeFlag&32){const s=t._;s?(Ta(r,t,n),n&&Rl(r,"_",s,!0)):Ea(t,r)}else t&&Ra(e,t)},xf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=fe;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:Ta(s,t,n):(o=!t.$stable,Ea(t,s)),i=t}else t&&(Ra(e,t),i={default:1});if(o)for(const l in s)!xo(l)&&i[l]==null&&delete s[l]},Re=Oa;function Of(e){return Sa(e)}function Nf(e){return Sa(e,Qu)}function Sa(e,t){const n=Ur();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:a,setText:f,setElementText:c,parentNode:u,nextSibling:h,setScopeId:d=dt,insertStaticContent:g}=e,y=(p,_,E,N=null,T=null,O=null,j=void 0,D=null,H=!!_.dynamicChildren)=>{if(p===_)return;p&&!Ze(p,_)&&(N=C(p),He(p,T,O,!0),p=null),_.patchFlag===-2&&(H=!1,_.dynamicChildren=null);const{type:I,ref:z,shapeFlag:B}=_;switch(I){case zt:P(p,_,E,N);break;case be:R(p,_,E,N);break;case Wn:p==null&&w(_,E,N,j);break;case xe:M(p,_,E,N,T,O,j,D,H);break;default:B&1?v(p,_,E,N,T,O,j,D,H):B&6?K(p,_,E,N,T,O,j,D,H):(B&64||B&128)&&I.process(p,_,E,N,T,O,j,D,H,J)}z!=null&&T?yn(z,p&&p.ref,O,_||p,!_):z==null&&p&&p.ref!=null&&yn(p.ref,null,O,p,!0)},P=(p,_,E,N)=>{if(p==null)r(_.el=l(_.children),E,N);else{const T=_.el=p.el;_.children!==p.children&&f(T,_.children)}},R=(p,_,E,N)=>{p==null?r(_.el=a(_.children||""),E,N):_.el=p.el},w=(p,_,E,N)=>{[p.el,p.anchor]=g(p.children,_,E,N,p.el,p.anchor)},m=({el:p,anchor:_},E,N)=>{let T;for(;p&&p!==_;)T=h(p),r(p,E,N),p=T;r(_,E,N)},b=({el:p,anchor:_})=>{let E;for(;p&&p!==_;)E=h(p),s(p),p=E;s(_)},v=(p,_,E,N,T,O,j,D,H)=>{if(_.type==="svg"?j="svg":_.type==="math"&&(j="mathml"),p==null)x(_,E,N,T,O,j,D,H);else{const I=p.el&&p.el._isVueCE?p.el:null;try{I&&I._beginPatch(),S(p,_,T,O,j,D,H)}finally{I&&I._endPatch()}}},x=(p,_,E,N,T,O,j,D)=>{let H,I;const{props:z,shapeFlag:B,transition:q,dirs:X}=p;if(H=p.el=i(p.type,O,z&&z.is,z),B&8?c(H,p.children):B&16&&L(p.children,H,null,N,T,us(p,O),j,D),X&<(p,null,N,"created"),A(H,p,p.scopeId,j,N),z){for(const ue in z)ue!=="value"&&!Gt(ue)&&o(H,ue,null,z[ue],O,N);"value"in z&&o(H,"value",null,z.value,O),(I=z.onVnodeBeforeMount)&&De(I,N,p)}X&<(p,null,N,"beforeMount");const re=Ca(T,q);re&&q.beforeEnter(H),r(H,_,E),((I=z&&z.onVnodeMounted)||re||X)&&Re(()=>{I&&De(I,N,p),re&&q.enter(H),X&<(p,null,N,"mounted")},T)},A=(p,_,E,N,T)=>{if(E&&d(p,E),N)for(let O=0;O{for(let I=H;I{const D=_.el=p.el;let{patchFlag:H,dynamicChildren:I,dirs:z}=_;H|=p.patchFlag&16;const B=p.props||fe,q=_.props||fe;let X;if(E&&Ft(E,!1),(X=q.onVnodeBeforeUpdate)&&De(X,E,_,p),z&<(_,p,E,"beforeUpdate"),E&&Ft(E,!0),(B.innerHTML&&q.innerHTML==null||B.textContent&&q.textContent==null)&&c(D,""),I?k(p.dynamicChildren,I,D,E,N,us(_,T),O):j||$(p,_,D,null,E,N,us(_,T),O,!1),H>0){if(H&16)W(D,B,q,E,T);else if(H&2&&B.class!==q.class&&o(D,"class",null,q.class,T),H&4&&o(D,"style",B.style,q.style,T),H&8){const re=_.dynamicProps;for(let ue=0;ue{X&&De(X,E,_,p),z&<(_,p,E,"updated")},N)},k=(p,_,E,N,T,O,j)=>{for(let D=0;D<_.length;D++){const H=p[D],I=_[D],z=H.el&&(H.type===xe||!Ze(H,I)||H.shapeFlag&198)?u(H.el):E;y(H,I,z,null,N,T,O,j,!0)}},W=(p,_,E,N,T)=>{if(_!==E){if(_!==fe)for(const O in _)!Gt(O)&&!(O in E)&&o(p,O,_[O],null,T,N);for(const O in E){if(Gt(O))continue;const j=E[O],D=_[O];j!==D&&O!=="value"&&o(p,O,D,j,T,N)}"value"in E&&o(p,"value",_.value,E.value,T)}},M=(p,_,E,N,T,O,j,D,H)=>{const I=_.el=p?p.el:l(""),z=_.anchor=p?p.anchor:l("");let{patchFlag:B,dynamicChildren:q,slotScopeIds:X}=_;X&&(D=D?D.concat(X):X),p==null?(r(I,E,N),r(z,E,N),L(_.children||[],E,z,T,O,j,D,H)):B>0&&B&64&&q&&p.dynamicChildren&&p.dynamicChildren.length===q.length?(k(p.dynamicChildren,q,E,T,O,j,D),(_.key!=null||T&&_===T.subTree)&&Aa(p,_,!0)):$(p,_,E,z,T,O,j,D,H)},K=(p,_,E,N,T,O,j,D,H)=>{_.slotScopeIds=D,p==null?_.shapeFlag&512?T.ctx.activate(_,E,N,j,H):Z(_,E,N,T,O,j,H):ne(p,_,H)},Z=(p,_,E,N,T,O,j)=>{const D=p.component=Kf(p,N,T);if(or(p)&&(D.ctx.renderer=J),Gf(D,!1,j),D.asyncDep){if(T&&T.registerDep(D,U,j),!p.el){const H=D.subTree=ye(be);R(null,H,_,E),p.placeholder=H.el}}else U(D,p,_,E,T,O,j)},ne=(p,_,E)=>{const N=_.component=p.component;if(Tf(p,_,E))if(N.asyncDep&&!N.asyncResolved){G(N,_,E);return}else N.next=_,N.update();else _.el=p.el,N.vnode=_},U=(p,_,E,N,T,O,j)=>{const D=()=>{if(p.isMounted){let{next:B,bu:q,u:X,parent:re,vnode:ue}=p;{const Fe=Pa(p);if(Fe){B&&(B.el=ue.el,G(p,B,j)),Fe.asyncDep.then(()=>{Re(()=>{p.isUnmounted||I()},T)});return}}let ae=B,_e;Ft(p,!1),B?(B.el=ue.el,G(p,B,j)):B=ue,q&&gn(q),(_e=B.props&&B.props.onVnodeBeforeUpdate)&&De(_e,re,B,ue),Ft(p,!0);const ve=cs(p),Xe=p.subTree;p.subTree=ve,y(Xe,ve,u(Xe.el),C(Xe),p,T,O),B.el=ve.el,ae===null&&zr(p,ve.el),X&&Re(X,T),(_e=B.props&&B.props.onVnodeUpdated)&&Re(()=>De(_e,re,B,ue),T)}else{let B;const{el:q,props:X}=_,{bm:re,m:ue,parent:ae,root:_e,type:ve}=p,Xe=Rt(_);if(Ft(p,!1),re&&gn(re),!Xe&&(B=X&&X.onVnodeBeforeMount)&&De(B,ae,_),Ft(p,!0),q&&pe){const Fe=()=>{p.subTree=cs(p),pe(q,p.subTree,p,T,null)};Xe&&ve.__asyncHydrate?ve.__asyncHydrate(q,p,Fe):Fe()}else{_e.ce&&_e.ce._hasShadowRoot()&&_e.ce._injectChildStyle(ve,p.parent?p.parent.type:void 0);const Fe=p.subTree=cs(p);y(null,Fe,E,N,p,T,O),_.el=Fe.el}if(ue&&Re(ue,T),!Xe&&(B=X&&X.onVnodeMounted)){const Fe=_;Re(()=>De(B,ae,Fe),T)}(_.shapeFlag&256||ae&&Rt(ae.vnode)&&ae.vnode.shapeFlag&256)&&p.a&&Re(p.a,T),p.isMounted=!0,_=E=N=null}};p.scope.on();const H=p.effect=new kl(D);p.scope.off();const I=p.update=H.run.bind(H),z=p.job=H.runIfDirty.bind(H);z.i=p,z.id=p.uid,H.scheduler=()=>To(z),Ft(p,!0),I()},G=(p,_,E)=>{_.component=p;const N=p.vnode.props;p.vnode=_,p.next=null,Cf(p,_.props,N,E),xf(p,_.children,E),Tt(),Qo(p),St()},$=(p,_,E,N,T,O,j,D,H=!1)=>{const I=p&&p.children,z=p?p.shapeFlag:0,B=_.children,{patchFlag:q,shapeFlag:X}=_;if(q>0){if(q&128){kt(I,B,E,N,T,O,j,D,H);return}else if(q&256){le(I,B,E,N,T,O,j,D,H);return}}X&8?(z&16&&Ge(I,T,O),B!==I&&c(E,B)):z&16?X&16?kt(I,B,E,N,T,O,j,D,H):Ge(I,T,O,!0):(z&8&&c(E,""),X&16&&L(B,E,N,T,O,j,D,H))},le=(p,_,E,N,T,O,j,D,H)=>{p=p||hn,_=_||hn;const I=p.length,z=_.length,B=Math.min(I,z);let q;for(q=0;qz?Ge(p,T,O,!0,!1,B):L(_,E,N,T,O,j,D,H,B)},kt=(p,_,E,N,T,O,j,D,H)=>{let I=0;const z=_.length;let B=p.length-1,q=z-1;for(;I<=B&&I<=q;){const X=p[I],re=_[I]=H?vt(_[I]):Ue(_[I]);if(Ze(X,re))y(X,re,E,null,T,O,j,D,H);else break;I++}for(;I<=B&&I<=q;){const X=p[B],re=_[q]=H?vt(_[q]):Ue(_[q]);if(Ze(X,re))y(X,re,E,null,T,O,j,D,H);else break;B--,q--}if(I>B){if(I<=q){const X=q+1,re=Xq)for(;I<=B;)He(p[I],T,O,!0),I++;else{const X=I,re=I,ue=new Map;for(I=re;I<=q;I++){const Be=_[I]=H?vt(_[I]):Ue(_[I]);Be.key!=null&&ue.set(Be.key,I)}let ae,_e=0;const ve=q-re+1;let Xe=!1,Fe=0;const On=new Array(ve);for(I=0;I=ve){He(Be,T,O,!0);continue}let ot;if(Be.key!=null)ot=ue.get(Be.key);else for(ae=re;ae<=q;ae++)if(On[ae-re]===0&&Ze(Be,_[ae])){ot=ae;break}ot===void 0?He(Be,T,O,!0):(On[ot-re]=I+1,ot>=Fe?Fe=ot:Xe=!0,y(Be,_[ot],E,null,T,O,j,D,H),_e++)}const Wo=Xe?If(On):hn;for(ae=Wo.length-1,I=ve-1;I>=0;I--){const Be=re+I,ot=_[Be],Ko=_[Be+1],Go=Be+1{const{el:O,type:j,transition:D,children:H,shapeFlag:I}=p;if(I&6){st(p.component.subTree,_,E,N);return}if(I&128){p.suspense.move(_,E,N);return}if(I&64){j.move(p,_,E,J);return}if(j===xe){r(O,_,E);for(let B=0;BD.enter(O),T));else{const{leave:B,delayLeave:q,afterLeave:X}=D,re=()=>{p.ctx.isUnmounted?s(O):r(O,_,E)},ue=()=>{const ae=O._isLeaving||!!O[Ye];O._isLeaving&&O[Ye](!0),D.persisted&&!ae?re():B(O,()=>{re(),X&&X()})};q?q(O,re,ue):ue()}else r(O,_,E)},He=(p,_,E,N=!1,T=!1)=>{const{type:O,props:j,ref:D,children:H,dynamicChildren:I,shapeFlag:z,patchFlag:B,dirs:q,cacheIndex:X,memo:re}=p;if(B===-2&&(T=!1),D!=null&&(Tt(),yn(D,null,E,p,!0),St()),X!=null&&(_.renderCache[X]=void 0),z&256){_.ctx.deactivate(p);return}const ue=z&1&&q,ae=!Rt(p);let _e;if(ae&&(_e=j&&j.onVnodeBeforeUnmount)&&De(_e,_,p),z&6)jt(p.component,E,N);else{if(z&128){p.suspense.unmount(E,N);return}ue&<(p,null,_,"beforeUnmount"),z&64?p.type.remove(p,_,E,J,N):I&&!I.hasOnce&&(O!==xe||B>0&&B&64)?Ge(I,_,E,!1,!0):(O===xe&&B&384||!T&&z&16)&&Ge(H,_,E),N&&rn(p)}const ve=re!=null&&X==null;(ae&&(_e=j&&j.onVnodeUnmounted)||ue||ve)&&Re(()=>{_e&&De(_e,_,p),ue&<(p,null,_,"unmounted"),ve&&(p.el=null)},E)},rn=p=>{const{type:_,el:E,anchor:N,transition:T}=p;if(_===xe){sn(E,N);return}if(_===Wn){b(p);return}const O=()=>{s(E),T&&!T.persisted&&T.afterLeave&&T.afterLeave()};if(p.shapeFlag&1&&T&&!T.persisted){const{leave:j,delayLeave:D}=T,H=()=>j(E,O);D?D(p.el,O,H):H()}else O()},sn=(p,_)=>{let E;for(;p!==_;)E=h(p),s(p),p=E;s(_)},jt=(p,_,E)=>{const{bum:N,scope:T,job:O,subTree:j,um:D,m:H,a:I}=p;Ar(H),Ar(I),N&&gn(N),T.stop(),O&&(O.flags|=8,He(j,p,_,E)),D&&Re(D,_),Re(()=>{p.isUnmounted=!0},_)},Ge=(p,_,E,N=!1,T=!1,O=0)=>{for(let j=O;j{if(p.shapeFlag&6)return C(p.component.subTree);if(p.shapeFlag&128)return p.suspense.next();const _=h(p.anchor||p.el),E=_&&_[Ku];return E?h(E):_};let V=!1;const F=(p,_,E)=>{let N;p==null?_._vnode&&(He(_._vnode,null,null,!0),N=_._vnode.component):y(_._vnode||null,p,_,null,null,null,E),_._vnode=p,V||(V=!0,Qo(N),Rr(),V=!1)},J={p:y,um:He,m:st,r:rn,mt:Z,mc:L,pc:$,pbc:k,n:C,o:e};let ee,pe;return t&&([ee,pe]=t(J)),{render:F,hydrate:ee,createApp:yf(F,ee)}}function us({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ft({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ca(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Aa(e,t,n=!1){const r=e.children,s=t.children;if(Y(r)&&Y(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Pa(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Pa(t)}function Ar(e){if(e)for(let t=0;te.__isSuspense;let js=0;const Mf={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,l,a,f){if(e==null)Lf(t,n,r,s,o,i,l,a,f);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Hf(e,t,n,r,s,i,l,a,f)}},hydrate:Df,normalize:jf},No=Mf;function Zn(e,t){const n=e.props&&e.props[t];Q(n)&&n()}function Lf(e,t,n,r,s,o,i,l,a){const{p:f,o:{createElement:c}}=a,u=c("div"),h=e.suspense=xa(e,s,r,t,u,n,o,i,l,a);f(null,h.pendingBranch=e.ssContent,u,null,r,h,o,i),h.deps>0?(Zn(e,"onPending"),Zn(e,"onFallback"),f(null,e.ssFallback,t,n,r,null,o,i),_n(h,e.ssFallback)):h.resolve(!1,!0)}function Hf(e,t,n,r,s,o,i,l,{p:a,um:f,o:{createElement:c}}){const u=t.suspense=e.suspense;u.vnode=t,t.el=e.el;const h=t.ssContent,d=t.ssFallback,{activeBranch:g,pendingBranch:y,isInFallback:P,isHydrating:R}=u;if(y)u.pendingBranch=h,Ze(y,h)?(a(y,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0?u.resolve():P&&(R||(a(g,d,n,r,s,null,o,i,l),_n(u,d)))):(u.pendingId=js++,R?(u.isHydrating=!1,u.activeBranch=y):f(y,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=c("div"),P?(a(null,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0?u.resolve():(a(g,d,n,r,s,null,o,i,l),_n(u,d))):g&&Ze(g,h)?(a(g,h,n,r,s,u,o,i,l),u.resolve(!0)):(a(null,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0&&u.resolve()));else if(g&&Ze(g,h))a(g,h,n,r,s,u,o,i,l),_n(u,h);else if(Zn(t,"onPending"),u.pendingBranch=h,h.shapeFlag&512?u.pendingId=h.component.suspenseId:u.pendingId=js++,a(null,h,u.hiddenContainer,null,s,u,o,i,l),u.deps<=0)u.resolve();else{const{timeout:w,pendingId:m}=u;w>0?setTimeout(()=>{u.pendingId===m&&u.fallback(d)},w):w===0&&u.fallback(d)}}function xa(e,t,n,r,s,o,i,l,a,f,c=!1){const{p:u,m:h,um:d,n:g,o:{parentNode:y,remove:P}}=f;let R;const w=Ff(e);w&&t&&t.pendingBranch&&(R=t.pendingId,t.deps++);const m=e.props?Tl(e.props.timeout):void 0,b=o,v={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:js++,timeout:typeof m=="number"?m:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(x=!1,A=!1){const{vnode:L,activeBranch:S,pendingBranch:k,pendingId:W,effects:M,parentComponent:K,container:Z,isInFallback:ne}=v;let U=!1;if(v.isHydrating)v.isHydrating=!1;else if(!x){U=S&&k.transition&&k.transition.mode==="out-in";let le=!1;U&&(S.transition.afterLeave=()=>{W===v.pendingId&&(h(k,Z,o===b&&!le?g(S):o,0),Os(M),ne&&L.ssFallback&&(L.ssFallback.el=null))}),S&&!v.isFallbackMountPending&&(y(S.el)===Z&&(o=g(S),le=!0),d(S,K,v,!0),!U&&ne&&L.ssFallback&&Re(()=>L.ssFallback.el=null,v)),U||h(k,Z,o,0)}v.isFallbackMountPending=!1,_n(v,k),v.pendingBranch=null,v.isInFallback=!1;let G=v.parent,$=!1;for(;G;){if(G.pendingBranch){G.effects.push(...M),$=!0;break}G=G.parent}!$&&!U&&Os(M),v.effects=[],w&&t&&t.pendingBranch&&R===t.pendingId&&(t.deps--,t.deps===0&&!A&&t.resolve()),Zn(L,"onResolve")},fallback(x){if(!v.pendingBranch)return;const{vnode:A,activeBranch:L,parentComponent:S,container:k,namespace:W}=v;Zn(A,"onFallback");const M=g(L),K=()=>{v.isFallbackMountPending=!1,v.isInFallback&&(u(null,x,k,M,S,null,W,l,a),_n(v,x))},Z=x.transition&&x.transition.mode==="out-in";Z&&(v.isFallbackMountPending=!0,L.transition.afterLeave=K),v.isInFallback=!0,d(L,S,null,!0),Z||K()},move(x,A,L){v.activeBranch&&h(v.activeBranch,x,A,L),v.container=x},next(){return v.activeBranch&&g(v.activeBranch)},registerDep(x,A,L){const S=!!v.pendingBranch;S&&v.deps++;const k=x.vnode.el;x.asyncDep.catch(W=>{Pn(W,x,0)}).then(W=>{if(x.isUnmounted||v.isUnmounted||v.pendingId!==x.suspenseId)return;Bs(),x.asyncResolved=!0;const{vnode:M}=x;Us(x,W),k&&(M.el=k);const K=!k&&x.subTree.el;A(x,M,y(k||x.subTree.el),k?null:g(x.subTree),v,i,L),K&&(M.placeholder=null,P(K)),zr(x,M.el),S&&--v.deps===0&&v.resolve()})},unmount(x,A){v.isUnmounted=!0,v.activeBranch&&d(v.activeBranch,n,x,A),v.pendingBranch&&d(v.pendingBranch,n,x,A)}};return v}function Df(e,t,n,r,s,o,i,l,a){const f=t.suspense=xa(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,l,!0),c=a(e,f.pendingBranch=t.ssContent,n,f,o,i);return f.deps===0&&f.resolve(!1,!0),c}function jf(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=ui(r?n.default:n),e.ssFallback=r?ui(n.fallback):ye(be)}function ui(e){let t;if(Q(e)){const n=En&&e._c;n&&(e._d=!1,ze()),e=e(),n&&(e._d=!0,t=je,Na())}return Y(e)&&(e=wf(e)),e=Ue(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Oa(e,t){t&&t.pendingBranch?Y(e)?t.effects.push(...e):t.effects.push(e):Os(e)}function _n(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let s=t.el;for(;!s&&t.component;)t=t.component.subTree,s=t.el;n.el=s,r&&r.subTree===n&&(r.vnode.el=s,zr(r,s))}function Ff(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const xe=Symbol.for("v-fgt"),zt=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),Wn=Symbol.for("v-stc"),Kn=[];let je=null;function ze(e=!1){Kn.push(je=e?null:[])}function Na(){Kn.pop(),je=Kn[Kn.length-1]||null}let En=1;function kr(e,t=!1){En+=e,e<0&&je&&t&&(je.hasOnce=!0)}function Ia(e){return e.dynamicChildren=En>0?je||hn:null,Na(),En>0&&je&&je.push(e),e}function Bf(e,t,n,r,s,o){return Ia(La(e,t,n,r,s,o,!0))}function ut(e,t,n,r,s){return Ia(ye(e,t,n,r,s,!0))}function en(e){return e?e.__v_isVNode===!0:!1}function Ze(e,t){return e.type===t.type&&e.key===t.key}const Ma=({key:e})=>e??null,_r=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?he(e)||ge(e)||Q(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function La(e,t=null,n=null,r=0,s=null,o=e===xe?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ma(t),ref:t&&_r(t),scopeId:Yl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ae};return l?(Io(a,n),o&128&&e.normalize(a)):n&&(a.shapeFlag|=he(n)?8:16),En>0&&!i&&je&&(a.patchFlag>0||o&6)&&a.patchFlag!==32&&je.push(a),a}const ye=Uf;function Uf(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ca)&&(e=be),en(e)){const l=Ct(e,t,!0);return n&&Io(l,n),En>0&&!o&&je&&(l.shapeFlag&6?je[je.indexOf(e)]=l:je.push(l)),l.patchFlag=-2,l}if(zf(e)&&(e=e.__vccOpts),t){t=Ha(t);let{class:l,style:a}=t;l&&!he(l)&&(t.class=Vr(l)),se(a)&&(Gr(a)&&!Y(a)&&(a=Te({},a)),t.style=$r(a))}const i=he(e)?1:Pr(e)?128:Ql(e)?64:se(e)?4:Q(e)?2:0;return La(e,t,n,r,s,i,o,!0)}function Ha(e){return e?Gr(e)||ba(e)?Te({},e):e:null}function Ct(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:a}=e,f=t?ja(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Ma(f),ref:t&&t.ref?n&&o?Y(o)?o.concat(_r(t)):[o,_r(t)]:_r(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xe?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ct(e.ssContent),ssFallback:e.ssFallback&&Ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&wn(c,a.clone(c)),c}function Da(e=" ",t=0){return ye(zt,null,e,t)}function gy(e,t){const n=ye(Wn,null,e);return n.staticCount=t,n}function $f(e="",t=!1){return t?(ze(),ut(be,null,e)):ye(be,null,e)}function Ue(e){return e==null||typeof e=="boolean"?ye(be):Y(e)?ye(xe,null,e.slice()):en(e)?vt(e):ye(zt,null,String(e))}function vt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ct(e)}function Io(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Y(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Io(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!ba(t)?t._ctx=Ae:s===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Q(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),r&64?(n=16,t=[Da(t)]):n=8);e.children=t,e.shapeFlag|=n}function ja(...e){const t={};for(let n=0;nCe||Ae;let xr,Fs;{const e=Ur(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};xr=t("__VUE_INSTANCE_SETTERS__",n=>Ce=n),Fs=t("__VUE_SSR_SETTERS__",n=>Rn=n)}const lr=e=>{const t=Ce;return xr(e),e.scope.on(),()=>{e.scope.off(),xr(t)}},Bs=()=>{Ce&&Ce.scope.off(),xr(null)};function Fa(e){return e.vnode.shapeFlag&4}let Rn=!1;function Gf(e,t=!1,n=!1){t&&Fs(t);const{props:r,children:s}=e.vnode,o=Fa(e);Sf(e,r,o,t),kf(e,s,n||t);const i=o?qf(e,t):void 0;return t&&Fs(!1),i}function qf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,uf);const{setup:r}=n;if(r){Tt();const s=e.setupContext=r.length>1?Yf(e):null,o=lr(e),i=sr(r,e,0,[e.props,s]),l=vl(i);if(St(),o(),(l||e.sp)&&!Rt(e)&&Ao(e),l){if(i.then(Bs,Bs),t)return i.then(a=>{Us(e,a)}).catch(a=>{Pn(a,e,0)});e.asyncDep=i}else Us(e,i)}else Ba(e)}function Us(e,t,n){Q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=Wl(t)),Ba(e)}function Ba(e,t,n){const r=e.type;e.render||(e.render=r.render||dt);{const s=lr(e);Tt();try{ff(e)}finally{St(),s()}}}const Jf={get(e,t){return ke(e,"get",""),e[t]}};function Yf(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Jf),slots:e.slots,emit:e.emit,expose:t}}function Qr(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Wl(Ro(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vn)return Vn[n](e)},has(t,n){return n in t||n in Vn}})):e.proxy}function $s(e,t=!0){return Q(e)?e.displayName||e.name:e.name||t&&e.__name}function zf(e){return Q(e)&&"__vccOpts"in e}const $e=(e,t)=>Hu(e,t,Rn);function Oe(e,t,n){try{kr(-1);const r=arguments.length;return r===2?se(t)&&!Y(t)?en(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&en(n)&&(n=[n]),ye(e,t,n))}finally{kr(1)}}const Qf="3.5.38";let Vs;const fi=typeof window<"u"&&window.trustedTypes;if(fi)try{Vs=fi.createPolicy("vue",{createHTML:e=>e})}catch{}const Ua=Vs?e=>Vs.createHTML(e):e=>e,Xf="http://www.w3.org/2000/svg",Zf="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,di=bt&&bt.createElement("template"),ed={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?bt.createElementNS(Xf,e):t==="mathml"?bt.createElementNS(Zf,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{di.innerHTML=Ua(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=di.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},xt="transition",Mn="animation",er=Symbol("_vtc"),$a={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},td=Te({},Xl,$a),nd=e=>(e.displayName="Transition",e.props=td,e),rd=nd((e,{slots:t})=>Oe(Ju,sd(e),t)),Bt=(e,t=[])=>{Y(e)?e.forEach(n=>n(...t)):e&&e(...t)},hi=e=>e?Y(e)?e.some(t=>t.length>1):e.length>1:!1;function sd(e){const t={};for(const M in e)M in $a||(t[M]=e[M]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=o,appearActiveClass:f=i,appearToClass:c=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,g=od(s),y=g&&g[0],P=g&&g[1],{onBeforeEnter:R,onEnter:w,onEnterCancelled:m,onLeave:b,onLeaveCancelled:v,onBeforeAppear:x=R,onAppear:A=w,onAppearCancelled:L=m}=t,S=(M,K,Z,ne)=>{M._enterCancelled=ne,Ut(M,K?c:l),Ut(M,K?f:i),Z&&Z()},k=(M,K)=>{M._isLeaving=!1,Ut(M,u),Ut(M,d),Ut(M,h),K&&K()},W=M=>(K,Z)=>{const ne=M?A:w,U=()=>S(K,M,Z);Bt(ne,[K,U]),pi(()=>{Ut(K,M?a:o),yt(K,M?c:l),hi(ne)||gi(K,r,y,U)})};return Te(t,{onBeforeEnter(M){Bt(R,[M]),yt(M,o),yt(M,i)},onBeforeAppear(M){Bt(x,[M]),yt(M,a),yt(M,f)},onEnter:W(!1),onAppear:W(!0),onLeave(M,K){M._isLeaving=!0;const Z=()=>k(M,K);yt(M,u),M._enterCancelled?(yt(M,h),_i(M)):(_i(M),yt(M,h)),pi(()=>{M._isLeaving&&(Ut(M,u),yt(M,d),hi(b)||gi(M,r,P,Z))}),Bt(b,[M,Z])},onEnterCancelled(M){S(M,!1,void 0,!0),Bt(m,[M])},onAppearCancelled(M){S(M,!0,void 0,!0),Bt(L,[M])},onLeaveCancelled(M){k(M),Bt(v,[M])}})}function od(e){if(e==null)return null;if(se(e))return[fs(e.enter),fs(e.leave)];{const t=fs(e);return[t,t]}}function fs(e){return Tl(e)}function yt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[er]||(e[er]=new Set)).add(t)}function Ut(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[er];n&&(n.delete(t),n.size||(e[er]=void 0))}function pi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let id=0;function gi(e,t,n,r){const s=e._endId=++id,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:l,propCount:a}=ld(e,t);if(!i)return r();const f=i+"end";let c=0;const u=()=>{e.removeEventListener(f,h),o()},h=d=>{d.target===e&&++c>=a&&u()};setTimeout(()=>{c(n[g]||"").split(", "),s=r(`${xt}Delay`),o=r(`${xt}Duration`),i=mi(s,o),l=r(`${Mn}Delay`),a=r(`${Mn}Duration`),f=mi(l,a);let c=null,u=0,h=0;t===xt?i>0&&(c=xt,u=i,h=o.length):t===Mn?f>0&&(c=Mn,u=f,h=a.length):(u=Math.max(i,f),c=u>0?i>f?xt:Mn:null,h=c?c===xt?o.length:a.length:0);const d=c===xt&&/\b(?:transform|all)(?:,|$)/.test(r(`${xt}Property`).toString());return{type:c,timeout:u,propCount:h,hasTransform:d}}function mi(e,t){for(;e.lengthyi(n)+yi(e[r])))}function yi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function _i(e){return(e?e.ownerDocument:document).body.offsetHeight}function ad(e,t,n){const r=e[er];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Or=Symbol("_vod"),Va=Symbol("_vsh"),my={name:"show",beforeMount(e,{value:t},{transition:n}){e[Or]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Ln(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Ln(e,!0),r.enter(e)):r.leave(e,()=>{Ln(e,!1)}):Ln(e,t))},beforeUnmount(e,{value:t}){Ln(e,t)}};function Ln(e,t){e.style.display=t?e[Or]:"none",e[Va]=!t}const cd=Symbol(""),ud=/(?:^|;)\s*display\s*:/;function fd(e,t,n){const r=e.style,s=he(n);let o=!1;if(n&&!s){if(t)if(he(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Bn(r,l,"")}else for(const i in t)n[i]==null&&Bn(r,i,"");for(const i in n){i==="display"&&(o=!0);const l=n[i];l!=null?hd(e,i,!he(t)&&t?t[i]:void 0,l)||Bn(r,i,l):Bn(r,i,"")}}else if(s){if(t!==n){const i=r[cd];i&&(n+=";"+i),r.cssText=n,o=ud.test(n)}}else t&&e.removeAttribute("style");Or in e&&(e[Or]=o?r.display:"",e[Va]&&(r.display="none"))}const bi=/\s*!important$/;function Bn(e,t,n){if(Y(n))n.forEach(r=>Bn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=dd(e,t);bi.test(n)?e.setProperty(nn(r),n.replace(bi,""),"important"):e[r]=n}}const vi=["Webkit","Moz","ms"],ds={};function dd(e,t){const n=ds[t];if(n)return n;let r=Le(t);if(r!=="filter"&&r in e)return ds[t]=r;r=Br(r);for(let s=0;shs||(yd.then(()=>hs=0),hs=Date.now());function bd(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(Y(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),l=[r];for(let a=0;ae.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,vd=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?ad(e,r,i):t==="style"?fd(e,n,r):rr(t)?Dr(t)||gd(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):wd(e,t,r,i))?(Ri(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ei(e,t,r,i,o,t!=="value")):e._isVueCE&&(Ed(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!he(r)))?Ri(e,Le(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ei(e,t,r,i))};function wd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ci(t)&&Q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Ci(t)&&he(n)?!1:t in e}function Ed(e,t){const n=e._def.props;if(!n)return!1;const r=Le(t);return Array.isArray(n)?n.some(s=>Le(s)===r):Object.keys(n).some(s=>Le(s)===r)}const Ai=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Y(t)?n=>gn(t,n):t};function Rd(e){e.target.composing=!0}function Pi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ps=Symbol("_assign");function ki(e,t,n){return t&&(e=e.trim()),n&&(e=po(e)),e}const yy={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[ps]=Ai(s);const o=r||s.props&&s.props.type==="number";un(e,t?"change":"input",i=>{i.target.composing||e[ps](ki(e.value,n,o))}),(n||o)&&un(e,"change",()=>{e.value=ki(e.value,n,o)}),t||(un(e,"compositionstart",Rd),un(e,"compositionend",Pi),un(e,"change",Pi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[ps]=Ai(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?po(e.value):e.value,a=t??"";if(l===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===a)||(e.value=a)}},Td=["ctrl","shift","alt","meta"],Sd={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Td.some(n=>e[`${n}Key`]&&!t.includes(n))},_y=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Cd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ga(r);if(!s)return;const o=t._component;!Q(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Ka(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t}),kd=((...e)=>{const t=Ad().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ga(r);if(s)return n(s,!0,Ka(s))},t});function Ka(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ga(e){return he(e)?document.querySelector(e):e}const xd=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Od=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Nd=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Id(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){Md(e);return}return t}function Md(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Nr(e,t={}){if(typeof e!="string")return e;if(e[0]==='"'&&e[e.length-1]==='"'&&e.indexOf("\\")===-1)return e.slice(1,-1);const n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!Nd.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(xd.test(e)||Od.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,Id)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const qa=/#/g,Ja=/&/g,Ld=/\//g,Hd=/=/g,Dd=/\?/g,Xr=/\+/g,jd=/%5e/gi,Fd=/%60/gi,Bd=/%7c/gi,Ud=/%20/gi,$d=/%2f/gi,Vd=/%252f/gi;function Ya(e){return encodeURI(""+e).replace(Bd,"|")}function Ws(e){return Ya(typeof e=="string"?e:JSON.stringify(e)).replace(Xr,"%2B").replace(Ud,"+").replace(qa,"%23").replace(Ja,"%26").replace(Fd,"`").replace(jd,"^").replace(Ld,"%2F")}function gs(e){return Ws(e).replace(Hd,"%3D")}function Wd(e){return Ya(e).replace(qa,"%23").replace(Dd,"%3F").replace(Vd,"%2F").replace(Ja,"%26").replace(Xr,"%2B")}function tr(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function Kd(e){return tr(e.replace($d,"%252F"))}function Gd(e){return tr(e.replace(Xr," "))}function qd(e){return tr(e.replace(Xr," "))}function za(e=""){const t=Object.create(null);e[0]==="?"&&(e=e.slice(1));for(const n of e.split("&")){const r=n.match(/([^=]+)=?(.*)/)||[];if(r.length<2)continue;const s=Gd(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=qd(r[2]||"");t[s]===void 0?t[s]=o:Array.isArray(t[s])?t[s].push(o):t[s]=[t[s],o]}return t}function Jd(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${gs(e)}=${Ws(n)}`).join("&"):`${gs(e)}=${Ws(t)}`:gs(e)}function Yd(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>Jd(t,e[t])).filter(Boolean).join("&")}const zd=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Qd=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,Xd=/^([/\\]\s*){2,}[^/\\]/,Zd=/^[\s\0]*(blob|data|javascript|vbscript):$/i,eh=/\/$|\/\?|\/#/,th=/^\.?\//;function xn(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?zd.test(e):Qd.test(e)||(t.acceptRelative?Xd.test(e):!1)}function Ks(e){return!!e&&Zd.test(e)}function Gs(e="",t){return t?eh.test(e):e.endsWith("/")}function Ir(e="",t){if(!t)return(Gs(e)?e.slice(0,-1):e)||"/";if(!Gs(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");s!==-1&&(n=e.slice(0,s),r=e.slice(s));const[o,...i]=n.split("?");return((o.endsWith("/")?o.slice(0,-1):o)||"/")+(i.length>0?`?${i.join("?")}`:"")+r}function nh(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(Gs(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");if(s!==-1&&(n=e.slice(0,s),r=e.slice(s),!n))return r;const[o,...i]=n.split("?");return o+"/"+(i.length>0?`?${i.join("?")}`:"")+r}function rh(e,t){if(Xa(t)||xn(e))return e;const n=Ir(t);if(e.startsWith(n)){const r=e[n.length];if(!r||r==="/"||r==="?")return e}return Za(n,e)}function Oi(e,t){if(Xa(t))return e;const n=Ir(t);if(!e.startsWith(n))return e;const r=e[n.length];return r&&r!=="/"&&r!=="?"?e:"/"+e.slice(n.length).replace(/^\/+/,"")}function Qa(e,t){const n=Mo(e),r={...za(n.search),...t};return n.search=Yd(r),oh(n)}function Xa(e){return!e||e==="/"}function sh(e){return e&&e!=="/"}function Za(e,...t){let n=e||"";for(const r of t.filter(s=>sh(s)))if(n){const s=r.replace(th,"");n=nh(n)+s}else n=r;return n}function ec(...e){const t=/\/(?!\/)/,n=e.filter(Boolean),r=[];let s=0;for(const i of n)if(!(!i||i==="/")){for(const[l,a]of i.split(t).entries())if(!(!a||a===".")){if(a===".."){if(r.length===1&&xn(r[0]))continue;r.pop(),s--;continue}if(l===1&&r[r.length-1]?.endsWith(":/")){r[r.length-1]+="/"+a;continue}r.push(a),s++}}let o=r.join("/");return s>=0?n[0]?.startsWith("/")&&!o.startsWith("/")?o="/"+o:n[0]?.startsWith("./")&&!o.startsWith("./")&&(o="./"+o):o="../".repeat(-1*s)+o,n[n.length-1]?.endsWith("/")&&!o.endsWith("/")&&(o+="/"),o}function tc(e,t){return tr(Ir(e))===tr(Ir(t))}const nc=Symbol.for("ufo:protocolRelative");function Mo(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,u,h=""]=n;return{protocol:u.toLowerCase(),pathname:h,href:u+h,auth:"",host:"",search:"",hash:""}}if(!xn(e,{acceptRelative:!0}))return Ni(e);const[,r="",s,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,i="",l=""]=o.match(/([^#/?]*)(.*)?/)||[];r==="file:"&&(l=l.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:a,search:f,hash:c}=Ni(l);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:a,search:f,hash:c,[nc]:!r}}function Ni(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function oh(e){const t=e.pathname||"",n=e.search?(e.search.startsWith("?")?"":"?")+e.search:"",r=e.hash||"",s=e.auth?e.auth+"@":"",o=e.host||"";return(e.protocol||e[nc]?(e.protocol||"")+"//":"")+s+o+t+n+r}class ih extends Error{constructor(t,n){super(t,n),this.name="FetchError",n?.cause&&!this.cause&&(this.cause=n.cause)}}function lh(e){const t=e.error?.message||e.error?.toString()||"",n=e.request?.method||e.options?.method||"GET",r=e.request?.url||String(e.request)||"/",s=`[${n}] ${JSON.stringify(r)}`,o=e.response?`${e.response.status} ${e.response.statusText}`:"",i=`${s}: ${o}${t?` ${t}`:""}`,l=new ih(i,e.error?{cause:e.error}:void 0);for(const a of["request","options","response"])Object.defineProperty(l,a,{get(){return e[a]}});for(const[a,f]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(l,a,{get(){return e.response&&e.response[f]}});return l}const ah=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function Ii(e="GET"){return ah.has(e.toUpperCase())}function ch(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}const uh=new Set(["image/svg","application/xml","application/xhtml","application/html"]),fh=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function dh(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return fh.test(t)?"json":t==="text/event-stream"?"stream":uh.has(t)||t.startsWith("text/")?"text":"blob"}function hh(e,t,n,r){const s=ph(t?.headers??e?.headers,n?.headers,r);let o;return(n?.query||n?.params||t?.params||t?.query)&&(o={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:o,params:o,headers:s}}function ph(e,t,n){if(!t)return new n(e);const r=new n(t);if(e)for(const[s,o]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(s,o);return r}async function gr(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const gh=new Set([408,409,425,429,500,502,503,504]),mh=new Set([101,204,205,304]);function rc(e={}){const{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function s(l){const a=l.error&&l.error.name==="AbortError"&&!l.options.timeout||!1;if(l.options.retry!==!1&&!a){let c;typeof l.options.retry=="number"?c=l.options.retry:c=Ii(l.options.method)?0:1;const u=l.response&&l.response.status||500;if(c>0&&(Array.isArray(l.options.retryStatusCodes)?l.options.retryStatusCodes.includes(u):gh.has(u))){const h=typeof l.options.retryDelay=="function"?l.options.retryDelay(l):l.options.retryDelay||0;return h>0&&await new Promise(d=>setTimeout(d,h)),o(l.request,{...l.options,retry:c-1})}}const f=lh(l);throw Error.captureStackTrace&&Error.captureStackTrace(f,o),f}const o=async function(a,f={}){const c={request:a,options:hh(a,f,e.defaults,n),response:void 0,error:void 0};if(c.options.method&&(c.options.method=c.options.method.toUpperCase()),c.options.onRequest&&(await gr(c,c.options.onRequest),c.options.headers instanceof n||(c.options.headers=new n(c.options.headers||{}))),typeof c.request=="string"&&(c.options.baseURL&&(c.request=rh(c.request,c.options.baseURL)),c.options.query&&(c.request=Qa(c.request,c.options.query),delete c.options.query),"query"in c.options&&delete c.options.query,"params"in c.options&&delete c.options.params),c.options.body&&Ii(c.options.method))if(ch(c.options.body)){const d=c.options.headers.get("content-type");typeof c.options.body!="string"&&(c.options.body=d==="application/x-www-form-urlencoded"?new URLSearchParams(c.options.body).toString():JSON.stringify(c.options.body)),d||c.options.headers.set("content-type","application/json"),c.options.headers.has("accept")||c.options.headers.set("accept","application/json")}else("pipeTo"in c.options.body&&typeof c.options.body.pipeTo=="function"||typeof c.options.body.pipe=="function")&&("duplex"in c.options||(c.options.duplex="half"));let u;if(!c.options.signal&&c.options.timeout){const d=new r;u=setTimeout(()=>{const g=new Error("[TimeoutError]: The operation was aborted due to timeout");g.name="TimeoutError",g.code=23,d.abort(g)},c.options.timeout),c.options.signal=d.signal}try{c.response=await t(c.request,c.options)}catch(d){return c.error=d,c.options.onRequestError&&await gr(c,c.options.onRequestError),await s(c)}finally{u&&clearTimeout(u)}if((c.response.body||c.response._bodyInit)&&!mh.has(c.response.status)&&c.options.method!=="HEAD"){const d=(c.options.parseResponse?"json":c.options.responseType)||dh(c.response.headers.get("content-type")||"");switch(d){case"json":{const g=await c.response.text(),y=c.options.parseResponse||Nr;c.response._data=y(g);break}case"stream":{c.response._data=c.response.body||c.response._bodyInit;break}default:c.response._data=await c.response[d]()}}return c.options.onResponse&&await gr(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await gr(c,c.options.onResponseError),await s(c)):c.response},i=async function(a,f){return(await o(a,f))._data};return i.raw=o,i.native=(...l)=>t(...l),i.create=(l={},a={})=>rc({...e,...a,defaults:{...e.defaults,...a.defaults,...l}}),i}const Mr=(function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")})(),yh=Mr.fetch?(...e)=>Mr.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),_h=Mr.Headers,bh=Mr.AbortController,vh=rc({fetch:yh,Headers:_h,AbortController:bh}),wh=vh,Eh=()=>window?.__NUXT__?.config||{},Lo=()=>Eh().app,Rh=()=>Lo().baseURL,Th=()=>Lo().buildAssetsDir,Ho=(...e)=>ec(sc(),Th(),...e),sc=(...e)=>{const t=Lo(),n=t.cdnURL||t.baseURL;return e.length?ec(n,...e):n};globalThis.__buildAssetsURL=Ho,globalThis.__publicAssetsURL=sc;globalThis.$fetch||(globalThis.$fetch=wh.create({baseURL:Rh()}));"global"in globalThis||(globalThis.global=globalThis);function qs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?qs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const Sh={run:e=>e()},Ch=()=>Sh,oc=typeof console.createTask<"u"?console.createTask:Ch;function Ah(e,t){const n=t.shift(),r=oc(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function Ph(e,t){const n=t.shift(),r=oc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function ms(e,t){for(const n of[...e])n(t)}let kh=class{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const s=t;let o;for(;this._deprecatedHooks[t];)o=this._deprecatedHooks[t],t=o.to;if(o&&!r.allowDeprecated){let i=o.message;i||(i=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,s=(...o)=>(typeof r=="function"&&r(),r=void 0,s=void 0,n(...o));return r=this.hook(t,s),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const s of r)this.hook(t,s)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=qs(t),r=Object.keys(n).map(s=>this.hook(s,n[s]));return()=>{for(const s of r.splice(0,r.length))s()}}removeHooks(t){const n=qs(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(Ah,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(Ph,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&ms(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&ms(this._after,s)}):(this._after&&s&&ms(this._after,s),o)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}};function xh(){return new kh}function Oh(e={}){let t,n=!1;const r=i=>{if(t&&t!==i)throw new Error("Context conflict")};let s;if(e.asyncContext){const i=e.AsyncLocalStorage||globalThis.AsyncLocalStorage;i?s=new i:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}const o=()=>{if(s){const i=s.getStore();if(i!==void 0)return i}return t};return{use:()=>{const i=o();if(i===void 0)throw new Error("Context is not available");return i},tryUse:()=>o(),set:(i,l)=>{l||r(i),t=i,n=!0},unset:()=>{t=void 0,n=!1},call:(i,l)=>{r(i),t=i;try{return s?s.run(i,l):l()}finally{n||(t=void 0)}},async callAsync(i,l){t=i;const a=()=>{t=i},f=()=>t===i?a:void 0;Js.add(f);try{const c=s?s.run(i,l):l();return n||(t=void 0),await c}finally{Js.delete(f)}}}}function Nh(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=Oh({...e,...r})),t[n]}}}const Lr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},Mi="__unctx__",Ih=Lr[Mi]||(Lr[Mi]=Nh()),Mh=(e,t={})=>Ih.get(e,t),Li="__unctx_async_handlers__",Js=Lr[Li]||(Lr[Li]=new Set);function qn(e){const t=[];for(const s of Js){const o=s();o&&t.push(o)}const n=()=>{for(const s of t)s()};let r=e();return r&&typeof r=="object"&&"catch"in r&&(r=r.catch(s=>{throw n(),s})),[r,n]}const Hi=!1,Di=!1,Lh=!1,vy={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},Hh=null,Dh="#__nuxt",ic="nuxt-app",ji=36e5,jh="vite:preloadError";function lc(e=ic){return Mh(e,{asyncContext:!1})}const Fh="__nuxt_plugin";function Bh(e){let t=0;const n={_id:e.id||ic||"nuxt-app",_scope:mo(),provide:void 0,globalName:"nuxt",versions:{get nuxt(){return"3.21.8"},get vue(){return n.vueApp.version}},payload:ft({...e.ssrContext?.payload||{},data:ft({}),state:At({}),once:new Set,_errors:ft({})}),static:{data:{}},runWithContext(s){return n._scope.active&&!yo()?n._scope.run(()=>Fi(n,s)):Fi(n,s)},isHydrating:!0,deferHydration(){if(!n.isHydrating)return()=>{};t++;let s=!1;return()=>{if(!s&&(s=!0,t--,t===0))return n.isHydrating=!1,n.callHook("app:suspense:resolve")}},_asyncDataPromises:{},_asyncData:ft({}),_payloadRevivers:{},...e};{const s=window.__NUXT__;if(s)for(const o in s)switch(o){case"data":case"state":case"_errors":Object.assign(n.payload[o],s[o]);break;default:n.payload[o]=s[o]}}n.hooks=xh(),n.hook=n.hooks.hook,n.callHook=n.hooks.callHook,n.provide=(s,o)=>{const i="$"+s;mr(n,i,o),mr(n.vueApp.config.globalProperties,i,o)},mr(n.vueApp,"$nuxt",n),mr(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(jh,o=>{n.callHook("app:chunkError",{error:o.payload}),o.payload?.message?.includes("Unable to preload CSS")&&o.preventDefault()}),window.useNuxtApp||=Se;const s=n.hook("app:error",(...o)=>{console.error("[nuxt] error caught during app initialization",...o)});n.hook("app:mounted",s)}const r=n.payload.config;return n.provide("config",r),n}function Uh(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function $h(e,t){if(typeof t=="function"){const{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n=="object")for(const r in n)e.provide(r,n[r])}}async function Vh(e,t){const n=new Set,r=[],s=[];let o,i=0;async function l(a){const f=a.dependsOn?.filter(c=>t.some(u=>u._name===c)&&!n.has(c))??[];if(f.length>0)r.push([new Set(f),a]);else{const c=$h(e,a).then(async()=>{a._name&&(n.add(a._name),await Promise.all(r.map(async([u,h])=>{u.has(a._name)&&(u.delete(a._name),u.size===0&&(i++,await l(h)))})))}).catch(u=>{if(!a.parallel&&!e.payload.error)throw u;o||=u});a.parallel?s.push(c):await c}}for(const a of t)Uh(e,a);for(const a of t)await l(a);if(await Promise.all(s),i)for(let a=0;a{}),e,{[Fh]:!0,_name:t})}const Wh=rt;function Fi(e,t,n){const r=()=>t();return lc(e._id).set(e),e.vueApp.runWithContext(r)}function Kh(e){let t;return qr()&&(t=kn()?.appContext.app.$nuxt),t||=lc(e).tryUse(),t||null}function Se(e){const t=Kh(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function Do(e){return Se().$config}function mr(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function ys(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Ys(e,t,n=".",r){if(!ys(t))return Ys(e,{},n,r);const s={...t};for(const o of Object.keys(e)){if(o==="__proto__"||o==="constructor")continue;const i=e[o];i!=null&&(r&&r(s,o,i,n)||(Array.isArray(i)&&Array.isArray(s[o])?s[o]=[...i,...s[o]]:ys(i)&&ys(s[o])?s[o]=Ys(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function Gh(e){return(...t)=>t.reduce((n,r)=>Ys(n,r,"",e),{})}const ac=Gh();function qh(e,t){try{return t in e}catch{return!1}}class Bi extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(t,n={}){super(t,n),n.cause&&!this.cause&&(this.cause=n.cause)}toJSON(){const t={message:this.message,statusCode:zs(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=cc(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}function Jh(e){if(typeof e=="string")return new Bi(e);if(Yh(e))return e;const t=new Bi(e.message??e.statusMessage??"",{cause:e.cause||e});if(qh(e,"stack"))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=zs(e.statusCode,t.statusCode):e.status&&(t.statusCode=zs(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;cc(t.statusMessage)!==n&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function Yh(e){return e?.constructor?.__h3_error__===!0}const zh=/[^\u0009\u0020-\u007E]/g;function cc(e=""){return e.replace(zh,"")}function zs(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const uc=Symbol("layout-meta"),tn=Symbol("route");import.meta.url.replace(/\/app\/.*$/,"/");const Ke=()=>Se()?.$router,jo=()=>qr()?Pe(tn,Se()._route):Se()._route;function wy(e){return e}const Qh=()=>{try{if(Se()._processingMiddleware)return!0}catch{return!1}return!1},Ey=(e,t)=>{e||="/";const n=typeof e=="string"?e:"path"in e?Xh(e):Ke().resolve(e).href;if(t?.open){const{protocol:f}=new URL(n,window.location.href);if(f&&Ks(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`);const{target:c="_blank",windowFeatures:u={}}=t.open,h=[];for(const[d,g]of Object.entries(u))g!==void 0&&h.push(`${d.toLowerCase()}=${g}`);return open(n,c,h.join(", ")),Promise.resolve()}const r=xn(n,{acceptRelative:!0}),s=t?.external||r;if(s){if(!t?.external)throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");const{protocol:f}=new URL(n,window.location.href);if(f&&Ks(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`)}const o=Qh();if(!s&&o){if(t?.replace){if(typeof e=="string"){const{pathname:f,search:c,hash:u}=Mo(e);return{path:f,...c&&{query:za(c)},...u&&{hash:u},replace:!0}}return{...e,replace:!0}}return e}const i=Ke(),l=Se();if(s)return l._scope.stop(),t?.replace?location.replace(n):location.href=n,o?l.isHydrating?new Promise(()=>{}):!1:Promise.resolve();const a=typeof e=="string"?Zh(e):e;return t?.replace?i.replace(a):i.push(a)};function Xh(e){return Qa(e.path||"",e.query||{})+(e.hash||"")}function Zh(e){const t=Mo(e);return Wd(Kd(t.pathname))+t.search+t.hash}const fc="__nuxt_error",Zr=()=>Mu(Se().payload,"error"),Wt=e=>{const t=Qt(e);try{const n=Zr();Se().hooks.callHook("app:error",t),n.value||=t}catch{throw t}return t},ep=async(e={})=>{const t=Se(),n=Zr();t.callHook("app:error:cleared",e),e.redirect&&await Ke().replace(e.redirect),n.value=Hh},dc=e=>!!e&&typeof e=="object"&&fc in e,Qt=e=>{typeof e!="string"&&e.statusText&&(e.message??=e.statusText);const t=Jh(e);return Object.defineProperty(t,fc,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t};let hc;const Tn=e=>hc=e,pc=Symbol();function Qs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Jn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Jn||(Jn={}));function tp(){const e=mo(!0),t=e.run(()=>pt({}));let n=[],r=[];const s=Ro({install(o){Tn(s),s._a=o,o.provide(pc,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const gc=()=>{};function Ui(e,t,n,r=gc){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&yo()&&au(s),s}function an(e,...t){e.forEach(n=>{n(...t)})}const np=e=>e(),$i=Symbol(),_s=Symbol();function Xs(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];Qs(s)&&Qs(r)&&e.hasOwnProperty(n)&&!ge(r)&&!ht(r)?e[n]=Xs(s,r):e[n]=r}return e}const rp=Symbol();function sp(e){return!Qs(e)||!Object.prototype.hasOwnProperty.call(e,rp)}const{assign:Nt}=Object;function op(e){return!!(ge(e)&&e.effect)}function ip(e,t,n,r){const{state:s,actions:o,getters:i}=t,l=n.state.value[e];let a;function f(){l||(n.state.value[e]=s?s():{});const c=Ou(n.state.value[e]);return Nt(c,o,Object.keys(i||{}).reduce((u,h)=>(u[h]=Ro($e(()=>{Tn(n);const d=n._s.get(e);return i[h].call(d,d)})),u),{}))}return a=mc(e,f,t,n,r,!0),a}function mc(e,t,n={},r,s,o){let i;const l=Nt({actions:{}},n),a={deep:!0};let f,c,u=new Set,h=new Set,d;const g=r.state.value[e];!o&&!g&&(r.state.value[e]={});let y;function P(L){let S;f=c=!1,typeof L=="function"?(L(r.state.value[e]),S={type:Jn.patchFunction,storeId:e,events:d}):(Xs(r.state.value[e],L),S={type:Jn.patchObject,payload:L,storeId:e,events:d});const k=y=Symbol();Zt().then(()=>{y===k&&(f=!0)}),c=!0,an(u,S,r.state.value[e])}const R=o?function(){const{state:S}=n,k=S?S():{};this.$patch(W=>{Nt(W,k)})}:gc;function w(){i.stop(),u.clear(),h.clear(),r._s.delete(e)}const m=(L,S="")=>{if($i in L)return L[_s]=S,L;const k=function(){Tn(r);const W=Array.from(arguments),M=new Set,K=new Set;function Z(G){M.add(G)}function ne(G){K.add(G)}an(h,{args:W,name:k[_s],store:v,after:Z,onError:ne});let U;try{U=L.apply(this&&this.$id===e?this:v,W)}catch(G){throw an(K,G),G}return U instanceof Promise?U.then(G=>(an(M,G),G)).catch(G=>(an(K,G),Promise.reject(G))):(an(M,U),U)};return k[$i]=!0,k[_s]=S,k},b={_p:r,$id:e,$onAction:Ui.bind(null,h),$patch:P,$reset:R,$subscribe(L,S={}){const k=Ui(u,L,S.detached,()=>W()),W=i.run(()=>Jt(()=>r.state.value[e],M=>{(S.flush==="sync"?c:f)&&L({storeId:e,type:Jn.direct,events:d},M)},Nt({},a,S)));return k},$dispose:w},v=At(b);r._s.set(e,v);const A=(r._a&&r._a.runWithContext||np)(()=>r._e.run(()=>(i=mo()).run(()=>t({action:m}))));for(const L in A){const S=A[L];if(ge(S)&&!op(S)||ht(S))o||(g&&sp(S)&&(ge(S)?S.value=g[L]:Xs(S,g[L])),r.state.value[e][L]=S);else if(typeof S=="function"){const k=m(S,L);A[L]=k,l.actions[L]=S}}return Nt(v,A),Nt(te(v),A),Object.defineProperty(v,"$state",{get:()=>r.state.value[e],set:L=>{P(S=>{Nt(S,L)})}}),r._p.forEach(L=>{Nt(v,i.run(()=>L({store:v,app:r._a,pinia:r,options:l})))}),g&&o&&n.hydrate&&n.hydrate(v.$state,g),f=!0,c=!0,v}function Ry(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,l){const a=qr();return i=i||(a?Pe(pc,null):null),i&&Tn(i),i=hc,i._s.has(e)||(s?mc(e,t,r,i):ip(e,r,i)),i._s.get(e)}return o.$id=e,o}const lp=-1,ap=-2,cp=-3,up=-4,fp=-5,dp=-6,hp=-7,yc=2**32-1,Zs=yc-1;function pp(e){return!(!Number.isInteger(e)||e<0||e>Zs)}function gp(e){return!(!Number.isInteger(e)||e<0||e>yc)}function mp(e){return Uint8Array.fromBase64(e).buffer}function yp(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function _p(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s=f)throw new Error("Invalid input");c[h]=o(a[u+1])}c.length=f}else{const f=new Array(a.length);r[i]=f;for(let c=0;c{if(console.createTask)return console.createTask;const e={run:t=>t()};return()=>e})();function bc(e,t,n,r){for(let s=n;se[s](...t)):e[s](...t);if(o&&typeof o.then=="function")return Promise.resolve(o).then(()=>bc(e,t,s+1,r))}catch(o){return Promise.reject(o)}}function Op(e,t,n){if(e.length>0)return bc(e,t,0,_c(n))}function Np(e,t,n){if(e.length>0){const r=_c(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}}function bs(e,t){for(const n of[...e])n(t)}var Ip=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!="function")return()=>{};const r=e;let s;for(;this._deprecatedHooks[e];)s=this._deprecatedHooks[e],e=s.to;if(s&&!n.allowDeprecated){let o=s.message;o||(o=`${r} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(o)||(console.warn(o),this._deprecatedMessages.add(o))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>"_"+e.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let n,r=(...s)=>(typeof n=="function"&&n(),n=void 0,r=void 0,t(...s));return n=this.hook(e,r),n}removeHook(e,t){const n=this._hooks[e];if(n){const r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t=="string"?{to:t}:t;const n=this._hooks[e]||[];this._hooks[e]=void 0;for(const r of n)this.hook(e,r)}deprecateHooks(e){for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=to(e),n=Object.keys(t).map(r=>this.hook(r,t[r]));return()=>{for(const r of n)r();n.length=0}}removeHooks(e){const t=to(e);for(const n in t)this.removeHook(n,t[n])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(Op,e,t)}callHookParallel(e,...t){return this.callHookWith(Np,e,t)}callHookWith(e,t,n){const r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&bs(this._before,r);const s=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return s instanceof Promise?s.finally(()=>{this._after&&r&&bs(this._after,r)}):(this._after&&r&&bs(this._after,r),s)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){const t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){const t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function Mp(){return new Ip}const Lp=["name","property","http-equiv"],Hp=new Set(["viewport","description","keywords","robots"]);function vc(e){const t=e.split(":");return t.length?xp.has(t[1]):!1}function no(e){const{props:t,tag:n}=e;if(Ap.has(n))return n;if(n==="link"&&t.rel==="canonical")return"canonical";if(n==="link"&&t.rel==="alternate"){if(t.hreflang)return`alternate:${t.hreflang}`;if(t.type)return`alternate:${t.type}:${t.href||""}`}if(t.charset)return"charset";if(e.tag==="meta"){for(const r of Lp)if(t[r]!==void 0){const s=t[r],o=s&&typeof s=="string"&&s.includes(":"),i=s&&Hp.has(s),a=!(o||i)&&e.key?`:key:${e.key}`:"";return`${n}:${s}${a}`}}if(e.key)return`${n}:key:${e.key}`;if(t.id)return`${n}:id:${t.id}`;if(n==="link"&&t.rel==="alternate")return`alternate:${t.href||""}`;if(Sp.has(n)){const r=e.textContent||e.innerHTML;if(r)return`${n}:content:${r}`}}function wc(e){const t=e._h||e._d;if(t)return t;const n=e.textContent||e.innerHTML;return n||`${e.tag}:${Object.entries(e.props).map(([r,s])=>`${r}:${String(s)}`).join(",")}`}function Hr(e,t,n){typeof e==="function"&&(!n||n!=="titleTemplate"&&!(n[0]==="o"&&n[1]==="n"))&&(e=e());const s=t?t(n,e):e;if(Array.isArray(s))return s.map(o=>Hr(o,t));if(s?.constructor===Object){const o={};for(const i of Object.keys(s))o[i]=Hr(s[i],t,i);return o}return s}function Dp(e,t){const n=e==="style"?new Map:new Set;function r(s){if(s==null||s===void 0)return;const o=String(s).trim();if(o)if(e==="style"){const[i,...l]=o.split(":").map(a=>a?a.trim():"");i&&l.length&&n.set(i,l.join(":"))}else o.split(" ").filter(Boolean).forEach(i=>n.add(i))}return typeof t=="string"?e==="style"?t.split(";").forEach(r):r(t):Array.isArray(t)?t.forEach(s=>r(s)):t&&typeof t=="object"&&Object.entries(t).forEach(([s,o])=>{o&&o!=="false"&&(e==="style"?n.set(String(s).trim(),String(o)):r(s))}),n}function Ec(e,t){if(e.props=e.props||{},!t)return e;if(e.tag==="templateParams")return e.props=t,e;const n=eo.has(e.tag)||e.tag==="htmlAttrs"||e.tag==="bodyAttrs";return Object.entries(t).forEach(([r,s])=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;if(s===null){e.props[r]=null;return}if(r==="class"||r==="style"){e.props[r]=Dp(r,s);return}if(Pp.has(r)){if((r==="textContent"||r==="innerHTML")&&typeof s=="object"){let f=t.type;if(t.type||(f="application/json"),!f?.endsWith("json")&&f!=="speculationrules")return;t.type=f,e.props.type=f,e[r]=JSON.stringify(s)}else e[r]=s;return}const o=r.startsWith("data-"),i=n&&!o?r.toLowerCase():r,l=String(s),a=e.tag==="meta"&&i==="content";l==="true"||l===""?e.props[i]=o||a?l:!0:!s&&o&&l==="false"?e.props[i]="false":s!==void 0&&(e.props[i]=s)}),e}function jp(e,t){const n=typeof t=="object"&&typeof t!="function"?t:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},r=Ec({tag:e,props:{}},n);return r.key&&Tp.has(r.tag)&&(r.props["data-hid"]=r._h=r.key),r.tag==="script"&&typeof r.innerHTML=="object"&&(r.innerHTML=JSON.stringify(r.innerHTML),r.props.type=r.props.type||"application/json"),Array.isArray(r.props.content)?r.props.content.map(s=>({...r,props:{...r.props,content:s}})):r}function Fp(e,t){if(!e)return[];typeof e=="function"&&(e=e());const n=(s,o)=>{for(let i=0;i{if(o!==void 0)for(const i of Array.isArray(o)?o:[o])r.push(jp(s,i))}),r.flat()}const ro=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Vi={base:-10,title:10},Bp={critical:-8,high:-1,low:2},Wi={meta:{"content-security-policy":-30,charset:-20,viewport:-15},link:{preconnect:20,stylesheet:60,preload:70,modulepreload:70,prefetch:90,"dns-prefetch":90,prerender:90},script:{async:30,defer:80,sync:50},style:{imported:40,sync:60}},Up=/@import/,Hn=e=>e===""||e===!0;function $p(e,t){if(typeof t.tagPriority=="number")return t.tagPriority;let n=100;const r=Bp[t.tagPriority]||0,s=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:Wi;if(t.tag in Vi)n=Vi[t.tag];else if(t.tag==="meta"){const o=t.props["http-equiv"]==="content-security-policy"?"content-security-policy":t.props.charset?"charset":t.props.name==="viewport"?"viewport":null;o&&(n=Wi.meta[o])}else if(t.tag==="link"&&t.props.rel)n=s.link[t.props.rel];else if(t.tag==="script"){const o=String(t.props.type);Hn(t.props.async)?n=s.script.async:t.props.src&&!Hn(t.props.defer)&&!Hn(t.props.async)&&o!=="module"&&!o.endsWith("json")||t.innerHTML&&!o.endsWith("json")?n=s.script.sync:(Hn(t.props.defer)&&t.props.src&&!Hn(t.props.async)||o==="module")&&(n=s.script.defer)}else t.tag==="style"&&(n=t.innerHTML&&Up.test(t.innerHTML)?s.style.imported:s.style.sync);return(n||100)+r}function Ki(e,t){const n=typeof t=="function"?t(e):t,r=n.key||String(e.plugins.size+1);e.plugins.get(r)||(e.plugins.set(r,n),e.hooks.addHooks(n.hooks||{}))}function Vp(e={}){const t=Mp();t.addHooks(e.hooks||{});const n=!e.document,r=new Map,s=new Map,o=new Set,i={_entryCount:1,plugins:s,dirty:!1,resolvedOptions:e,hooks:t,ssr:n,entries:r,headEntries(){return[...r.values()]},use:l=>Ki(i,l),push(l,a){const f={...a||{}};delete f.head;const c=f._index??i._entryCount++,u={_i:c,input:l,options:f},h={_poll(d=!1){i.dirty=!0,!d&&o.add(c),t.callHook("entries:updated",i)},dispose(){r.delete(c)&&i.invalidate()},patch(d){(!f.mode||f.mode==="server"&&n||f.mode==="client"&&!n)&&(u.input=d,r.set(c,u),h._poll())}};return h.patch(l),h},async resolveTags(){const l={tagMap:new Map,tags:[],entries:[...i.entries.values()]};for(await t.callHook("entries:resolve",l);o.size;){const h=o.values().next().value;o.delete(h);const d=r.get(h);if(d){const g={tags:Fp(d.input,e.propResolvers||[]).map(y=>Object.assign(y,d.options)),entry:d};await t.callHook("entries:normalize",g),d._tags=g.tags.map((y,P)=>(y._w=$p(i,y),y._p=(d._i<<10)+P,y._d=no(y),y._d||(y._h=wc(y)),y))}}let a=!1;l.entries.flatMap(h=>(h._tags||[]).map(d=>({...d,props:{...d.props}}))).sort(ro).reduce((h,d)=>{const g=d._d||d._h;if(!h.has(g))return h.set(g,d);const y=h.get(g);if((d?.tagDuplicateStrategy||(kp.has(d.tag)?"merge":null)||(d.key&&d.key===y.key?"merge":null))==="merge"){const R={...y.props};Object.entries(d.props).forEach(([w,m])=>R[w]=w==="style"?new Map([...y.props.style||new Map,...m]):w==="class"?new Set([...y.props.class||new Set,...m]):m),h.set(g,{...d,props:R})}else d._p>>10===y._p>>10&&d.tag==="meta"&&vc(g)?(h.set(g,Object.assign([...Array.isArray(y)?y:[y],d],d)),a=!0):(d._w===y._w?d._p>y._p:d?._wKi(i,l)),i.hooks.callHook("init",i),e.init?.forEach(l=>l&&i.push(l)),i}const vs="%separator";function Wp(e,t,n=!1){let r;if(t==="s"||t==="pageTitle")r=e.pageTitle;else if(t.includes(".")){const s=t.indexOf(".");r=e[t.substring(0,s)]?.[t.substring(s+1)]}else r=e[t];if(r!==void 0)return n?(r||"").replace(/\\/g,"\\\\").replace(/{if(l===vs||!o.includes(l))return l;const a=Wp(t,l.slice(1),r);return a!==void 0?a:l}).trim(),i&&(e=e.split(vs).map(l=>l.trim()).filter(l=>l!=="").join(n?` ${n} `:" ")),e}const Gi=e=>e.includes(":key")?e:e.split(":").join(":key:"),Kp={key:"aliasSorting",hooks:{"tags:resolve":e=>{let t=!1;for(const n of e.tags){const r=n.tagPriority;if(!r)continue;const s=String(r);if(s.startsWith("before:")){const o=Gi(s.slice(7)),i=e.tagMap.get(o);i&&(typeof i.tagPriority=="number"&&(n.tagPriority=i.tagPriority),n._p=i._p-1,t=!0)}else if(s.startsWith("after:")){const o=Gi(s.slice(6)),i=e.tagMap.get(o);i&&(typeof i.tagPriority=="number"&&(n.tagPriority=i.tagPriority),n._p=i._p+1,t=!0)}}t&&(e.tags=e.tags.sort(ro))}}},Gp={key:"deprecations",hooks:{"entries:normalize":({tags:e})=>{for(const t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),t.props.body&&(t.tagPosition="bodyClose",delete t.props.body)}}};async function so(e){if(typeof e==="function")return e;if(e instanceof Promise)return await e;if(Array.isArray(e))return await Promise.all(e.map(n=>so(n)));if(e?.constructor===Object){const n={};for(const r of Object.keys(e))n[r]=await so(e[r]);return n}return e}const qp={key:"promises",hooks:{"entries:resolve":async e=>{const t=[];for(const n in e.entries)e.entries[n]._promisesProcessed||t.push(so(e.entries[n].input).then(r=>{e.entries[n].input=r,e.entries[n]._promisesProcessed=!0}));await Promise.all(t)}}},Jp={meta:"content",link:"href",htmlAttrs:"lang"},Yp=["innerHTML","textContent"],zp=e=>({key:"template-params",hooks:{"entries:normalize":t=>{const n=t.tags.filter(r=>r.tag==="templateParams"&&r.mode==="server")?.[0]?.props||{};Object.keys(n).length&&(e._ssrPayload={templateParams:{...e._ssrPayload?.templateParams||{},...n}})},"tags:resolve":({tagMap:t,tags:n})=>{const r=t.get("templateParams")?.props||{},s=r.separator||"|";delete r.separator,r.pageTitle=yr(r.pageTitle||e._title||"",r,s);for(const o of n){if(o.processTemplateParams===!1)continue;const i=Jp[o.tag];if(i&&typeof o.props[i]=="string")o.props[i]=yr(o.props[i],r,s);else if(o.processTemplateParams||o.tag==="titleTemplate"||o.tag==="title")for(const l of Yp)typeof o[l]=="string"&&(o[l]=yr(o[l],r,s,o.tag==="script"&&o.props.type.endsWith("json")))}e._templateParams=r,e._separator=s},"tags:afterResolve":({tagMap:t})=>{const n=t.get("title");n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=yr(n.textContent,e._templateParams,e._separator))}}}),Qp=(e,t)=>ge(t)?Pu(t):t,Rc="usehead";function Xp(e){return{install(n){n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(Rc,e)}}.install}function Zp(){if(qr()){const e=Pe(Rc);if(e)return e}throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.")}function Ty(e,t={}){const n=t.head||Zp();return n.ssr?n.push(e||{},t):eg(n,e,t)}function eg(e,t,n={}){const r=pt(!1);let s;return Vu(()=>{const i=r.value?{}:Hr(t,Qp);s?s.patch(i):s=e.push(i,n)}),kn()&&(ir(()=>{s.dispose()}),sa(()=>{r.value=!0}),ra(()=>{r.value=!1})),s}const tg=(e,t)=>[],Tc=e=>ac({},...tg("",typeof e=="string"?e.toLowerCase():e).map(t=>t.data).reverse()),ng=Tc;let br;function rg(){let e;return e=$fetch(Ho(`builds/meta/${Do().app.buildId}.json`),{responseType:"json"}).then(t=>{if(!t||typeof t!="object"||!Array.isArray(t.prerendered))throw new Error("[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.");return t}),br=e,e.catch(t=>{br===e&&(br=void 0),console.error("[nuxt] Error fetching app manifest.",t)}),e}function Sc(){return br||rg()}function Cc(e){const t=typeof e=="string"?e:e.path;try{return ng(t.toLowerCase())}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function qi(e,t={}){return null}async function sg(e){return null}let $t=null;async function og(){if($t)return $t;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await ig(e.textContent||""),n=e.dataset.src?await sg(e.dataset.src):void 0;return $t={...t,...n,...window.__NUXT__},$t.config?.public&&($t.config.public=At($t.config.public)),$t}async function ig(e){return await Ep(e,Se()._payloadRevivers)}function Ac(e,t){Se()._payloadRevivers[e]=t}const lg=Wh(()=>{Ac("skipHydrate",e=>{})}),ag=[["NuxtError",e=>Qt(e)],["EmptyShallowRef",e=>vn(e==="_"?void 0:e==="0n"?BigInt(0):Nr(e))],["EmptyRef",e=>pt(e==="_"?void 0:e==="0n"?BigInt(0):Nr(e))],["ShallowRef",e=>vn(e)],["ShallowReactive",e=>ft(e)],["Ref",e=>pt(e)],["Reactive",e=>At(e)]],cg=rt({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of ag)Ac(r,s);Object.assign(e.payload,([t,n]=qn(()=>e.runWithContext(og)),t=await t,n(),t)),window.__NUXT__=e.payload}});async function Fo(e,t={}){const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!!r.shouldRender)return e._domUpdatePromise||(e._domUpdatePromise=new Promise(async s=>{const o=new Map,i=new Promise(d=>{e.resolveTags().then(g=>{d(g.map(y=>{const P=o.get(y._d)||0,R={tag:y,id:(P?`${y._d}:${P}`:y._d)||y._h,shouldRender:!0};return y._d&&vc(y._d)&&o.set(y._d,P+1),R}))})});let l=e._dom;if(!l){l={title:n.title,elMap:new Map().set("htmlAttrs",n.documentElement).set("bodyAttrs",n.body)};for(const d of["body","head"]){const g=n[d]?.children;for(const y of g){const P=y.tagName.toLowerCase();if(!eo.has(P))continue;const R=Ec({tag:P,props:{}},{innerHTML:y.innerHTML,...y.getAttributeNames().reduce((w,m)=>(w[m]=y.getAttribute(m),w),{})||{}});if(R.key=y.getAttribute("data-hid")||void 0,R._d=no(R)||wc(R),l.elMap.has(R._d)){let w=1,m=R._d;for(;l.elMap.has(m);)m=`${R._d}:${w++}`;l.elMap.set(m,y)}else l.elMap.set(R._d,y)}}}l.pendingSideEffects={...l.sideEffects},l.sideEffects={};function a(d,g,y){const P=`${d}:${g}`;l.sideEffects[P]=y,delete l.pendingSideEffects[P]}function f({id:d,$el:g,tag:y}){const P=y.tag.endsWith("Attrs");l.elMap.set(d,g),P||(y.textContent&&y.textContent!==g.textContent&&(g.textContent=y.textContent),y.innerHTML&&y.innerHTML!==g.innerHTML&&(g.innerHTML=y.innerHTML),a(d,"el",()=>{g?.remove(),l.elMap.delete(d)}));for(const R in y.props){if(!Object.prototype.hasOwnProperty.call(y.props,R))continue;const w=y.props[R];if(R.startsWith("on")&&typeof w=="function"){const b=g?.dataset;if(b&&b[`${R}fired`]){const v=R.slice(0,-5);w.call(g,new Event(v.substring(2)))}g.getAttribute(`data-${R}`)!==""&&((y.tag==="bodyAttrs"?n.defaultView:g).addEventListener(R.substring(2),w.bind(g)),g.setAttribute(`data-${R}`,""));continue}const m=`attr:${R}`;if(R==="class"){if(!w)continue;for(const b of w)P&&a(d,`${m}:${b}`,()=>g.classList.remove(b)),!g.classList.contains(b)&&g.classList.add(b)}else if(R==="style"){if(!w)continue;for(const[b,v]of w)a(d,`${m}:${b}`,()=>{g.style.removeProperty(b)}),g.style.setProperty(b,v)}else w!==!1&&w!==null&&(g.getAttribute(R)!==w&&g.setAttribute(R,w===!0?"":String(w)),P&&a(d,m,()=>g.removeAttribute(R)))}}const c=[],u={bodyClose:void 0,bodyOpen:void 0,head:void 0},h=await i;for(const d of h){const{tag:g,shouldRender:y,id:P}=d;if(y){if(g.tag==="title"){n.title=g.textContent,a("title","",()=>n.title=l.title);continue}d.$el=d.$el||l.elMap.get(P),d.$el?f(d):eo.has(g.tag)&&c.push(d)}}for(const d of c){const g=d.tag.tagPosition||"head";d.$el=n.createElement(d.tag.tag),f(d),u[g]=u[g]||n.createDocumentFragment(),u[g].appendChild(d.$el)}for(const d of h)await e.hooks.callHook("dom:renderTag",d,n,a);u.head&&n.head.appendChild(u.head),u.bodyOpen&&n.body.insertBefore(u.bodyOpen,n.body.firstChild),u.bodyClose&&n.body.appendChild(u.bodyClose);for(const d in l.pendingSideEffects)l.pendingSideEffects[d]();e._dom=l,await e.hooks.callHook("dom:rendered",{renders:h}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function ug(e={}){const t=e.domOptions?.render||Fo;e.document=e.document||(typeof window<"u"?document:void 0);const n=e.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML||!1;return Vp({...e,plugins:[...e.plugins||[],{key:"client",hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function fg(e,t){let n=0;return()=>{const r=++n;t(()=>{n===r&&e()})}}function dg(e={}){const t=ug({domOptions:{render:fg(()=>Fo(t),n=>setTimeout(n,0))},...e});return t.install=Xp(t),t}const hg={disableDefaults:!0,disableCapoSorting:!1,plugins:[Gp,qp,zp,Kp]},pg=rt({name:"nuxt:head",enforce:"pre",setup(e){const t=dg(hg);e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await Fo(t)};t.hooks.hook("dom:beforeRender",o=>{o.shouldRender=!n}),e.hooks.hook("page:start",()=>{n=!0}),e.hooks.hook("page:finish",()=>{e.isHydrating||r()}),e.hooks.hook("app:error",r),e.hooks.hook("app:suspense:resolve",r);const s=t.push.bind(t);t.push=((o,i)=>{const l=s(o,i),a=l.dispose.bind(l);return l.dispose=()=>{const f=e["~transitionPromise"];f?f.then(a):a()},l})}}});const fn=typeof document<"u";function Pc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function gg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Pc(e.default)}const oe=Object.assign;function ws(e,t){const n={};for(const r in t){const s=t[r];n[r]=nt(s)?s.map(e):e(s)}return n}const Yn=()=>{},nt=Array.isArray;function Ji(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const kc=/#/g,mg=/&/g,yg=/\//g,_g=/=/g,bg=/\?/g,xc=/\+/g,vg=/%5B/g,wg=/%5D/g,Oc=/%5E/g,Eg=/%60/g,Nc=/%7B/g,Rg=/%7C/g,Ic=/%7D/g,Tg=/%20/g;function Bo(e){return e==null?"":encodeURI(""+e).replace(Rg,"|").replace(vg,"[").replace(wg,"]")}function Sg(e){return Bo(e).replace(Nc,"{").replace(Ic,"}").replace(Oc,"^")}function oo(e){return Bo(e).replace(xc,"%2B").replace(Tg,"+").replace(kc,"%23").replace(mg,"%26").replace(Eg,"`").replace(Nc,"{").replace(Ic,"}").replace(Oc,"^")}function Cg(e){return oo(e).replace(_g,"%3D")}function Ag(e){return Bo(e).replace(kc,"%23").replace(bg,"%3F")}function Pg(e){return Ag(e).replace(yg,"%2F")}function nr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const kg=/\/$/,xg=e=>e.replace(kg,"");function Es(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return a=l>=0&&a>l?-1:a,a>=0&&(r=t.slice(0,a),o=t.slice(a,l>0?l:t.length),s=e(o.slice(1))),l>=0&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Mg(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:nr(i)}}function Og(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Yi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ng(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Sn(t.matched[r],n.matched[s])&&Mc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Sn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Mc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ig(e[n],t[n]))return!1;return!0}function Ig(e,t){return nt(e)?zi(e,t):nt(t)?zi(t,e):e?.valueOf()===t?.valueOf()}function zi(e,t){return nt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Mg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,l;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Je={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let io=(function(e){return e.pop="pop",e.push="push",e})({}),Rs=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Lg(e){if(!e)if(fn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),xg(e)}const Hg=/^[^#]+#/;function Dg(e,t){return e.replace(Hg,"#")+t}function jg(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const es=()=>({left:window.scrollX,top:window.scrollY});function Fg(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=jg(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Qi(e,t){return(history.state?history.state.position-t:-1)+e}const lo=new Map;function Bg(e,t){lo.set(e,t)}function Ug(e){const t=lo.get(e);return lo.delete(e),t}function $g(e){return typeof e=="string"||e&&typeof e=="object"}function Lc(e){return typeof e=="string"||typeof e=="symbol"}let me=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const Hc=Symbol("");me.MATCHER_NOT_FOUND+"",me.NAVIGATION_GUARD_REDIRECT+"",me.NAVIGATION_ABORTED+"",me.NAVIGATION_CANCELLED+"",me.NAVIGATION_DUPLICATED+"";function Cn(e,t){return oe(new Error,{type:e,[Hc]:!0},t)}function _t(e,t){return e instanceof Error&&Hc in e&&(t==null||!!(e.type&t))}const Vg=["params","query","hash"];function Wg(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Vg)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Kg(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&oo(s)):[r&&oo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Gg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=nt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const qg=Symbol(""),Zi=Symbol(""),Uo=Symbol(""),$o=Symbol(""),ao=Symbol("");function Dn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Mt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const f=h=>{h===!1?a(Cn(me.NAVIGATION_ABORTED,{from:n,to:t})):h instanceof Error?a(h):$g(h)?a(Cn(me.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),l())},c=o(()=>e.call(r&&r.instances[s],t,n,f));let u=Promise.resolve(c);e.length<3&&(u=u.then(f)),u.catch(h=>a(h))})}function Ts(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(Pc(a)){const f=(a.__vccOpts||a)[t];f&&o.push(Mt(f,n,r,i,l,s))}else{let f=a();o.push(()=>f.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const u=gg(c)?c.default:c;i.mods[l]=c,i.components[l]=u;const h=(u.__vccOpts||u)[t];return h&&Mt(h,n,r,i,l,s)()}))}}return o}function Jg(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iSn(f,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(f=>Sn(f,a))||s.push(a))}return[n,r,s]}let Yg=()=>location.protocol+"//"+location.host;function Dc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(i);return l[0]!=="/"&&(l="/"+l),Yi(l,"")}return Yi(n,e)+r+s}function zg(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const d=Dc(e,location),g=n.value,y=t.value;let P=0;if(h){if(n.value=d,t.value=h,i&&i===g){i=null;return}P=y?h.position-y.position:0}else r(d);s.forEach(R=>{R(n.value,g,{delta:P,type:io.pop,direction:P?P>0?Rs.forward:Rs.back:Rs.unknown})})};function a(){i=n.value}function f(h){s.push(h);const d=()=>{const g=s.indexOf(h);g>-1&&s.splice(g,1)};return o.push(d),d}function c(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(oe({},h.state,{scroll:es()}),"")}}function u(){for(const h of o)h();o=[],window.removeEventListener("popstate",l),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",l),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:a,listen:f,destroy:u}}function el(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?es():null}}function Qg(e){const{history:t,location:n}=window,r={value:Dc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(a,f,c){const u=e.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+a:Yg()+e+a;try{t[c?"replaceState":"pushState"](f,"",h),s.value=f}catch(d){console.error(d),n[c?"replace":"assign"](h)}}function i(a,f){o(a,oe({},t.state,el(s.value.back,a,s.value.forward,!0),f,{position:s.value.position}),!0),r.value=a}function l(a,f){const c=oe({},s.value,t.state,{forward:a,scroll:es()});o(c.current,c,!0),o(a,oe({},el(r.value,a,null),{position:c.position+1},f),!1),r.value=a}return{location:r,state:s,push:l,replace:i}}function Xg(e){e=Lg(e);const t=Qg(e),n=zg(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=oe({location:"",base:e,go:r,createHref:Dg.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}let Kt=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var we=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(we||{});const Zg={type:Kt.Static,value:""},em=/[a-zA-Z0-9_]/;function tm(e){if(!e)return[[]];if(e==="/")return[[Zg]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${n})/"${f}": ${d}`)}let n=we.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let l=0,a,f="",c="";function u(){f&&(n===we.Static?o.push({type:Kt.Static,value:f}):n===we.Param||n===we.ParamRegExp||n===we.ParamRegExpEnd?(o.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Kt.Param,value:f,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),f="")}function h(){f+=a}for(;lt.length?t.length===1&&t[0]===Ie.Static+Ie.Segment?1:-1:0}function jc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const im={strict:!1,end:!0,sensitive:!1};function lm(e,t,n){const r=sm(tm(e.path),n),s=oe(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function am(e,t){const n=[],r=new Map;t=Ji(im,t);function s(u){return r.get(u)}function o(u,h,d){const g=!d,y=sl(u);y.aliasOf=d&&d.record;const P=Ji(t,u),R=[y];if("alias"in u){const b=typeof u.alias=="string"?[u.alias]:u.alias;for(const v of b)R.push(sl(oe({},y,{components:d?d.record.components:y.components,path:v,aliasOf:d?d.record:y})))}let w,m;for(const b of R){const{path:v}=b;if(h&&v[0]!=="/"){const x=h.record.path,A=x[x.length-1]==="/"?"":"/";b.path=h.record.path+(v&&A+v)}if(w=lm(b,h,P),d?d.alias.push(w):(m=m||w,m!==w&&m.alias.push(w),g&&u.name&&!ol(w)&&i(u.name)),Fc(w)&&a(w),y.children){const x=y.children;for(let A=0;A{i(m)}:Yn}function i(u){if(Lc(u)){const h=r.get(u);h&&(r.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function a(u){const h=fm(u,n);n.splice(h,0,u),u.record.name&&!ol(u)&&r.set(u.record.name,u)}function f(u,h){let d,g={},y,P;if("name"in u&&u.name){if(d=r.get(u.name),!d)throw Cn(me.MATCHER_NOT_FOUND,{location:u});P=d.record.name,g=oe(rl(h.params,d.keys.filter(m=>!m.optional).concat(d.parent?d.parent.keys.filter(m=>m.optional):[]).map(m=>m.name)),u.params&&rl(u.params,d.keys.map(m=>m.name))),y=d.stringify(g)}else if(u.path!=null)y=u.path,d=n.find(m=>m.re.test(y)),d&&(g=d.parse(y),P=d.record.name);else{if(d=h.name?r.get(h.name):n.find(m=>m.re.test(h.path)),!d)throw Cn(me.MATCHER_NOT_FOUND,{location:u,currentLocation:h});P=d.record.name,g=oe({},h.params,u.params),y=d.stringify(g)}const R=[];let w=d;for(;w;)R.unshift(w.record),w=w.parent;return{name:P,path:y,params:g,matched:R,meta:um(R)}}e.forEach(u=>o(u));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:f,removeRoute:i,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function rl(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function sl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:cm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function cm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ol(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function um(e){return e.reduce((t,n)=>oe(t,n.meta),{})}function fm(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;jc(e,t[o])<0?r=o:n=o+1}const s=dm(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function dm(e){let t=e;for(;t=t.parent;)if(Fc(t)&&jc(e,t)===0)return t}function Fc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function il(e){const t=Pe(Uo),n=Pe($o),r=$e(()=>{const a=ce(e.to);return t.resolve(a)}),s=$e(()=>{const{matched:a}=r.value,{length:f}=a,c=a[f-1],u=n.matched;if(!c||!u.length)return-1;const h=u.findIndex(Sn.bind(null,c));if(h>-1)return h;const d=ll(a[f-2]);return f>1&&ll(c)===d&&u[u.length-1].path!==d?u.findIndex(Sn.bind(null,a[f-2])):h}),o=$e(()=>s.value>-1&&ym(n.params,r.value.params)),i=$e(()=>s.value>-1&&s.value===n.matched.length-1&&Mc(n.params,r.value.params));function l(a={}){if(mm(a)){const f=t[ce(e.replace)?"replace":"push"](ce(e.to)).catch(Yn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:r,href:$e(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}function hm(e){return e.length===1?e[0]:e}const pm=Dt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:il,setup(e,{slots:t}){const n=At(il(e)),{options:r}=Pe(Uo),s=$e(()=>({[al(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[al(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&hm(t.default(n));return e.custom?o:Oe("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),gm=pm;function mm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function ym(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!nt(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function ll(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const al=(e,t,n)=>e??t??n,_m=Dt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Pe(ao),s=$e(()=>e.route||r.value),o=Pe(Zi,0),i=$e(()=>{let f=ce(o);const{matched:c}=s.value;let u;for(;(u=c[f])&&!u.components;)f++;return f}),l=$e(()=>s.value.matched[i.value]);Ht(Zi,$e(()=>i.value+1)),Ht(qg,l),Ht(ao,s);const a=pt();return Jt(()=>[a.value,l.value,e.name],([f,c,u],[h,d,g])=>{c&&(c.instances[u]=f,d&&d!==c&&f&&f===h&&(c.leaveGuards.size||(c.leaveGuards=d.leaveGuards),c.updateGuards.size||(c.updateGuards=d.updateGuards))),f&&c&&(!d||!Sn(c,d)||!h)&&(c.enterCallbacks[u]||[]).forEach(y=>y(f))},{flush:"post"}),()=>{const f=s.value,c=e.name,u=l.value,h=u&&u.components[c];if(!h)return cl(n.default,{Component:h,route:f});const d=u.props[c],g=d?d===!0?f.params:typeof d=="function"?d(f):d:null,P=Oe(h,oe({},g,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(u.instances[c]=null)},ref:a}));return cl(n.default,{Component:P,route:f})||P}}});function cl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Bc=_m;function bm(e){const t=am(e.routes,e),n=e.parseQuery||Kg,r=e.stringifyQuery||Xi,s=e.history,o=Dn(),i=Dn(),l=Dn(),a=vn(Je);let f=Je;fn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=ws.bind(null,C=>""+C),u=ws.bind(null,Pg),h=ws.bind(null,nr);function d(C,V){let F,J;return Lc(C)?(F=t.getRecordMatcher(C),J=V):J=C,t.addRoute(J,F)}function g(C){const V=t.getRecordMatcher(C);V&&t.removeRoute(V)}function y(){return t.getRoutes().map(C=>C.record)}function P(C){return!!t.getRecordMatcher(C)}function R(C,V){if(V=oe({},V||a.value),typeof C=="string"){const _=Es(n,C,V.path),E=t.resolve({path:_.path},V),N=s.createHref(_.fullPath);return oe(_,E,{params:h(E.params),hash:nr(_.hash),redirectedFrom:void 0,href:N})}let F;if(C.path!=null)F=oe({},C,{path:Es(n,C.path,V.path).path});else{const _=oe({},C.params);for(const E in _)_[E]==null&&delete _[E];F=oe({},C,{params:u(_)}),V.params=u(V.params)}const J=t.resolve(F,V),ee=C.hash||"";J.params=c(h(J.params));const pe=Og(r,oe({},C,{hash:Sg(ee),path:J.path})),p=s.createHref(pe);return oe({fullPath:pe,hash:ee,query:r===Xi?Gg(C.query):C.query||{}},J,{redirectedFrom:void 0,href:p})}function w(C){return typeof C=="string"?Es(n,C,a.value.path):oe({},C)}function m(C,V){if(f!==C)return Cn(me.NAVIGATION_CANCELLED,{from:V,to:C})}function b(C){return A(C)}function v(C){return b(oe(w(C),{replace:!0}))}function x(C,V){const F=C.matched[C.matched.length-1];if(F&&F.redirect){const{redirect:J}=F;let ee=typeof J=="function"?J(C,V):J;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=w(ee):{path:ee},ee.params={}),oe({query:C.query,hash:C.hash,params:ee.path!=null?{}:C.params},ee)}}function A(C,V){const F=f=R(C),J=a.value,ee=C.state,pe=C.force,p=C.replace===!0,_=x(F,J);if(_)return A(oe(w(_),{state:typeof _=="object"?oe({},ee,_.state):ee,force:pe,replace:p}),V||F);const E=F;E.redirectedFrom=V;let N;return!pe&&Ng(r,J,F)&&(N=Cn(me.NAVIGATION_DUPLICATED,{to:E,from:J}),st(J,J,!0,!1)),(N?Promise.resolve(N):k(E,J)).catch(T=>_t(T)?_t(T,me.NAVIGATION_GUARD_REDIRECT)?T:kt(T):$(T,E,J)).then(T=>{if(T){if(_t(T,me.NAVIGATION_GUARD_REDIRECT))return A(oe({replace:p},w(T.to),{state:typeof T.to=="object"?oe({},ee,T.to.state):ee,force:pe}),V||E)}else T=M(E,J,!0,p,ee);return W(E,J,T),T})}function L(C,V){const F=m(C,V);return F?Promise.reject(F):Promise.resolve()}function S(C){const V=sn.values().next().value;return V&&typeof V.runWithContext=="function"?V.runWithContext(C):C()}function k(C,V){let F;const[J,ee,pe]=Jg(C,V);F=Ts(J.reverse(),"beforeRouteLeave",C,V);for(const _ of J)_.leaveGuards.forEach(E=>{F.push(Mt(E,C,V))});const p=L.bind(null,C,V);return F.push(p),Ge(F).then(()=>{F=[];for(const _ of o.list())F.push(Mt(_,C,V));return F.push(p),Ge(F)}).then(()=>{F=Ts(ee,"beforeRouteUpdate",C,V);for(const _ of ee)_.updateGuards.forEach(E=>{F.push(Mt(E,C,V))});return F.push(p),Ge(F)}).then(()=>{F=[];for(const _ of pe)if(_.beforeEnter)if(nt(_.beforeEnter))for(const E of _.beforeEnter)F.push(Mt(E,C,V));else F.push(Mt(_.beforeEnter,C,V));return F.push(p),Ge(F)}).then(()=>(C.matched.forEach(_=>_.enterCallbacks={}),F=Ts(pe,"beforeRouteEnter",C,V,S),F.push(p),Ge(F))).then(()=>{F=[];for(const _ of i.list())F.push(Mt(_,C,V));return F.push(p),Ge(F)}).catch(_=>_t(_,me.NAVIGATION_CANCELLED)?_:Promise.reject(_))}function W(C,V,F){l.list().forEach(J=>S(()=>J(C,V,F)))}function M(C,V,F,J,ee){const pe=m(C,V);if(pe)return pe;const p=V===Je,_=fn?history.state:{};F&&(J||p?s.replace(C.fullPath,oe({scroll:p&&_&&_.scroll},ee)):s.push(C.fullPath,ee)),a.value=C,st(C,V,F,p),kt()}let K;function Z(){K||(K=s.listen((C,V,F)=>{if(!jt.listening)return;const J=R(C),ee=x(J,jt.currentRoute.value);if(ee){A(oe(ee,{replace:!0,force:!0}),J).catch(Yn);return}f=J;const pe=a.value;fn&&Bg(Qi(pe.fullPath,F.delta),es()),k(J,pe).catch(p=>_t(p,me.NAVIGATION_ABORTED|me.NAVIGATION_CANCELLED)?p:_t(p,me.NAVIGATION_GUARD_REDIRECT)?(A(oe(w(p.to),{force:!0}),J).then(_=>{_t(_,me.NAVIGATION_ABORTED|me.NAVIGATION_DUPLICATED)&&!F.delta&&F.type===io.pop&&s.go(-1,!1)}).catch(Yn),Promise.reject()):(F.delta&&s.go(-F.delta,!1),$(p,J,pe))).then(p=>{p=p||M(J,pe,!1),p&&(F.delta&&!_t(p,me.NAVIGATION_CANCELLED)?s.go(-F.delta,!1):F.type===io.pop&&_t(p,me.NAVIGATION_ABORTED|me.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),W(J,pe,p)}).catch(Yn)}))}let ne=Dn(),U=Dn(),G;function $(C,V,F){kt(C);const J=U.list();return J.length?J.forEach(ee=>ee(C,V,F)):console.error(C),Promise.reject(C)}function le(){return G&&a.value!==Je?Promise.resolve():new Promise((C,V)=>{ne.add([C,V])})}function kt(C){return G||(G=!C,Z(),ne.list().forEach(([V,F])=>C?F(C):V()),ne.reset()),C}function st(C,V,F,J){const{scrollBehavior:ee}=e;if(!fn||!ee)return Promise.resolve();const pe=!F&&Ug(Qi(C.fullPath,0))||(J||!F)&&history.state&&history.state.scroll||null;return Zt().then(()=>ee(C,V,pe)).then(p=>p&&Fg(p)).catch(p=>$(p,C,V))}const He=C=>s.go(C);let rn;const sn=new Set,jt={currentRoute:a,listening:!0,addRoute:d,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:P,getRoutes:y,resolve:R,options:e,push:b,replace:v,go:He,back:()=>He(-1),forward:()=>He(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:U.add,isReady:le,install(C){C.component("RouterLink",gm),C.component("RouterView",Bc),C.config.globalProperties.$router=jt,Object.defineProperty(C.config.globalProperties,"$route",{enumerable:!0,get:()=>ce(a)}),fn&&!rn&&a.value===Je&&(rn=!0,b(s.location).catch(J=>{}));const V={};for(const J in Je)Object.defineProperty(V,J,{get:()=>a.value[J],enumerable:!0});C.provide(Uo,jt),C.provide($o,ft(V)),C.provide(ao,a);const F=C.unmount;sn.add(C),C.unmount=function(){sn.delete(C),sn.size<1&&(f=Je,K&&K(),K=null,a.value=Je,rn=!1,G=!1),F()}}};function Ge(C){return C.reduce((V,F)=>V.then(()=>S(F)),Promise.resolve())}return jt}function Uc(e){return Pe($o)}const vm=/(:\w+)\([^)]+\)/g,wm=/(:\w+)[?+*]/g,Em=/:\w+/g,Rm=(e,t)=>t.path.replace(vm,"$1").replace(wm,"$1").replace(Em,n=>e.params[n.slice(1)]?.toString()||""),co=(e,t)=>{const n=e.route.matched.find(s=>s.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Rm(e.route,n));return typeof r=="function"?r(e.route):r},Tm=(e,t)=>({default:()=>e?Oe(tf,e===!0?{}:e,t):t});function $c(e){return Array.isArray(e)?e:[e]}const Sm="modulepreload",Cm=function(e,t){return new URL(e,t).href},ul={},Xt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let f=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),a=l?.nonce||l?.getAttribute("nonce");s=f(n.map(c=>{if(c=Cm(c,r),c in ul)return;ul[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(r)for(let g=i.length-1;g>=0;g--){const y=i[g];if(y.href===c&&(!u||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${h}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Sm,u||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),u)return new Promise((g,y)=>{d.addEventListener("load",g),d.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},Ss=[{name:"index",path:"/",meta:{middleware:"auth"},component:()=>Xt(()=>import("./Drr7KP9v.js"),[],import.meta.url)},{name:"login",path:"/login",component:()=>Xt(()=>import("./XMkMKtwS.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)},{name:"permissions",path:"/permissions",meta:{middleware:"auth"},component:()=>Xt(()=>import("./CyOWWS80.js"),[],import.meta.url)}],Vc=(e,t)=>({default:()=>e?Oe(rd,e===!0?{}:e,t):t.default?.()}),Am=/(:\w+)\([^)]+\)/g,Pm=/(:\w+)[?+*]/g,km=/:\w+/g;function fl(e){const t=e?.meta.key??e.path.replace(Am,"$1").replace(Pm,"$1").replace(km,n=>e.params[n.slice(1)]?.toString()||"");return typeof t=="function"?t(e):t}function xm(e,t){return e===t||t===Je?!1:fl(e)!==fl(t)?!0:!e.matched.every((r,s)=>r.components&&r.components.default===t.matched[s]?.components?.default)}function dl(e){return Array.isArray(e)?e:[e]}function Wc(e){const t=[];for(const n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?dl(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?dl(n.onBeforeLeave):void 0});return ac(...t)}const Om={scrollBehavior(e,t,n){const r=Se(),s=Ke().options?.scrollBehaviorType??"auto";return e.path.replace(/\/$/,"")===t.path.replace(/\/$/,"")?t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:Kc(e.hash),behavior:s}:!1:(typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===Je?hl(e,t,n,s):new Promise(i=>{const l=()=>{requestAnimationFrame(()=>i(hl(e,t,n,s)))};r.hooks.hookOnce("page:loading:end",()=>{const a=r["~transitionPromise"];a?a.then(l):l()})})}};function Kc(e){try{const t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}function hl(e,t,n,r){return n||(e.hash?{el:e.hash,top:Kc(e.hash),behavior:xm(e,t)?r:"instant"}:{left:0,top:0})}const Nm={hashMode:!1,scrollBehaviorType:"auto"},Ot={...Nm,...Om},Im=async(e,t)=>{let n,r;if(!e.meta?.validate)return;const s=([n,r]=qn(()=>Promise.resolve(e.meta.validate(e))),n=await n,r(),n);if(s===!0)return;const o=Qt({fatal:!0,status:s&&(s.status||s.statusCode)||404,statusText:s&&(s.statusText||s.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}});return typeof window<"u"&&window.history.pushState({},"",t.fullPath),o},Mm=e=>{const t=Cc({path:e.path});if(t.redirect){const n=t.redirect.includes("#")?t.redirect:t.redirect+e.hash;return xn(n,{acceptRelative:!0})?(window.location.href=n,!1):n}},Lm=[Im,Mm],uo={auth:()=>Xt(()=>import("./BFfxzM5G.js"),__vite__mapDeps([4,3]),import.meta.url)};function Hm(e,t,n){const{pathname:r,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){const f=o.includes(e.slice(i))?e.slice(i).length:1;let c=o.slice(f);return c[0]!=="/"&&(c="/"+c),Oi(c,"")}const l=Oi(r,e),a=!n||tc(l,n)?l:n;return a+(a.includes("?")?"":s)+o}const Dm=rt({name:"nuxt:router",enforce:"pre",async setup(e){let t,n,r=Do().app.baseURL;const s=Ot.history?.(r)??Xg(r),o=Ot.routes?([t,n]=qn(()=>Ot.routes(Ss)),t=await t,n(),t??Ss):Ss;let i;const l=bm({...Ot,scrollBehavior:(R,w,m)=>{if(w===Je){i=m;return}if(Ot.scrollBehavior){if(l.options.scrollBehavior=Ot.scrollBehavior,"scrollRestoration"in window.history){const b=l.beforeEach(()=>{b(),window.history.scrollRestoration="manual"})}return Ot.scrollBehavior(R,Je,i||m)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(l);const a=vn(l.currentRoute.value);l.afterEach((R,w)=>{a.value=w}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>a.value});const f=Hm(r,window.location,e.payload.path),c=vn(l.currentRoute.value),u=()=>{c.value=l.currentRoute.value};l.afterEach((R,w)=>{const m=R.matched.at(-1)?.components?.default,b=w.matched.at(-1)?.components?.default;if(m===b){u();return}R.matched.lengthv.components?.default===w.matched[x]?.components?.default)&&u()});const h={sync:u};for(const R in c.value)Object.defineProperty(h,R,{get:()=>c.value[R],enumerable:!0});e._route=ft(h),e._middleware||={global:[],named:{}};const d=Zr();l.afterEach(async(R,w,m)=>{delete e._processingMiddleware,!e.isHydrating&&d.value&&await e.runWithContext(ep),m&&await e.callHook("page:loading:end")});try{[t,n]=qn(()=>l.isReady()),await t,n()}catch(R){[t,n]=qn(()=>e.runWithContext(()=>Wt(R))),await t,n()}const g=f!==l.currentRoute.value.fullPath?l.resolve(f):l.currentRoute.value,y=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&f!==e.payload.path&&tc(l.currentRoute.value.path,e.payload.path);u();const P=e.payload.state._layout;return l.beforeEach(async(R,w)=>{await e.callHook("page:loading:start"),R.meta=At(R.meta),e.isHydrating&&P&&!gt(R.meta.layout)&&(R.meta.layout=P),e._processingMiddleware=!0;{const m=new Set([...Lm,...e._middleware.global]);for(const v of R.matched){const x=v.meta.middleware;if(x)for(const A of $c(x))m.add(A)}const b=Cc({path:R.path});if(b.appMiddleware)for(const v in b.appMiddleware)b.appMiddleware[v]?m.add(v):m.delete(v);for(const v of m){const x=typeof v=="string"?e._middleware.named[v]||await uo[v]?.().then(A=>A.default||A):v;if(!x)throw new Error(`Unknown route middleware: '${v}'.`);try{const A=await e.runWithContext(()=>x(R,w));if(!e.payload.serverRendered&&e.isHydrating&&(A===!1||A instanceof Error)){const L=A||Qt({status:404,statusText:`Page Not Found: ${f}`});return await e.runWithContext(()=>Wt(L)),!1}if(A===!0)continue;if(A===!1)return A;if(A)return dc(A)&&A.fatal&&await e.runWithContext(()=>Wt(A)),A}catch(A){const L=Qt(A);return L.fatal&&await e.runWithContext(()=>Wt(L)),L}}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),l.afterEach(R=>{if(R.matched.length===0&&!d.value)return e.runWithContext(()=>Wt(Qt({status:404,fatal:!1,statusText:`Page not found: ${R.fullPath}`,data:{path:R.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{if("name"in g&&(g.name=void 0),y){const R=l.resolve(e.payload.path);"name"in R&&(R.name=void 0),await l.replace({...R,force:!0}),e.hooks.hookOnce("app:suspense:resolve",async()=>{await l.replace({...g,force:!0})})}else await l.replace({...g,force:!0});l.options.scrollBehavior=Ot.scrollBehavior}catch(R){await e.runWithContext(()=>Wt(R))}}),{provide:{router:l}}}}),pl=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),Sy=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),Vo=e=>{const t=Se();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{pl(()=>e())}):pl(()=>e())},jm=rt({name:"nuxt:payload",setup(e){const t=new Set;Ke().beforeResolve(async(n,r)=>{if(n.path===r.path)return;const s=await qi(n.path);if(s){for(const o of t)delete e.static.data[o];for(const o in s.data)o in e.static.data||t.add(o),e.static.data[o]=s.data[o]}}),Vo(()=>{e.hooks.hook("link:prefetch",async n=>{const{hostname:r}=new URL(n,window.location.href);r===window.location.hostname&&await qi().catch(()=>{console.warn("[nuxt] Error preloading payload for",n)})}),navigator.connection?.effectiveType!=="slow-2g"&&setTimeout(Sc,1e3)})}}),Fm=rt(()=>{const e=Ke();Vo(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),Bm=rt(e=>{let t;async function n(){let r;try{r=await Sc()}catch(s){const o=s;if(!("status"in o&&(o.status===404||o.status===403)))throw o}t&&clearTimeout(t),t=setTimeout(n,ji);try{const s=await $fetch(Ho("builds/latest.json")+`?${Date.now()}`);s.id!==r?.id&&(e.hooks.callHook("app:manifest:update",s),t&&clearTimeout(t))}catch{}}Vo(()=>{t=setTimeout(n,ji)})});function Um(e={}){const t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw new Error(`Cannot navigate to a URL with a different host: '${t}'.`);if(n.protocol&&Ks(n.protocol))throw new Error(`Cannot navigate to a URL with '${n.protocol}' protocol.`);let r={};try{r=Nr(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||r?.path!==t||r?.expires{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const i=Za(n.app.baseURL,o.fullPath);Um({path:i,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}});function Vm(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}async function Wm(e,t=Ke()){const{path:n,matched:r}=t.resolve(e);if(!r.length||(t._routePreloaded||=new Set,t._routePreloaded.has(n)))return;const s=t._preloadPromises||=[];if(s.length>4)return Promise.all(s).then(()=>Wm(e,t));t._routePreloaded.add(n);for(const o of r){const i=o.components?.default;if(typeof i!="function")continue;const l=Promise.resolve(i()).catch(()=>{}).finally(()=>s.splice(s.indexOf(l),1));s.push(l)}await Promise.all(s)}const Km=rt({name:"pinia",setup(e){const t=tp();return e.vueApp.use(t),Tn(t),e.payload&&e.payload.pinia&&(t.state.value=e.payload.pinia),{provide:{pinia:t}}},hooks:{"app:rendered"(){const e=Se();e.payload.pinia=te(e.$pinia).state.value,Tn(void 0)}}}),Gm=rt({name:"nuxt:global-components"}),Lt={default:Is(()=>Xt(()=>import("./BW9w-mbE.js"),__vite__mapDeps([5,1,2,3]),import.meta.url).then(e=>e.default||e))},qm=rt({name:"nuxt:prefetch",setup(e){const t=Ke();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{const r=n?.meta?.layout;r&&typeof Lt[r]=="function"&&await Lt[r]()})}),e.hooks.hook("link:prefetch",n=>{if(xn(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=$c(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof uo[i]=="function"&&uo[i]();typeof s=="string"&&s in Lt&&Vm(Lt[s])})}}),Jm=[lg,cg,pg,Dm,jm,Fm,Bm,$m,Km,Gm,qm],Gc=(e="RouteProvider")=>Dt({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean},setup(t){const n=t.renderKey,r=t.route,s={};for(const o in t.route)Object.defineProperty(s,o,{get:()=>n===t.renderKey?t.route[o]:r[o],enumerable:!0});return Ht(tn,ft(s)),()=>t.vnode?Oe(t.vnode,{ref:t.vnodeRef}):t.vnode}}),Ym=Gc(),gl=new WeakMap,zm=Dt({name:"NuxtPage",inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){const s=Se(),o=pt(),i=Pe(tn,null);let l;r({pageRef:o});const a=Pe(uc,null);let f;const c=s.deferHydration();let u=!1,h=!1,d=0;if(s.isHydrating){const y=s.hooks.hookOnce("app:error",c),P=Ke().beforeEach(()=>{y(),P()})}e.pageKey&&Jt(()=>e.pageKey,(y,P)=>{y!==P&&s.callHook("page:loading:start")});let g=!1;{const y=Ke().beforeResolve(()=>{g=!1});ir(()=>{y(),c()})}return()=>Oe(Bc,{name:e.name,route:e.route,...t},{default:y=>{const P=Qm(i,y.route,y.Component),R=i&&i.matched.length===y.route.matched.length;if(!y.Component){if(f&&!R&&!Cs(f))return f;c();return}if(f&&a&&!Cs(f)&&!a.isCurrent(y.route))return f;if(P&&i&&(!a||a?.isCurrent(i)))return(R||f)&&!Cs(f)?f:null;const w=co(y,e.pageKey),m=Xm(i,y.route,y.Component);!s.isHydrating&&l===w&&!m&&Zt(()=>{g||(g=!0,s.callHook("page:loading:end"))}),u&&l!==w&&h&&d++,l=w;const b=!!(e.transition??y.route.meta.pageTransition??Di),v=b&&Wc([e.transition,y.route.meta.pageTransition,Di,{onAfterLeave(){s["~transitionFinish"]?.(),delete s["~transitionFinish"],delete s["~transitionPromise"],s.callHook("page:transition:finish",y.Component)}}]),x=e.keepalive??y.route.meta.keepalive??Lh;return f=Vc(b&&v,Tm(x,Oe(No,{key:d,suspensible:!0,onPending:()=>{u=!0,b&&!s["~transitionPromise"]&&(s["~transitionPromise"]=new Promise(A=>{s["~transitionFinish"]=A})),s.callHook("page:start",y.Component)},onResolve:async()=>{u=!1,h=!0;try{await Zt(),s._route.sync?.(),await s.callHook("page:finish",y.Component),!g&&!m&&(g=!0,await s.callHook("page:loading:end"))}finally{c()}}},{default:()=>{const A={key:w||void 0,vnode:n.default?Zm(n.default,y):y.Component,route:y.route,renderKey:w||void 0,trackRootNodes:b,vnodeRef:o};if(!x)return Oe(Ym,A);const L=y.Component.type,S=L;let k=gl.get(S);return k||(k=Gc(L.name||L.__name),gl.set(S,k)),Oe(k,A)}}))).default(),f}})}});function Qm(e,t,n){if(!e)return!1;const r=t.matched.findIndex(i=>i.components?.default===n?.type);if(r===-1)return!1;const s=t.matched.slice(0,r).filter(i=>i.components?.default);if(!s.length)return!1;const o=e.matched.filter(i=>i.components?.default);return s.some((i,l)=>i.components?.default!==o[l]?.components?.default)||n&&co({route:t,Component:n})!==co({route:e,Component:n})}function Xm(e,t,n){return e?t.matched.findIndex(s=>s.components?.default===n?.type)Oe(Lt[e.name],e.layoutProps,t.slots)}}),ty={name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},ny=Dt({name:"NuxtLayout",inheritAttrs:!1,props:ty,setup(e,t){const n=Se(),r=Pe(tn),o=!r||r===jo()?Uc():r,i=$e(()=>{let c=ce(e.name)??o?.meta.layout??qc(o?.path).appLayout??"default";return c&&!(c in Lt)&&e.fallback&&(c=ce(e.fallback)),c}),l=vn();t.expose({layoutRef:l});const a=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",a),u=Ke().beforeEach(()=>{c(),u()})}let f;return()=>{const u=!!i.value&&i.value in Lt&&!!(o?.meta.layoutTransition??Hi),h=u&&Wc([o?.meta.layoutTransition,Hi,{onBeforeLeave(){n["~transitionPromise"]=new Promise(g=>{n["~transitionFinish"]=g})},onAfterLeave(){n["~transitionFinish"]?.(),delete n["~transitionFinish"],delete n["~transitionPromise"]}}]),d=f;return f=i.value,Vc(h,{default:()=>Oe(No,{suspensible:!0,onResolve:async()=>{await Zt(a)}},{default:()=>Oe(ry,{layoutProps:ja(t.attrs,o.meta.layoutProps??{},{ref:l}),key:i.value||void 0,name:i.value,shouldProvide:!e.name,isRenderingNewLayout:g=>g!==d&&g===i.value,hasTransition:u},t.slots)})}).default()}}}),ry=Dt({name:"NuxtLayoutProvider",inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean},isRenderingNewLayout:{type:Function,required:!0}},setup(e,t){const n=e.name;e.shouldProvide&&Ht(uc,{isCurrent:o=>n===!1||n===(o.meta.layout??qc(o.path).appLayout??"default")});const r=Pe(tn);if(r&&r===jo()){const o=Uc(),i={};for(const l in o){const a=l;Object.defineProperty(i,a,{enumerable:!0,get:()=>e.isRenderingNewLayout(e.name)?o[a]:r[a]})}Ht(tn,ft(i))}return()=>!n||typeof n=="string"&&!(n in Lt)?t.slots.default?.():Oe(ey,{key:n,layoutProps:e.layoutProps,name:n},t.slots)}}),sy=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},oy={};function iy(e,t){const n=zm,r=ny;return ze(),ut(r,null,{default:So(()=>[ye(n)]),_:1})}const ly=sy(oy,[["render",iy]]),ay={__name:"nuxt-error-page",props:{error:Object},setup(e){const n=e.error,r=Number(n.statusCode||500),s=r===404,o=n.statusMessage??(s?"Page Not Found":"Internal Server Error"),i=n.message||n.toString(),l=void 0,c=s?Is(()=>Xt(()=>import("./Oih3kTQ2.js"),__vite__mapDeps([6,1,7,8]),import.meta.url)):Is(()=>Xt(()=>import("./usmOON9X.js"),__vite__mapDeps([9,7,10]),import.meta.url));return(u,h)=>(ze(),ut(ce(c),ru(Ha({status:ce(r),statusText:ce(o),statusCode:ce(r),statusMessage:ce(o),description:ce(i),stack:ce(l)})),null,16))}},cy={key:0},ml={__name:"nuxt-root",setup(e){const t=()=>null,n=Se(),r=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",r),u=Ke().beforeEach(()=>{c(),u()})}const s=!1;Ht(tn,jo()),n.hooks.callHookWith(c=>c.map(u=>u()),"vue:setup",[]);const o=Zr(),i=!1,l=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function a(c,u,h){const d=n.vueApp.config.errorHandler;if(d&&!d.__nuxt_default)try{d(c,u,h)}catch(g){console.error("[nuxt] Error in `app.config.errorHandler`",g)}}la((c,u,h)=>{if(n.hooks.callHook("vue:error",c,u,h).catch(d=>console.error("[nuxt] Error in `vue:error` hook",d)),l.test(navigator.userAgent))return n.hooks.callHook("app:error",c),console.error(`[nuxt] Not rendering error page for bot with user agent \`${navigator.userAgent}\`:`,c),!1;if(dc(c)&&(c.fatal||c.unhandled))return n.runWithContext(()=>Wt(c)),a(c,u,h),!1});const f=!1;return(c,u)=>(ze(),ut(No,{onResolve:ce(r)},{default:So(()=>[ce(i)?(ze(),Bf("div",cy)):ce(o)?(ze(),ut(ce(ay),{key:1,error:ce(o)},null,8,["error"])):ce(f)?(ze(),ut(ce(t),{key:2,context:ce(f)},null,8,["context"])):ce(s)?(ze(),ut(cf(ce(s)),{key:3})):(ze(),ut(ce(ly),{key:4}))]),_:1},8,["onResolve"]))}};let yl;{let e;yl=async function(){if(e)return e;const r=!!(window.__NUXT__?.serverRendered??document.getElementById("__NUXT_DATA__")?.dataset.ssr==="true")?kd(ml):Pd(ml),s=Bh({vueApp:r});async function o(i){await s.callHook("app:error",i),s.payload.error||=Qt(i)}o.__nuxt_default=!0,r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)});try{await Vh(s,Jm)}catch(i){o(i)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(Dh),await s.hooks.callHook("app:mounted",r),await Zt()}catch(i){o(i)}return r},e=yl().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{nh as $,Uc as A,Po as B,ko as C,my as D,ut as E,xe as F,py as G,$e as H,sc as I,Ry as J,Se as K,Vo as L,pl as M,ir as N,Sy as O,Oe as P,dy as Q,za as R,vn as S,Xh as T,Wm as U,xn as V,Za as W,Zh as X,vy as Y,Ks as Z,sy as _,La as a,Ir as a0,Do as a1,Jt as a2,Nr as a3,yo as a4,au as a5,uy as a6,Zt as a7,ye as b,Bf as c,Da as d,Kh as e,Rc as f,Dt as g,qr as h,Pe as i,gy as j,Ke as k,ce as l,$f as m,Vr as n,ze as o,_y as p,fy as q,hy as r,ge as s,lu as t,Ty as u,yy as v,So as w,pt as x,wy as y,Ey as z}; diff --git a/frontend_admin/.output/public/_nuxt/C8yzOtqa.js b/frontend_admin/.output/public/_nuxt/C8yzOtqa.js new file mode 100644 index 0000000..599fa11 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/C8yzOtqa.js @@ -0,0 +1 @@ +import{_ as a}from"./Da4aCGAe.js";import{_ as i,u,o as c,c as l,a as e,t as r,b as d,w as p,d as f}from"./CqYPuxVf.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},b=["textContent"],h=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),l("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,b),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,h),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},v=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{v as default}; diff --git a/frontend_admin/.output/public/_nuxt/CC4zKGJo.js b/frontend_admin/.output/public/_nuxt/CC4zKGJo.js new file mode 100644 index 0000000..8c134d5 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/CC4zKGJo.js @@ -0,0 +1 @@ +import{_ as I}from"./Da4aCGAe.js";import{p as J,e as K,D as q,g as Q,E as X,y as Y,G as Z,o,c as r,i as H,a as e,b as B,w,n as d,F as p,r as b,k as L,H as A,t as u,I as S,d as R,J as ee,x as k,m as g,A as te}from"./CqYPuxVf.js";import{u as se}from"./DWjNh9rV.js";import{u as oe}from"./CWA6Xjbg.js";const ne=J("/logo.svg"),le={class:"min-h-screen bg-slate-900 text-white flex"},ae={class:"flex items-center gap-3 min-w-0"},re={class:"flex-1 px-2 py-4 space-y-2 overflow-y-auto overflow-x-hidden"},ie={key:0},de=["onClick"],ue=["innerHTML"],ce={class:"ml-2 mt-1 space-y-1 overflow-hidden transition-all duration-200"},he=["innerHTML"],ve={class:"whitespace-nowrap overflow-hidden"},pe=["innerHTML"],xe={class:"p-4 border-t border-slate-700 overflow-hidden"},fe={class:"flex-1 flex flex-col min-w-0 transition-all duration-300 ease-in-out"},ke={class:"sticky top-0 z-10 bg-slate-800/95 backdrop-blur-sm border-b border-slate-700"},ge={class:"flex items-center justify-between h-16 px-4 lg:px-6"},me={class:"flex items-center gap-3"},we={class:"text-lg font-semibold text-white truncate"},be={class:"flex items-center gap-3"},ye={class:"flex items-center bg-slate-700/50 rounded-lg p-0.5"},_e=["onClick"],Ce={class:"w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold text-white"},ze={class:"hidden sm:block text-sm text-slate-300"},Me={key:0,class:"absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"},je={class:"px-4 py-3 border-b border-slate-700"},He={class:"text-sm font-medium text-white"},Be={class:"flex-1 p-4 lg:p-6 overflow-auto"},Fe=K({__name:"default",setup(Le){const c=q(),$=Q(),x=oe(),C=se(),{locale:z,locales:V}=X(),F=k(()=>V.value),T=k(()=>z.value);function E(){const t=te("access_token").value;return t?{Authorization:`Bearer ${t}`}:{}}async function G(s){z.value=s;try{await $fetch("/api/v1/auth/me/language",{method:"PATCH",headers:{...E(),"Content-Type":"application/json"},body:{preferred_language:s}})}catch(t){console.error("[Layout] Failed to persist language preference:",t)}}const n=g(!1),i=g(!1),v=g(!1),y=g(null),f=g(new Set(["Központ"])),M=k(()=>x.userEmail||"admin@servicefinder.hu"),D=k(()=>{const s=x.userEmail;return s?s.split("@")[0].split(".").map(t=>t[0]).join("").toUpperCase().slice(0,2):"AD"}),N=[{title:"Központ",items:[{path:"/",label:"Dashboard",icon:''}]},{title:"Felhasználók & Partnerek",items:[{label:"Garázsok",icon:'',children:[{path:"/garages",label:"Garázsok listája",icon:''}]},{label:"Felhasználók",icon:'',children:[{path:"/users",label:"Felhasználók listája",icon:''}]}]},{title:"Pénzügyek",items:[{path:"/packages",label:"Csomagok",icon:''}]},{title:"Rendszer",items:[{path:"/permissions",label:"Jogosultságok",icon:''},{label:"Rendszernaplók",icon:'',children:[{path:"/logs",label:"Rendszernaplók",icon:''}]}]}],W=k(()=>c.path==="/"?"Dashboard":c.path.startsWith("/permissions")?"Jogosultság Kezelés":c.path.startsWith("/garages")?"Garázsok":c.path.startsWith("/users")?"Felhasználók":c.path.startsWith("/logs")?"Rendszernaplók":c.path.startsWith("/packages")?"Csomagok":"Admin Panel");function _(s){return s==="/"?c.path==="/":c.path.startsWith(s)}function P(s){return s.children?s.children.some(t=>_(t.path)):!1}function O(s){f.value.has(s.label)?f.value.delete(s.label):f.value.add(s.label)}function U(){x.logout(),v.value=!1,$.push("/login")}function j(s){y.value&&!y.value.contains(s.target)&&(v.value=!1)}return Y(()=>{document.addEventListener("click",j),C.fetchRegions().then(()=>{x.user?.region_code&&C.setActiveRegion(x.user.region_code)})}),Z(()=>{document.removeEventListener("click",j)}),(s,t)=>{const m=I;return o(),r("div",le,[n.value?(o(),r("div",{key:0,class:"fixed inset-0 bg-black/50 z-20 lg:hidden",onClick:t[0]||(t[0]=a=>n.value=!1)})):H("",!0),e("aside",{class:d(["fixed lg:static inset-y-0 left-0 z-30 flex flex-col bg-slate-800 border-r border-slate-700 transition-all duration-300 ease-in-out overflow-hidden",n.value||!i.value?"w-52":"w-20"])},[B(m,{to:"/",class:"flex items-center h-16 px-4 border-b border-slate-700 overflow-hidden hover:bg-slate-700/50 transition"},{default:w(()=>[e("div",ae,[t[8]||(t[8]=e("img",{src:ne,class:"h-8 w-auto flex-shrink-0",alt:"SF Logo"},null,-1)),e("div",{class:d(["transition-all duration-300 ease-in-out overflow-hidden whitespace-nowrap",n.value||!i.value?"opacity-100 max-w-[200px]":"opacity-0 max-w-0"])},[...t[7]||(t[7]=[e("div",{class:"text-sm font-bold text-white leading-tight"},"Service Finder",-1),e("div",{class:"text-[10px] font-semibold uppercase tracking-wider text-indigo-400 leading-tight"},"Admin",-1)])],2)])]),_:1}),e("button",{class:"hidden lg:flex items-center justify-center h-10 mx-2 mt-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition flex-shrink-0",onClick:t[1]||(t[1]=a=>i.value=!i.value)},[(o(),r("svg",{class:d(["w-5 h-5 transition-transform duration-300",{"rotate-180":i.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[9]||(t[9]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 19l-7-7 7-7m8 14l-7-7 7-7"},null,-1)])],2))]),e("nav",re,[(o(),r(p,null,b(N,a=>(o(),r(p,{key:a.title},[L(e("div",{class:"px-3 py-1 text-xs font-semibold uppercase tracking-wider text-slate-500 whitespace-nowrap overflow-hidden"},u(a.title),513),[[A,n.value||!i.value]]),(o(!0),r(p,null,b(a.items,l=>(o(),r(p,{key:l.label},[l.children?(o(),r("div",ie,[e("button",{class:d(["flex items-center w-full gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition",P(l)?"bg-indigo-600/20 text-indigo-300":"text-slate-300 hover:bg-slate-700 hover:text-white"]),onClick:h=>O(l)},[e("span",{class:"flex-shrink-0 w-5 h-5",innerHTML:l.icon},null,8,ue),e("span",{class:d(["flex-1 text-left whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out",n.value||!i.value?"opacity-100 max-w-[200px]":"opacity-0 max-w-0"])},u(l.label),3),(o(),r("svg",{class:d(["w-4 h-4 transition-all duration-300 ease-in-out flex-shrink-0",{"rotate-90":f.value.has(l.label),"opacity-100":n.value||!i.value,"opacity-0":i.value&&!n.value}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...t[10]||(t[10]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2))],10,de),L(e("div",ce,[(o(!0),r(p,null,b(l.children,h=>(o(),S(m,{key:h.path,to:h.path,class:d(["flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition",_(h.path)?"bg-indigo-600 text-white":"text-slate-400 hover:bg-slate-700 hover:text-white"]),onClick:t[2]||(t[2]=Ae=>n.value=!1)},{default:w(()=>[e("span",{class:"flex-shrink-0 w-4 h-4",innerHTML:h.icon},null,8,he),e("span",ve,u(h.label),1)]),_:2},1032,["to","class"]))),128))],512),[[A,f.value.has(l.label)&&(n.value||!i.value)]])])):(o(),S(m,{key:1,to:l.path,class:d(["flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition",_(l.path)?"bg-indigo-600 text-white":"text-slate-300 hover:bg-slate-700 hover:text-white"]),onClick:t[3]||(t[3]=h=>n.value=!1)},{default:w(()=>[e("span",{class:"flex-shrink-0 w-5 h-5",innerHTML:l.icon},null,8,pe),e("span",{class:d(["whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out",n.value||!i.value?"opacity-100 max-w-[200px]":"opacity-0 max-w-0"])},u(l.label),3)]),_:2},1032,["to","class"]))],64))),128))],64))),64))]),e("div",xe,[e("div",{class:d(["text-xs text-slate-500 whitespace-nowrap transition-all duration-300 ease-in-out",n.value||!i.value?"opacity-100 max-w-[200px]":"opacity-0 max-w-0"])}," ServiceFinder v2.0 ",2)])],2),e("div",fe,[e("header",ke,[e("div",ge,[e("div",me,[e("button",{class:"lg:hidden p-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",onClick:t[4]||(t[4]=a=>n.value=!0)},[...t[11]||(t[11]=[e("svg",{class:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h16"})],-1)])]),e("h1",we,u(W.value),1)]),e("div",be,[e("div",ye,[(o(!0),r(p,null,b(F.value,a=>(o(),r("button",{key:a.code,onClick:l=>G(a.code),class:d(["px-2.5 py-1 text-xs font-medium rounded-md transition",T.value===a.code?"bg-indigo-600 text-white shadow-sm":"text-slate-400 hover:text-white"])},u(a.code==="hu"?"HU":"EN"),11,_e))),128))]),e("div",{class:"relative",ref_key:"dropdownRef",ref:y},[e("button",{class:"flex items-center gap-2 p-1.5 rounded-lg hover:bg-slate-700 transition",onClick:t[5]||(t[5]=a=>v.value=!v.value)},[e("div",Ce,u(D.value),1),e("span",ze,u(M.value),1),t[12]||(t[12]=e("svg",{class:"w-4 h-4 text-slate-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1))]),v.value?(o(),r("div",Me,[e("div",je,[e("p",He,u(M.value),1),t[13]||(t[13]=e("p",{class:"text-xs text-slate-400 mt-0.5"},"Administrator",-1))]),B(m,{to:"/profile",class:"flex items-center gap-3 px-4 py-2.5 text-sm text-slate-300 hover:bg-slate-700 hover:text-white transition",onClick:t[6]||(t[6]=a=>v.value=!1)},{default:w(()=>[...t[14]||(t[14]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})],-1),R(" Profile Settings ",-1)])]),_:1}),e("button",{class:"flex items-center gap-3 w-full px-4 py-2.5 text-sm text-red-400 hover:bg-slate-700 hover:text-red-300 transition",onClick:U},[...t[15]||(t[15]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"})],-1),R(" Sign Out ",-1)])])])):H("",!0)],512)])])]),e("main",Be,[ee(s.$slots,"default")])])])}}});export{Fe as default}; diff --git a/frontend_admin/.output/public/_nuxt/CWA6Xjbg.js b/frontend_admin/.output/public/_nuxt/CWA6Xjbg.js new file mode 100644 index 0000000..5933864 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/CWA6Xjbg.js @@ -0,0 +1 @@ +import{K as C,m as u,x as l,A as r}from"./CqYPuxVf.js";const g=C("auth",()=>{const t=u(null),o=u(null),c=u(!1),s=u(null),v=u(!1),h=l(()=>!!o.value&&!!t.value),k=l(()=>{const e=t.value?.role;return e?["SUPERADMIN","ADMIN","MODERATOR","SALES_REP","SERVICE_MGR"].includes(e.toUpperCase()):!1}),m=l(()=>{if(!t.value)return"";const{first_name:e,last_name:n}=t.value;return e&&n?`${e} ${n}`:e||n||t.value.email}),p=l(()=>t.value?.email??""),w=l(()=>t.value?.role??"guest");async function A(e,n){c.value=!0,s.value=null;try{const a=new URLSearchParams;a.append("username",e),a.append("password",n);const d=await $fetch("/api/v1/auth/login",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}),y=r("access_token",{maxAge:3600*24*7,path:"/",sameSite:"lax",secure:!0});y.value=d.access_token,o.value=d.access_token,await i()}catch(a){throw s.value=a?.data?.detail||a?.message||"Login failed",a}finally{c.value=!1}}async function i(){const n=r("access_token").value||o.value;if(n)try{const a=await $fetch("/api/v1/auth/me",{headers:{Authorization:`Bearer ${n}`}});t.value=a}catch(a){throw a?.response?.status===401&&f(),a}}function f(){o.value=null,t.value=null,s.value=null;const e=r("access_token");e.value=null}async function R(){const e=r("access_token");if(e.value){o.value=e.value;try{await i()}catch{f()}}v.value=!0}function _(){s.value=null}return{user:t,token:o,isLoading:c,error:s,isInitialized:v,isAuthenticated:h,isAdmin:k,userName:m,userEmail:p,userRole:w,login:A,fetchUser:i,logout:f,init:R,clearError:_}});export{g as u}; diff --git a/frontend_admin/.output/public/_nuxt/CgyjcGAF.js b/frontend_admin/.output/public/_nuxt/CgyjcGAF.js new file mode 100644 index 0000000..31eaf8c --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/CgyjcGAF.js @@ -0,0 +1 @@ +const t={permissions:{title:{t:0,b:{t:2,i:[{t:3}],s:"Permissions Management"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Permissions Management — Role-based access control & subscription feature flags"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading permissions data..."}},error_title:{t:0,b:{t:2,i:[{t:3}],s:"Failed to load permissions"}},retry:{t:0,b:{t:2,i:[{t:3}],s:"Retry"}},save_changes:{t:0,b:{t:2,i:[{t:3}],s:"Save Changes"}},discard:{t:0,b:{t:2,i:[{t:3}],s:"Discard"}},modified_count:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" modification(s)"}]}},current_tier:{t:0,b:{t:2,i:[{t:3}],s:"Current Tier"}},expires:{t:0,b:{t:2,i:[{t:3}],s:"Expires"}},superadmin:{t:0,b:{t:2,i:[{t:3}],s:"Superadmin"}},superadmin_desc:{t:0,b:{t:2,i:[{t:3}],s:"Full system access — user management, billing, robots, and system configuration."}},garages:{t:0,b:{t:2,i:[{t:3}],s:"Garages"}},garages_desc:{t:0,b:{t:2,i:[{t:3}],s:"Garage-level access — vehicle management, service booking, customer data."}},feature_flags:{t:0,b:{t:2,i:[{t:3}],s:"Feature Flags"}},feature_flags_desc:{t:0,b:{t:2,i:[{t:3,v:"Subscription feature toggles — resolved from your current tier ("},{t:4,k:"tier"},{t:3,v:")."}]}},rbac_title:{t:0,b:{t:2,i:[{t:3}],s:"RBAC Permission Matrix"}},rbac_desc:{t:0,b:{t:2,i:[{t:3}],s:"Role-based access control — which roles can perform which admin actions."}},action:{t:0,b:{t:2,i:[{t:3}],s:"Action"}},perms:{user_mgmt:{t:0,b:{t:2,i:[{t:3}],s:"User Management"}},billing_admin:{t:0,b:{t:2,i:[{t:3}],s:"Billing Administration"}},robot_config:{t:0,b:{t:2,i:[{t:3}],s:"Robot Configuration"}},system_logs:{t:0,b:{t:2,i:[{t:3}],s:"System Logs Access"}},api_keys:{t:0,b:{t:2,i:[{t:3}],s:"API Key Management"}},vehicle_crud:{t:0,b:{t:2,i:[{t:3}],s:"Vehicle CRUD"}},service_booking:{t:0,b:{t:2,i:[{t:3}],s:"Service Booking"}},customer_view:{t:0,b:{t:2,i:[{t:3}],s:"Customer Data View"}},report_export:{t:0,b:{t:2,i:[{t:3}],s:"Report Export"}},bulk_import:{t:0,b:{t:2,i:[{t:3}],s:"Bulk Import"}}}},packages:{title:{t:0,b:{t:2,i:[{t:3}],s:"Package Management"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Manage subscription packages and feature flags — Free, Premium, Enterprise"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Loading packages..."}},retry:{t:0,b:{t:2,i:[{t:3}],s:"Retry"}},create_new:{t:0,b:{t:2,i:[{t:3}],s:"Create Package"}},no_packages:{t:0,b:{t:2,i:[{t:3}],s:"No packages yet"}},no_packages_desc:{t:0,b:{t:2,i:[{t:3}],s:"Create your first subscription package to get started."}},create_first:{t:0,b:{t:2,i:[{t:3}],s:"Create First Package"}},popular:{t:0,b:{t:2,i:[{t:3}],s:"Popular"}},fallback_badge:{t:0,b:{t:2,i:[{t:3}],s:"Fallback"}},trial_badge:{t:0,b:{t:2,i:[{t:3}],s:"Trial"}},month:{t:0,b:{t:2,i:[{t:3}],s:"month"}},feature_flags:{t:0,b:{t:2,i:[{t:3}],s:"Available Features"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Edit"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Delete"}},set_as_default:{t:0,b:{t:2,i:[{t:3}],s:"Set as default"}},set_as_default_success:{t:0,b:{t:2,i:[{t:3}],s:"set as default package!"}},edit_title:{t:0,b:{t:2,i:[{t:3}],s:"Edit Package"}},create_title:{t:0,b:{t:2,i:[{t:3}],s:"Create Package"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Cancel"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Save Changes"}},create:{t:0,b:{t:2,i:[{t:3}],s:"Create"}},save_success:{t:0,b:{t:2,i:[{t:3}],s:"Package updated successfully!"}},delete_title:{t:0,b:{t:2,i:[{t:3}],s:"Delete Package"}},delete_confirm:{t:0,b:{t:2,i:[{t:3,v:'Are you sure you want to delete "'},{t:4,k:"name"},{t:3,v:'"?'}]}},delete_btn:{t:0,b:{t:2,i:[{t:3}],s:"Delete"}},allowances:{t:0,b:{t:2,i:[{t:3}],s:"Allowances"}},max_vehicles:{t:0,b:{t:2,i:[{t:3}],s:"Max Vehicles"}},max_garages:{t:0,b:{t:2,i:[{t:3}],s:"Max Garages"}},monthly_credits:{t:0,b:{t:2,i:[{t:3}],s:"Monthly Credits"}},tier_level:{t:0,b:{t:2,i:[{t:3}],s:"Tier Level"}},form_name:{t:0,b:{t:2,i:[{t:3}],s:"System Name"}},form_name_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"e.g. premium_2024"}},form_display_name:{t:0,b:{t:2,i:[{t:3}],s:"Display Name"}},form_display_name_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"e.g. Premium Plus"}},form_type:{t:0,b:{t:2,i:[{t:3}],s:"Type"}},type_private:{t:0,b:{t:2,i:[{t:3}],s:"Private"}},type_corporate:{t:0,b:{t:2,i:[{t:3}],s:"Corporate"}},form_tier_level:{t:0,b:{t:2,i:[{t:3}],s:"Tier Level"}},form_tier_level_hint:{t:0,b:{t:2,i:[{t:3}],s:"Higher number = more features & higher rank"}},form_monthly_price:{t:0,b:{t:2,i:[{t:3}],s:"Monthly Price"}},form_yearly_price:{t:0,b:{t:2,i:[{t:3}],s:"Yearly Price"}},form_currency:{t:0,b:{t:2,i:[{t:3}],s:"Currency"}},form_subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Subtitle / Description"}},form_subtitle_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"e.g. Best for small businesses"}},form_badge:{t:0,b:{t:2,i:[{t:3}],s:"Badge Text"}},form_badge_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"e.g. Most Popular"}},form_is_custom:{t:0,b:{t:2,i:[{t:3}],s:"Custom Package (not publicly listed)"}},singleton_rules:{t:0,b:{t:2,i:[{t:3}],s:"Singleton Rules"}},form_is_default_fallback:{t:0,b:{t:2,i:[{t:3}],s:"Default Fallback Package — assigned when a subscription expires"}},form_trial_days:{t:0,b:{t:2,i:[{t:3}],s:"Trial Days on Signup"}},form_trial_days_hint:{t:0,b:{t:2,i:[{t:3}],s:"New organizations get this many free days. Only one package can have trial > 0."}}},garages:{title:{t:0,b:{t:2,i:[{t:3}],s:"Garages CRM"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Garage list, package management and status changes"}},total_garages:{t:0,b:{t:2,i:[{t:3}],s:"Total Garages"}},active_garages:{t:0,b:{t:2,i:[{t:3}],s:"Active Garages"}},premium_garages:{t:0,b:{t:2,i:[{t:3}],s:"Premium Garages"}},enterprise_garages:{t:0,b:{t:2,i:[{t:3}],s:"Enterprise Garages"}},search_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Search by name, contact or email..."}},all_tiers:{t:0,b:{t:2,i:[{t:3}],s:"All packages"}},company_name:{t:0,b:{t:2,i:[{t:3}],s:"Company Name"}},email:{t:0,b:{t:2,i:[{t:3}],s:"Email"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Status"}},current_package:{t:0,b:{t:2,i:[{t:3}],s:"Current Package"}},actions:{t:0,b:{t:2,i:[{t:3}],s:"Actions"}},active:{t:0,b:{t:2,i:[{t:3}],s:"Active"}},inactive:{t:0,b:{t:2,i:[{t:3}],s:"Inactive"}},suspended:{t:0,b:{t:2,i:[{t:3}],s:"Suspended"}},change_package:{t:0,b:{t:2,i:[{t:3}],s:"Change Package"}},view:{t:0,b:{t:2,i:[{t:3}],s:"View"}},activate:{t:0,b:{t:2,i:[{t:3}],s:"Activate"}},deactivate:{t:0,b:{t:2,i:[{t:3}],s:"Deactivate"}},no_results:{t:0,b:{t:2,i:[{t:3}],s:"No garages match your search."}}}};export{t as default}; diff --git a/frontend_admin/.output/public/_nuxt/CqYPuxVf.js b/frontend_admin/.output/public/_nuxt/CqYPuxVf.js new file mode 100644 index 0000000..4eca33e --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/CqYPuxVf.js @@ -0,0 +1,6 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./9W9VXtTt.js","./Da4aCGAe.js","./CWA6Xjbg.js","./ncKxzOzI.js","./DWjNh9rV.js","./CC4zKGJo.js","./C8yzOtqa.js","./error-404.DL_4WIao.css","./Cx40nPNe.js","./error-500.I1Dtv2V5.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function ji(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Gn=[],Ft=()=>{},Dc=()=>!1,qr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),$s=e=>e.startsWith("onUpdate:"),He=Object.assign,Bi=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Zd=Object.prototype.hasOwnProperty,ge=(e,t)=>Zd.call(e,t),Z=Array.isArray,qn=e=>ur(e)==="[object Map]",cr=e=>ur(e)==="[object Set]",ka=e=>ur(e)==="[object Date]",eh=e=>ur(e)==="[object RegExp]",ee=e=>typeof e=="function",we=e=>typeof e=="string",ct=e=>typeof e=="symbol",de=e=>e!==null&&typeof e=="object",Fc=e=>(de(e)||ee(e))&&ee(e.then)&&ee(e.catch),Hc=Object.prototype.toString,ur=e=>Hc.call(e),th=e=>ur(e).slice(8,-1),$c=e=>ur(e)==="[object Object]",Us=e=>we(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ln=ji(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),js=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},nh=/-\w/g,Qe=js(e=>e.replace(nh,t=>t.slice(1).toUpperCase())),rh=/\B([A-Z])/g,Dn=js(e=>e.replace(rh,"-$1").toLowerCase()),Bs=js(e=>e.charAt(0).toUpperCase()+e.slice(1)),go=js(e=>e?`on${Bs(e)}`:""),xt=(e,t)=>!Object.is(e,t),Yn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Vs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},jc=e=>{const t=we(e)?Number(e):NaN;return isNaN(t)?e:t};let Aa;const Ws=()=>Aa||(Aa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ks(e){if(Z(e)){const t={};for(let n=0;n{if(n){const r=n.split(oh);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Gs(e){let t="";if(we(e))t=e;else if(Z(e))for(let n=0;nfr(n,t))}const Vc=e=>!!(e&&e.__v_isRef===!0),dh=e=>we(e)?e:e==null?"":Z(e)||de(e)&&(e.toString===Hc||!ee(e.toString))?Vc(e)?dh(e.value):JSON.stringify(e,Wc,2):String(e),Wc=(e,t)=>Vc(t)?Wc(e,t.value):qn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[mo(r,o)+" =>"]=s,n),{})}:cr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>mo(n))}:ct(t)?mo(t):de(t)&&!Z(t)&&!$c(t)?String(t):t,mo=(e,t="")=>{var n;return ct(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Me;class Kc{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Me&&(Me.active?(this.parent=Me,this.index=(Me.scopes||(Me.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Me===this)Me=this.prevScope;else{let t=Me;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(Tr){let t=Tr;for(Tr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Rr;){let t=Rr;for(Rr=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 Xc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Jc(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Gi(r),hh(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Ko(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Qc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Qc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===xr)||(e.globalVersion=xr,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ko(e))))return;e.flags|=2;const t=e.dep,n=Ee,r=Et;Ee=e,Et=!0;try{Xc(e);const s=e.fn(e._value);(t.version===0||xt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Ee=n,Et=r,Jc(e),e.flags&=-3}}function Gi(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)Gi(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function hh(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Et=!0;const zc=[];function en(){zc.push(Et),Et=!1}function tn(){const e=zc.pop();Et=e===void 0?!0:e}function Pa(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ee;Ee=void 0;try{t()}finally{Ee=n}}}let xr=0;class ph{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 qs{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(!Ee||!Et||Ee===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ee)n=this.activeLink=new ph(Ee,this),Ee.deps?(n.prevDep=Ee.depsTail,Ee.depsTail.nextDep=n,Ee.depsTail=n):Ee.deps=Ee.depsTail=n,Zc(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=Ee.depsTail,n.nextDep=void 0,Ee.depsTail.nextDep=n,Ee.depsTail=n,Ee.deps===n&&(Ee.deps=r)}return n}trigger(t){this.version++,xr++,this.notify(t)}notify(t){Wi();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ki()}}}function Zc(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)Zc(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const bs=new WeakMap,kn=Symbol(""),Go=Symbol(""),Mr=Symbol("");function Ke(e,t,n){if(Et&&Ee){let r=bs.get(e);r||bs.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new qs),s.map=r,s.key=n),s.track()}}function qt(e,t,n,r,s,o){const i=bs.get(e);if(!i){xr++;return}const a=l=>{l&&l.trigger()};if(Wi(),t==="clear")i.forEach(a);else{const l=Z(e),u=l&&Us(n);if(l&&n==="length"){const c=Number(r);i.forEach((f,d)=>{(d==="length"||d===Mr||!ct(d)&&d>=c)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),u&&a(i.get(Mr)),t){case"add":l?u&&a(i.get("length")):(a(i.get(kn)),qn(e)&&a(i.get(Go)));break;case"delete":l||(a(i.get(kn)),qn(e)&&a(i.get(Go)));break;case"set":qn(e)&&a(i.get(kn));break}}Ki()}function gh(e,t){const n=bs.get(e);return n&&n.get(t)}function Hn(e){const t=ae(e);return t===e?t:(Ke(t,"iterate",Mr),it(e)?t:t.map(wt))}function Ys(e){return Ke(e=ae(e),"iterate",Mr),e}function Nt(e,t){return Ut(e)?er(Ht(e)?wt(t):t):wt(t)}const mh={__proto__:null,[Symbol.iterator](){return _o(this,Symbol.iterator,e=>Nt(this,e))},concat(...e){return Hn(this).concat(...e.map(t=>Z(t)?Hn(t):t))},entries(){return _o(this,"entries",e=>(e[1]=Nt(this,e[1]),e))},every(e,t){return jt(this,"every",e,t,void 0,arguments)},filter(e,t){return jt(this,"filter",e,t,n=>n.map(r=>Nt(this,r)),arguments)},find(e,t){return jt(this,"find",e,t,n=>Nt(this,n),arguments)},findIndex(e,t){return jt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return jt(this,"findLast",e,t,n=>Nt(this,n),arguments)},findLastIndex(e,t){return jt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return jt(this,"forEach",e,t,void 0,arguments)},includes(...e){return bo(this,"includes",e)},indexOf(...e){return bo(this,"indexOf",e)},join(e){return Hn(this).join(e)},lastIndexOf(...e){return bo(this,"lastIndexOf",e)},map(e,t){return jt(this,"map",e,t,void 0,arguments)},pop(){return gr(this,"pop")},push(...e){return gr(this,"push",e)},reduce(e,...t){return Oa(this,"reduce",e,t)},reduceRight(e,...t){return Oa(this,"reduceRight",e,t)},shift(){return gr(this,"shift")},some(e,t){return jt(this,"some",e,t,void 0,arguments)},splice(...e){return gr(this,"splice",e)},toReversed(){return Hn(this).toReversed()},toSorted(e){return Hn(this).toSorted(e)},toSpliced(...e){return Hn(this).toSpliced(...e)},unshift(...e){return gr(this,"unshift",e)},values(){return _o(this,"values",e=>Nt(this,e))}};function _o(e,t,n){const r=Ys(e),s=r[t]();return r!==e&&!it(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const yh=Array.prototype;function jt(e,t,n,r,s,o){const i=Ys(e),a=i!==e&&!it(e),l=i[t];if(l!==yh[t]){const f=l.apply(e,o);return a?wt(f):f}let u=n;i!==e&&(a?u=function(f,d){return n.call(this,Nt(e,f),d,e)}:n.length>2&&(u=function(f,d){return n.call(this,f,d,e)}));const c=l.call(i,u,r);return a&&s?s(c):c}function Oa(e,t,n,r){const s=Ys(e),o=s!==e&&!it(e);let i=n,a=!1;s!==e&&(o?(a=r.length===0,i=function(u,c,f){return a&&(a=!1,u=Nt(e,u)),n.call(this,u,Nt(e,c),f,e)}):n.length>3&&(i=function(u,c,f){return n.call(this,u,c,f,e)}));const l=s[t](i,...r);return a?Nt(e,l):l}function bo(e,t,n){const r=ae(e);Ke(r,"iterate",Mr);const s=r[t](...n);return(s===-1||s===!1)&&Xs(n[0])?(n[0]=ae(n[0]),r[t](...n)):s}function gr(e,t,n=[]){en(),Wi();const r=ae(e)[t].apply(e,n);return Ki(),tn(),r}const _h=ji("__proto__,__v_isRef,__isVue"),eu=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ct));function bh(e){ct(e)||(e=String(e));const t=ae(this);return Ke(t,"has",e),t.hasOwnProperty(e)}class tu{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?Ah:ou:o?su:ru).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=Z(t);if(!s){let l;if(i&&(l=mh[n]))return l;if(n==="hasOwnProperty")return bh}const a=Reflect.get(t,n,ve(t)?t:r);if((ct(n)?eu.has(n):_h(n))||(s||Ke(t,"get",n),o))return a;if(ve(a)){const l=i&&Us(n)?a:a.value;return s&&de(l)?Yo(l):l}return de(a)?s?Yo(a):sn(a):a}}class nu extends tu{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=Z(t)&&Us(n);if(!this._isShallow){const u=Ut(o);if(!it(r)&&!Ut(r)&&(o=ae(o),r=ae(r)),!i&&ve(o)&&!ve(r))return u||(o.value=r),!0}const a=i?Number(n)e,ts=e=>Reflect.getPrototypeOf(e);function Sh(e,t,n){return function(...r){const s=this.__v_raw,o=ae(s),i=qn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,u=s[e](...r),c=n?qo:t?er:wt;return!t&&Ke(o,"iterate",l?Go:kn),He(Object.create(u),{next(){const{value:f,done:d}=u.next();return d?{value:f,done:d}:{value:a?[c(f[0]),c(f[1])]:c(f),done:d}}})}}function ns(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Rh(e,t){const n={get(s){const o=this.__v_raw,i=ae(o),a=ae(s);e||(xt(s,a)&&Ke(i,"get",s),Ke(i,"get",a));const{has:l}=ts(i),u=t?qo:e?er:wt;if(l.call(i,s))return u(o.get(s));if(l.call(i,a))return u(o.get(a));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ke(ae(s),"iterate",kn),s.size},has(s){const o=this.__v_raw,i=ae(o),a=ae(s);return e||(xt(s,a)&&Ke(i,"has",s),Ke(i,"has",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const i=this,a=i.__v_raw,l=ae(a),u=t?qo:e?er:wt;return!e&&Ke(l,"iterate",kn),a.forEach((c,f)=>s.call(o,u(c),u(f),i))}};return He(n,e?{add:ns("add"),set:ns("set"),delete:ns("delete"),clear:ns("clear")}:{add(s){const o=ae(this),i=ts(o),a=ae(s),l=!t&&!it(s)&&!Ut(s)?a:s;return i.has.call(o,l)||xt(s,l)&&i.has.call(o,s)||xt(a,l)&&i.has.call(o,a)||(o.add(l),qt(o,"add",l,l)),this},set(s,o){!t&&!it(o)&&!Ut(o)&&(o=ae(o));const i=ae(this),{has:a,get:l}=ts(i);let u=a.call(i,s);u||(s=ae(s),u=a.call(i,s));const c=l.call(i,s);return i.set(s,o),u?xt(o,c)&&qt(i,"set",s,o):qt(i,"add",s,o),this},delete(s){const o=ae(this),{has:i,get:a}=ts(o);let l=i.call(o,s);l||(s=ae(s),l=i.call(o,s)),a&&a.call(o,s);const u=o.delete(s);return l&&qt(o,"delete",s,void 0),u},clear(){const s=ae(this),o=s.size!==0,i=s.clear();return o&&qt(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Sh(s,e,t)}),n}function qi(e,t){const n=Rh(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ge(n,s)&&s in r?n:r,s,o)}const Th={get:qi(!1,!1)},Lh={get:qi(!1,!0)},kh={get:qi(!0,!1)};const ru=new WeakMap,su=new WeakMap,ou=new WeakMap,Ah=new WeakMap;function Ph(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function sn(e){return Ut(e)?e:Yi(e,!1,Eh,Th,ru)}function Dt(e){return Yi(e,!1,Ch,Lh,su)}function Yo(e){return Yi(e,!0,wh,kh,ou)}function Yi(e,t,n,r,s){if(!de(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Ph(th(e));if(i===0)return e;const a=new Proxy(e,i===2?r:n);return s.set(e,a),a}function Ht(e){return Ut(e)?Ht(e.__v_raw):!!(e&&e.__v_isReactive)}function Ut(e){return!!(e&&e.__v_isReadonly)}function it(e){return!!(e&&e.__v_isShallow)}function Xs(e){return e?!!e.__v_raw:!1}function ae(e){const t=e&&e.__v_raw;return t?ae(t):e}function Xi(e){return!ge(e,"__v_skip")&&Object.isExtensible(e)&&Uc(e,"__v_skip",!0),e}const wt=e=>de(e)?sn(e):e,er=e=>de(e)?Yo(e):e;function ve(e){return e?e.__v_isRef===!0:!1}function et(e){return iu(e,!1)}function Nn(e){return iu(e,!0)}function iu(e,t){return ve(e)?e:new Oh(e,t)}class Oh{constructor(t,n){this.dep=new qs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ae(t),this._value=n?t:wt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||it(t)||Ut(t);t=r?t:ae(t),xt(t,n)&&(this._rawValue=t,this._value=r?t:wt(t),this.dep.trigger())}}function me(e){return ve(e)?e.value:e}function Ih(e){return ee(e)?e():me(e)}const Nh={get:(e,t,n)=>t==="__v_raw"?e:me(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ve(s)&&!ve(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function au(e){return Ht(e)?e:new Proxy(e,Nh)}class xh{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new qs,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Mh(e){return new xh(e)}function Dh(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=cu(e,n);return t}class Fh{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=ct(n)?n:String(n),this._raw=ae(t);let s=!0,o=t;if(!Z(t)||ct(this._key)||!Us(this._key))do s=!Xs(o)||it(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=me(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ve(this._raw[this._key])){const n=this._object[this._key];if(ve(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return gh(this._raw,this._key)}}class Hh{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 lu(e,t,n){return ve(e)?e:ee(e)?new Hh(e):de(e)&&arguments.length>1?cu(e,t,n):et(e)}function cu(e,t,n){return new Fh(e,t,n)}class $h{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new qs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=xr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Ee!==this)return Yc(this,!0),!0}get value(){const t=this.dep.track();return Qc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Uh(e,t,n=!1){let r,s;return ee(e)?r=e:(r=e.get,s=e.set),new $h(r,s,n)}const rs={},vs=new WeakMap;let Sn;function jh(e,t=!1,n=Sn){if(n){let r=vs.get(n);r||vs.set(n,r=[]),r.push(e)}}function Bh(e,t,n=be){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:a,call:l}=n,u=y=>s?y:it(y)||s===!1||s===0?Yt(y,1):Yt(y);let c,f,d,h,_=!1,m=!1;if(ve(e)?(f=()=>e.value,_=it(e)):Ht(e)?(f=()=>u(e),_=!0):Z(e)?(m=!0,_=e.some(y=>Ht(y)||it(y)),f=()=>e.map(y=>{if(ve(y))return y.value;if(Ht(y))return u(y);if(ee(y))return l?l(y,2):y()})):ee(e)?t?f=l?()=>l(e,2):e:f=()=>{if(d){en();try{d()}finally{tn()}}const y=Sn;Sn=c;try{return l?l(e,3,[h]):e(h)}finally{Sn=y}}:f=Ft,t&&s){const y=f,C=s===!0?1/0:s;f=()=>Yt(y(),C)}const R=dr(),b=()=>{c.stop(),R&&R.active&&Bi(R.effects,c)};if(o&&t){const y=t;t=(...C)=>{const A=y(...C);return b(),A}}let E=m?new Array(e.length).fill(rs):rs;const g=y=>{if(!(!(c.flags&1)||!c.dirty&&!y))if(t){const C=c.run();if(y||s||_||(m?C.some((A,L)=>xt(A,E[L])):xt(C,E))){d&&d();const A=Sn;Sn=c;try{const L=[C,E===rs?void 0:m&&E[0]===rs?[]:E,h];E=C,l?l(t,3,L):t(...L)}finally{Sn=A}}}else c.run()};return a&&a(g),c=new Gc(f),c.scheduler=i?()=>i(g,!1):g,h=y=>jh(y,!1,c),d=c.onStop=()=>{const y=vs.get(c);if(y){if(l)l(y,4);else for(const C of y)C();vs.delete(c)}},t?r?g(!0):E=c.run():i?i(g.bind(null,!0),!0):c.run(),b.pause=c.pause.bind(c),b.resume=c.resume.bind(c),b.stop=b,b}function Yt(e,t=1/0,n){if(t<=0||!de(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,ve(e))Yt(e.value,t,n);else if(Z(e))for(let r=0;r{Yt(r,t,n)});else if($c(e)){for(const r in e)Yt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Yt(e[r],t,n)}return e}function Xr(e,t,n,r){try{return r?e(...r):e()}catch(s){hr(s,t,n)}}function yt(e,t,n,r){if(ee(e)){const s=Xr(e,t,n,r);return s&&Fc(s)&&s.catch(o=>{hr(o,t,n)}),s}if(Z(e)){const s=[];for(let o=0;o>>1,s=Je[r],o=Dr(s);o=Dr(n)?Je.push(e):Je.splice(Wh(t),0,e),e.flags|=1,fu()}}function fu(){Es||(Es=uu.then(du))}function Xo(e){Z(e)?Xn.push(...e):fn&&e.id===-1?fn.splice(jn+1,0,e):e.flags&1||(Xn.push(e),e.flags|=1),fu()}function Ia(e,t,n=Ot+1){for(;nDr(n)-Dr(r));if(Xn.length=0,fn){fn.push(...t);return}for(fn=t,jn=0;jne.id==null?e.flags&2?-1:1/0:e.id;function du(e){try{for(Ot=0;Ot{r._d&&ks(-1);const o=Cs(t);let i;try{i=e(...s)}finally{Cs(o),r._d&&ks(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function R0(e,t){if(Be===null)return e;const n=to(Be),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&ee(t)?t.call(r&&r.proxy):t}}function Jr(){return!!(Fn()||An)}const Kh=Symbol.for("v-scx"),Gh=()=>Fe(Kh);function qh(e,t){return zi(e,null,t)}function at(e,t,n){return zi(e,t,n)}function zi(e,t,n=be){const{immediate:r,deep:s,flush:o,once:i}=n,a=He({},n),l=t&&r||!t&&o!=="post";let u;if(rr){if(o==="sync"){const h=Gh();u=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=Ft,h.resume=Ft,h.pause=Ft,h}}const c=je;a.call=(h,_,m)=>yt(h,c,_,m);let f=!1;o==="post"?a.scheduler=h=>{De(h,c&&c.suspense)}:o!=="sync"&&(f=!0,a.scheduler=(h,_)=>{_?h():Ji(h)}),a.augmentJob=h=>{t&&(h.flags|=4),f&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const d=Bh(e,t,a);return rr&&(u?u.push(d):l&&d()),d}function Yh(e,t,n){const r=this.proxy,s=we(e)?e.includes(".")?pu(r,e):()=>r[e]:e.bind(r,r);let o;ee(t)?o=t:(o=t.handler,n=t);const i=Zr(this),a=zi(s,o.bind(r),n);return i(),a}function pu(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,ht=Symbol("_leaveCb"),mr=Symbol("_enterCb");function Jh(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Qs(()=>{e.isMounted=!0}),zr(()=>{e.isUnmounting=!0}),e}const ft=[Function,Array],mu={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ft,onEnter:ft,onAfterEnter:ft,onEnterCancelled:ft,onBeforeLeave:ft,onLeave:ft,onAfterLeave:ft,onLeaveCancelled:ft,onBeforeAppear:ft,onAppear:ft,onAfterAppear:ft,onAppearCancelled:ft},yu=e=>{const t=e.subTree;return t.component?yu(t.component):t},Qh={name:"BaseTransition",props:mu,setup(e,{slots:t}){const n=Fn(),r=Jh();return()=>{const s=t.default&&vu(t.default(),!0),o=s&&s.length?_u(s):n.subTree?Kp():void 0;if(!o)return;const i=ae(e),{mode:a}=i;if(r.isLeaving)return vo(o);const l=Na(o);if(!l)return vo(o);let u=Jo(l,i,r,n,f=>u=f);l.type!==Oe&&tr(l,u);let c=n.subTree&&Na(n.subTree);if(c&&c.type!==Oe&&!bt(c,l)&&yu(n).type!==Oe){let f=Jo(c,i,r,n);if(tr(c,f),a==="out-in"&&l.type!==Oe)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,c=void 0},vo(o);a==="in-out"&&l.type!==Oe?f.delayLeave=(d,h,_)=>{const m=bu(r,c);m[String(c.key)]=c,d[ht]=()=>{h(),d[ht]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{_(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function _u(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Oe){t=n;break}}return t}const zh=Qh;function bu(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 Jo(e,t,n,r,s){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:d,onLeave:h,onAfterLeave:_,onLeaveCancelled:m,onBeforeAppear:R,onAppear:b,onAfterAppear:E,onAppearCancelled:g}=t,y=String(e.key),C=bu(n,e),A=(N,D)=>{N&&yt(N,r,9,D)},L=(N,D)=>{const W=D[1];A(N,D),Z(N)?N.every($=>$.length<=1)&&W():N.length<=1&&W()},F={mode:i,persisted:a,beforeEnter(N){let D=l;if(!n.isMounted)if(o)D=R||l;else return;N[ht]&&N[ht](!0);const W=C[y];W&&bt(e,W)&&W.el[ht]&&W.el[ht](),A(D,[N])},enter(N){if(C[y]===e)return;let D=u,W=c,$=f;if(!n.isMounted)if(o)D=b||u,W=E||c,$=g||f;else return;let X=!1;N[mr]=se=>{X||(X=!0,se?A($,[N]):A(W,[N]),F.delayedLeave&&F.delayedLeave(),N[mr]=void 0)};const te=N[mr].bind(null,!1);D?L(D,[N,te]):te()},leave(N,D){const W=String(e.key);if(N[mr]&&N[mr](!0),n.isUnmounting)return D();A(d,[N]);let $=!1;N[ht]=te=>{$||($=!0,D(),te?A(m,[N]):A(_,[N]),N[ht]=void 0,C[W]===e&&delete C[W])};const X=N[ht].bind(null,!1);C[W]=e,h?L(h,[N,X]):X()},clone(N){const D=Jo(N,t,n,r,s);return s&&s(D),D}};return F}function vo(e){if(Qr(e))return e=rn(e),e.children=null,e}function Na(e){if(!Qr(e))return gu(e.type)&&e.children?_u(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&&ee(n.default))return n.default()}}function tr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,tr(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 vu(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oJn(m,t&&(Z(t)?t[R]:t),n,r,s));return}if(Qt(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Jn(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?to(r.component):r.el,i=s?null:o,{i:a,r:l}=e,u=t&&t.r,c=a.refs===be?a.refs={}:a.refs,f=a.setupState,d=ae(f),h=f===be?Dc:m=>xa(c,m)?!1:ge(d,m),_=(m,R)=>!(R&&xa(c,R));if(u!=null&&u!==l){if(Ma(t),we(u))c[u]=null,h(u)&&(f[u]=null);else if(ve(u)){const m=t;_(u,m.k)&&(u.value=null),m.k&&(c[m.k]=null)}}if(ee(l))Xr(l,a,12,[i,c]);else{const m=we(l),R=ve(l);if(m||R){const b=()=>{if(e.f){const E=m?h(l)?f[l]:c[l]:_()||!e.k?l.value:c[e.k];if(s)Z(E)&&Bi(E,o);else if(Z(E))E.includes(o)||E.push(o);else if(m)c[l]=[o],h(l)&&(f[l]=c[l]);else{const g=[o];_(l,e.k)&&(l.value=g),e.k&&(c[e.k]=g)}}else m?(c[l]=i,h(l)&&(f[l]=i)):R&&(_(l,e.k)&&(l.value=i),e.k&&(c[e.k]=i))};if(i){const E=()=>{b(),Ss.delete(e)};E.id=-1,Ss.set(e,E),De(E,n)}else Ma(e),b()}}}function Ma(e){const t=Ss.get(e);t&&(t.flags|=8,Ss.delete(e))}let Da=!1;const $n=()=>{Da||(console.error("Hydration completed but contains mismatches."),Da=!0)},Zh=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",ep=e=>e.namespaceURI.includes("MathML"),ss=e=>{if(e.nodeType===1){if(Zh(e))return"svg";if(ep(e))return"mathml"}},Wn=e=>e.nodeType===8;function tp(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:a,insert:l,createComment:u}}=e,c=(g,y)=>{if(!y.hasChildNodes()){n(null,g,y),ws(),y._vnode=g;return}f(y.firstChild,g,null,null,null),ws(),y._vnode=g},f=(g,y,C,A,L,F=!1)=>{F=F||!!y.dynamicChildren;const N=Wn(g)&&g.data==="[",D=()=>m(g,y,C,A,L,N),{type:W,ref:$,shapeFlag:X,patchFlag:te}=y;let se=g.nodeType;y.el=g,te===-2&&(F=!1,y.dynamicChildren=null);let K=null;switch(W){case mn:se!==3?y.children===""?(l(y.el=s(""),i(g),g),K=g):K=D():(g.data!==y.children&&($n(),g.data=y.children),K=o(g));break;case Oe:E(g)?(K=o(g),b(y.el=g.content.firstChild,g,C)):se!==8||N?K=D():K=o(g);break;case kr:if(N&&(g=o(g),se=g.nodeType),se===1||se===3){K=g;const J=!y.children.length;for(let q=0;q{F=F||!!y.dynamicChildren;const{type:N,props:D,patchFlag:W,shapeFlag:$,dirs:X,transition:te}=y,se=N==="input"||N==="option";if(se||W!==-1){X&&It(y,null,C,"created");let K=!1;if(E(g)){K=Wu(null,te)&&C&&C.vnode.props&&C.vnode.props.appear;const q=g.content.firstChild;if(K){const re=q.getAttribute("class");re&&(q.$cls=re),te.beforeEnter(q)}b(q,g,C),y.el=g=q}if($&16&&!(D&&(D.innerHTML||D.textContent))){let q=h(g.firstChild,y,g,C,A,L,F);for(q&&!os(g,1)&&$n();q;){const re=q;q=q.nextSibling,a(re)}}else if($&8){let q=y.children;q[0]===` +`&&(g.tagName==="PRE"||g.tagName==="TEXTAREA")&&(q=q.slice(1));const{textContent:re}=g;re!==q&&re!==q.replace(/\r\n|\r/g,` +`)&&(os(g,0)||$n(),g.textContent=y.children)}if(D){if(se||!F||W&48){const q=g.tagName.includes("-");for(const re in D)(se&&(re.endsWith("value")||re==="indeterminate")||qr(re)&&!Ln(re)||re[0]==="."||q&&!Ln(re))&&r(g,re,null,D[re],void 0,C)}else if(D.onClick)r(g,"onClick",null,D.onClick,void 0,C);else if(W&4&&Ht(D.style))for(const q in D.style)D.style[q]}let J;(J=D&&D.onVnodeBeforeMount)&&ze(J,C,y),X&&It(y,null,C,"beforeMount"),((J=D&&D.onVnodeMounted)||X||K)&&Xu(()=>{J&&ze(J,C,y),K&&te.enter(g),X&&It(y,null,C,"mounted")},A)}return g.nextSibling},h=(g,y,C,A,L,F,N)=>{N=N||!!y.dynamicChildren;const D=y.children,W=D.length;let $=!1;for(let X=0;X{const{slotScopeIds:N}=y;N&&(L=L?L.concat(N):N);const D=i(g),W=h(o(g),y,D,C,A,L,F);return W&&Wn(W)&&W.data==="]"?o(y.anchor=W):($n(),l(y.anchor=u("]"),D,W),W)},m=(g,y,C,A,L,F)=>{if(os(g.parentElement,1)||$n(),y.el=null,F){const W=R(g);for(;;){const $=o(g);if($&&$!==W)a($);else break}}const N=o(g),D=i(g);return a(g),n(null,y,D,N,C,A,ss(D),L),C&&(C.vnode.el=y.el,eo(C,y.el)),N},R=(g,y="[",C="]")=>{let A=0;for(;g;)if(g=o(g),g&&Wn(g)&&(g.data===y&&A++,g.data===C)){if(A===0)return o(g);A--}return g},b=(g,y,C)=>{const A=y.parentNode;A&&A.replaceChild(g,y);let L=C;for(;L;)L.vnode.el===y&&(L.vnode.el=L.subTree.el=g),L=L.parent},E=g=>g.nodeType===1&&g.tagName==="TEMPLATE";return[c,f]}const Fa="data-allow-mismatch",np={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function os(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Fa);)e=e.parentElement;const n=e&&e.getAttribute(Fa);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:r.includes(np[t])}}Ws().requestIdleCallback;Ws().cancelIdleCallback;function rp(e,t){if(Wn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Wn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Qt=e=>!!e.type.__asyncLoader;function Qo(e){ee(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:o,timeout:i,suspensible:a=!0,onError:l}=e;let u=null,c,f=0;const d=()=>(f++,u=null,h()),h=()=>{let _;return u||(_=u=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((R,b)=>{l(m,()=>R(d()),()=>b(m),f+1)});throw m}).then(m=>_!==u&&u?u:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return St({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(_,m,R){let b=!1;(m.bu||(m.bu=[])).push(()=>b=!0);const E=()=>{b||R()},g=o?()=>{const y=o(E,C=>rp(_,C));y&&(m.bum||(m.bum=[])).push(y)}:E;c?g():h().then(()=>!m.isUnmounted&&g())},get __asyncResolved(){return c},setup(){const _=je;if(Zi(_),c)return()=>is(c,_);const m=C=>{u=null,hr(C,_,13,!r)};if(a&&_.suspense||rr)return h().then(C=>()=>is(C,_)).catch(C=>(m(C),()=>r?Re(r,{error:C}):null));const R=et(!1),b=et(),E=et(!!s);let g,y;return zs(()=>{g!=null&&clearTimeout(g),y!=null&&clearTimeout(y)}),s&&(y=setTimeout(()=>{_.isUnmounted||(E.value=!1)},s)),i!=null&&(g=setTimeout(()=>{if(!_.isUnmounted&&!R.value&&!b.value){const C=new Error(`Async component timed out after ${i}ms.`);m(C),b.value=C}},i)),h().then(()=>{_.isUnmounted||(R.value=!0,_.parent&&Qr(_.parent.vnode)&&_.parent.update())}).catch(C=>{if(_.isUnmounted){u=null;return}m(C),b.value=C}),()=>{if(R.value&&c)return is(c,_);if(b.value&&r)return Re(r,{error:b.value});if(n&&!E.value)return is(n,_)}}})}function is(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=Re(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const Qr=e=>e.type.__isKeepAlive,sp={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Fn(),r=n.ctx;if(!r.renderer)return()=>{const E=t.default&&t.default();return E&&E.length===1?E[0]:E};const s=new Map,o=new Set;let i=null;const a=n.suspense,{renderer:{p:l,m:u,um:c,o:{createElement:f}}}=r,d=f("div");r.activate=(E,g,y,C,A)=>{const L=E.component;u(E,g,y,0,a),l(L.vnode,E,g,y,L,a,C,E.slotScopeIds,A),De(()=>{L.isDeactivated=!1,L.a&&Yn(L.a);const F=E.props&&E.props.onVnodeMounted;F&&ze(F,L.parent,E)},a)},r.deactivate=E=>{const g=E.component;Ts(g.m),Ts(g.a),u(E,d,null,1,a),De(()=>{g.da&&Yn(g.da);const y=E.props&&E.props.onVnodeUnmounted;y&&ze(y,g.parent,E),g.isDeactivated=!0},a)};function h(E){Eo(E),c(E,n,a,!0)}function _(E){s.forEach((g,y)=>{const C=ii(Qt(g)?g.type.__asyncResolved||{}:g.type);C&&!E(C)&&m(y)})}function m(E){const g=s.get(E);g&&(!i||!bt(g,i))?h(g):i&&Eo(i),s.delete(E),o.delete(E)}at(()=>[e.include,e.exclude],([E,g])=>{E&&_(y=>wr(E,y)),g&&_(y=>!wr(g,y))},{flush:"post",deep:!0});let R=null;const b=()=>{R!=null&&(Ls(n.subTree.type)?De(()=>{s.set(R,as(n.subTree))},n.subTree.suspense):s.set(R,as(n.subTree)))};return Qs(b),Su(b),zr(()=>{s.forEach(E=>{const{subTree:g,suspense:y}=n,C=as(g);if(E.type===C.type&&E.key===C.key){Eo(C);const A=C.component.da;A&&De(A,y);return}h(E)})}),()=>{if(R=null,!t.default)return i=null;const E=t.default(),g=E[0];if(E.length>1)return i=null,E;if(!xn(g)||!(g.shapeFlag&4)&&!(g.shapeFlag&128))return i=null,g;let y=as(g);if(y.type===Oe)return i=null,y;const C=y.type,A=ii(Qt(y)?y.type.__asyncResolved||{}:C),{include:L,exclude:F,max:N}=e;if(L&&(!A||!wr(L,A))||F&&A&&wr(F,A))return y.shapeFlag&=-257,i=y,g;const D=y.key==null?C:y.key,W=s.get(D);return y.el&&(y=rn(y),g.shapeFlag&128&&(g.ssContent=y)),R=D,W?(y.el=W.el,y.component=W.component,y.transition&&tr(y,y.transition),y.shapeFlag|=512,o.delete(D),o.add(D)):(o.add(D),N&&o.size>parseInt(N,10)&&m(o.values().next().value)),y.shapeFlag|=256,i=y,Ls(g.type)?g:y}}},op=sp;function wr(e,t){return Z(e)?e.some(n=>wr(n,t)):we(e)?e.split(",").includes(t):eh(e)?(e.lastIndex=0,e.test(t)):!1}function Eu(e,t){Cu(e,"a",t)}function wu(e,t){Cu(e,"da",t)}function Cu(e,t,n=je){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Js(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Qr(s.parent.vnode)&&ip(r,t,n,s),s=s.parent}}function ip(e,t,n,r){const s=Js(t,e,r,!0);zs(()=>{Bi(r[t],s)},n)}function Eo(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function as(e){return e.shapeFlag&128?e.ssContent:e}function Js(e,t,n=je,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{en();const a=Zr(n),l=yt(t,n,e,i);return a(),tn(),l});return r?s.unshift(o):s.push(o),o}}const on=e=>(t,n=je)=>{(!rr||e==="sp")&&Js(e,(...r)=>t(...r),n)},ap=on("bm"),Qs=on("m"),lp=on("bu"),Su=on("u"),zr=on("bum"),zs=on("um"),cp=on("sp"),up=on("rtg"),fp=on("rtc");function Ru(e,t=je){Js("ec",e,t)}const Tu="components";function T0(e,t){return ku(Tu,e,!0,t)||e}const Lu=Symbol.for("v-ndc");function dp(e){return we(e)?ku(Tu,e,!1)||e:e||Lu}function ku(e,t,n=!0,r=!1){const s=Be||je;if(s){const o=s.type;{const a=ii(o,!1);if(a&&(a===t||a===Qe(t)||a===Bs(Qe(t))))return o}const i=Ha(s[e]||o[e],t)||Ha(s.appContext[e],t);return!i&&r?o:i}}function Ha(e,t){return e&&(e[t]||e[Qe(t)]||e[Bs(Qe(t))])}function L0(e,t,n,r){let s;const o=n&&n[r],i=Z(e);if(i||we(e)){const a=i&&Ht(e);let l=!1,u=!1;a&&(l=!it(e),u=Ut(e),e=Ys(e)),s=new Array(e.length);for(let c=0,f=e.length;ct(a,l,void 0,o&&o[l]));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,u=a.length;l0;return t!=="default"&&(n.name=t),pt(),Mt(Ue,null,[Re("slot",n,r&&r())],u?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),pt();const i=o&&Au(o(n)),a=n.key||i&&i.key,l=Mt(Ue,{key:(a&&!ct(a)?a:`_${t}`)+(!i&&r?"_fb":"")},i||(r?r():[]),i&&e._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Au(e){return e.some(t=>xn(t)?!(t.type===Oe||t.type===Ue&&!Au(t.children)):!0)?e:null}const zo=e=>e?rf(e)?to(e):zo(e.parent):null,Lr=He(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=>zo(e.parent),$root:e=>zo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ou(e),$forceUpdate:e=>e.f||(e.f=()=>{Ji(e.update)}),$nextTick:e=>e.n||(e.n=nn.bind(e.proxy)),$watch:e=>Yh.bind(e)}),wo=(e,t)=>e!==be&&!e.__isScriptSetup&&ge(e,t),hp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const d=i[t];if(d!==void 0)switch(d){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(wo(r,t))return i[t]=1,r[t];if(s!==be&&ge(s,t))return i[t]=2,s[t];if(ge(o,t))return i[t]=3,o[t];if(n!==be&&ge(n,t))return i[t]=4,n[t];Zo&&(i[t]=0)}}const u=Lr[t];let c,f;if(u)return t==="$attrs"&&Ke(e.attrs,"get",""),u(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==be&&ge(n,t))return i[t]=4,n[t];if(f=l.config.globalProperties,ge(f,t))return f[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return wo(s,t)?(s[t]=n,!0):r!==be&&ge(r,t)?(r[t]=n,!0):ge(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}},a){let l;return!!(n[a]||e!==be&&a[0]!=="$"&&ge(e,a)||wo(t,a)||ge(o,a)||ge(r,a)||ge(Lr,a)||ge(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ge(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function $a(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Zo=!0;function pp(e){const t=Ou(e),n=e.proxy,r=e.ctx;Zo=!1,t.beforeCreate&&Ua(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:u,created:c,beforeMount:f,mounted:d,beforeUpdate:h,updated:_,activated:m,deactivated:R,beforeDestroy:b,beforeUnmount:E,destroyed:g,unmounted:y,render:C,renderTracked:A,renderTriggered:L,errorCaptured:F,serverPrefetch:N,expose:D,inheritAttrs:W,components:$,directives:X,filters:te}=t;if(u&&gp(u,r,null),i)for(const J in i){const q=i[J];ee(q)&&(r[J]=q.bind(n))}if(s){const J=s.call(n,n);de(J)&&(e.data=sn(J))}if(Zo=!0,o)for(const J in o){const q=o[J],re=ee(q)?q.bind(n,n):ee(q.get)?q.get.bind(n,n):Ft,nt=!ee(q)&&ee(q.set)?q.set.bind(n):Ft,qe=ke({get:re,set:nt});Object.defineProperty(r,J,{enumerable:!0,configurable:!0,get:()=>qe.value,set:$e=>qe.value=$e})}if(a)for(const J in a)Pu(a[J],r,n,J);if(l){const J=ee(l)?l.call(n):l;Reflect.ownKeys(J).forEach(q=>{gn(q,J[q])})}c&&Ua(c,e,"c");function K(J,q){Z(q)?q.forEach(re=>J(re.bind(n))):q&&J(q.bind(n))}if(K(ap,f),K(Qs,d),K(lp,h),K(Su,_),K(Eu,m),K(wu,R),K(Ru,F),K(fp,A),K(up,L),K(zr,E),K(zs,y),K(cp,N),Z(D))if(D.length){const J=e.exposed||(e.exposed={});D.forEach(q=>{Object.defineProperty(J,q,{get:()=>n[q],set:re=>n[q]=re,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===Ft&&(e.render=C),W!=null&&(e.inheritAttrs=W),$&&(e.components=$),X&&(e.directives=X),N&&Zi(e)}function gp(e,t,n=Ft){Z(e)&&(e=ei(e));for(const r in e){const s=e[r];let o;de(s)?"default"in s?o=Fe(s.from||r,s.default,!0):o=Fe(s.from||r):o=Fe(s),ve(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Ua(e,t,n){yt(Z(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Pu(e,t,n,r){let s=r.includes(".")?pu(n,r):()=>n[r];if(we(e)){const o=t[e];ee(o)&&at(s,o)}else if(ee(e))at(s,e.bind(n));else if(de(e))if(Z(e))e.forEach(o=>Pu(o,t,n,r));else{const o=ee(e.handler)?e.handler.bind(n):t[e.handler];ee(o)&&at(s,o,e)}}function Ou(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(u=>Rs(l,u,i,!0)),Rs(l,t,i)),de(t)&&o.set(t,l),l}function Rs(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Rs(e,o,n,!0),s&&s.forEach(i=>Rs(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=mp[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const mp={data:ja,props:Ba,emits:Ba,methods:Cr,computed:Cr,beforeCreate:Ye,created:Ye,beforeMount:Ye,mounted:Ye,beforeUpdate:Ye,updated:Ye,beforeDestroy:Ye,beforeUnmount:Ye,destroyed:Ye,unmounted:Ye,activated:Ye,deactivated:Ye,errorCaptured:Ye,serverPrefetch:Ye,components:Cr,directives:Cr,watch:_p,provide:ja,inject:yp};function ja(e,t){return t?e?function(){return He(ee(e)?e.call(this,this):e,ee(t)?t.call(this,this):t)}:t:e}function yp(e,t){return Cr(ei(e),ei(t))}function ei(e){if(Z(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Qe(t)}Modifiers`]||e[`${Dn(t)}Modifiers`];function wp(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||be;let s=n;const o=t.startsWith("update:"),i=o&&Ep(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>we(c)?c.trim():c)),i.number&&(s=n.map(Vs)));let a,l=r[a=go(t)]||r[a=go(Qe(t))];!l&&o&&(l=r[a=go(Dn(t))]),l&&yt(l,e,6,s);const u=r[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,yt(u,e,6,s)}}const Cp=new WeakMap;function Nu(e,t,n=!1){const r=n?Cp:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!ee(e)){const l=u=>{const c=Nu(u,t,!0);c&&(a=!0,He(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(de(e)&&r.set(e,null),null):(Z(o)?o.forEach(l=>i[l]=null):He(i,o),de(e)&&r.set(e,i),i)}function Zs(e,t){return!e||!qr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ge(e,t[0].toLowerCase()+t.slice(1))||ge(e,Dn(t))||ge(e,t))}function Co(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:u,renderCache:c,props:f,data:d,setupState:h,ctx:_,inheritAttrs:m}=e,R=Cs(e);let b,E;try{if(n.shapeFlag&4){const y=s||r,C=y;b=ot(u.call(C,y,c,f,h,d,_)),E=a}else{const y=t;b=ot(y.length>1?y(f,{attrs:a,slots:i,emit:l}):y(f,null)),E=t.props?a:Rp(a)}}catch(y){Ar.length=0,hr(y,e,1),b=Re(Oe)}let g=b;if(E&&m!==!1){const y=Object.keys(E),{shapeFlag:C}=g;y.length&&C&7&&(o&&y.some($s)&&(E=Tp(E,o)),g=rn(g,E,!1,!0))}return n.dirs&&(g=rn(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(n.dirs):n.dirs),n.transition&&tr(g,n.transition),b=g,Cs(R),b}function Sp(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||qr(n))&&((t||(t={}))[n]=e[n]);return t},Tp=(e,t)=>{const n={};for(const r in e)(!$s(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Lp(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?Va(r,i,u):!!i;if(l&8){const c=t.dynamicProps;for(let f=0;fObject.create(Mu),Fu=e=>Object.getPrototypeOf(e)===Mu;function kp(e,t,n,r=!1){const s={},o=Du();e.propsDefaults=Object.create(null),Hu(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Dt(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Ap(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ae(s),[l]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,h]=$u(f,t,!0);He(i,d),h&&a.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!l)return de(e)&&r.set(e,Gn),Gn;if(Z(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",ta=e=>Z(e)?e.map(ot):[ot(e)],Op=(e,t,n)=>{if(t._n)return t;const r=Qi((...s)=>ta(t(...s)),n);return r._c=!1,r},Uu=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ea(s))continue;const o=e[s];if(ee(o))t[s]=Op(s,o,r);else if(o!=null){const i=ta(o);t[s]=()=>i}}},ju=(e,t)=>{const n=ta(t);e.slots.default=()=>n},Bu=(e,t,n)=>{for(const r in t)(n||!ea(r))&&(e[r]=t[r])},Ip=(e,t,n)=>{const r=e.slots=Du();if(e.vnode.shapeFlag&32){const s=t._;s?(Bu(r,t,n),n&&Uc(r,"_",s,!0)):Uu(t,r)}else t&&ju(e,t)},Np=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=be;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Bu(s,t,n):(o=!t.$stable,Uu(t,s)),i=t}else t&&(ju(e,t),i={default:1});if(o)for(const a in s)!ea(a)&&i[a]==null&&delete s[a]},De=Xu;function xp(e){return Vu(e)}function Mp(e){return Vu(e,tp)}function Vu(e,t){const n=Ws();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:u,setElementText:c,parentNode:f,nextSibling:d,setScopeId:h=Ft,insertStaticContent:_}=e,m=(v,S,P,U=null,M=null,p=null,w=void 0,k=null,O=!!S.dynamicChildren)=>{if(v===S)return;v&&!bt(v,S)&&(U=H(v),$e(v,M,p,!0),v=null),S.patchFlag===-2&&(O=!1,S.dynamicChildren=null);const{type:x,ref:j,shapeFlag:T}=S;switch(x){case mn:R(v,S,P,U);break;case Oe:b(v,S,P,U);break;case kr:v==null&&E(S,P,U,w);break;case Ue:$(v,S,P,U,M,p,w,k,O);break;default:T&1?C(v,S,P,U,M,p,w,k,O):T&6?X(v,S,P,U,M,p,w,k,O):(T&64||T&128)&&x.process(v,S,P,U,M,p,w,k,O,Q)}j!=null&&M?Jn(j,v&&v.ref,p,S||v,!S):j==null&&v&&v.ref!=null&&Jn(v.ref,null,p,v,!0)},R=(v,S,P,U)=>{if(v==null)r(S.el=a(S.children),P,U);else{const M=S.el=v.el;S.children!==v.children&&u(M,S.children)}},b=(v,S,P,U)=>{v==null?r(S.el=l(S.children||""),P,U):S.el=v.el},E=(v,S,P,U)=>{[v.el,v.anchor]=_(v.children,S,P,U,v.el,v.anchor)},g=({el:v,anchor:S},P,U)=>{let M;for(;v&&v!==S;)M=d(v),r(v,P,U),v=M;r(S,P,U)},y=({el:v,anchor:S})=>{let P;for(;v&&v!==S;)P=d(v),s(v),v=P;s(S)},C=(v,S,P,U,M,p,w,k,O)=>{if(S.type==="svg"?w="svg":S.type==="math"&&(w="mathml"),v==null)A(S,P,U,M,p,w,k,O);else{const x=v.el&&v.el._isVueCE?v.el:null;try{x&&x._beginPatch(),N(v,S,M,p,w,k,O)}finally{x&&x._endPatch()}}},A=(v,S,P,U,M,p,w,k)=>{let O,x;const{props:j,shapeFlag:T,transition:I,dirs:V}=v;if(O=v.el=i(v.type,p,j&&j.is,j),T&8?c(O,v.children):T&16&&F(v.children,O,null,U,M,So(v,p),w,k),V&&It(v,null,U,"created"),L(O,v,v.scopeId,w,U),j){for(const ie in j)ie!=="value"&&!Ln(ie)&&o(O,ie,null,j[ie],p,U);"value"in j&&o(O,"value",null,j.value,p),(x=j.onVnodeBeforeMount)&&ze(x,U,v)}V&&It(v,null,U,"beforeMount");const z=Wu(M,I);z&&I.beforeEnter(O),r(O,S,P),((x=j&&j.onVnodeMounted)||z||V)&&De(()=>{x&&ze(x,U,v),z&&I.enter(O),V&&It(v,null,U,"mounted")},M)},L=(v,S,P,U,M)=>{if(P&&h(v,P),U)for(let p=0;p{for(let x=O;x{const k=S.el=v.el;let{patchFlag:O,dynamicChildren:x,dirs:j}=S;O|=v.patchFlag&16;const T=v.props||be,I=S.props||be;let V;if(P&&vn(P,!1),(V=I.onVnodeBeforeUpdate)&&ze(V,P,S,v),j&&It(S,v,P,"beforeUpdate"),P&&vn(P,!0),(T.innerHTML&&I.innerHTML==null||T.textContent&&I.textContent==null)&&c(k,""),x?D(v.dynamicChildren,x,k,P,U,So(S,M),p):w||q(v,S,k,null,P,U,So(S,M),p,!1),O>0){if(O&16)W(k,T,I,P,M);else if(O&2&&T.class!==I.class&&o(k,"class",null,I.class,M),O&4&&o(k,"style",T.style,I.style,M),O&8){const z=S.dynamicProps;for(let ie=0;ie{V&&ze(V,P,S,v),j&&It(S,v,P,"updated")},U)},D=(v,S,P,U,M,p,w)=>{for(let k=0;k{if(S!==P){if(S!==be)for(const p in S)!Ln(p)&&!(p in P)&&o(v,p,S[p],null,M,U);for(const p in P){if(Ln(p))continue;const w=P[p],k=S[p];w!==k&&p!=="value"&&o(v,p,k,w,M,U)}"value"in P&&o(v,"value",S.value,P.value,M)}},$=(v,S,P,U,M,p,w,k,O)=>{const x=S.el=v?v.el:a(""),j=S.anchor=v?v.anchor:a("");let{patchFlag:T,dynamicChildren:I,slotScopeIds:V}=S;V&&(k=k?k.concat(V):V),v==null?(r(x,P,U),r(j,P,U),F(S.children||[],P,j,M,p,w,k,O)):T>0&&T&64&&I&&v.dynamicChildren&&v.dynamicChildren.length===I.length?(D(v.dynamicChildren,I,P,M,p,w,k),(S.key!=null||M&&S===M.subTree)&&Ku(v,S,!0)):q(v,S,P,j,M,p,w,k,O)},X=(v,S,P,U,M,p,w,k,O)=>{S.slotScopeIds=k,v==null?S.shapeFlag&512?M.ctx.activate(S,P,U,w,O):te(S,P,U,M,p,w,O):se(v,S,O)},te=(v,S,P,U,M,p,w)=>{const k=v.component=Yp(v,U,M);if(Qr(v)&&(k.ctx.renderer=Q),Xp(k,!1,w),k.asyncDep){if(M&&M.registerDep(k,K,w),!v.el){const O=k.subTree=Re(Oe);b(null,O,S,P),v.placeholder=O.el}}else K(k,v,S,P,M,p,w)},se=(v,S,P)=>{const U=S.component=v.component;if(Lp(v,S,P))if(U.asyncDep&&!U.asyncResolved){J(U,S,P);return}else U.next=S,U.update();else S.el=v.el,U.vnode=S},K=(v,S,P,U,M,p,w)=>{const k=()=>{if(v.isMounted){let{next:T,bu:I,u:V,parent:z,vnode:ie}=v;{const rt=Gu(v);if(rt){T&&(T.el=ie.el,J(v,T,w)),rt.asyncDep.then(()=>{De(()=>{v.isUnmounted||x()},M)});return}}let oe=T,le;vn(v,!1),T?(T.el=ie.el,J(v,T,w)):T=ie,I&&Yn(I),(le=T.props&&T.props.onVnodeBeforeUpdate)&&ze(le,z,T,ie),vn(v,!0);const Pe=Co(v),ut=v.subTree;v.subTree=Pe,m(ut,Pe,f(ut.el),H(ut),v,M,p),T.el=Pe.el,oe===null&&eo(v,Pe.el),V&&De(V,M),(le=T.props&&T.props.onVnodeUpdated)&&De(()=>ze(le,z,T,ie),M)}else{let T;const{el:I,props:V}=S,{bm:z,m:ie,parent:oe,root:le,type:Pe}=v,ut=Qt(S);if(vn(v,!1),z&&Yn(z),!ut&&(T=V&&V.onVnodeBeforeMount)&&ze(T,oe,S),vn(v,!0),I&&_e){const rt=()=>{v.subTree=Co(v),_e(I,v.subTree,v,M,null)};ut&&Pe.__asyncHydrate?Pe.__asyncHydrate(I,v,rt):rt()}else{le.ce&&le.ce._hasShadowRoot()&&le.ce._injectChildStyle(Pe,v.parent?v.parent.type:void 0);const rt=v.subTree=Co(v);m(null,rt,P,U,v,M,p),S.el=rt.el}if(ie&&De(ie,M),!ut&&(T=V&&V.onVnodeMounted)){const rt=S;De(()=>ze(T,oe,rt),M)}(S.shapeFlag&256||oe&&Qt(oe.vnode)&&oe.vnode.shapeFlag&256)&&v.a&&De(v.a,M),v.isMounted=!0,S=P=U=null}};v.scope.on();const O=v.effect=new Gc(k);v.scope.off();const x=v.update=O.run.bind(O),j=v.job=O.runIfDirty.bind(O);j.i=v,j.id=v.uid,O.scheduler=()=>Ji(j),vn(v,!0),x()},J=(v,S,P)=>{S.component=v;const U=v.vnode.props;v.vnode=S,v.next=null,Ap(v,S.props,U,P),Np(v,S.children,P),en(),Ia(v),tn()},q=(v,S,P,U,M,p,w,k,O=!1)=>{const x=v&&v.children,j=v?v.shapeFlag:0,T=S.children,{patchFlag:I,shapeFlag:V}=S;if(I>0){if(I&128){nt(x,T,P,U,M,p,w,k,O);return}else if(I&256){re(x,T,P,U,M,p,w,k,O);return}}V&8?(j&16&&Ve(x,M,p),T!==x&&c(P,T)):j&16?V&16?nt(x,T,P,U,M,p,w,k,O):Ve(x,M,p,!0):(j&8&&c(P,""),V&16&&F(T,P,U,M,p,w,k,O))},re=(v,S,P,U,M,p,w,k,O)=>{v=v||Gn,S=S||Gn;const x=v.length,j=S.length,T=Math.min(x,j);let I;for(I=0;Ij?Ve(v,M,p,!0,!1,T):F(S,P,U,M,p,w,k,O,T)},nt=(v,S,P,U,M,p,w,k,O)=>{let x=0;const j=S.length;let T=v.length-1,I=j-1;for(;x<=T&&x<=I;){const V=v[x],z=S[x]=O?Gt(S[x]):ot(S[x]);if(bt(V,z))m(V,z,P,null,M,p,w,k,O);else break;x++}for(;x<=T&&x<=I;){const V=v[T],z=S[I]=O?Gt(S[I]):ot(S[I]);if(bt(V,z))m(V,z,P,null,M,p,w,k,O);else break;T--,I--}if(x>T){if(x<=I){const V=I+1,z=VI)for(;x<=T;)$e(v[x],M,p,!0),x++;else{const V=x,z=x,ie=new Map;for(x=z;x<=I;x++){const st=S[x]=O?Gt(S[x]):ot(S[x]);st.key!=null&&ie.set(st.key,x)}let oe,le=0;const Pe=I-z+1;let ut=!1,rt=0;const pr=new Array(Pe);for(x=0;x=Pe){$e(st,M,p,!0);continue}let kt;if(st.key!=null)kt=ie.get(st.key);else for(oe=z;oe<=I;oe++)if(pr[oe-z]===0&&bt(st,S[oe])){kt=oe;break}kt===void 0?$e(st,M,p,!0):(pr[kt-z]=x+1,kt>=rt?rt=kt:ut=!0,m(st,S[kt],P,null,M,p,w,k,O),le++)}const Ra=ut?Dp(pr):Gn;for(oe=Ra.length-1,x=Pe-1;x>=0;x--){const st=z+x,kt=S[st],Ta=S[st+1],La=st+1{const{el:p,type:w,transition:k,children:O,shapeFlag:x}=v;if(x&6){qe(v.component.subTree,S,P,U);return}if(x&128){v.suspense.move(S,P,U);return}if(x&64){w.move(v,S,P,Q);return}if(w===Ue){r(p,S,P);for(let T=0;Tk.enter(p),M));else{const{leave:T,delayLeave:I,afterLeave:V}=k,z=()=>{v.ctx.isUnmounted?s(p):r(p,S,P)},ie=()=>{const oe=p._isLeaving||!!p[ht];p._isLeaving&&p[ht](!0),k.persisted&&!oe?z():T(p,()=>{z(),V&&V()})};I?I(p,z,ie):ie()}else r(p,S,P)},$e=(v,S,P,U=!1,M=!1)=>{const{type:p,props:w,ref:k,children:O,dynamicChildren:x,shapeFlag:j,patchFlag:T,dirs:I,cacheIndex:V,memo:z}=v;if(T===-2&&(M=!1),k!=null&&(en(),Jn(k,null,P,v,!0),tn()),V!=null&&(S.renderCache[V]=void 0),j&256){S.ctx.deactivate(v);return}const ie=j&1&&I,oe=!Qt(v);let le;if(oe&&(le=w&&w.onVnodeBeforeUnmount)&&ze(le,S,v),j&6)Lt(v.component,P,U);else{if(j&128){v.suspense.unmount(P,U);return}ie&&It(v,null,S,"beforeUnmount"),j&64?v.type.remove(v,S,P,Q,U):x&&!x.hasOnce&&(p!==Ue||T>0&&T&64)?Ve(x,S,P,!1,!0):(p===Ue&&T&384||!M&&j&16)&&Ve(O,S,P),U&&Rt(v)}const Pe=z!=null&&V==null;(oe&&(le=w&&w.onVnodeUnmounted)||ie||Pe)&&De(()=>{le&&ze(le,S,v),ie&&It(v,null,S,"unmounted"),Pe&&(v.el=null)},P)},Rt=v=>{const{type:S,el:P,anchor:U,transition:M}=v;if(S===Ue){Tt(P,U);return}if(S===kr){y(v);return}const p=()=>{s(P),M&&!M.persisted&&M.afterLeave&&M.afterLeave()};if(v.shapeFlag&1&&M&&!M.persisted){const{leave:w,delayLeave:k}=M,O=()=>w(P,p);k?k(v.el,p,O):O()}else p()},Tt=(v,S)=>{let P;for(;v!==S;)P=d(v),s(v),v=P;s(S)},Lt=(v,S,P)=>{const{bum:U,scope:M,job:p,subTree:w,um:k,m:O,a:x}=v;Ts(O),Ts(x),U&&Yn(U),M.stop(),p&&(p.flags|=8,$e(w,v,S,P)),k&&De(k,S),De(()=>{v.isUnmounted=!0},S)},Ve=(v,S,P,U=!1,M=!1,p=0)=>{for(let w=p;w{if(v.shapeFlag&6)return H(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();const S=d(v.anchor||v.el),P=S&&S[Xh];return P?d(P):S};let Y=!1;const B=(v,S,P)=>{let U;v==null?S._vnode&&($e(S._vnode,null,null,!0),U=S._vnode.component):m(S._vnode||null,v,S,null,null,null,P),S._vnode=v,Y||(Y=!0,Ia(U),ws(),Y=!1)},Q={p:m,um:$e,m:qe,r:Rt,mt:te,mc:F,pc:q,pbc:D,n:H,o:e};let ne,_e;return t&&([ne,_e]=t(Q)),{render:B,hydrate:ne,createApp:vp(B,ne)}}function So({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 vn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Wu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ku(e,t,n=!1){const r=e.children,s=t.children;if(Z(r)&&Z(s))for(let o=0;o>1,e[n[a]]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 Gu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gu(t)}function Ts(e){if(e)for(let t=0;te.__isSuspense;let ni=0;const Fp={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,a,l,u){if(e==null)Hp(t,n,r,s,o,i,a,l,u);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}$p(e,t,n,r,s,i,a,l,u)}},hydrate:Up,normalize:jp},na=Fp;function Fr(e,t){const n=e.props&&e.props[t];ee(n)&&n()}function Hp(e,t,n,r,s,o,i,a,l){const{p:u,o:{createElement:c}}=l,f=c("div"),d=e.suspense=Yu(e,s,r,t,f,n,o,i,a,l);u(null,d.pendingBranch=e.ssContent,f,null,r,d,o,i),d.deps>0?(Fr(e,"onPending"),Fr(e,"onFallback"),u(null,e.ssFallback,t,n,r,null,o,i),Qn(d,e.ssFallback)):d.resolve(!1,!0)}function $p(e,t,n,r,s,o,i,a,{p:l,um:u,o:{createElement:c}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const d=t.ssContent,h=t.ssFallback,{activeBranch:_,pendingBranch:m,isInFallback:R,isHydrating:b}=f;if(m)f.pendingBranch=d,bt(m,d)?(l(m,d,f.hiddenContainer,null,s,f,o,i,a),f.deps<=0?f.resolve():R&&(b||(l(_,h,n,r,s,null,o,i,a),Qn(f,h)))):(f.pendingId=ni++,b?(f.isHydrating=!1,f.activeBranch=m):u(m,s,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),R?(l(null,d,f.hiddenContainer,null,s,f,o,i,a),f.deps<=0?f.resolve():(l(_,h,n,r,s,null,o,i,a),Qn(f,h))):_&&bt(_,d)?(l(_,d,n,r,s,f,o,i,a),f.resolve(!0)):(l(null,d,f.hiddenContainer,null,s,f,o,i,a),f.deps<=0&&f.resolve()));else if(_&&bt(_,d))l(_,d,n,r,s,f,o,i,a),Qn(f,d);else if(Fr(t,"onPending"),f.pendingBranch=d,d.shapeFlag&512?f.pendingId=d.component.suspenseId:f.pendingId=ni++,l(null,d,f.hiddenContainer,null,s,f,o,i,a),f.deps<=0)f.resolve();else{const{timeout:E,pendingId:g}=f;E>0?setTimeout(()=>{f.pendingId===g&&f.fallback(h)},E):E===0&&f.fallback(h)}}function Yu(e,t,n,r,s,o,i,a,l,u,c=!1){const{p:f,m:d,um:h,n:_,o:{parentNode:m,remove:R}}=u;let b;const E=Bp(e);E&&t&&t.pendingBranch&&(b=t.pendingId,t.deps++);const g=e.props?jc(e.props.timeout):void 0,y=o,C={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:ni++,timeout:typeof g=="number"?g:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(A=!1,L=!1){const{vnode:F,activeBranch:N,pendingBranch:D,pendingId:W,effects:$,parentComponent:X,container:te,isInFallback:se}=C;let K=!1;if(C.isHydrating)C.isHydrating=!1;else if(!A){K=N&&D.transition&&D.transition.mode==="out-in";let re=!1;K&&(N.transition.afterLeave=()=>{W===C.pendingId&&(d(D,te,o===y&&!re?_(N):o,0),Xo($),se&&F.ssFallback&&(F.ssFallback.el=null))}),N&&!C.isFallbackMountPending&&(m(N.el)===te&&(o=_(N),re=!0),h(N,X,C,!0),!K&&se&&F.ssFallback&&De(()=>F.ssFallback.el=null,C)),K||d(D,te,o,0)}C.isFallbackMountPending=!1,Qn(C,D),C.pendingBranch=null,C.isInFallback=!1;let J=C.parent,q=!1;for(;J;){if(J.pendingBranch){J.effects.push(...$),q=!0;break}J=J.parent}!q&&!K&&Xo($),C.effects=[],E&&t&&t.pendingBranch&&b===t.pendingId&&(t.deps--,t.deps===0&&!L&&t.resolve()),Fr(F,"onResolve")},fallback(A){if(!C.pendingBranch)return;const{vnode:L,activeBranch:F,parentComponent:N,container:D,namespace:W}=C;Fr(L,"onFallback");const $=_(F),X=()=>{C.isFallbackMountPending=!1,C.isInFallback&&(f(null,A,D,$,N,null,W,a,l),Qn(C,A))},te=A.transition&&A.transition.mode==="out-in";te&&(C.isFallbackMountPending=!0,F.transition.afterLeave=X),C.isInFallback=!0,h(F,N,null,!0),te||X()},move(A,L,F){C.activeBranch&&d(C.activeBranch,A,L,F),C.container=A},next(){return C.activeBranch&&_(C.activeBranch)},registerDep(A,L,F){const N=!!C.pendingBranch;N&&C.deps++;const D=A.vnode.el;A.asyncDep.catch(W=>{hr(W,A,0)}).then(W=>{if(A.isUnmounted||C.isUnmounted||C.pendingId!==A.suspenseId)return;si(),A.asyncResolved=!0;const{vnode:$}=A;oi(A,W),D&&($.el=D);const X=!D&&A.subTree.el;L(A,$,m(D||A.subTree.el),D?null:_(A.subTree),C,i,F),X&&($.placeholder=null,R(X)),eo(A,$.el),N&&--C.deps===0&&C.resolve()})},unmount(A,L){C.isUnmounted=!0,C.activeBranch&&h(C.activeBranch,n,A,L),C.pendingBranch&&h(C.pendingBranch,n,A,L)}};return C}function Up(e,t,n,r,s,o,i,a,l){const u=t.suspense=Yu(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,a,!0),c=l(e,u.pendingBranch=t.ssContent,n,u,o,i);return u.deps===0&&u.resolve(!1,!0),c}function jp(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=Ka(r?n.default:n),e.ssFallback=r?Ka(n.fallback):Re(Oe)}function Ka(e){let t;if(ee(e)){const n=nr&&e._c;n&&(e._d=!1,pt()),e=e(),n&&(e._d=!0,t=Ze,Ju())}return Z(e)&&(e=Sp(e)),e=ot(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Xu(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):Xo(e)}function Qn(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,eo(r,s))}function Bp(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const Ue=Symbol.for("v-fgt"),mn=Symbol.for("v-txt"),Oe=Symbol.for("v-cmt"),kr=Symbol.for("v-stc"),Ar=[];let Ze=null;function pt(e=!1){Ar.push(Ze=e?null:[])}function Ju(){Ar.pop(),Ze=Ar[Ar.length-1]||null}let nr=1;function ks(e,t=!1){nr+=e,e<0&&Ze&&t&&(Ze.hasOnce=!0)}function Qu(e){return e.dynamicChildren=nr>0?Ze||Gn:null,Ju(),nr>0&&Ze&&Ze.push(e),e}function Vp(e,t,n,r,s,o){return Qu(Zu(e,t,n,r,s,o,!0))}function Mt(e,t,n,r,s){return Qu(Re(e,t,n,r,s,!0))}function xn(e){return e?e.__v_isVNode===!0:!1}function bt(e,t){return e.type===t.type&&e.key===t.key}const zu=({key:e})=>e??null,ys=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?we(e)||ve(e)||ee(e)?{i:Be,r:e,k:t,f:!!n}:e:null);function Zu(e,t=null,n=null,r=0,s=null,o=e===Ue?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&zu(t),ref:t&&ys(t),scopeId:hu,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:Be};return a?(ra(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=we(n)?8:16),nr>0&&!i&&Ze&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&Ze.push(l),l}const Re=Wp;function Wp(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Lu)&&(e=Oe),xn(e)){const a=rn(e,t,!0);return n&&ra(a,n),nr>0&&!o&&Ze&&(a.shapeFlag&6?Ze[Ze.indexOf(e)]=a:Ze.push(a)),a.patchFlag=-2,a}if(Zp(e)&&(e=e.__vccOpts),t){t=ef(t);let{class:a,style:l}=t;a&&!we(a)&&(t.class=Gs(a)),de(l)&&(Xs(l)&&!Z(l)&&(l=He({},l)),t.style=Ks(l))}const i=we(e)?1:Ls(e)?128:gu(e)?64:de(e)?4:ee(e)?2:0;return Zu(e,t,n,r,s,i,o,!0)}function ef(e){return e?Xs(e)||Fu(e)?He({},e):e:null}function rn(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,u=t?nf(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&zu(u),ref:t&&t.ref?n&&o?Z(o)?o.concat(ys(t)):[o,ys(t)]:ys(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ue?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&rn(e.ssContent),ssFallback:e.ssFallback&&rn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&tr(c,l.clone(c)),c}function tf(e=" ",t=0){return Re(mn,null,e,t)}function A0(e,t){const n=Re(kr,null,e);return n.staticCount=t,n}function Kp(e="",t=!1){return t?(pt(),Mt(Oe,null,e)):Re(Oe,null,e)}function ot(e){return e==null||typeof e=="boolean"?Re(Oe):Z(e)?Re(Ue,null,e.slice()):xn(e)?Gt(e):Re(mn,null,String(e))}function Gt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:rn(e)}function ra(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),ra(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Fu(t)?t._ctx=Be:s===3&&Be&&(Be.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ee(t)?(t={default:t,_ctx:Be},n=32):(t=String(t),r&64?(n=16,t=[tf(t)]):n=8);e.children=t,e.shapeFlag|=n}function nf(...e){const t={};for(let n=0;nje||Be;let As,ri;{const e=Ws(),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)}};As=t("__VUE_INSTANCE_SETTERS__",n=>je=n),ri=t("__VUE_SSR_SETTERS__",n=>rr=n)}const Zr=e=>{const t=je;return As(e),e.scope.on(),()=>{e.scope.off(),As(t)}},si=()=>{je&&je.scope.off(),As(null)};function rf(e){return e.vnode.shapeFlag&4}let rr=!1;function Xp(e,t=!1,n=!1){t&&ri(t);const{props:r,children:s}=e.vnode,o=rf(e);kp(e,r,o,t),Ip(e,s,n||t);const i=o?Jp(e,t):void 0;return t&&ri(!1),i}function Jp(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,hp);const{setup:r}=n;if(r){en();const s=e.setupContext=r.length>1?zp(e):null,o=Zr(e),i=Xr(r,e,0,[e.props,s]),a=Fc(i);if(tn(),o(),(a||e.sp)&&!Qt(e)&&Zi(e),a){if(i.then(si,si),t)return i.then(l=>{oi(e,l)}).catch(l=>{hr(l,e,0)});e.asyncDep=i}else oi(e,i)}else sf(e)}function oi(e,t,n){ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:de(t)&&(e.setupState=au(t)),sf(e)}function sf(e,t,n){const r=e.type;e.render||(e.render=r.render||Ft);{const s=Zr(e);en();try{pp(e)}finally{tn(),s()}}}const Qp={get(e,t){return Ke(e,"get",""),e[t]}};function zp(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Qp),slots:e.slots,emit:e.emit,expose:t}}function to(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(au(Xi(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Lr)return Lr[n](e)},has(t,n){return n in t||n in Lr}})):e.proxy}function ii(e,t=!0){return ee(e)?e.displayName||e.name:e.name||t&&e.__name}function Zp(e){return ee(e)&&"__vccOpts"in e}const ke=(e,t)=>Uh(e,t,rr);function Ie(e,t,n){try{ks(-1);const r=arguments.length;return r===2?de(t)&&!Z(t)?xn(t)?Re(e,null,[t]):Re(e,t):Re(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&xn(n)&&(n=[n]),Re(e,t,n))}finally{ks(1)}}const eg="3.5.38";let ai;const Ga=typeof window<"u"&&window.trustedTypes;if(Ga)try{ai=Ga.createPolicy("vue",{createHTML:e=>e})}catch{}const of=ai?e=>ai.createHTML(e):e=>e,tg="http://www.w3.org/2000/svg",ng="http://www.w3.org/1998/Math/MathML",Kt=typeof document<"u"?document:null,qa=Kt&&Kt.createElement("template"),rg={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"?Kt.createElementNS(tg,e):t==="mathml"?Kt.createElementNS(ng,e):n?Kt.createElement(e,{is:n}):Kt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Kt.createTextNode(e),createComment:e=>Kt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Kt.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{qa.innerHTML=of(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=qa.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ln="transition",yr="animation",Hr=Symbol("_vtc"),af={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},sg=He({},mu,af),og=e=>(e.displayName="Transition",e.props=sg,e),ig=og((e,{slots:t})=>Ie(zh,ag(e),t)),En=(e,t=[])=>{Z(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ya=e=>e?Z(e)?e.some(t=>t.length>1):e.length>1:!1;function ag(e){const t={};for(const $ in e)$ in af||(t[$]=e[$]);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:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:u=i,appearToClass:c=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,_=lg(s),m=_&&_[0],R=_&&_[1],{onBeforeEnter:b,onEnter:E,onEnterCancelled:g,onLeave:y,onLeaveCancelled:C,onBeforeAppear:A=b,onAppear:L=E,onAppearCancelled:F=g}=t,N=($,X,te,se)=>{$._enterCancelled=se,wn($,X?c:a),wn($,X?u:i),te&&te()},D=($,X)=>{$._isLeaving=!1,wn($,f),wn($,h),wn($,d),X&&X()},W=$=>(X,te)=>{const se=$?L:E,K=()=>N(X,$,te);En(se,[X,K]),Xa(()=>{wn(X,$?l:o),Bt(X,$?c:a),Ya(se)||Ja(X,r,m,K)})};return He(t,{onBeforeEnter($){En(b,[$]),Bt($,o),Bt($,i)},onBeforeAppear($){En(A,[$]),Bt($,l),Bt($,u)},onEnter:W(!1),onAppear:W(!0),onLeave($,X){$._isLeaving=!0;const te=()=>D($,X);Bt($,f),$._enterCancelled?(Bt($,d),Za($)):(Za($),Bt($,d)),Xa(()=>{$._isLeaving&&(wn($,f),Bt($,h),Ya(y)||Ja($,r,R,te))}),En(y,[$,te])},onEnterCancelled($){N($,!1,void 0,!0),En(g,[$])},onAppearCancelled($){N($,!0,void 0,!0),En(F,[$])},onLeaveCancelled($){D($),En(C,[$])}})}function lg(e){if(e==null)return null;if(de(e))return[Ro(e.enter),Ro(e.leave)];{const t=Ro(e);return[t,t]}}function Ro(e){return jc(e)}function Bt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Hr]||(e[Hr]=new Set)).add(t)}function wn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Hr];n&&(n.delete(t),n.size||(e[Hr]=void 0))}function Xa(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let cg=0;function Ja(e,t,n,r){const s=e._endId=++cg,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=ug(e,t);if(!i)return r();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,d),o()},d=h=>{h.target===e&&++c>=l&&f()};setTimeout(()=>{c(n[_]||"").split(", "),s=r(`${ln}Delay`),o=r(`${ln}Duration`),i=Qa(s,o),a=r(`${yr}Delay`),l=r(`${yr}Duration`),u=Qa(a,l);let c=null,f=0,d=0;t===ln?i>0&&(c=ln,f=i,d=o.length):t===yr?u>0&&(c=yr,f=u,d=l.length):(f=Math.max(i,u),c=f>0?i>u?ln:yr:null,d=c?c===ln?o.length:l.length:0);const h=c===ln&&/\b(?:transform|all)(?:,|$)/.test(r(`${ln}Property`).toString());return{type:c,timeout:f,propCount:d,hasTransform:h}}function Qa(e,t){for(;e.lengthza(n)+za(e[r])))}function za(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Za(e){return(e?e.ownerDocument:document).body.offsetHeight}function fg(e,t,n){const r=e[Hr];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ps=Symbol("_vod"),lf=Symbol("_vsh"),P0={name:"show",beforeMount(e,{value:t},{transition:n}){e[Ps]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):_r(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),_r(e,!0),r.enter(e)):r.leave(e,()=>{_r(e,!1)}):_r(e,t))},beforeUnmount(e,{value:t}){_r(e,t)}};function _r(e,t){e.style.display=t?e[Ps]:"none",e[lf]=!t}const dg=Symbol(""),hg=/(?:^|;)\s*display\s*:/;function pg(e,t,n){const r=e.style,s=we(n);let o=!1;if(n&&!s){if(t)if(we(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Sr(r,a,"")}else for(const i in t)n[i]==null&&Sr(r,i,"");for(const i in n){i==="display"&&(o=!0);const a=n[i];a!=null?mg(e,i,!we(t)&&t?t[i]:void 0,a)||Sr(r,i,a):Sr(r,i,"")}}else if(s){if(t!==n){const i=r[dg];i&&(n+=";"+i),r.cssText=n,o=hg.test(n)}}else t&&e.removeAttribute("style");Ps in e&&(e[Ps]=o?r.display:"",e[lf]&&(r.display="none"))}const el=/\s*!important$/;function Sr(e,t,n){if(Z(n))n.forEach(r=>Sr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=gg(e,t);el.test(n)?e.setProperty(Dn(r),n.replace(el,""),"important"):e[r]=n}}const tl=["Webkit","Moz","ms"],To={};function gg(e,t){const n=To[t];if(n)return n;let r=Qe(t);if(r!=="filter"&&r in e)return To[t]=r;r=Bs(r);for(let s=0;sLo||(vg.then(()=>Lo=0),Lo=Date.now());function wg(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(Z(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),a=[r];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Cg=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?fg(e,r,i):t==="style"?pg(e,n,r):qr(t)?$s(t)||_g(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Sg(e,t,r,i))?(sl(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&rl(e,t,r,i,o,t!=="value")):e._isVueCE&&(Rg(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!we(r)))?sl(e,Qe(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),rl(e,t,r,i))};function Sg(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&al(t)&&ee(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 al(t)&&we(n)?!1:t in e}function Rg(e,t){const n=e._def.props;if(!n)return!1;const r=Qe(t);return Array.isArray(n)?n.some(s=>Qe(s)===r):Object.keys(n).some(s=>Qe(s)===r)}const sr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?n=>Yn(t,n):t};function Tg(e){e.target.composing=!0}function ll(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const zt=Symbol("_assign");function cl(e,t,n){return t&&(e=e.trim()),n&&(e=Vs(e)),e}const O0={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[zt]=sr(s);const o=r||s.props&&s.props.type==="number";hn(e,t?"change":"input",i=>{i.target.composing||e[zt](cl(e.value,n,o))}),(n||o)&&hn(e,"change",()=>{e.value=cl(e.value,n,o)}),t||(hn(e,"compositionstart",Tg),hn(e,"compositionend",ll),hn(e,"change",ll))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[zt]=sr(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?Vs(e.value):e.value,l=t??"";if(a===l)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l)}},I0={deep:!0,created(e,t,n){e[zt]=sr(n),hn(e,"change",()=>{const r=e._modelValue,s=$r(e),o=e.checked,i=e[zt];if(Z(r)){const a=Vi(r,s),l=a!==-1;if(o&&!l)i(r.concat(s));else if(!o&&l){const u=[...r];u.splice(a,1),i(u)}}else if(cr(r)){const a=new Set(r);o?a.add(s):a.delete(s),i(a)}else i(cf(e,o))})},mounted:ul,beforeUpdate(e,t,n){e[zt]=sr(n),ul(e,t,n)}};function ul(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(Z(t))s=Vi(t,r.props.value)>-1;else if(cr(t))s=t.has(r.props.value);else{if(t===n)return;s=fr(t,cf(e,!0))}e.checked!==s&&(e.checked=s)}const N0={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=cr(t);hn(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Vs($r(i)):$r(i));e[zt](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,nn(()=>{e._assigning=!1})}),e[zt]=sr(r)},mounted(e,{value:t}){fl(e,t)},beforeUpdate(e,t,n){e[zt]=sr(n)},updated(e,{value:t}){e._assigning||fl(e,t)}};function fl(e,t){const n=e.multiple,r=Z(t);if(!(n&&!r&&!cr(t))){for(let s=0,o=e.options.length;sString(u)===String(a)):i.selected=Vi(t,a)>-1}else i.selected=t.has(a);else if(fr($r(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function $r(e){return"_value"in e?e._value:e.value}function cf(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Lg=["ctrl","shift","alt","meta"],kg={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Lg.some(n=>e[`${n}Key`]&&!t.includes(n))},x0=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const t=Ag().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=df(r);if(!s)return;const o=t._component;!ee(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,ff(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t}),Ig=((...e)=>{const t=Pg().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=df(r);if(s)return n(s,!0,ff(s))},t});function ff(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function df(e){return we(e)?document.querySelector(e):e}const Ng=/"(?:_|\\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*:/,xg=/"(?: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*:/,Mg=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Dg(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){Fg(e);return}return t}function Fg(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Ur(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(!Mg.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(Ng.test(e)||xg.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,Dg)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const hf=/#/g,pf=/&/g,Hg=/\//g,$g=/=/g,Ug=/\?/g,no=/\+/g,jg=/%5e/gi,Bg=/%60/gi,Vg=/%7c/gi,Wg=/%20/gi,Kg=/%2f/gi,Gg=/%252f/gi;function gf(e){return encodeURI(""+e).replace(Vg,"|")}function li(e){return gf(typeof e=="string"?e:JSON.stringify(e)).replace(no,"%2B").replace(Wg,"+").replace(hf,"%23").replace(pf,"%26").replace(Bg,"`").replace(jg,"^").replace(Hg,"%2F")}function ko(e){return li(e).replace($g,"%3D")}function qg(e){return gf(e).replace(hf,"%23").replace(Ug,"%3F").replace(Gg,"%2F").replace(pf,"%26").replace(no,"%2B")}function jr(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function Yg(e){return jr(e.replace(Kg,"%252F"))}function Xg(e){return jr(e.replace(no," "))}function Jg(e){return jr(e.replace(no," "))}function sa(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=Xg(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=Jg(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 Qg(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${ko(e)}=${li(n)}`).join("&"):`${ko(e)}=${li(t)}`:ko(e)}function zg(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>Qg(t,e[t])).filter(Boolean).join("&")}const Zg=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,em=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,tm=/^([/\\]\s*){2,}[^/\\]/,nm=/^[\s\0]*(blob|data|javascript|vbscript):$/i,rm=/\/$|\/\?|\/#/,sm=/^\.?\//;function an(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?Zg.test(e):em.test(e)||(t.acceptRelative?tm.test(e):!1)}function ci(e){return!!e&&nm.test(e)}function ui(e="",t){return t?rm.test(e):e.endsWith("/")}function Br(e="",t){if(!t)return(ui(e)?e.slice(0,-1):e)||"/";if(!ui(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 om(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(ui(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 im(e,t){if(mf(t)||an(e))return e;const n=Br(t);if(e.startsWith(n)){const r=e[n.length];if(!r||r==="/"||r==="?")return e}return Pn(n,e)}function hl(e,t){if(mf(t))return e;const n=Br(t);if(!e.startsWith(n))return e;const r=e[n.length];return r&&r!=="/"&&r!=="?"?e:"/"+e.slice(n.length).replace(/^\/+/,"")}function ro(e,t){const n=oa(e),r={...sa(n.search),...t};return n.search=zg(r),lm(n)}function mf(e){return!e||e==="/"}function am(e){return e&&e!=="/"}function Pn(e,...t){let n=e||"";for(const r of t.filter(s=>am(s)))if(n){const s=r.replace(sm,"");n=om(n)+s}else n=r;return n}function yf(...e){const t=/\/(?!\/)/,n=e.filter(Boolean),r=[];let s=0;for(const i of n)if(!(!i||i==="/")){for(const[a,l]of i.split(t).entries())if(!(!l||l===".")){if(l===".."){if(r.length===1&&an(r[0]))continue;r.pop(),s--;continue}if(a===1&&r[r.length-1]?.endsWith(":/")){r[r.length-1]+="/"+l;continue}r.push(l),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 _f(e,t){return jr(Br(e))===jr(Br(t))}const bf=Symbol.for("ufo:protocolRelative");function oa(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,f,d=""]=n;return{protocol:f.toLowerCase(),pathname:d,href:f+d,auth:"",host:"",search:"",hash:""}}if(!an(e,{acceptRelative:!0}))return fi(e);const[,r="",s,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,i="",a=""]=o.match(/([^#/?]*)(.*)?/)||[];r==="file:"&&(a=a.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:l,search:u,hash:c}=fi(a);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:l,search:u,hash:c,[bf]:!r}}function fi(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function lm(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[bf]?(e.protocol||"")+"//":"")+s+o+t+n+r}class cm extends Error{constructor(t,n){super(t,n),this.name="FetchError",n?.cause&&!this.cause&&(this.cause=n.cause)}}function um(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}`:""}`,a=new cm(i,e.error?{cause:e.error}:void 0);for(const l of["request","options","response"])Object.defineProperty(a,l,{get(){return e[l]}});for(const[l,u]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(a,l,{get(){return e.response&&e.response[u]}});return a}const fm=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function pl(e="GET"){return fm.has(e.toUpperCase())}function dm(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 hm=new Set(["image/svg","application/xml","application/xhtml","application/html"]),pm=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function gm(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return pm.test(t)?"json":t==="text/event-stream"?"stream":hm.has(t)||t.startsWith("text/")?"text":"blob"}function mm(e,t,n,r){const s=ym(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 ym(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 ls(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const _m=new Set([408,409,425,429,500,502,503,504]),bm=new Set([101,204,205,304]);function vf(e={}){const{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function s(a){const l=a.error&&a.error.name==="AbortError"&&!a.options.timeout||!1;if(a.options.retry!==!1&&!l){let c;typeof a.options.retry=="number"?c=a.options.retry:c=pl(a.options.method)?0:1;const f=a.response&&a.response.status||500;if(c>0&&(Array.isArray(a.options.retryStatusCodes)?a.options.retryStatusCodes.includes(f):_m.has(f))){const d=typeof a.options.retryDelay=="function"?a.options.retryDelay(a):a.options.retryDelay||0;return d>0&&await new Promise(h=>setTimeout(h,d)),o(a.request,{...a.options,retry:c-1})}}const u=um(a);throw Error.captureStackTrace&&Error.captureStackTrace(u,o),u}const o=async function(l,u={}){const c={request:l,options:mm(l,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 ls(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=im(c.request,c.options.baseURL)),c.options.query&&(c.request=ro(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&&pl(c.options.method))if(dm(c.options.body)){const h=c.options.headers.get("content-type");typeof c.options.body!="string"&&(c.options.body=h==="application/x-www-form-urlencoded"?new URLSearchParams(c.options.body).toString():JSON.stringify(c.options.body)),h||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 h=new r;f=setTimeout(()=>{const _=new Error("[TimeoutError]: The operation was aborted due to timeout");_.name="TimeoutError",_.code=23,h.abort(_)},c.options.timeout),c.options.signal=h.signal}try{c.response=await t(c.request,c.options)}catch(h){return c.error=h,c.options.onRequestError&&await ls(c,c.options.onRequestError),await s(c)}finally{f&&clearTimeout(f)}if((c.response.body||c.response._bodyInit)&&!bm.has(c.response.status)&&c.options.method!=="HEAD"){const h=(c.options.parseResponse?"json":c.options.responseType)||gm(c.response.headers.get("content-type")||"");switch(h){case"json":{const _=await c.response.text(),m=c.options.parseResponse||Ur;c.response._data=m(_);break}case"stream":{c.response._data=c.response.body||c.response._bodyInit;break}default:c.response._data=await c.response[h]()}}return c.options.onResponse&&await ls(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await ls(c,c.options.onResponseError),await s(c)):c.response},i=async function(l,u){return(await o(l,u))._data};return i.raw=o,i.native=(...a)=>t(...a),i.create=(a={},l={})=>vf({...e,...l,defaults:{...e.defaults,...l.defaults,...a}}),i}const Os=(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")})(),vm=Os.fetch?(...e)=>Os.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),Em=Os.Headers,wm=Os.AbortController,Cm=vf({fetch:vm,Headers:Em,AbortController:wm}),Sm=Cm,Rm=()=>window?.__NUXT__?.config||{},ia=()=>Rm().app,Tm=()=>ia().baseURL,Lm=()=>ia().buildAssetsDir,aa=(...e)=>yf(Ef(),Lm(),...e),Ef=(...e)=>{const t=ia(),n=t.cdnURL||t.baseURL;return e.length?yf(n,...e):n};globalThis.__buildAssetsURL=aa,globalThis.__publicAssetsURL=Ef;globalThis.$fetch||(globalThis.$fetch=Sm.create({baseURL:Tm()}));"global"in globalThis||(globalThis.global=globalThis);function di(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?di(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const km={run:e=>e()},Am=()=>km,wf=typeof console.createTask<"u"?console.createTask:Am;function Pm(e,t){const n=t.shift(),r=wf(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function Om(e,t){const n=t.shift(),r=wf(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function Ao(e,t){for(const n of[...e])n(t)}let Im=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=di(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=di(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(Pm,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(Om,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&Ao(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&Ao(this._after,s)}):(this._after&&s&&Ao(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 Nm(){return new Im}function xm(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,a)=>{a||r(i),t=i,n=!0},unset:()=>{t=void 0,n=!1},call:(i,a)=>{r(i),t=i;try{return s?s.run(i,a):a()}finally{n||(t=void 0)}},async callAsync(i,a){t=i;const l=()=>{t=i},u=()=>t===i?l:void 0;hi.add(u);try{const c=s?s.run(i,a):a();return n||(t=void 0),await c}finally{hi.delete(u)}}}}function Mm(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=xm({...e,...r})),t[n]}}}const Is=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},gl="__unctx__",Dm=Is[gl]||(Is[gl]=Mm()),Fm=(e,t={})=>Dm.get(e,t),ml="__unctx_async_handlers__",hi=Is[ml]||(Is[ml]=new Set);function On(e){const t=[];for(const s of hi){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 yl=!1,_l=!1,Hm=!1,D0={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},$m=null,Um="#__nuxt",Cf="nuxt-app",bl=36e5,jm="vite:preloadError";function Sf(e=Cf){return Fm(e,{asyncContext:!1})}const Bm="__nuxt_plugin";function Vm(e){let t=0;const n={_id:e.id||Cf||"nuxt-app",_scope:Yr(),provide:void 0,globalName:"nuxt",versions:{get nuxt(){return"3.21.8"},get vue(){return n.vueApp.version}},payload:Dt({...e.ssrContext?.payload||{},data:Dt({}),state:sn({}),once:new Set,_errors:Dt({})}),static:{data:{}},runWithContext(s){return n._scope.active&&!dr()?n._scope.run(()=>vl(n,s)):vl(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:Dt({}),_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=Nm(),n.hook=n.hooks.hook,n.callHook=n.hooks.callHook,n.provide=(s,o)=>{const i="$"+s;cs(n,i,o),cs(n.vueApp.config.globalProperties,i,o)},cs(n.vueApp,"$nuxt",n),cs(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(jm,o=>{n.callHook("app:chunkError",{error:o.payload}),o.payload?.message?.includes("Unable to preload CSS")&&o.preventDefault()}),window.useNuxtApp||=ue;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 Wm(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function Km(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 Gm(e,t){const n=new Set,r=[],s=[];let o,i=0;async function a(l){const u=l.dependsOn?.filter(c=>t.some(f=>f._name===c)&&!n.has(c))??[];if(u.length>0)r.push([new Set(u),l]);else{const c=Km(e,l).then(async()=>{l._name&&(n.add(l._name),await Promise.all(r.map(async([f,d])=>{f.has(l._name)&&(f.delete(l._name),f.size===0&&(i++,await a(d)))})))}).catch(f=>{if(!l.parallel&&!e.payload.error)throw f;o||=f});l.parallel?s.push(c):await c}}for(const l of t)Wm(e,l);for(const l of t)await a(l);if(await Promise.all(s),i)for(let l=0;l{}),e,{[Bm]:!0,_name:t})}const qm=Ge;function vl(e,t,n){const r=()=>t();return Sf(e._id).set(e),e.vueApp.runWithContext(r)}function Rf(e){let t;return Jr()&&(t=Fn()?.appContext.app.$nuxt),t||=Sf(e).tryUse(),t||null}function ue(e){const t=Rf(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function so(e){return ue().$config}function cs(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function Po(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 pi(e,t,n=".",r){if(!Po(t))return pi(e,{},n,r);const s={...t};for(const o of Object.keys(e)){if(o==="__proto__"||o==="constructor")continue;const i=e[o];i!=null&&(r&&r(s,o,i,n)||(Array.isArray(i)&&Array.isArray(s[o])?s[o]=[...i,...s[o]]:Po(i)&&Po(s[o])?s[o]=pi(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function Tf(e){return(...t)=>t.reduce((n,r)=>pi(n,r,"",e),{})}const Lf=Tf();function Ym(e,t){try{return t in e}catch{return!1}}class El 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:gi(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=kf(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}function Xm(e){if(typeof e=="string")return new El(e);if(Jm(e))return e;const t=new El(e.message??e.statusMessage??"",{cause:e.cause||e});if(Ym(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=gi(e.statusCode,t.statusCode):e.status&&(t.statusCode=gi(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;kf(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 Jm(e){return e?.constructor?.__h3_error__===!0}const Qm=/[^\u0009\u0020-\u007E]/g;function kf(e=""){return e.replace(Qm,"")}function gi(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const Af=Symbol("layout-meta"),Mn=Symbol("route");import.meta.url.replace(/\/app\/.*$/,"/");const tt=()=>ue()?.$router,la=()=>Jr()?Fe(Mn,ue()._route):ue()._route;function F0(e){return e}const zm=()=>{try{if(ue()._processingMiddleware)return!0}catch{return!1}return!1},H0=(e,t)=>{e||="/";const n=typeof e=="string"?e:"path"in e?Zm(e):tt().resolve(e).href;if(t?.open){const{protocol:u}=new URL(n,window.location.href);if(u&&ci(u))throw new Error(`Cannot navigate to a URL with '${u}' protocol.`);const{target:c="_blank",windowFeatures:f={}}=t.open,d=[];for(const[h,_]of Object.entries(f))_!==void 0&&d.push(`${h.toLowerCase()}=${_}`);return open(n,c,d.join(", ")),Promise.resolve()}const r=an(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&&ci(u))throw new Error(`Cannot navigate to a URL with '${u}' protocol.`)}const o=zm();if(!s&&o){if(t?.replace){if(typeof e=="string"){const{pathname:u,search:c,hash:f}=oa(e);return{path:u,...c&&{query:sa(c)},...f&&{hash:f},replace:!0}}return{...e,replace:!0}}return e}const i=tt(),a=ue();if(s)return a._scope.stop(),t?.replace?location.replace(n):location.href=n,o?a.isHydrating?new Promise(()=>{}):!1:Promise.resolve();const l=typeof e=="string"?ey(e):e;return t?.replace?i.replace(l):i.push(l)};function Zm(e){return ro(e.path||"",e.query||{})+(e.hash||"")}function ey(e){const t=oa(e);return qg(Yg(t.pathname))+t.search+t.hash}const Pf="__nuxt_error",oo=()=>lu(ue().payload,"error"),Rn=e=>{const t=In(e);try{const n=oo();ue().hooks.callHook("app:error",t),n.value||=t}catch{throw t}return t},ty=async(e={})=>{const t=ue(),n=oo();t.callHook("app:error:cleared",e),e.redirect&&await tt().replace(e.redirect),n.value=$m},Of=e=>!!e&&typeof e=="object"&&Pf in e,In=e=>{typeof e!="string"&&e.statusText&&(e.message??=e.statusText);const t=Xm(e);return Object.defineProperty(t,Pf,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t};let If;const or=e=>If=e,Nf=Symbol();function mi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Or;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Or||(Or={}));function ny(){const e=Yr(!0),t=e.run(()=>et({}));let n=[],r=[];const s=Xi({install(o){or(s),s._a=o,o.provide(Nf,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const xf=()=>{};function wl(e,t,n,r=xf){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&dr()&&Nr(s),s}function Un(e,...t){e.forEach(n=>{n(...t)})}const ry=e=>e(),Cl=Symbol(),Oo=Symbol();function yi(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];mi(s)&&mi(r)&&e.hasOwnProperty(n)&&!ve(r)&&!Ht(r)?e[n]=yi(s,r):e[n]=r}return e}const sy=Symbol();function oy(e){return!mi(e)||!Object.prototype.hasOwnProperty.call(e,sy)}const{assign:un}=Object;function iy(e){return!!(ve(e)&&e.effect)}function ay(e,t,n,r){const{state:s,actions:o,getters:i}=t,a=n.state.value[e];let l;function u(){a||(n.state.value[e]=s?s():{});const c=Dh(n.state.value[e]);return un(c,o,Object.keys(i||{}).reduce((f,d)=>(f[d]=Xi(ke(()=>{or(n);const h=n._s.get(e);return i[d].call(h,h)})),f),{}))}return l=Mf(e,u,t,n,r,!0),l}function Mf(e,t,n={},r,s,o){let i;const a=un({actions:{}},n),l={deep:!0};let u,c,f=new Set,d=new Set,h;const _=r.state.value[e];!o&&!_&&(r.state.value[e]={});let m;function R(F){let N;u=c=!1,typeof F=="function"?(F(r.state.value[e]),N={type:Or.patchFunction,storeId:e,events:h}):(yi(r.state.value[e],F),N={type:Or.patchObject,payload:F,storeId:e,events:h});const D=m=Symbol();nn().then(()=>{m===D&&(u=!0)}),c=!0,Un(f,N,r.state.value[e])}const b=o?function(){const{state:N}=n,D=N?N():{};this.$patch(W=>{un(W,D)})}:xf;function E(){i.stop(),f.clear(),d.clear(),r._s.delete(e)}const g=(F,N="")=>{if(Cl in F)return F[Oo]=N,F;const D=function(){or(r);const W=Array.from(arguments),$=new Set,X=new Set;function te(J){$.add(J)}function se(J){X.add(J)}Un(d,{args:W,name:D[Oo],store:C,after:te,onError:se});let K;try{K=F.apply(this&&this.$id===e?this:C,W)}catch(J){throw Un(X,J),J}return K instanceof Promise?K.then(J=>(Un($,J),J)).catch(J=>(Un(X,J),Promise.reject(J))):(Un($,K),K)};return D[Cl]=!0,D[Oo]=N,D},y={_p:r,$id:e,$onAction:wl.bind(null,d),$patch:R,$reset:b,$subscribe(F,N={}){const D=wl(f,F,N.detached,()=>W()),W=i.run(()=>at(()=>r.state.value[e],$=>{(N.flush==="sync"?c:u)&&F({storeId:e,type:Or.direct,events:h},$)},un({},l,N)));return D},$dispose:E},C=sn(y);r._s.set(e,C);const L=(r._a&&r._a.runWithContext||ry)(()=>r._e.run(()=>(i=Yr()).run(()=>t({action:g}))));for(const F in L){const N=L[F];if(ve(N)&&!iy(N)||Ht(N))o||(_&&oy(N)&&(ve(N)?N.value=_[F]:yi(N,_[F])),r.state.value[e][F]=N);else if(typeof N=="function"){const D=g(N,F);L[F]=D,a.actions[F]=N}}return un(C,L),un(ae(C),L),Object.defineProperty(C,"$state",{get:()=>r.state.value[e],set:F=>{R(N=>{un(N,F)})}}),r._p.forEach(F=>{un(C,i.run(()=>F({store:C,app:r._a,pinia:r,options:a})))}),_&&o&&n.hydrate&&n.hydrate(C.$state,_),u=!0,c=!0,C}function $0(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,a){const l=Jr();return i=i||(l?Fe(Nf,null):null),i&&or(i),i=If,i._s.has(e)||(s?Mf(e,t,r,i):ay(e,r,i)),i._s.get(e)}return o.$id=e,o}const ly=-1,cy=-2,uy=-3,fy=-4,dy=-5,hy=-6,py=-7,Df=2**32-1,_i=Df-1;function gy(e){return!(!Number.isInteger(e)||e<0||e>_i)}function my(e){return!(!Number.isInteger(e)||e<0||e>Df)}function yy(e){return Uint8Array.fromBase64(e).buffer}function _y(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function by(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s=u)throw new Error("Invalid input");c[d]=o(l[f+1])}c.length=u}else{const u=new Array(l.length);r[i]=u;for(let c=0;c{if(console.createTask)return console.createTask;const e={run:t=>t()};return()=>e})();function Hf(e,t,n,r){for(let s=n;se[s](...t)):e[s](...t);if(o&&typeof o.then=="function")return Promise.resolve(o).then(()=>Hf(e,t,s+1,r))}catch(o){return Promise.reject(o)}}function Iy(e,t,n){if(e.length>0)return Hf(e,t,0,Ff(n))}function Ny(e,t,n){if(e.length>0){const r=Ff(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}}function Io(e,t){for(const n of[...e])n(t)}var xy=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!="function")return()=>{};const r=e;let s;for(;this._deprecatedHooks[e];)s=this._deprecatedHooks[e],e=s.to;if(s&&!n.allowDeprecated){let o=s.message;o||(o=`${r} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(o)||(console.warn(o),this._deprecatedMessages.add(o))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>"_"+e.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let n,r=(...s)=>(typeof n=="function"&&n(),n=void 0,r=void 0,t(...s));return n=this.hook(e,r),n}removeHook(e,t){const n=this._hooks[e];if(n){const r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t=="string"?{to:t}:t;const n=this._hooks[e]||[];this._hooks[e]=void 0;for(const r of n)this.hook(e,r)}deprecateHooks(e){for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=vi(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=vi(e);for(const n in t)this.removeHook(n,t[n])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(Iy,e,t)}callHookParallel(e,...t){return this.callHookWith(Ny,e,t)}callHookWith(e,t,n){const r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&Io(this._before,r);const s=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return s instanceof Promise?s.finally(()=>{this._after&&r&&Io(this._after,r)}):(this._after&&r&&Io(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 My(){return new xy}const Dy=["name","property","http-equiv"],Fy=new Set(["viewport","description","keywords","robots"]);function $f(e){const t=e.split(":");return t.length?Oy.has(t[1]):!1}function Ei(e){const{props:t,tag:n}=e;if(ky.has(n))return n;if(n==="link"&&t.rel==="canonical")return"canonical";if(n==="link"&&t.rel==="alternate"){if(t.hreflang)return`alternate:${t.hreflang}`;if(t.type)return`alternate:${t.type}:${t.href||""}`}if(t.charset)return"charset";if(e.tag==="meta"){for(const r of Dy)if(t[r]!==void 0){const s=t[r],o=s&&typeof s=="string"&&s.includes(":"),i=s&&Fy.has(s),l=!(o||i)&&e.key?`:key:${e.key}`:"";return`${n}:${s}${l}`}}if(e.key)return`${n}:key:${e.key}`;if(t.id)return`${n}:id:${t.id}`;if(n==="link"&&t.rel==="alternate")return`alternate:${t.href||""}`;if(Ty.has(n)){const r=e.textContent||e.innerHTML;if(r)return`${n}:content:${r}`}}function Uf(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 Ns(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=>Ns(o,t));if(s?.constructor===Object){const o={};for(const i of Object.keys(s))o[i]=Ns(s[i],t,i);return o}return s}function Hy(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,...a]=o.split(":").map(l=>l?l.trim():"");i&&a.length&&n.set(i,a.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 jf(e,t){if(e.props=e.props||{},!t)return e;if(e.tag==="templateParams")return e.props=t,e;const n=bi.has(e.tag)||e.tag==="htmlAttrs"||e.tag==="bodyAttrs";return Object.entries(t).forEach(([r,s])=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;if(s===null){e.props[r]=null;return}if(r==="class"||r==="style"){e.props[r]=Hy(r,s);return}if(Ay.has(r)){if((r==="textContent"||r==="innerHTML")&&typeof s=="object"){let u=t.type;if(t.type||(u="application/json"),!u?.endsWith("json")&&u!=="speculationrules")return;t.type=u,e.props.type=u,e[r]=JSON.stringify(s)}else e[r]=s;return}const o=r.startsWith("data-"),i=n&&!o?r.toLowerCase():r,a=String(s),l=e.tag==="meta"&&i==="content";a==="true"||a===""?e.props[i]=o||l?a:!0:!s&&o&&a==="false"?e.props[i]="false":s!==void 0&&(e.props[i]=s)}),e}function $y(e,t){const n=typeof t=="object"&&typeof t!="function"?t:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},r=jf({tag:e,props:{}},n);return r.key&&Ry.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 Uy(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($y(s,i))}),r.flat()}const wi=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Sl={base:-10,title:10},jy={critical:-8,high:-1,low:2},Rl={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}},By=/@import/,br=e=>e===""||e===!0;function Vy(e,t){if(typeof t.tagPriority=="number")return t.tagPriority;let n=100;const r=jy[t.tagPriority]||0,s=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:Rl;if(t.tag in Sl)n=Sl[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=Rl.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);br(t.props.async)?n=s.script.async:t.props.src&&!br(t.props.defer)&&!br(t.props.async)&&o!=="module"&&!o.endsWith("json")||t.innerHTML&&!o.endsWith("json")?n=s.script.sync:(br(t.props.defer)&&t.props.src&&!br(t.props.async)||o==="module")&&(n=s.script.defer)}else t.tag==="style"&&(n=t.innerHTML&&By.test(t.innerHTML)?s.style.imported:s.style.sync);return(n||100)+r}function Tl(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 Wy(e={}){const t=My();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:a=>Tl(i,a),push(a,l){const u={...l||{}};delete u.head;const c=u._index??i._entryCount++,f={_i:c,input:a,options:u},d={_poll(h=!1){i.dirty=!0,!h&&o.add(c),t.callHook("entries:updated",i)},dispose(){r.delete(c)&&i.invalidate()},patch(h){(!u.mode||u.mode==="server"&&n||u.mode==="client"&&!n)&&(f.input=h,r.set(c,f),d._poll())}};return d.patch(a),d},async resolveTags(){const a={tagMap:new Map,tags:[],entries:[...i.entries.values()]};for(await t.callHook("entries:resolve",a);o.size;){const d=o.values().next().value;o.delete(d);const h=r.get(d);if(h){const _={tags:Uy(h.input,e.propResolvers||[]).map(m=>Object.assign(m,h.options)),entry:h};await t.callHook("entries:normalize",_),h._tags=_.tags.map((m,R)=>(m._w=Vy(i,m),m._p=(h._i<<10)+R,m._d=Ei(m),m._d||(m._h=Uf(m)),m))}}let l=!1;a.entries.flatMap(d=>(d._tags||[]).map(h=>({...h,props:{...h.props}}))).sort(wi).reduce((d,h)=>{const _=h._d||h._h;if(!d.has(_))return d.set(_,h);const m=d.get(_);if((h?.tagDuplicateStrategy||(Py.has(h.tag)?"merge":null)||(h.key&&h.key===m.key?"merge":null))==="merge"){const b={...m.props};Object.entries(h.props).forEach(([E,g])=>b[E]=E==="style"?new Map([...m.props.style||new Map,...g]):E==="class"?new Set([...m.props.class||new Set,...g]):g),d.set(_,{...h,props:b})}else h._p>>10===m._p>>10&&h.tag==="meta"&&$f(_)?(d.set(_,Object.assign([...Array.isArray(m)?m:[m],h],h)),l=!0):(h._w===m._w?h._p>m._p:h?._wTl(i,a)),i.hooks.callHook("init",i),e.init?.forEach(a=>a&&i.push(a)),i}const No="%separator";function Ky(e,t,n=!1){let r;if(t==="s"||t==="pageTitle")r=e.pageTitle;else if(t.includes(".")){const s=t.indexOf(".");r=e[t.substring(0,s)]?.[t.substring(s+1)]}else r=e[t];if(r!==void 0)return n?(r||"").replace(/\\/g,"\\\\").replace(/{if(a===No||!o.includes(a))return a;const l=Ky(t,a.slice(1),r);return l!==void 0?l:a}).trim(),i&&(e=e.split(No).map(a=>a.trim()).filter(a=>a!=="").join(n?` ${n} `:" ")),e}const Ll=e=>e.includes(":key")?e:e.split(":").join(":key:"),Gy={key:"aliasSorting",hooks:{"tags:resolve":e=>{let t=!1;for(const n of e.tags){const r=n.tagPriority;if(!r)continue;const s=String(r);if(s.startsWith("before:")){const o=Ll(s.slice(7)),i=e.tagMap.get(o);i&&(typeof i.tagPriority=="number"&&(n.tagPriority=i.tagPriority),n._p=i._p-1,t=!0)}else if(s.startsWith("after:")){const o=Ll(s.slice(6)),i=e.tagMap.get(o);i&&(typeof i.tagPriority=="number"&&(n.tagPriority=i.tagPriority),n._p=i._p+1,t=!0)}}t&&(e.tags=e.tags.sort(wi))}}},qy={key:"deprecations",hooks:{"entries:normalize":({tags:e})=>{for(const t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),t.props.body&&(t.tagPosition="bodyClose",delete t.props.body)}}};async function Ci(e){if(typeof e==="function")return e;if(e instanceof Promise)return await e;if(Array.isArray(e))return await Promise.all(e.map(n=>Ci(n)));if(e?.constructor===Object){const n={};for(const r of Object.keys(e))n[r]=await Ci(e[r]);return n}return e}const Yy={key:"promises",hooks:{"entries:resolve":async e=>{const t=[];for(const n in e.entries)e.entries[n]._promisesProcessed||t.push(Ci(e.entries[n].input).then(r=>{e.entries[n].input=r,e.entries[n]._promisesProcessed=!0}));await Promise.all(t)}}},Xy={meta:"content",link:"href",htmlAttrs:"lang"},Jy=["innerHTML","textContent"],Qy=e=>({key:"template-params",hooks:{"entries:normalize":t=>{const n=t.tags.filter(r=>r.tag==="templateParams"&&r.mode==="server")?.[0]?.props||{};Object.keys(n).length&&(e._ssrPayload={templateParams:{...e._ssrPayload?.templateParams||{},...n}})},"tags:resolve":({tagMap:t,tags:n})=>{const r=t.get("templateParams")?.props||{},s=r.separator||"|";delete r.separator,r.pageTitle=us(r.pageTitle||e._title||"",r,s);for(const o of n){if(o.processTemplateParams===!1)continue;const i=Xy[o.tag];if(i&&typeof o.props[i]=="string")o.props[i]=us(o.props[i],r,s);else if(o.processTemplateParams||o.tag==="titleTemplate"||o.tag==="title")for(const a of Jy)typeof o[a]=="string"&&(o[a]=us(o[a],r,s,o.tag==="script"&&o.props.type.endsWith("json")))}e._templateParams=r,e._separator=s},"tags:afterResolve":({tagMap:t})=>{const n=t.get("title");n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=us(n.textContent,e._templateParams,e._separator))}}}),zy=(e,t)=>ve(t)?Ih(t):t,ca="usehead";function Zy(e){return{install(n){n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(ca,e)}}.install}function e_(){if(Jr()){const e=Fe(ca);if(e)return e}throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.")}function t_(e,t={}){const n=t.head||e_();return n.ssr?n.push(e||{},t):n_(n,e,t)}function n_(e,t,n={}){const r=et(!1);let s;return qh(()=>{const i=r.value?{}:Ns(t,zy);s?s.patch(i):s=e.push(i,n)}),Fn()&&(zr(()=>{s.dispose()}),wu(()=>{r.value=!0}),Eu(()=>{r.value=!1})),s}function r_(e){const t=e||Rf();return t?.ssrContext?.head||t?.runWithContext(()=>{if(Jr())return Fe(ca)})}function s_(e,t={}){const n=r_(t.nuxt);if(n)return t_(e,{head:n,...t})}const o_=(e,t)=>[],Bf=e=>Lf({},...o_("",typeof e=="string"?e.toLowerCase():e).map(t=>t.data).reverse()),i_=Bf;let _s;function a_(){let e;return e=$fetch(aa(`builds/meta/${so().app.buildId}.json`),{responseType:"json"}).then(t=>{if(!t||typeof t!="object"||!Array.isArray(t.prerendered))throw new Error("[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.");return t}),_s=e,e.catch(t=>{_s===e&&(_s=void 0),console.error("[nuxt] Error fetching app manifest.",t)}),e}function Vf(){return _s||a_()}function Wf(e){const t=typeof e=="string"?e:e.path;try{return i_(t.toLowerCase())}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function kl(e,t={}){return null}async function l_(e){return null}let Cn=null;async function c_(){if(Cn)return Cn;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await u_(e.textContent||""),n=e.dataset.src?await l_(e.dataset.src):void 0;return Cn={...t,...n,...window.__NUXT__},Cn.config?.public&&(Cn.config.public=sn(Cn.config.public)),Cn}async function u_(e){return await Cy(e,ue()._payloadRevivers)}function Kf(e,t){ue()._payloadRevivers[e]=t}const f_=qm(()=>{Kf("skipHydrate",e=>{})}),d_=[["NuxtError",e=>In(e)],["EmptyShallowRef",e=>Nn(e==="_"?void 0:e==="0n"?BigInt(0):Ur(e))],["EmptyRef",e=>et(e==="_"?void 0:e==="0n"?BigInt(0):Ur(e))],["ShallowRef",e=>Nn(e)],["ShallowReactive",e=>Dt(e)],["Ref",e=>et(e)],["Reactive",e=>sn(e)]],h_=Ge({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of d_)Kf(r,s);Object.assign(e.payload,([t,n]=On(()=>e.runWithContext(c_)),t=await t,n(),t)),window.__NUXT__=e.payload}});async function ua(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(h=>{e.resolveTags().then(_=>{h(_.map(m=>{const R=o.get(m._d)||0,b={tag:m,id:(R?`${m._d}:${R}`:m._d)||m._h,shouldRender:!0};return m._d&&$f(m._d)&&o.set(m._d,R+1),b}))})});let a=e._dom;if(!a){a={title:n.title,elMap:new Map().set("htmlAttrs",n.documentElement).set("bodyAttrs",n.body)};for(const h of["body","head"]){const _=n[h]?.children;for(const m of _){const R=m.tagName.toLowerCase();if(!bi.has(R))continue;const b=jf({tag:R,props:{}},{innerHTML:m.innerHTML,...m.getAttributeNames().reduce((E,g)=>(E[g]=m.getAttribute(g),E),{})||{}});if(b.key=m.getAttribute("data-hid")||void 0,b._d=Ei(b)||Uf(b),a.elMap.has(b._d)){let E=1,g=b._d;for(;a.elMap.has(g);)g=`${b._d}:${E++}`;a.elMap.set(g,m)}else a.elMap.set(b._d,m)}}}a.pendingSideEffects={...a.sideEffects},a.sideEffects={};function l(h,_,m){const R=`${h}:${_}`;a.sideEffects[R]=m,delete a.pendingSideEffects[R]}function u({id:h,$el:_,tag:m}){const R=m.tag.endsWith("Attrs");a.elMap.set(h,_),R||(m.textContent&&m.textContent!==_.textContent&&(_.textContent=m.textContent),m.innerHTML&&m.innerHTML!==_.innerHTML&&(_.innerHTML=m.innerHTML),l(h,"el",()=>{_?.remove(),a.elMap.delete(h)}));for(const b in m.props){if(!Object.prototype.hasOwnProperty.call(m.props,b))continue;const E=m.props[b];if(b.startsWith("on")&&typeof E=="function"){const y=_?.dataset;if(y&&y[`${b}fired`]){const C=b.slice(0,-5);E.call(_,new Event(C.substring(2)))}_.getAttribute(`data-${b}`)!==""&&((m.tag==="bodyAttrs"?n.defaultView:_).addEventListener(b.substring(2),E.bind(_)),_.setAttribute(`data-${b}`,""));continue}const g=`attr:${b}`;if(b==="class"){if(!E)continue;for(const y of E)R&&l(h,`${g}:${y}`,()=>_.classList.remove(y)),!_.classList.contains(y)&&_.classList.add(y)}else if(b==="style"){if(!E)continue;for(const[y,C]of E)l(h,`${g}:${y}`,()=>{_.style.removeProperty(y)}),_.style.setProperty(y,C)}else E!==!1&&E!==null&&(_.getAttribute(b)!==E&&_.setAttribute(b,E===!0?"":String(E)),R&&l(h,g,()=>_.removeAttribute(b)))}}const c=[],f={bodyClose:void 0,bodyOpen:void 0,head:void 0},d=await i;for(const h of d){const{tag:_,shouldRender:m,id:R}=h;if(m){if(_.tag==="title"){n.title=_.textContent,l("title","",()=>n.title=a.title);continue}h.$el=h.$el||a.elMap.get(R),h.$el?u(h):bi.has(_.tag)&&c.push(h)}}for(const h of c){const _=h.tag.tagPosition||"head";h.$el=n.createElement(h.tag.tag),u(h),f[_]=f[_]||n.createDocumentFragment(),f[_].appendChild(h.$el)}for(const h of d)await e.hooks.callHook("dom:renderTag",h,n,l);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 h in a.pendingSideEffects)a.pendingSideEffects[h]();e._dom=a,await e.hooks.callHook("dom:rendered",{renders:d}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function p_(e={}){const t=e.domOptions?.render||ua;e.document=e.document||(typeof window<"u"?document:void 0);const n=e.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML||!1;return Wy({...e,plugins:[...e.plugins||[],{key:"client",hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function g_(e,t){let n=0;return()=>{const r=++n;t(()=>{n===r&&e()})}}function m_(e={}){const t=p_({domOptions:{render:g_(()=>ua(t),n=>setTimeout(n,0))},...e});return t.install=Zy(t),t}const y_={disableDefaults:!0,disableCapoSorting:!1,plugins:[qy,Yy,Qy,Gy]},__=Ge({name:"nuxt:head",enforce:"pre",setup(e){const t=m_(y_);e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await ua(t)};t.hooks.hook("dom:beforeRender",o=>{o.shouldRender=!n}),e.hooks.hook("page:start",()=>{n=!0}),e.hooks.hook("page:finish",()=>{e.isHydrating||r()}),e.hooks.hook("app:error",r),e.hooks.hook("app:suspense:resolve",r);const s=t.push.bind(t);t.push=((o,i)=>{const a=s(o,i),l=a.dispose.bind(a);return a.dispose=()=>{const u=e["~transitionPromise"];u?u.then(l):l()},a})}}});const Bn=typeof document<"u";function Gf(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function b_(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&Gf(e.default)}const he=Object.assign;function xo(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ct(s)?s.map(e):e(s)}return n}const Ir=()=>{},Ct=Array.isArray;function Al(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const qf=/#/g,v_=/&/g,E_=/\//g,w_=/=/g,C_=/\?/g,Yf=/\+/g,S_=/%5B/g,R_=/%5D/g,Xf=/%5E/g,T_=/%60/g,Jf=/%7B/g,L_=/%7C/g,Qf=/%7D/g,k_=/%20/g;function fa(e){return e==null?"":encodeURI(""+e).replace(L_,"|").replace(S_,"[").replace(R_,"]")}function A_(e){return fa(e).replace(Jf,"{").replace(Qf,"}").replace(Xf,"^")}function Si(e){return fa(e).replace(Yf,"%2B").replace(k_,"+").replace(qf,"%23").replace(v_,"%26").replace(T_,"`").replace(Jf,"{").replace(Qf,"}").replace(Xf,"^")}function P_(e){return Si(e).replace(w_,"%3D")}function O_(e){return fa(e).replace(qf,"%23").replace(C_,"%3F")}function I_(e){return O_(e).replace(E_,"%2F")}function Vr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const N_=/\/$/,x_=e=>e.replace(N_,"");function Mo(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(r=t.slice(0,l),o=t.slice(l,a>0?a:t.length),s=e(o.slice(1))),a>=0&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=H_(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Vr(i)}}function M_(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Pl(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function D_(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&ir(t.matched[r],n.matched[s])&&zf(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function ir(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function zf(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!F_(e[n],t[n]))return!1;return!0}function F_(e,t){return Ct(e)?Ol(e,t):Ct(t)?Ol(t,e):e?.valueOf()===t?.valueOf()}function Ol(e,t){return Ct(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function H_(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,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const dt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Ri=(function(e){return e.pop="pop",e.push="push",e})({}),Do=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function $_(e){if(!e)if(Bn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),x_(e)}const U_=/^[^#]+#/;function j_(e,t){return e.replace(U_,"#")+t}function B_(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 io=()=>({left:window.scrollX,top:window.scrollY});function V_(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=B_(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 Il(e,t){return(history.state?history.state.position-t:-1)+e}const Ti=new Map;function W_(e,t){Ti.set(e,t)}function K_(e){const t=Ti.get(e);return Ti.delete(e),t}function G_(e){return typeof e=="string"||e&&typeof e=="object"}function Zf(e){return typeof e=="string"||typeof e=="symbol"}let Te=(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 ed=Symbol("");Te.MATCHER_NOT_FOUND+"",Te.NAVIGATION_GUARD_REDIRECT+"",Te.NAVIGATION_ABORTED+"",Te.NAVIGATION_CANCELLED+"",Te.NAVIGATION_DUPLICATED+"";function ar(e,t){return he(new Error,{type:e,[ed]:!0},t)}function Vt(e,t){return e instanceof Error&&ed in e&&(t==null||!!(e.type&t))}const q_=["params","query","hash"];function Y_(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of q_)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function X_(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Si(s)):[r&&Si(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function J_(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ct(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Q_=Symbol(""),xl=Symbol(""),da=Symbol(""),ha=Symbol(""),Li=Symbol("");function vr(){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 dn(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const u=d=>{d===!1?l(ar(Te.NAVIGATION_ABORTED,{from:n,to:t})):d instanceof Error?l(d):G_(d)?l(ar(Te.NAVIGATION_GUARD_REDIRECT,{from:t,to:d})):(i&&r.enterCallbacks[s]===i&&typeof d=="function"&&i.push(d),a())},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(d=>l(d))})}function Fo(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(Gf(l)){const u=(l.__vccOpts||l)[t];u&&o.push(dn(u,n,r,i,a,s))}else{let u=l();o.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const f=b_(c)?c.default:c;i.mods[a]=c,i.components[a]=f;const d=(f.__vccOpts||f)[t];return d&&dn(d,n,r,i,a,s)()}))}}return o}function z_(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iir(u,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(u=>ir(u,l))||s.push(l))}return[n,r,s]}let Z_=()=>location.protocol+"//"+location.host;function td(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,a=s.slice(i);return a[0]!=="/"&&(a="/"+a),Pl(a,"")}return Pl(n,e)+r+s}function eb(e,t,n,r){let s=[],o=[],i=null;const a=({state:d})=>{const h=td(e,location),_=n.value,m=t.value;let R=0;if(d){if(n.value=h,t.value=d,i&&i===_){i=null;return}R=m?d.position-m.position:0}else r(h);s.forEach(b=>{b(n.value,_,{delta:R,type:Ri.pop,direction:R?R>0?Do.forward:Do.back:Do.unknown})})};function l(){i=n.value}function u(d){s.push(d);const h=()=>{const _=s.indexOf(d);_>-1&&s.splice(_,1)};return o.push(h),h}function c(){if(document.visibilityState==="hidden"){const{history:d}=window;if(!d.state)return;d.replaceState(he({},d.state,{scroll:io()}),"")}}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:u,destroy:f}}function Ml(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?io():null}}function tb(e){const{history:t,location:n}=window,r={value:td(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(l,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Z_()+e+l;try{t[c?"replaceState":"pushState"](u,"",d),s.value=u}catch(h){console.error(h),n[c?"replace":"assign"](d)}}function i(l,u){o(l,he({},t.state,Ml(s.value.back,l,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=l}function a(l,u){const c=he({},s.value,t.state,{forward:l,scroll:io()});o(c.current,c,!0),o(l,he({},Ml(r.value,l,null),{position:c.position+1},u),!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function nb(e){e=$_(e);const t=tb(e),n=eb(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=he({location:"",base:e,go:r,createHref:j_.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 Tn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var xe=(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})(xe||{});const rb={type:Tn.Static,value:""},sb=/[a-zA-Z0-9_]/;function ob(e){if(!e)return[[]];if(e==="/")return[[rb]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=xe.Static,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,u="",c="";function f(){u&&(n===xe.Static?o.push({type:Tn.Static,value:u}):n===xe.Param||n===xe.ParamRegExp||n===xe.ParamRegExpEnd?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:Tn.Param,value:u,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=l}for(;at.length?t.length===1&&t[0]===Xe.Static+Xe.Segment?1:-1:0}function nd(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const ub={strict:!1,end:!0,sensitive:!1};function fb(e,t,n){const r=lb(ob(e.path),n),s=he(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function db(e,t){const n=[],r=new Map;t=Al(ub,t);function s(f){return r.get(f)}function o(f,d,h){const _=!h,m=$l(f);m.aliasOf=h&&h.record;const R=Al(t,f),b=[m];if("alias"in f){const y=typeof f.alias=="string"?[f.alias]:f.alias;for(const C of y)b.push($l(he({},m,{components:h?h.record.components:m.components,path:C,aliasOf:h?h.record:m})))}let E,g;for(const y of b){const{path:C}=y;if(d&&C[0]!=="/"){const A=d.record.path,L=A[A.length-1]==="/"?"":"/";y.path=d.record.path+(C&&L+C)}if(E=fb(y,d,R),h?h.alias.push(E):(g=g||E,g!==E&&g.alias.push(E),_&&f.name&&!Ul(E)&&i(f.name)),rd(E)&&l(E),m.children){const A=m.children;for(let L=0;L{i(g)}:Ir}function i(f){if(Zf(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const d=gb(f,n);n.splice(d,0,f),f.record.name&&!Ul(f)&&r.set(f.record.name,f)}function u(f,d){let h,_={},m,R;if("name"in f&&f.name){if(h=r.get(f.name),!h)throw ar(Te.MATCHER_NOT_FOUND,{location:f});R=h.record.name,_=he(Hl(d.params,h.keys.filter(g=>!g.optional).concat(h.parent?h.parent.keys.filter(g=>g.optional):[]).map(g=>g.name)),f.params&&Hl(f.params,h.keys.map(g=>g.name))),m=h.stringify(_)}else if(f.path!=null)m=f.path,h=n.find(g=>g.re.test(m)),h&&(_=h.parse(m),R=h.record.name);else{if(h=d.name?r.get(d.name):n.find(g=>g.re.test(d.path)),!h)throw ar(Te.MATCHER_NOT_FOUND,{location:f,currentLocation:d});R=h.record.name,_=he({},d.params,f.params),m=h.stringify(_)}const b=[];let E=h;for(;E;)b.unshift(E.record),E=E.parent;return{name:R,path:m,params:_,matched:b,meta:pb(b)}}e.forEach(f=>o(f));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:u,removeRoute:i,clearRoutes:c,getRoutes:a,getRecordMatcher:s}}function Hl(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function $l(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:hb(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 hb(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 Ul(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function pb(e){return e.reduce((t,n)=>he(t,n.meta),{})}function gb(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;nd(e,t[o])<0?r=o:n=o+1}const s=mb(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function mb(e){let t=e;for(;t=t.parent;)if(rd(t)&&nd(e,t)===0)return t}function rd({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jl(e){const t=Fe(da),n=Fe(ha),r=ke(()=>{const l=me(e.to);return t.resolve(l)}),s=ke(()=>{const{matched:l}=r.value,{length:u}=l,c=l[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(ir.bind(null,c));if(d>-1)return d;const h=Bl(l[u-2]);return u>1&&Bl(c)===h&&f[f.length-1].path!==h?f.findIndex(ir.bind(null,l[u-2])):d}),o=ke(()=>s.value>-1&&Eb(n.params,r.value.params)),i=ke(()=>s.value>-1&&s.value===n.matched.length-1&&zf(n.params,r.value.params));function a(l={}){if(vb(l)){const u=t[me(e.replace)?"replace":"push"](me(e.to)).catch(Ir);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:ke(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}function yb(e){return e.length===1?e[0]:e}const _b=St({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:jl,setup(e,{slots:t}){const n=sn(jl(e)),{options:r}=Fe(da),s=ke(()=>({[Vl(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Vl(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&yb(t.default(n));return e.custom?o:Ie("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),bb=_b;function vb(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 Eb(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(!Ct(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function Bl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Vl=(e,t,n)=>e??t??n,wb=St({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Fe(Li),s=ke(()=>e.route||r.value),o=Fe(xl,0),i=ke(()=>{let u=me(o);const{matched:c}=s.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),a=ke(()=>s.value.matched[i.value]);gn(xl,ke(()=>i.value+1)),gn(Q_,a),gn(Li,s);const l=et();return at(()=>[l.value,a.value,e.name],([u,c,f],[d,h,_])=>{c&&(c.instances[f]=u,h&&h!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=h.leaveGuards),c.updateGuards.size||(c.updateGuards=h.updateGuards))),u&&c&&(!h||!ir(c,h)||!d)&&(c.enterCallbacks[f]||[]).forEach(m=>m(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,f=a.value,d=f&&f.components[c];if(!d)return Wl(n.default,{Component:d,route:u});const h=f.props[c],_=h?h===!0?u.params:typeof h=="function"?h(u):h:null,R=Ie(d,he({},_,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(f.instances[c]=null)},ref:l}));return Wl(n.default,{Component:R,route:u})||R}}});function Wl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const sd=wb;function Cb(e){const t=db(e.routes,e),n=e.parseQuery||X_,r=e.stringifyQuery||Nl,s=e.history,o=vr(),i=vr(),a=vr(),l=Nn(dt);let u=dt;Bn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=xo.bind(null,H=>""+H),f=xo.bind(null,I_),d=xo.bind(null,Vr);function h(H,Y){let B,Q;return Zf(H)?(B=t.getRecordMatcher(H),Q=Y):Q=H,t.addRoute(Q,B)}function _(H){const Y=t.getRecordMatcher(H);Y&&t.removeRoute(Y)}function m(){return t.getRoutes().map(H=>H.record)}function R(H){return!!t.getRecordMatcher(H)}function b(H,Y){if(Y=he({},Y||l.value),typeof H=="string"){const S=Mo(n,H,Y.path),P=t.resolve({path:S.path},Y),U=s.createHref(S.fullPath);return he(S,P,{params:d(P.params),hash:Vr(S.hash),redirectedFrom:void 0,href:U})}let B;if(H.path!=null)B=he({},H,{path:Mo(n,H.path,Y.path).path});else{const S=he({},H.params);for(const P in S)S[P]==null&&delete S[P];B=he({},H,{params:f(S)}),Y.params=f(Y.params)}const Q=t.resolve(B,Y),ne=H.hash||"";Q.params=c(d(Q.params));const _e=M_(r,he({},H,{hash:A_(ne),path:Q.path})),v=s.createHref(_e);return he({fullPath:_e,hash:ne,query:r===Nl?J_(H.query):H.query||{}},Q,{redirectedFrom:void 0,href:v})}function E(H){return typeof H=="string"?Mo(n,H,l.value.path):he({},H)}function g(H,Y){if(u!==H)return ar(Te.NAVIGATION_CANCELLED,{from:Y,to:H})}function y(H){return L(H)}function C(H){return y(he(E(H),{replace:!0}))}function A(H,Y){const B=H.matched[H.matched.length-1];if(B&&B.redirect){const{redirect:Q}=B;let ne=typeof Q=="function"?Q(H,Y):Q;return typeof ne=="string"&&(ne=ne.includes("?")||ne.includes("#")?ne=E(ne):{path:ne},ne.params={}),he({query:H.query,hash:H.hash,params:ne.path!=null?{}:H.params},ne)}}function L(H,Y){const B=u=b(H),Q=l.value,ne=H.state,_e=H.force,v=H.replace===!0,S=A(B,Q);if(S)return L(he(E(S),{state:typeof S=="object"?he({},ne,S.state):ne,force:_e,replace:v}),Y||B);const P=B;P.redirectedFrom=Y;let U;return!_e&&D_(r,Q,B)&&(U=ar(Te.NAVIGATION_DUPLICATED,{to:P,from:Q}),qe(Q,Q,!0,!1)),(U?Promise.resolve(U):D(P,Q)).catch(M=>Vt(M)?Vt(M,Te.NAVIGATION_GUARD_REDIRECT)?M:nt(M):q(M,P,Q)).then(M=>{if(M){if(Vt(M,Te.NAVIGATION_GUARD_REDIRECT))return L(he({replace:v},E(M.to),{state:typeof M.to=="object"?he({},ne,M.to.state):ne,force:_e}),Y||P)}else M=$(P,Q,!0,v,ne);return W(P,Q,M),M})}function F(H,Y){const B=g(H,Y);return B?Promise.reject(B):Promise.resolve()}function N(H){const Y=Tt.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(H):H()}function D(H,Y){let B;const[Q,ne,_e]=z_(H,Y);B=Fo(Q.reverse(),"beforeRouteLeave",H,Y);for(const S of Q)S.leaveGuards.forEach(P=>{B.push(dn(P,H,Y))});const v=F.bind(null,H,Y);return B.push(v),Ve(B).then(()=>{B=[];for(const S of o.list())B.push(dn(S,H,Y));return B.push(v),Ve(B)}).then(()=>{B=Fo(ne,"beforeRouteUpdate",H,Y);for(const S of ne)S.updateGuards.forEach(P=>{B.push(dn(P,H,Y))});return B.push(v),Ve(B)}).then(()=>{B=[];for(const S of _e)if(S.beforeEnter)if(Ct(S.beforeEnter))for(const P of S.beforeEnter)B.push(dn(P,H,Y));else B.push(dn(S.beforeEnter,H,Y));return B.push(v),Ve(B)}).then(()=>(H.matched.forEach(S=>S.enterCallbacks={}),B=Fo(_e,"beforeRouteEnter",H,Y,N),B.push(v),Ve(B))).then(()=>{B=[];for(const S of i.list())B.push(dn(S,H,Y));return B.push(v),Ve(B)}).catch(S=>Vt(S,Te.NAVIGATION_CANCELLED)?S:Promise.reject(S))}function W(H,Y,B){a.list().forEach(Q=>N(()=>Q(H,Y,B)))}function $(H,Y,B,Q,ne){const _e=g(H,Y);if(_e)return _e;const v=Y===dt,S=Bn?history.state:{};B&&(Q||v?s.replace(H.fullPath,he({scroll:v&&S&&S.scroll},ne)):s.push(H.fullPath,ne)),l.value=H,qe(H,Y,B,v),nt()}let X;function te(){X||(X=s.listen((H,Y,B)=>{if(!Lt.listening)return;const Q=b(H),ne=A(Q,Lt.currentRoute.value);if(ne){L(he(ne,{replace:!0,force:!0}),Q).catch(Ir);return}u=Q;const _e=l.value;Bn&&W_(Il(_e.fullPath,B.delta),io()),D(Q,_e).catch(v=>Vt(v,Te.NAVIGATION_ABORTED|Te.NAVIGATION_CANCELLED)?v:Vt(v,Te.NAVIGATION_GUARD_REDIRECT)?(L(he(E(v.to),{force:!0}),Q).then(S=>{Vt(S,Te.NAVIGATION_ABORTED|Te.NAVIGATION_DUPLICATED)&&!B.delta&&B.type===Ri.pop&&s.go(-1,!1)}).catch(Ir),Promise.reject()):(B.delta&&s.go(-B.delta,!1),q(v,Q,_e))).then(v=>{v=v||$(Q,_e,!1),v&&(B.delta&&!Vt(v,Te.NAVIGATION_CANCELLED)?s.go(-B.delta,!1):B.type===Ri.pop&&Vt(v,Te.NAVIGATION_ABORTED|Te.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),W(Q,_e,v)}).catch(Ir)}))}let se=vr(),K=vr(),J;function q(H,Y,B){nt(H);const Q=K.list();return Q.length?Q.forEach(ne=>ne(H,Y,B)):console.error(H),Promise.reject(H)}function re(){return J&&l.value!==dt?Promise.resolve():new Promise((H,Y)=>{se.add([H,Y])})}function nt(H){return J||(J=!H,te(),se.list().forEach(([Y,B])=>H?B(H):Y()),se.reset()),H}function qe(H,Y,B,Q){const{scrollBehavior:ne}=e;if(!Bn||!ne)return Promise.resolve();const _e=!B&&K_(Il(H.fullPath,0))||(Q||!B)&&history.state&&history.state.scroll||null;return nn().then(()=>ne(H,Y,_e)).then(v=>v&&V_(v)).catch(v=>q(v,H,Y))}const $e=H=>s.go(H);let Rt;const Tt=new Set,Lt={currentRoute:l,listening:!0,addRoute:h,removeRoute:_,clearRoutes:t.clearRoutes,hasRoute:R,getRoutes:m,resolve:b,options:e,push:y,replace:C,go:$e,back:()=>$e(-1),forward:()=>$e(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:K.add,isReady:re,install(H){H.component("RouterLink",bb),H.component("RouterView",sd),H.config.globalProperties.$router=Lt,Object.defineProperty(H.config.globalProperties,"$route",{enumerable:!0,get:()=>me(l)}),Bn&&!Rt&&l.value===dt&&(Rt=!0,y(s.location).catch(Q=>{}));const Y={};for(const Q in dt)Object.defineProperty(Y,Q,{get:()=>l.value[Q],enumerable:!0});H.provide(da,Lt),H.provide(ha,Dt(Y)),H.provide(Li,l);const B=H.unmount;Tt.add(H),H.unmount=function(){Tt.delete(H),Tt.size<1&&(u=dt,X&&X(),X=null,l.value=dt,Rt=!1,J=!1),B()}}};function Ve(H){return H.reduce((Y,B)=>Y.then(()=>N(B)),Promise.resolve())}return Lt}function od(e){return Fe(ha)}const Sb=/(:\w+)\([^)]+\)/g,Rb=/(:\w+)[?+*]/g,Tb=/:\w+/g,Lb=(e,t)=>t.path.replace(Sb,"$1").replace(Rb,"$1").replace(Tb,n=>e.params[n.slice(1)]?.toString()||""),ki=(e,t)=>{const n=e.route.matched.find(s=>s.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Lb(e.route,n));return typeof r=="function"?r(e.route):r},kb=(e,t)=>({default:()=>e?Ie(op,e===!0?{}:e,t):t});function id(e){return Array.isArray(e)?e:[e]}const Ab="modulepreload",Pb=function(e,t){return new URL(e,t).href},Kl={},vt=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(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};const i=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");s=u(n.map(c=>{if(c=Pb(c,r),c in Kl)return;Kl[c]=!0;const f=c.endsWith(".css"),d=f?'[rel="stylesheet"]':"";if(r)for(let _=i.length-1;_>=0;_--){const m=i[_];if(m.href===c&&(!f||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${d}`))return;const h=document.createElement("link");if(h.rel=f?"stylesheet":Ab,f||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),f)return new Promise((_,m)=>{h.addEventListener("load",_),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},Ho=[{name:"index",path:"/",meta:{middleware:"auth"},component:()=>vt(()=>import("./CqyNVJx6.js"),[],import.meta.url)},{name:"login",path:"/login",component:()=>vt(()=>import("./9W9VXtTt.js"),__vite__mapDeps([0,1,2]),import.meta.url)},{name:"garages",path:"/garages",meta:{middleware:"auth"},component:()=>vt(()=>import("./zPyClsoP.js"),[],import.meta.url)},{name:"packages",path:"/packages",meta:{middleware:"auth"},component:()=>vt(()=>import("./ncKxzOzI.js"),__vite__mapDeps([3,4]),import.meta.url)},{name:"permissions",path:"/permissions",meta:{middleware:"auth"},component:()=>vt(()=>import("./BO90Bn6x.js"),[],import.meta.url)}],ad=(e,t)=>({default:()=>e?Ie(ig,e===!0?{}:e,t):t.default?.()}),Ob=/(:\w+)\([^)]+\)/g,Ib=/(:\w+)[?+*]/g,Nb=/:\w+/g;function Gl(e){const t=e?.meta.key??e.path.replace(Ob,"$1").replace(Ib,"$1").replace(Nb,n=>e.params[n.slice(1)]?.toString()||"");return typeof t=="function"?t(e):t}function xb(e,t){return e===t||t===dt?!1:Gl(e)!==Gl(t)?!0:!e.matched.every((r,s)=>r.components&&r.components.default===t.matched[s]?.components?.default)}function ql(e){return Array.isArray(e)?e:[e]}function ld(e){const t=[];for(const n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?ql(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?ql(n.onBeforeLeave):void 0});return Lf(...t)}const Mb={scrollBehavior(e,t,n){const r=ue(),s=tt().options?.scrollBehaviorType??"auto";return e.path.replace(/\/$/,"")===t.path.replace(/\/$/,"")?t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:cd(e.hash),behavior:s}:!1:(typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===dt?Yl(e,t,n,s):new Promise(i=>{const a=()=>{requestAnimationFrame(()=>i(Yl(e,t,n,s)))};r.hooks.hookOnce("page:loading:end",()=>{const l=r["~transitionPromise"];l?l.then(a):a()})})}};function cd(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 Yl(e,t,n,r){return n||(e.hash?{el:e.hash,top:cd(e.hash),behavior:xb(e,t)?r:"instant"}:{left:0,top:0})}const Db={hashMode:!1,scrollBehaviorType:"auto"},cn={...Db,...Mb},Fb=async(e,t)=>{let n,r;if(!e.meta?.validate)return;const s=([n,r]=On(()=>Promise.resolve(e.meta.validate(e))),n=await n,r(),n);if(s===!0)return;const o=In({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},Hb=e=>{const t=Wf({path:e.path});if(t.redirect){const n=t.redirect.includes("#")?t.redirect:t.redirect+e.hash;return an(n,{acceptRelative:!0})?(window.location.href=n,!1):n}},$b=[Fb,Hb],Ai={auth:()=>vt(()=>import("./DuYZ8wdr.js"),[],import.meta.url)};function Ub(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),hl(c,"")}const a=hl(r,e),l=!n||_f(a,n)?a:n;return l+(l.includes("?")?"":s)+o}const jb=Ge({name:"nuxt:router",enforce:"pre",async setup(e){let t,n,r=so().app.baseURL;const s=cn.history?.(r)??nb(r),o=cn.routes?([t,n]=On(()=>cn.routes(Ho)),t=await t,n(),t??Ho):Ho;let i;const a=Cb({...cn,scrollBehavior:(b,E,g)=>{if(E===dt){i=g;return}if(cn.scrollBehavior){if(a.options.scrollBehavior=cn.scrollBehavior,"scrollRestoration"in window.history){const y=a.beforeEach(()=>{y(),window.history.scrollRestoration="manual"})}return cn.scrollBehavior(b,dt,i||g)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(a);const l=Nn(a.currentRoute.value);a.afterEach((b,E)=>{l.value=E}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>l.value});const u=Ub(r,window.location,e.payload.path),c=Nn(a.currentRoute.value),f=()=>{c.value=a.currentRoute.value};a.afterEach((b,E)=>{const g=b.matched.at(-1)?.components?.default,y=E.matched.at(-1)?.components?.default;if(g===y){f();return}b.matched.lengthC.components?.default===E.matched[A]?.components?.default)&&f()});const d={sync:f};for(const b in c.value)Object.defineProperty(d,b,{get:()=>c.value[b],enumerable:!0});e._route=Dt(d),e._middleware||={global:[],named:{}};const h=oo();a.afterEach(async(b,E,g)=>{delete e._processingMiddleware,!e.isHydrating&&h.value&&await e.runWithContext(ty),g&&await e.callHook("page:loading:end")});try{[t,n]=On(()=>a.isReady()),await t,n()}catch(b){[t,n]=On(()=>e.runWithContext(()=>Rn(b))),await t,n()}const _=u!==a.currentRoute.value.fullPath?a.resolve(u):a.currentRoute.value,m=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&u!==e.payload.path&&_f(a.currentRoute.value.path,e.payload.path);f();const R=e.payload.state._layout;return a.beforeEach(async(b,E)=>{await e.callHook("page:loading:start"),b.meta=sn(b.meta),e.isHydrating&&R&&!Ut(b.meta.layout)&&(b.meta.layout=R),e._processingMiddleware=!0;{const g=new Set([...$b,...e._middleware.global]);for(const C of b.matched){const A=C.meta.middleware;if(A)for(const L of id(A))g.add(L)}const y=Wf({path:b.path});if(y.appMiddleware)for(const C in y.appMiddleware)y.appMiddleware[C]?g.add(C):g.delete(C);for(const C of g){const A=typeof C=="string"?e._middleware.named[C]||await Ai[C]?.().then(L=>L.default||L):C;if(!A)throw new Error(`Unknown route middleware: '${C}'.`);try{const L=await e.runWithContext(()=>A(b,E));if(!e.payload.serverRendered&&e.isHydrating&&(L===!1||L instanceof Error)){const F=L||In({status:404,statusText:`Page Not Found: ${u}`});return await e.runWithContext(()=>Rn(F)),!1}if(L===!0)continue;if(L===!1)return L;if(L)return Of(L)&&L.fatal&&await e.runWithContext(()=>Rn(L)),L}catch(L){const F=In(L);return F.fatal&&await e.runWithContext(()=>Rn(F)),F}}}}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),a.afterEach(b=>{if(b.matched.length===0&&!h.value)return e.runWithContext(()=>Rn(In({status:404,fatal:!1,statusText:`Page not found: ${b.fullPath}`,data:{path:b.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{if("name"in _&&(_.name=void 0),m){const b=a.resolve(e.payload.path);"name"in b&&(b.name=void 0),await a.replace({...b,force:!0}),e.hooks.hookOnce("app:suspense:resolve",async()=>{await a.replace({..._,force:!0})})}else await a.replace({..._,force:!0});a.options.scrollBehavior=cn.scrollBehavior}catch(b){await e.runWithContext(()=>Rn(b))}}),{provide:{router:a}}}}),Xl=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),U0=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),pa=e=>{const t=ue();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{Xl(()=>e())}):Xl(()=>e())},Bb=Ge({name:"nuxt:payload",setup(e){const t=new Set;tt().beforeResolve(async(n,r)=>{if(n.path===r.path)return;const s=await kl(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]}}),pa(()=>{e.hooks.hook("link:prefetch",async n=>{const{hostname:r}=new URL(n,window.location.href);r===window.location.hostname&&await kl().catch(()=>{console.warn("[nuxt] Error preloading payload for",n)})}),navigator.connection?.effectiveType!=="slow-2g"&&setTimeout(Vf,1e3)})}}),Vb=Ge(()=>{const e=tt();pa(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),Wb=Ge(e=>{let t;async function n(){let r;try{r=await Vf()}catch(s){const o=s;if(!("status"in o&&(o.status===404||o.status===403)))throw o}t&&clearTimeout(t),t=setTimeout(n,bl);try{const s=await $fetch(aa("builds/latest.json")+`?${Date.now()}`);s.id!==r?.id&&(e.hooks.callHook("app:manifest:update",s),t&&clearTimeout(t))}catch{}}pa(()=>{t=setTimeout(n,bl)})});function Kb(e={}){const t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw new Error(`Cannot navigate to a URL with a different host: '${t}'.`);if(n.protocol&&ci(n.protocol))throw new Error(`Cannot navigate to a URL with '${n.protocol}' protocol.`);let r={};try{r=Ur(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||r?.path!==t||r?.expires{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const i=Pn(n.app.baseURL,o.fullPath);Kb({path:i,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}});function Jl(e){return typeof e=="string"?`'${e}'`:new qb().serialize(e)}const qb=(function(){class e{#e=new Map;compare(n,r){const s=typeof n,o=typeof r;return s==="string"&&o==="string"?n.localeCompare(r):s==="number"&&o==="number"?n-r:String.prototype.localeCompare.call(this.serialize(n,!0),this.serialize(r,!0))}serialize(n,r){if(n===null)return"null";switch(typeof n){case"string":return r?n:`'${n}'`;case"bigint":return`${n}n`;case"object":return this.$object(n);case"function":return this.$function(n)}return String(n)}serializeObject(n){const r=Object.prototype.toString.call(n);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),n);const s=n.constructor,o=s===Object||s===void 0?"":s.name;if(o!==""&&globalThis[o]===s)return this.serializeBuiltInType(o,n);if(typeof n.toJSON=="function"){const i=n.toJSON();return o+(i!==null&&typeof i=="object"?this.$object(i):`(${this.serialize(i)})`)}return this.serializeObjectEntries(o,Object.entries(n))}serializeBuiltInType(n,r){const s=this["$"+n];if(s)return s.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(n,r.entries());throw new Error(`Cannot serialize ${n}`)}serializeObjectEntries(n,r){const s=Array.from(r).sort((i,a)=>this.compare(i[0],a[0]));let o=`${n}{`;for(let i=0;ithis.compare(r,s)))}`}$Map(n){return this.serializeObjectEntries("Map",n.entries())}}for(const t of["Error","RegExp","URL"])e.prototype["$"+t]=function(n){return`${t}(${n})`};for(const t of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join(",")}]`};for(const t of["BigInt64Array","BigUint64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join("n,")}${n.length>0?"n":""}]`};return e})();function Yb(e,t){return e===t||Jl(e)===Jl(t)}const Xb="$s";function ud(...e){const t=typeof e[e.length-1]=="string"?e.pop():void 0;typeof e[0]!="string"&&e.unshift(t);const[n,r]=e;if(!n||typeof n!="string")throw new TypeError("[nuxt] [useState] key must be a string: "+n);if(r!==void 0&&typeof r!="function")throw new Error("[nuxt] [useState] init must be a function: "+r);const s=Xb+n,o=ue(),i=lu(o.payload.state,s);if(i.value===void 0&&r){const a=r();if(ve(a))return o.payload.state[s]=a,a;i.value=a}return i}const Jb=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function Qb(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");const n=new Jb,r=t||{},s=r.decode||zb;let o=0;for(;o{const t=decodeURIComponent(e),n=Ur(t);return typeof n=="number"&&(!Number.isFinite(n)||String(n)!==t)?t:n},encode:e=>encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))},ds=globalThis.cookieStore;function fd(e,t){const n={...tv,...t};n.filter??=u=>u===e;const r=zl(n)||{};let s;n.maxAge!==void 0?s=n.maxAge*1e3:n.expires&&(s=n.expires.getTime()-Date.now());const o=s!==void 0&&s<=0,i=o||r[e]===void 0||r[e]===null,a=_t(o?void 0:r[e]??n.default?.()),l=s&&!o?sv(a,s,n.watch&&n.watch!=="shallow"):et(a);{let u=null;try{!ds&&typeof BroadcastChannel<"u"&&(u=new BroadcastChannel(`nuxt:cookies:${e}`))}catch{}const c=(_=!1)=>{!_&&(n.readonly||Yb(l.value,r[e]))||(rv(e,l.value,n),r[e]=_t(l.value),u?.postMessage({value:n.encode(l.value)}))},f=_=>{const m=_.refresh?zl(n)?.[e]:n.decode(_.value);d=!0,l.value=m,r[e]=_t(m),nn(()=>{d=!1})};let d=!1;const h=!!dr();if(h&&Nr(()=>{d=!0,c(),u?.close()}),ds){const _=m=>{const R=m.changed.find(E=>E.name===e),b=m.deleted.find(E=>E.name===e);R&&f({value:R.value}),b&&f({value:null})};ds.addEventListener("change",_),h&&Nr(()=>ds.removeEventListener("change",_))}else u&&(u.onmessage=({data:_})=>f(_));n.watch&&at(l,()=>{d||c()},{deep:n.watch!=="shallow"}),i&&c(i)}return l}function zl(e={}){return Qb(document.cookie,e)}function nv(e,t,n={}){return t==null?Ql(e,t,{...n,maxAge:-1}):Ql(e,t,n)}function rv(e,t,n={}){document.cookie=nv(e,t,n)}const Zl=2147483647;function sv(e,t,n){let r,s,o=0;const i=n?et(e):{value:e};return dr()&&Nr(()=>{s?.(),clearTimeout(r)}),Mh((a,l)=>{n&&(s=at(i,l));function u(){const f=t-o,d=f{if(o+=d,o4)return Promise.all(s).then(()=>iv(e,t));t._routePreloaded.add(n);for(const o of r){const i=o.components?.default;if(typeof i!="function")continue;const a=Promise.resolve(i()).catch(()=>{}).finally(()=>s.splice(s.indexOf(a),1));s.push(a)}await Promise.all(s)}function dd(e){return new URL(globalThis.location.href)}const av=Ge({name:"pinia",setup(e){const t=ny();return e.vueApp.use(t),or(t),e.payload&&e.payload.pinia&&(t.state.value=e.payload.pinia),{provide:{pinia:t}}},hooks:{"app:rendered"(){const e=ue();e.payload.pinia=ae(e.$pinia).state.value,or(void 0)}}}),lv=Ge({name:"nuxt:global-components"}),pn={default:Qo(()=>vt(()=>import("./CC4zKGJo.js"),__vite__mapDeps([5,1,4,2]),import.meta.url).then(e=>e.default||e))},cv=Ge({name:"nuxt:prefetch",setup(e){const t=tt();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{const r=n?.meta?.layout;r&&typeof pn[r]=="function"&&await pn[r]()})}),e.hooks.hook("link:prefetch",n=>{if(an(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=id(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof Ai[i]=="function"&&Ai[i]();typeof s=="string"&&s in pn&&ov(pn[s])})}});function uv(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const xs=typeof window<"u",yn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),fv=(e,t,n)=>dv({l:e,k:t,s:n}),dv=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ne=e=>typeof e=="number"&&isFinite(e),hd=e=>lo(e)==="[object Date]",Ms=e=>lo(e)==="[object RegExp]",ao=e=>fe(e)&&Object.keys(e).length===0,Ae=Object.assign,hv=Object.create,ye=(e=null)=>hv(e);function ec(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function tc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function pv(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(r,s,o)=>`${s}="${tc(o)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(r,s,o)=>`${s}='${tc(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(r=>{e=e.replace(r,"$1javascript:")}),e}const gv=Object.prototype.hasOwnProperty;function gt(e,t){return gv.call(e,t)}const Le=Array.isArray,Ce=e=>typeof e=="function",G=e=>typeof e=="string",Se=e=>typeof e=="boolean",ce=e=>e!==null&&typeof e=="object",mv=e=>ce(e)&&Ce(e.then)&&Ce(e.catch),pd=Object.prototype.toString,lo=e=>pd.call(e),fe=e=>lo(e)==="[object Object]",yv=e=>e==null?"":Le(e)||fe(e)&&e.toString===pd?JSON.stringify(e,null,2):String(e);function ga(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}const hs=e=>!ce(e)||Le(e);function zn(e,t){if(hs(e)||hs(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{o!=="__proto__"&&(ce(r[o])&&!ce(s[o])&&(s[o]=Array.isArray(r[o])?[]:ye()),hs(s[o])||hs(r[o])?s[o]=r[o]:n.push({src:r[o],des:s[o]}))})}}function _v(e,t=e.getCurrentLanguage(),n=e.getCurrentDirection()){const r={htmlAttrs:{},link:[],meta:[]};if(e.dir&&(r.htmlAttrs.dir=n),e.lang&&t&&(r.htmlAttrs.lang=t),e.seo){const s=vv(e);r.link=r.link.concat(s,wv(e)),r.meta=r.meta.concat(Cv(e),Sv(e),Rv(e,e.locales.map(o=>o.language||o.code)))}return r}function bv(e){const t=new Map;for(const n of e){if(!n.language){console.warn("Locale `language` ISO code is required to generate alternate link");continue}const[r,s]=n.language.split("-");r&&s&&(n.isCatchallLocale||!t.has(r))&&t.set(r,n),t.set(n.language,n)}return t}function vv(e){if(!e.hreflangLinks)return[];const t=[],n=bv(e.locales);for(const[r,s]of n.entries()){const o=Ev(r,s,e);o&&(t.push(o),e.defaultLocale&&e.defaultLocale===s.code&&t[0].hreflang!=="x-default"&&t.unshift({[e.key]:"i18n-xd",rel:"alternate",href:o.href,hreflang:"x-default"}))}return t}function Ev(e,t,n,r=n.strictCanonicals?n.getRouteWithoutQuery():void 0){const s=n.getLocalizedRoute(t.code,r);if(!s)return;const o=ro(an(s)?s:Pn(n.baseUrl,s),n.strictCanonicals?md(n):{});return{[n.key]:`i18n-alt-${e}`,rel:"alternate",href:o,hreflang:e}}function gd(e,t=e.getCurrentRoute()){const n=e.getLocaleRoute(Object.assign({},t,{path:void 0,name:e.getRouteBaseName(t)}));return n?ro(Pn(e.baseUrl,n.path),md(e)):""}function wv(e,t=gd(e)){return t?[{[e.key]:"i18n-can",rel:"canonical",href:t}]:[]}function md(e,t=e.getCurrentRoute()){const r=e.getLocaleRoute(Object.assign({},t,{path:void 0,name:e.getRouteBaseName(t)}))?.query??{},s={};for(const o of e.canonicalQueries.filter(i=>i in r)){s[o]??=[];for(const i of Tv(r[o]))s[o].push(i||"")}return s}function Cv(e,t=gd(e)){return t?[{[e.key]:"i18n-og-url",property:"og:url",content:t}]:[]}function Sv(e,t=e.getCurrentLanguage()){return t?[{[e.key]:"i18n-og",property:"og:locale",content:yd(t)}]:[]}function Rv(e,t,n=e.getCurrentLanguage()){return t.filter(s=>s&&s!==n).map(s=>({[e.key]:`i18n-og-alt-${s}`,property:"og:locale:alternate",content:yd(s)}))}function yd(e=""){return e.replace(/-/g,"_")}function Tv(e){return Array.isArray(e)?e:[e]}function _d(e,t,n=e.getLocale()){if(G(t)&&an(t,{acceptRelative:!0}))return t;try{return vd(e,t,n).fullPath}catch{return""}}function bd(e,t,n=e.getLocale()){try{return vd(e,t,n)}catch{return}}function Lv(e){if(!G(e))return Ae({},e);if(e[0]==="/"){const{pathname:t,search:n,hash:r}=fi(e);return{path:t,query:sa(n),hash:r}}return{name:e}}function vd(e,t,n){const r=Lv(t),s=e.router.resolve(e.resolveLocalizedRouteObject(r,n));return s.name?s:e.router.resolve(t)}function Ed(e,t,n=e.router.currentRoute.value){const r=e.getRouteBaseName(n);if(!r)return"";const s={name:r,params:Ae({},n.params,e.getLocalizedDynamicParams(t)),fullPath:n.fullPath,query:n.query,hash:n.hash,path:n.path,meta:n.meta},o=_d(e,s,t);return e.afterSwitchLocalePath(o,t)}function kv(e,t,n=e.getLocale(),r=e.getLocales(),s=e.getBaseUrl()){const o=r.find(a=>a.code===n)||{},i=typeof t.seo=="object"&&t.seo?.canonicalQueries||[];return s||console.warn("I18n `baseUrl` is required to generate valid SEO tag links."),{...t,key:"id",locales:r,baseUrl:s,canonicalQueries:i,hreflangLinks:e.routingOptions.hreflangLinks,defaultLocale:e.routingOptions.defaultLocale,strictCanonicals:e.routingOptions.strictCanonicals,getRouteBaseName:e.getRouteBaseName,getCurrentRoute:()=>e.router.currentRoute.value,getCurrentLanguage:()=>o.language,getCurrentDirection:()=>o.dir||"ltr",getLocaleRoute:a=>bd(e,a),getLocalizedRoute:(a,l)=>Ed(e,a,l),getRouteWithoutQuery:()=>{try{return Ae({},e.router.resolve({query:{}}),{meta:e.router.currentRoute.value.meta})}catch{return}}}}function Av(e,{dir:t=!0,lang:n=!0,seo:r=!0}){return _v(kv(e,{dir:t,lang:n,seo:r}))}function Pv(e=0){return t=>{const s=(typeof t=="string"?t:t.pathname).split("?")[0].split("/");return s[0]===""&&s.shift(),s.length>e&&s[e]||""}}const wd="___";function Cd(e){return typeof e=="string"?e:e!=null?e.toString():""}function $o(e){return Cd(typeof e=="object"?e?.name:e).split(wd)[0]}const Ov=Pv(0),Pi=e=>Ov(e),Iv=e=>e.split(wd).at(1)??"";function Nv(e){return String(typeof e!="object"?e:e?.name||e?.path||"")}function xv(e){const t=Nv(e);if(t[0]==="/")return Pi(t);const n=Iv(t);return n||(typeof e=="object"&&e?.path?Pi(String(e.path)):"")}function Mv(e){return t=>Cd(t)}function Dv(e){return t=>t}const Wr=["hu","en"],Ds={hu:[{key:"locale_hu_46json_ee06c965",load:()=>vt(()=>import("./DP_n9i02.js"),[],import.meta.url),cache:!0}],en:[{key:"locale_en_46json_0b63539c",load:()=>vt(()=>import("./CgyjcGAF.js"),[],import.meta.url),cache:!0}]},Fv=[],es=[{code:"hu",iso:"hu-HU",name:"Magyar",language:void 0},{code:"en",iso:"en-GB",name:"English",language:void 0}],Sd=new Map,Hv=Tf((e,t,n)=>{if(t==="messages"||t==="datetimeFormats"||t==="numberFormats")return e[t]??=ye(null),zn(n,e[t]),!0});async function $v(e){const t=ue();let n={messages:ye(null)};for(const r of e){const s=await r().then(i=>Rd(i)?i.default:i),o=Ce(s)?await t.runWithContext(()=>s()):s;n=Hv(ye(null),o,n)}return n.fallbackLocale??=!1,n}const Rd=e=>lo(e)==="[object Module]";async function Uv(e,t){const n=ue();try{const r=await n.runWithContext(t.load).then(s=>Rd(s)?s.default:s);return Ce(r)?await n.runWithContext(()=>r(e)):r}catch(r){throw new Error(`Failed loading locale (${e}): `+r.message)}}async function jv(e,t=[]){const n=ue(),r=await Promise.all(t.map(async o=>{const i=Bv(o),a=i||await n.runWithContext(()=>Uv(e,o));return!i&&o.cache!==!1&&Sd.set(o.key,{ttl:Date.now()+86400*1e3,value:a}),a})),s={};for(const o of r)zn(o,s);return s}function Bv(e){if(e.cache===!1)return;const t=Sd.get(e.key);if(t!=null)return t.ttl>Date.now()?t.value:void 0}function ma(e){return e!=null&&"global"in e&&"mode"in e?e.global:e}function ps(e){const t=ma(e);return"__composer"in t?t.__composer:t}function co(e,t){return e?e.$config.public.i18n:so().public.i18n}function uo(e){const t=co(e).detectBrowserLanguage,n=t||{};return{...n,enabled:!!t,cookieKey:n.cookieKey||"i18n_redirected"}}function Vv(e){if(e)return{path:"/"+(G(e)?e:e.path).replace(/^\//,""),code:!G(e)&&e.statusCode||302}}function Wv(e){return Array.isArray(e)?e:[e]}function Kv(e,t,n){const r=(o="")=>o.replace(/https?:\/\//,""),s=e.filter(o=>r(o.domain)===t||Wv(o.domains).includes(t));return s.length<=1?s[0]?.code:s.find(o=>o.code===n)?.code||s.find(o=>o.defaultForDomains?.includes(t)??o.domainDefault)?.code}function Gv(e,t,n){const r=es.find(o=>o.code===n),s=e?.[n]?.domain||r?.domain||r?.domains?.find(o=>o===t.host);if(s)return an(s,{strict:!0})?s:t.protocol+"//"+s}function qv(e){const t={};for(const n of Wr){const r=Yv(e,[n]),s=Xv(n,r);t[n]={fallbacks:r,cacheable:s}}return t}function Yv(e,t){if(e===!1)return[];if(Le(e))return e;let n=[];if(G(e))return t.every(s=>s!==e)&&n.push(e),n;const r=[...t,"default"];for(const s of r)s in e&&(n=[...n,...e[s].filter(Boolean)]);return n}function nc(e){return Ds[e]!=null&&Ds[e].every(t=>t.cache!==!1)}function Xv(e,t){return nc(e)&&t.every(n=>nc(n))}function Jv(e){return es.find(t=>!!t.defaultForDomains?.includes(e))?.code}const Zn=e=>Wr.includes(e||""),rc=e=>Zn(e)?e:void 0;var Qv={hu:"349b7781",en:"349b7781"};const Td=()=>ud("i18n:cached-locale-configs",()=>{}),Ld=()=>ud("i18n:resolved-locale",()=>"");function zv({cookieCrossOrigin:e,cookieDomain:t,cookieSecure:n,cookieKey:r}){const s=new Date;return fd(r||"i18n_redirected",{path:"/",readonly:!1,expires:new Date(s.setDate(s.getDate()+365)),sameSite:e?"none":"lax",domain:t||void 0,secure:e||n})}function Zv(e,t,n){const r=ma(t),s=co(e),o=uo(e),i=Td(),a=zv(o),l=new Set,u=R=>i.value[R],c=R=>Gv(s.domainLocales,dd(),R),f=hE(e,s.baseUrl),d=Ld(),h=async R=>{const b=u(R)?.fallbacks??[];b.includes(R)||b.push(R);for(const E of b){const g=await e.runWithContext(()=>jv(E,Ds[E]));r.mergeLocaleMessage(E,g)}},_=async R=>{if(!(R in Ds))return;const b=u(R)?.cacheable?{}:{"Cache-Control":"no-cache"},g=Pn("","/_i18n",Qv[R],R,"messages.json"),y=await $fetch(g,{headers:b});for(const C of Object.keys(y))r.mergeLocaleMessage(C,y[C])},m={vueI18n:t,initial:!0,preloaded:!1,config:s,rootRedirect:Vv(s.rootRedirect),redirectStatusCode:s.redirectStatusCode??302,dynamicResourcesSSG:!1,getDefaultLocale:()=>n,getLocale:()=>me(r.locale),setLocale:async R=>{const b=m.getLocale();R===b||!Zn(R)||(ve(r.locale)?r.locale.value=R:r.locale=R,await e.callHook("i18n:localeSwitched",{newLocale:R,oldLocale:b}),d.value=R)},setLocaleSuspend:async R=>{Zn(R)&&(m.vueI18n.__pendingLocale=R,m.vueI18n.__pendingLocalePromise=new Promise(b=>{m.vueI18n.__resolvePendingLocalePromise=async()=>{m.setCookieLocale(R),await m.setLocale(R),m.vueI18n.__pendingLocale=void 0,b()}}),(e.isHydrating||!m.config.skipSettingLocaleOnNavigate)&&await m.vueI18n.__resolvePendingLocalePromise?.())},getLocales:()=>me(r.locales).map(R=>G(R)?{code:R}:R),setCookieLocale:R=>{o.useCookie&&Zn(R)&&(a.value=R)},getBaseUrl:R=>Pn(R&&c(R)||f(),e.$config.app.baseURL),loadMessages:async R=>{if(!(e.isHydrating&&l.has(R)))try{return m.dynamicResourcesSSG?await h(R):await _(R)}catch(b){console.warn(`Failed to load messages for locale "${R}"`,b)}finally{l.add(R)}},composableCtx:void 0};return m.composableCtx=cE(m,e),m}function ya(e){if(e._nuxtI18n==null)throw new Error("Nuxt I18n context has not been set up yet.");return e._nuxtI18n}function eE(e,t){const n=[];for(const[r,s]of t.entries()){const o=e.find(i=>i.language?.toLowerCase()===s.toLowerCase());if(o){n.push({code:o.code,score:1-r/t.length});break}}for(const[r,s]of t.entries()){const o=s.split("-")[0].toLowerCase(),i=e.find(a=>a.language?.split("-")[0].toLowerCase()===o);if(i){n.push({code:i.code,score:.999-r/t.length});break}}return n}function tE(e,t){return e.score===t.score?t.code.length-e.code.length:t.score-e.score}function nE(e,t){return eE(e.map(r=>({code:r.code,language:r.language||r.code})),t).sort(tE).at(0)?.code??""}const rE=(e,t)=>fd(t).value||void 0,sE=(e,t)=>xv(t),oE=e=>nE(es,navigator.languages),iE=(e,t,n)=>{const r=new URL(window.location.href).host,s=es.map(o=>({...o,domain:n[o.code]?.domain??o.domain}));return Kv(s,r,Pi(t))},_a=(e,t,n)=>{const r=co(n);return{cookie:()=>rE(e,t.cookieKey),header:()=>{},navigator:()=>oE(),host:s=>iE(e,s,r.domainLocales),route:s=>sE(e,s)}},aE=e=>!!e.path&&!e.name;function fo(e){const t=e?._nuxtI18n?.composableCtx;if(!t)throw new Error("i18n context is not initialized. Ensure the i18n plugin is installed and the composable is used within a Vue component or setup function.");return t}const lE=Br;function cE(e,t=ue()){const n=tt();_a(void 0,uo(t),t);const r=e.getDefaultLocale(),s=Mv();function o(u,c){u.name=$o(u.name||n.currentRoute.value);const f=s(u.name,c);return n.hasRoute(f)&&(u.name=f),u.name=f,u}const i=Dv();function a(u,c){const f=i(u,c),d=$o(f);if(d){const h=s(d,c);return n.hasRoute(h),f.name=h,f}return f.path=lE(f.path,!0),f}const l={router:n,_head:void 0,get head(){return this._head??=s_({}),this._head},metaState:{htmlAttrs:{},meta:[],link:[]},seoSettings:{dir:!1,lang:!1,seo:!1},localePathPayload:uE(),routingOptions:{defaultLocale:r,strictCanonicals:e.config.experimental.alternateLinkCanonicalQueries??!0,hreflangLinks:!1},getLocale:e.getLocale,getLocales:e.getLocales,getBaseUrl:e.getBaseUrl,getRouteBaseName:$o,getRouteLocalizedParams:()=>n.currentRoute.value.meta.nuxtI18nInternal??{},getLocalizedDynamicParams:u=>l.getRouteLocalizedParams()?.[u],afterSwitchLocalePath:(u,c)=>(l.getRouteLocalizedParams(),u),resolveLocalizedRouteObject:(u,c)=>aE(u)?a(u,c):o(u,c)};return l}function uE(e=ue()){const t=document.querySelector(`[data-nuxt-i18n-slp="${e._id}"]`)?.textContent;return JSON.parse(t||"{}")}async function kd(e,t){const n=ya(e),r=n.getLocale();if(t===r&&!n.initial&&(!n.vueI18n.__pendingLocale||n.vueI18n.__pendingLocale===t))return t;const s={oldLocale:r,newLocale:t,initialSetup:n.initial,context:e};let o=await e.callHook("i18n:beforeLocaleSwitch",s);return o!=null,o??=s.newLocale,Zn(o)&&(t=o),await n.loadMessages(t),await n.setLocaleSuspend(t),t}function fE(e,t,n){return!1}function dE(e,t){const n=uo(e),r=_a(void 0,n,e),s=ya(e),o=G(t)?t:t.path;function*i(){s.initial&&n.enabled&&!fE(n,o,r.route(o))&&(yield r.cookie(),yield r.header(),yield r.navigator(),yield n.fallbackLocale)}for(const a of i())if(a&&Zn(a))return a;return s.getLocale()||s.getDefaultLocale()||""}function hE(e,t,n,r){return Ce(t)?()=>t(e):()=>t??""}function pE(e,t,n){return{line:e,column:t,offset:n}}function Oi(e,t,n){return{start:e,end:t}}const pe={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},gE=17;function ho(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=e,a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=r,a}function mE(e){throw e}const At=" ",yE="\r",We=` +`,_E="\u2028",bE="\u2029";function vE(e){const t=e;let n=0,r=1,s=1,o=0;const i=L=>t[L]===yE&&t[L+1]===We,a=L=>t[L]===We,l=L=>t[L]===bE,u=L=>t[L]===_E,c=L=>i(L)||a(L)||l(L)||u(L),f=()=>n,d=()=>r,h=()=>s,_=()=>o,m=L=>i(L)||l(L)||u(L)?We:t[L],R=()=>m(n),b=()=>m(n+o);function E(){return o=0,c(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function g(){return i(n+o)&&o++,o++,t[n+o]}function y(){n=0,r=1,s=1,o=0}function C(L=0){o=L}function A(){const L=n+o;for(;L!==n;)E();o=0}return{index:f,line:d,column:h,peekOffset:_,charAt:m,currentChar:R,currentPeek:b,next:E,peek:g,reset:y,resetPeek:C,skipToPeek:A}}const Wt=void 0,EE=".",sc="'",wE="tokenizer";function CE(e,t={}){const n=t.location!==!1,r=vE(e),s=()=>r.index(),o=()=>pE(r.line(),r.column(),r.index()),i=o(),a=s(),l={currentType:13,offset:a,startLoc:i,endLoc:i,lastType:13,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function f(p,w,k,...O){const x=u();if(w.column+=k,w.offset+=k,c){const j=n?Oi(x.startLoc,w):null,T=ho(p,j,{domain:wE,args:O});c(T)}}function d(p,w,k){p.endLoc=o(),p.currentType=w;const O={type:w};return n&&(O.loc=Oi(p.startLoc,p.endLoc)),k!=null&&(O.value=k),O}const h=p=>d(p,13);function _(p,w){return p.currentChar()===w?(p.next(),w):(f(pe.EXPECTED_TOKEN,o(),0,w),"")}function m(p){let w="";for(;p.currentPeek()===At||p.currentPeek()===We;)w+=p.currentPeek(),p.peek();return w}function R(p){const w=m(p);return p.skipToPeek(),w}function b(p){if(p===Wt)return!1;const w=p.charCodeAt(0);return w>=97&&w<=122||w>=65&&w<=90||w===95}function E(p){if(p===Wt)return!1;const w=p.charCodeAt(0);return w>=48&&w<=57}function g(p,w){const{currentType:k}=w;if(k!==2)return!1;m(p);const O=b(p.currentPeek());return p.resetPeek(),O}function y(p,w){const{currentType:k}=w;if(k!==2)return!1;m(p);const O=p.currentPeek()==="-"?p.peek():p.currentPeek(),x=E(O);return p.resetPeek(),x}function C(p,w){const{currentType:k}=w;if(k!==2)return!1;m(p);const O=p.currentPeek()===sc;return p.resetPeek(),O}function A(p,w){const{currentType:k}=w;if(k!==7)return!1;m(p);const O=p.currentPeek()===".";return p.resetPeek(),O}function L(p,w){const{currentType:k}=w;if(k!==8)return!1;m(p);const O=b(p.currentPeek());return p.resetPeek(),O}function F(p,w){const{currentType:k}=w;if(!(k===7||k===11))return!1;m(p);const O=p.currentPeek()===":";return p.resetPeek(),O}function N(p,w){const{currentType:k}=w;if(k!==9)return!1;const O=()=>{const j=p.currentPeek();return j==="{"?b(p.peek()):j==="@"||j==="|"||j===":"||j==="."||j===At||!j?!1:j===We?(p.peek(),O()):W(p,!1)},x=O();return p.resetPeek(),x}function D(p){m(p);const w=p.currentPeek()==="|";return p.resetPeek(),w}function W(p,w=!0){const k=(x=!1,j="")=>{const T=p.currentPeek();return T==="{"||T==="@"||!T?x:T==="|"?!(j===At||j===We):T===At?(p.peek(),k(!0,At)):T===We?(p.peek(),k(!0,We)):!0},O=k();return w&&p.resetPeek(),O}function $(p,w){const k=p.currentChar();return k===Wt?Wt:w(k)?(p.next(),k):null}function X(p){const w=p.charCodeAt(0);return w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===95||w===36}function te(p){return $(p,X)}function se(p){const w=p.charCodeAt(0);return w>=97&&w<=122||w>=65&&w<=90||w>=48&&w<=57||w===95||w===36||w===45}function K(p){return $(p,se)}function J(p){const w=p.charCodeAt(0);return w>=48&&w<=57}function q(p){return $(p,J)}function re(p){const w=p.charCodeAt(0);return w>=48&&w<=57||w>=65&&w<=70||w>=97&&w<=102}function nt(p){return $(p,re)}function qe(p){let w="",k="";for(;w=q(p);)k+=w;return k}function $e(p){let w="";for(;;){const k=p.currentChar();if(k==="\\"){const O=p.peek();O==="{"||O==="}"||O==="@"||O==="|"||O==="\\"?(w+=k+O,p.next(),p.next()):(p.resetPeek(),w+=k,p.next())}else{if(k==="{"||k==="}"||k==="@"||k==="|"||!k)break;if(k===At||k===We)if(W(p))w+=k,p.next();else{if(D(p))break;w+=k,p.next()}else w+=k,p.next()}}return w}function Rt(p){R(p);let w="",k="";for(;w=K(p);)k+=w;const O=p.currentChar();if(O&&O!=="}"&&O!==Wt&&O!==At&&O!==We&&O!==" "){const x=Q(p);return f(pe.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,k+x),k+x}return p.currentChar()===Wt&&f(pe.UNTERMINATED_CLOSING_BRACE,o(),0),k}function Tt(p){R(p);let w="";return p.currentChar()==="-"?(p.next(),w+=`-${qe(p)}`):w+=qe(p),p.currentChar()===Wt&&f(pe.UNTERMINATED_CLOSING_BRACE,o(),0),w}function Lt(p){return p!==sc&&p!==We}function Ve(p){R(p),_(p,"'");let w="",k="";for(;w=$(p,Lt);)w==="\\"?k+=H(p):k+=w;const O=p.currentChar();return O===We||O===Wt?(f(pe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),O===We&&(p.next(),_(p,"'")),k):(_(p,"'"),k)}function H(p){const w=p.currentChar();switch(w){case"\\":case"'":return p.next(),`\\${w}`;case"u":return Y(p,w,4);case"U":return Y(p,w,6);default:return f(pe.UNKNOWN_ESCAPE_SEQUENCE,o(),0,w),""}}function Y(p,w,k){_(p,w);let O="";for(let x=0;x{const O=p.currentChar();return O==="{"||O==="@"||O==="|"||O==="("||O===")"||!O||O===At?k:(k+=O,p.next(),w(k))};return w("")}function v(p){R(p);const w=_(p,"|");return R(p),w}function S(p,w){let k=null;switch(p.currentChar()){case"{":return w.braceNest>=1&&f(pe.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),p.next(),k=d(w,2,"{"),R(p),w.braceNest++,k;case"}":return w.braceNest>0&&w.currentType===2&&f(pe.EMPTY_PLACEHOLDER,o(),0),p.next(),k=d(w,3,"}"),w.braceNest--,w.braceNest>0&&R(p),w.inLinked&&w.braceNest===0&&(w.inLinked=!1),k;case"@":return w.braceNest>0&&f(pe.UNTERMINATED_CLOSING_BRACE,o(),0),k=P(p,w)||h(w),w.braceNest=0,k;default:{let x=!0,j=!0,T=!0;if(D(p))return w.braceNest>0&&f(pe.UNTERMINATED_CLOSING_BRACE,o(),0),k=d(w,1,v(p)),w.braceNest=0,w.inLinked=!1,k;if(w.braceNest>0&&(w.currentType===4||w.currentType===5||w.currentType===6))return f(pe.UNTERMINATED_CLOSING_BRACE,o(),0),w.braceNest=0,U(p,w);if(x=g(p,w))return k=d(w,4,Rt(p)),R(p),k;if(j=y(p,w))return k=d(w,5,Tt(p)),R(p),k;if(T=C(p,w))return k=d(w,6,Ve(p)),R(p),k;if(!x&&!j&&!T)return k=d(w,12,Q(p)),f(pe.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,k.value),R(p),k;break}}return k}function P(p,w){const{currentType:k}=w;let O=null;const x=p.currentChar();switch((k===7||k===8||k===11||k===9)&&(x===We||x===At)&&f(pe.INVALID_LINKED_FORMAT,o(),0),x){case"@":return p.next(),O=d(w,7,"@"),w.inLinked=!0,O;case".":return R(p),p.next(),d(w,8,".");case":":return R(p),p.next(),d(w,9,":");default:return D(p)?(O=d(w,1,v(p)),w.braceNest=0,w.inLinked=!1,O):A(p,w)||F(p,w)?(R(p),P(p,w)):L(p,w)?(R(p),d(w,11,ne(p))):N(p,w)?(R(p),x==="{"?S(p,w)||O:d(w,10,_e(p))):(k===7&&f(pe.INVALID_LINKED_FORMAT,o(),0),w.braceNest=0,w.inLinked=!1,U(p,w))}}function U(p,w){let k={type:13};if(w.braceNest>0)return S(p,w)||h(w);if(w.inLinked)return P(p,w)||h(w);switch(p.currentChar()){case"{":return S(p,w)||h(w);case"}":return f(pe.UNBALANCED_CLOSING_BRACE,o(),0),p.next(),d(w,3,"}");case"@":return P(p,w)||h(w);default:{if(D(p))return k=d(w,1,v(p)),w.braceNest=0,w.inLinked=!1,k;if(W(p))return d(w,0,$e(p));break}}return k}function M(){const{currentType:p,offset:w,startLoc:k,endLoc:O}=l;return l.lastType=p,l.lastOffset=w,l.lastStartLoc=k,l.lastEndLoc=O,l.offset=s(),l.startLoc=o(),r.currentChar()===Wt?d(l,13):U(r,l)}return{nextToken:M,currentOffset:s,currentPosition:o,context:u}}const SE="parser",RE=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g,TE=/\\([\\@{}|])/g;function LE(e,t){return t}function kE(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function AE(e={}){const t=e.location!==!1,{onError:n}=e;function r(b,E,g,y,...C){const A=b.currentPosition();if(A.offset+=y,A.column+=y,n){const L=t?Oi(g,A):null,F=ho(E,L,{domain:SE,args:C});n(F)}}function s(b,E,g){const y={type:b};return t&&(y.start=E,y.end=E,y.loc={start:g,end:g}),y}function o(b,E,g,y){t&&(b.end=E,b.loc&&(b.loc.end=g))}function i(b,E){const g=b.context(),y=s(3,g.offset,g.startLoc);return y.value=E.replace(TE,LE),o(y,b.currentOffset(),b.currentPosition()),y}function a(b,E){const g=b.context(),{lastOffset:y,lastStartLoc:C}=g,A=s(5,y,C);return A.index=parseInt(E,10),b.nextToken(),o(A,b.currentOffset(),b.currentPosition()),A}function l(b,E){const g=b.context(),{lastOffset:y,lastStartLoc:C}=g,A=s(4,y,C);return A.key=E,b.nextToken(),o(A,b.currentOffset(),b.currentPosition()),A}function u(b,E){const g=b.context(),{lastOffset:y,lastStartLoc:C}=g,A=s(9,y,C);return A.value=E.replace(RE,kE),b.nextToken(),o(A,b.currentOffset(),b.currentPosition()),A}function c(b){const E=b.nextToken(),g=b.context(),{lastOffset:y,lastStartLoc:C}=g,A=s(8,y,C);return E.type!==11?(r(b,pe.UNEXPECTED_EMPTY_LINKED_MODIFIER,g.lastStartLoc,0),A.value="",o(A,y,C),{nextConsumeToken:E,node:A}):(E.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,Pt(E)),A.value=E.value||"",o(A,b.currentOffset(),b.currentPosition()),{node:A})}function f(b,E){const g=b.context(),y=s(7,g.offset,g.startLoc);return y.value=E,o(y,b.currentOffset(),b.currentPosition()),y}function d(b){const E=b.context(),g=s(6,E.offset,E.startLoc);let y=b.nextToken();if(y.type===8){const C=c(b);g.modifier=C.node,y=C.nextConsumeToken||b.nextToken()}switch(y.type!==9&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(y)),y=b.nextToken(),y.type===2&&(y=b.nextToken()),y.type){case 10:y.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(y)),g.key=f(b,y.value||"");break;case 4:y.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(y)),g.key=l(b,y.value||"");break;case 5:y.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(y)),g.key=a(b,y.value||"");break;case 6:y.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(y)),g.key=u(b,y.value||"");break;default:{r(b,pe.UNEXPECTED_EMPTY_LINKED_KEY,E.lastStartLoc,0);const C=b.context(),A=s(7,C.offset,C.startLoc);return A.value="",o(A,C.offset,C.startLoc),g.key=A,o(g,C.offset,C.startLoc),{nextConsumeToken:y,node:g}}}return o(g,b.currentOffset(),b.currentPosition()),{node:g}}function h(b){const E=b.context(),g=E.currentType===1?b.currentOffset():E.offset,y=E.currentType===1?E.endLoc:E.startLoc,C=s(2,g,y);C.items=[];let A=null;do{const N=A||b.nextToken();switch(A=null,N.type){case 0:N.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(N)),C.items.push(i(b,N.value||""));break;case 5:N.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(N)),C.items.push(a(b,N.value||""));break;case 4:N.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(N)),C.items.push(l(b,N.value||""));break;case 6:N.value==null&&r(b,pe.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,Pt(N)),C.items.push(u(b,N.value||""));break;case 7:{const D=d(b);C.items.push(D.node),A=D.nextConsumeToken||null;break}}}while(E.currentType!==13&&E.currentType!==1);const L=E.currentType===1?E.lastOffset:b.currentOffset(),F=E.currentType===1?E.lastEndLoc:b.currentPosition();return o(C,L,F),C}function _(b,E,g,y){const C=b.context();let A=y.items.length===0;const L=s(1,E,g);L.cases=[],L.cases.push(y);do{const F=h(b);A||(A=F.items.length===0),L.cases.push(F)}while(C.currentType!==13);return A&&r(b,pe.MUST_HAVE_MESSAGES_IN_PLURAL,g,0),o(L,b.currentOffset(),b.currentPosition()),L}function m(b){const E=b.context(),{offset:g,startLoc:y}=E,C=h(b);return E.currentType===13?C:_(b,g,y,C)}function R(b){const E=CE(b,Ae({},e)),g=E.context(),y=s(0,g.offset,g.startLoc);return t&&y.loc&&(y.loc.source=b),y.body=m(E),e.onCacheKey&&(y.cacheKey=e.onCacheKey(b)),g.currentType!==13&&r(E,pe.UNEXPECTED_LEXICAL_ANALYSIS,g.lastStartLoc,0,b[g.offset]||""),o(y,E.currentOffset(),E.currentPosition()),y}return{parse:R}}function Pt(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function PE(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function oc(e,t){for(let n=0;nic(n)),e}function ic(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function l(m,R){i.code+=m}function u(m,R=!0){const b=R?r:"";l(s?b+" ".repeat(m):b)}function c(m=!0){const R=++i.indentLevel;m&&u(R)}function f(m=!0){const R=--i.indentLevel;m&&u(R)}function d(){u(i.indentLevel)}return{context:a,push:l,indent:c,deindent:f,newline:d,helper:m=>`_${m}`,needIndent:()=>i.needIndent}}function xE(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),lr(e,t.key),t.modifier?(e.push(", "),lr(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function ME(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=G(t.mode)?t.mode:"normal",r=G(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=NE(e,{filename:r,breakLineCode:s,needIndent:o});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(o),i.length>0&&(a.push(`const { ${ga(i.map(c=>`${c}: _${c}`),", ")} } = ctx`),a.newline()),a.push("return "),lr(a,e),a.deindent(o),a.push("}"),delete e.helpers;const{code:l,map:u}=a.context();return{ast:e,code:l,map:u?u.toJSON():void 0}};function $E(e,t={}){const n=Ae({},t),r=!!n.jit,s=!!n.minify,o=n.optimize==null?!0:n.optimize,a=AE(n).parse(e);return r?(o&&IE(a),s&&Vn(a),{ast:a,code:""}):(OE(a,n),HE(a,n))}function $t(e){return ce(e)&&va(e)===0&&(gt(e,"b")||gt(e,"body"))}const Ad=["b","body"];function UE(e){return _n(e,Ad)}const Pd=["c","cases"];function jE(e){return _n(e,Pd,[])}const Od=["s","static"];function BE(e){return _n(e,Od)}const Id=["i","items"];function VE(e){return _n(e,Id,[])}const Nd=["t","type"];function va(e){return _n(e,Nd)}const xd=["v","value"];function gs(e,t){const n=_n(e,xd);if(n!=null)return n;throw Kr(t)}const Md=["m","modifier"];function WE(e){return _n(e,Md)}const Dd=["k","key"];function KE(e){const t=_n(e,Dd);if(t)return t;throw Kr(6)}function _n(e,t,n){for(let r=0;rGE(n,e)}function GE(e,t){const n=UE(t);if(n==null)throw Kr(0);if(va(n)===1){const o=jE(n);return e.plural(o.reduce((i,a)=>[...i,ac(e,a)],[]))}else return ac(e,n)}function ac(e,t){const n=BE(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=VE(t).reduce((s,o)=>[...s,Ii(e,o)],[]);return e.normalize(r)}}function Ii(e,t){const n=va(t);switch(n){case 3:return gs(t,n);case 9:return gs(t,n);case 4:{const r=t;if(gt(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(gt(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw Kr(n)}case 5:{const r=t;if(gt(r,"i")&&Ne(r.i))return e.interpolate(e.list(r.i));if(gt(r,"index")&&Ne(r.index))return e.interpolate(e.list(r.index));throw Kr(n)}case 6:{const r=t,s=WE(r),o=KE(r);return e.linked(Ii(e,o),s?Ii(e,s):void 0,e.type)}case 7:return gs(t,n);case 8:return gs(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const qE=e=>e;let ms=ye();function YE(e,t={}){let n=!1;const r=t.onError||mE;return t.onError=s=>{n=!0,r(s)},{...$E(e,t),detectError:n}}function XE(e,t){if(G(e)){Se(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||qE)(e),s=ms[r];if(s)return s;const{ast:o,detectError:i}=YE(e,{...t,location:!1,jit:!0}),a=Uo(o);return i?a:ms[r]=a}else{const n=e.cacheKey;if(n){const r=ms[n];return r||(ms[n]=Uo(e))}else return Uo(e)}}const Xt={INVALID_ARGUMENT:gE,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},JE=24;function Jt(e){return ho(e,null,void 0)}function Ea(e,t){return t.locale!=null?lc(t.locale):lc(e.locale)}let jo;function lc(e){if(G(e))return e;if(Ce(e)){if(e.resolvedOnce&&jo!=null)return jo;if(e.constructor.name==="Function"){const t=e();if(mv(t))throw Jt(Xt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return jo=t}else throw Jt(Xt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Jt(Xt.NOT_SUPPORT_LOCALE_TYPE)}function QE(e,t,n){return[...new Set([n,...Le(t)?t:ce(t)?Object.keys(t):G(t)?[t]:[n]])]}function Ni(e,t,n){const r=G(n)?n:Fs,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let o=s.__localeChainCache.get(r);if(!o){o=[];let i=[n];for(;Le(i);)i=cc(o,i,t);const a=Le(t)||!fe(t)?t:t.default?t.default:null;i=G(a)?[a]:a,Le(i)&&cc(o,i,!1),s.__localeChainCache.set(r,o)}return o}function cc(e,t,n){let r=!0;for(let s=0;s{i===void 0?i=a:i+=a},d[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,r=4,d[0]();else{if(s=0,i===void 0||(i=sw(i),i===!1))return!1;d[1]()}};function h(){const _=e[n+1];if(r===5&&_==="'"||r===6&&_==='"')return n++,a="\\"+_,d[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&h())){if(l=rw(o),f=bn[r],u=f[l]||f.l||8,u===8||(r=u[0],u[1]!==void 0&&(c=d[u[1]],c&&(a=o,c()===!1))))return;if(r===7)return t}}const uc=new Map;function iw(e,t){return ce(e)?e[t]:null}function aw(e,t){if(!ce(e))return null;let n=uc.get(t);if(n||(n=ow(t),n&&uc.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;o`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function cw(){return{upper:(e,t)=>t==="text"&&G(e)?e.toUpperCase():t==="vnode"&&ce(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&G(e)?e.toLowerCase():t==="vnode"&&ce(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&G(e)?fc(e):t==="vnode"&&ce(e)&&"__v_isVNode"in e?fc(e.children):e}}let Hd;function uw(e){Hd=e}let $d;function fw(e){$d=e}let Ud;function dw(e){Ud=e}let jd=null;const dc=e=>{jd=e},hw=()=>jd;let hc=0;function pw(e={}){const t=Ce(e.onWarn)?e.onWarn:uv,n=G(e.version)?e.version:lw,r=G(e.locale)||Ce(e.locale)?e.locale:Fs,s=Ce(r)?Fs:r,o=Le(e.fallbackLocale)||fe(e.fallbackLocale)||G(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=fe(e.messages)?e.messages:Bo(s),a=fe(e.datetimeFormats)?e.datetimeFormats:Bo(s),l=fe(e.numberFormats)?e.numberFormats:Bo(s),u=Ae(ye(),e.modifiers,cw()),c=e.pluralRules||ye(),f=Ce(e.missing)?e.missing:null,d=Se(e.missingWarn)||Ms(e.missingWarn)?e.missingWarn:!0,h=Se(e.fallbackWarn)||Ms(e.fallbackWarn)?e.fallbackWarn:!0,_=!!e.fallbackFormat,m=!!e.unresolving,R=Ce(e.postTranslation)?e.postTranslation:null,b=fe(e.processor)?e.processor:null,E=Se(e.warnHtmlMessage)?e.warnHtmlMessage:!0,g=!!e.escapeParameter,y=Ce(e.messageCompiler)?e.messageCompiler:Hd,C=Ce(e.messageResolver)?e.messageResolver:$d||iw,A=Ce(e.localeFallbacker)?e.localeFallbacker:Ud||QE,L=ce(e.fallbackContext)?e.fallbackContext:void 0,F=e,N=ce(F.__datetimeFormatters)?F.__datetimeFormatters:new Map,D=ce(F.__numberFormatters)?F.__numberFormatters:new Map,W=ce(F.__meta)?F.__meta:{};hc++;const $={version:n,cid:hc,locale:r,fallbackLocale:o,messages:i,modifiers:u,pluralRules:c,missing:f,missingWarn:d,fallbackWarn:h,fallbackFormat:_,unresolving:m,postTranslation:R,processor:b,warnHtmlMessage:E,escapeParameter:g,messageCompiler:y,messageResolver:C,localeFallbacker:A,fallbackContext:L,onWarn:t,__meta:W};return $.datetimeFormats=a,$.numberFormats=l,$.__datetimeFormatters=N,$.__numberFormatters=D,$}const Bo=e=>({[e]:ye()});function wa(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const a=o(e,n,t,s);return G(a)?a:t}else return t}function Er(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function gw(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function mw(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;r{Bd.includes(l)?i[l]=n[l]:o[l]=n[l]}),G(r)?o.locale=r:fe(r)&&(i=r),fe(s)&&(i=s),[o.key||"",a,o,i]}function gc(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__datetimeFormatters.has(o)&&r.__datetimeFormatters.delete(o)}}function mc(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:a}=e;if(!Ne(t[0]))return Hs;const[l,u,c,f]=Mi(...t),d=Se(c.missingWarn)?c.missingWarn:e.missingWarn;Se(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const h=!!c.part,_=Ea(e,c),m=i(e,s,_);if(!G(l)||l==="")return new Intl.NumberFormat(_.replace(/!/g,""),f).format(u);let R={},b,E=null;const g="number format";for(let A=0;A{Vd.includes(l)?i[l]=n[l]:o[l]=n[l]}),G(r)?o.locale=r:fe(r)&&(i=r),fe(s)&&(i=s),[o.key||"",a,o,i]}function yc(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__numberFormatters.has(o)&&r.__numberFormatters.delete(o)}}const yw=e=>e,_w=e=>"",bw="text",vw=e=>e.length===0?"":ga(e),Ew=yv;function Vo(e,t){return e=Math.abs(e),t===2?e===1?0:1:Math.min(e,2)}function ww(e){const t=Ne(e.pluralIndex)?e.pluralIndex:-1;return Ne(e.named?.count)?e.named.count:Ne(e.named?.n)?e.named.n:t}function Cw(e={}){const t=e.locale,n=ww(e),r=G(t)&&Ce(e.pluralRules?.[t])?e.pluralRules[t]:Vo,s=r===Vo?void 0:Vo,o=b=>b[r(n,b.length,s)],i=e.list||[],a=b=>i[b],l=e.named||ye();Ne(e.pluralIndex)&&(l.count||=e.pluralIndex,l.n||=e.pluralIndex);const u=b=>l[b];function c(b,E){const g=Ce(e.messages)?e.messages(b,!!E):ce(e.messages)?e.messages[b]:!1;return g||(e.parent?e.parent.message(b):_w)}const f=b=>e.modifiers?e.modifiers[b]:yw,d=Ce(e.processor?.normalize)?e.processor.normalize:vw,h=Ce(e.processor?.interpolate)?e.processor.interpolate:Ew,_=G(e.processor?.type)?e.processor.type:bw,R={list:a,named:u,plural:o,linked:(b,...E)=>{const[g,y]=E;let C="text",A="";E.length===1?ce(g)?(A=g.modifier||A,C=g.type||C):G(g)&&(A=g||A):E.length===2&&(G(g)&&(A=g||A),G(y)&&(C=y||C));const L=c(b,!0)(R),F=L===""||L===void 0?b:L,N=C==="vnode"&&Le(F)&&A?F[0]:F;return A?f(A)(N,C):N},message:c,type:_,interpolate:h,normalize:d,values:Ae(ye(),i,l)};return R}const _c=()=>"",Zt=e=>Ce(e);function bc(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:a}=e,[l,u]=Di(...t),c=Se(u.missingWarn)?u.missingWarn:e.missingWarn,f=Se(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,d=Se(u.escapeParameter)?u.escapeParameter:e.escapeParameter,h=!!u.resolvedMessage,_=G(u.default)||Se(u.default)?Se(u.default)?o?l:()=>l:u.default:n?o?l:()=>l:null,m=n||_!=null&&(G(_)||Ce(_)),R=Ea(e,u);d&&Sw(u);let[b,E,g]=h?[l,R,a[R]||ye()]:Wd(e,l,R,i,f,c),y=b,C=l;if(!h&&!(G(y)||$t(y)||Zt(y))&&m&&(y=_,C=y),!h&&(!(G(y)||$t(y)||Zt(y))||!G(E)))return s?po:l;let A=!1;const L=()=>{A=!0},F=Zt(y)?y:Kd(e,l,E,y,C,L);if(A)return y;const N=Lw(e,E,g,u),D=Cw(N),W=Rw(e,F,D);let $=r?r(W,l):W;return d&&G($)&&($=pv($)),$}function Sw(e){Le(e.list)?e.list=e.list.map(t=>G(t)?ec(t):t):ce(e.named)&&Object.keys(e.named).forEach(t=>{G(e.named[t])&&(e.named[t]=ec(e.named[t]))})}function Wd(e,t,n,r,s,o){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:u}=e,c=u(e,r,n);let f=ye(),d,h=null;const _="translate";for(let m=0;mr);return u.locale=n,u.key=t,u}const l=i(r,Tw(e,n,s,r,a,o));return l.locale=n,l.key=t,l.source=r,l}function Rw(e,t,n){return t(n)}function Di(...e){const[t,n,r]=e,s=ye();if(!G(t)&&!Ne(t)&&!Zt(t)&&!$t(t))throw Jt(Xt.INVALID_ARGUMENT);const o=Ne(t)?String(t):(Zt(t),t);return Ne(n)?s.plural=n:G(n)?s.default=n:fe(n)&&!ao(n)?s.named=n:Le(n)&&(s.list=n),Ne(r)?s.plural=r:G(r)?s.default=r:fe(r)&&Ae(s,r),[o,s]}function Tw(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>fv(t,n,i)}}function Lw(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,d={locale:t,modifiers:s,pluralRules:o,messages:(h,_)=>{let m=i(n,h);if(m==null&&(c||_)){const[R,,b]=Wd(c||e,h,t,a,l,u);m=R??i(b,h)}if(G(m)||$t(m)){let R=!1;const E=Kd(e,h,t,m,h,()=>{R=!0});return R?_c:E}else return Zt(m)?m:_c}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),Ne(r.plural)&&(d.pluralIndex=r.plural),d}const kw="11.4.2",lt={UNEXPECTED_RETURN_TYPE:JE,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function mt(e,...t){return ho(e,null,void 0)}const Fi=yn("__translateVNode"),Hi=yn("__datetimeParts"),$i=yn("__numberParts"),Aw=yn("__setPluralRules"),Pw=yn("__injectWithOption"),Kn=yn("__dispose");function Gr(e){if(!ce(e)||$t(e))return e;for(const t in e)if(gt(e,t))if(!t.includes("."))ce(e[t])&&Gr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:u}=a;l?(i[l]=i[l]||ye(),zn(u,i[l])):zn(u,i)}else G(a)&&zn(JSON.parse(a),i)}),s==null&&o)for(const a in i)gt(i,a)&&Gr(i[a]);return i}function Ow(e){return e.type}function Iw(e,t,n){let r=ce(t.messages)?t.messages:ye();"__i18nGlobal"in n&&(r=Gd(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(ce(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(ce(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function vc(e){return Re(mn,null,e,0)}function qd(){return Fn()}const Ec=()=>[],Nw=()=>!1;let wc=0;function Cc(e){return((t,n,r,s)=>e(n,r,qd()||void 0,s))}function Ui(e={}){const{__root:t,__injectWithOption:n}=e,r=t===void 0,s=e.flatJson,o=xs?et:Nn;let i=Se(e.inheritLocale)?e.inheritLocale:!0;const a=o(t&&i?t.locale.value:G(e.locale)?e.locale:Fs),l=o(t&&i?t.fallbackLocale.value:G(e.fallbackLocale)||Le(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a.value),u=o(Gd(a.value,e)),c=o(fe(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),f=o(fe(e.numberFormats)?e.numberFormats:{[a.value]:{}});let d=t?t.missingWarn:Se(e.missingWarn)||Ms(e.missingWarn)?e.missingWarn:!0,h=t?t.fallbackWarn:Se(e.fallbackWarn)||Ms(e.fallbackWarn)?e.fallbackWarn:!0,_=t?t.fallbackRoot:Se(e.fallbackRoot)?e.fallbackRoot:!0,m=!!e.fallbackFormat,R=Ce(e.missing)?e.missing:null,b=Ce(e.missing)?Cc(e.missing):null,E=Ce(e.postTranslation)?e.postTranslation:null,g=t?t.warnHtmlMessage:Se(e.warnHtmlMessage)?e.warnHtmlMessage:!0,y=!!e.escapeParameter;const C=t?t.modifiers:fe(e.modifiers)?e.modifiers:{};let A=e.pluralRules||t&&t.pluralRules,L;L=(()=>{r&&dc(null);const T={version:kw,locale:a.value,fallbackLocale:l.value,messages:u.value,modifiers:C,pluralRules:A,missing:b===null?void 0:b,missingWarn:d,fallbackWarn:h,fallbackFormat:m,unresolving:!0,postTranslation:E===null?void 0:E,warnHtmlMessage:g,escapeParameter:y,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=c.value,T.numberFormats=f.value,T.__datetimeFormatters=fe(L)?L.__datetimeFormatters:void 0,T.__numberFormatters=fe(L)?L.__numberFormatters:void 0;const I=pw(T);return r&&dc(I),I})(),Er(L,a.value,l.value);function N(){return[a.value,l.value,u.value,c.value,f.value]}const D=ke({get:()=>a.value,set:T=>{L.locale=T,a.value=T}}),W=ke({get:()=>l.value,set:T=>{L.fallbackLocale=T,l.value=T,Er(L,a.value,T)}}),$=ke(()=>u.value),X=ke(()=>c.value),te=ke(()=>f.value);function se(){return Ce(E)?E:null}function K(T){E=T,L.postTranslation=T}function J(){return R}function q(T){T!==null&&(b=Cc(T)),R=T,L.missing=b}const re=(T,I,V,z,ie,oe)=>{N();let le;try{r||(L.fallbackContext=t?hw():void 0),le=T(L)}finally{r||(L.fallbackContext=void 0)}if(V!=="translate exists"&&Ne(le)&&le===po||V==="translate exists"&&!le){const[Pe,ut]=I();return t&&_?z(t):ie(Pe)}else{if(oe(le))return le;throw mt(lt.UNEXPECTED_RETURN_TYPE)}};function nt(...T){return re(I=>Reflect.apply(bc,null,[I,...T]),()=>Di(...T),"translate",I=>Reflect.apply(I.t,I,[...T]),I=>I,I=>G(I))}function qe(...T){const[I,V,z]=T;if(z&&!ce(z))throw mt(lt.INVALID_ARGUMENT);return nt(I,V,Ae({resolvedMessage:!0},z||{}))}function $e(...T){return re(I=>Reflect.apply(pc,null,[I,...T]),()=>xi(...T),"datetime format",I=>Reflect.apply(I.d,I,[...T]),()=>Hs,I=>G(I)||Le(I))}function Rt(...T){return re(I=>Reflect.apply(mc,null,[I,...T]),()=>Mi(...T),"number format",I=>Reflect.apply(I.n,I,[...T]),()=>Hs,I=>G(I)||Le(I))}function Tt(T){return T.map(I=>G(I)||Ne(I)||Se(I)?vc(String(I)):I)}const Ve={normalize:Tt,interpolate:T=>T,type:"vnode"};function H(...T){return re(I=>{let V;const z=I;try{z.processor=Ve,V=Reflect.apply(bc,null,[z,...T])}finally{z.processor=null}return V},()=>Di(...T),"translate",I=>I[Fi](...T),I=>[vc(I)],I=>Le(I))}function Y(...T){return re(I=>Reflect.apply(mc,null,[I,...T]),()=>Mi(...T),"number format",I=>I[$i](...T),Ec,I=>G(I)||Le(I))}function B(...T){return re(I=>Reflect.apply(pc,null,[I,...T]),()=>xi(...T),"datetime format",I=>I[Hi](...T),Ec,I=>G(I)||Le(I))}function Q(T){A=T,L.pluralRules=A}function ne(T,I){return re(()=>{if(!T)return!1;const V=G(I)?I:a.value,z=G(I)?[V]:Ni(L,l.value,V);for(let ie=0;ie[T],"translate exists",V=>Reflect.apply(V.te,V,[T,I]),Nw,V=>Se(V))}function _e(T){let I=null;const V=Ni(L,l.value,a.value);for(let z=0;z{i&&(a.value=T,L.locale=T,Er(L,a.value,l.value))}),at(t.fallbackLocale,T=>{i&&(l.value=T,L.fallbackLocale=T,Er(L,a.value,l.value))}));const j={id:wc,locale:D,fallbackLocale:W,get inheritLocale(){return i},set inheritLocale(T){i=T,T&&t&&(a.value=t.locale.value,l.value=t.fallbackLocale.value,Er(L,a.value,l.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:$,get modifiers(){return C},get pluralRules(){return A||{}},get isGlobal(){return r},get missingWarn(){return d},set missingWarn(T){d=T,L.missingWarn=d},get fallbackWarn(){return h},set fallbackWarn(T){h=T,L.fallbackWarn=h},get fallbackRoot(){return _},set fallbackRoot(T){_=T},get fallbackFormat(){return m},set fallbackFormat(T){m=T,L.fallbackFormat=m},get warnHtmlMessage(){return g},set warnHtmlMessage(T){g=T,L.warnHtmlMessage=T},get escapeParameter(){return y},set escapeParameter(T){y=T,L.escapeParameter=T},t:nt,getLocaleMessage:S,setLocaleMessage:P,mergeLocaleMessage:U,getPostTranslationHandler:se,setPostTranslationHandler:K,getMissingHandler:J,setMissingHandler:q,[Aw]:Q};return j.datetimeFormats=X,j.numberFormats=te,j.rt=qe,j.te=ne,j.tm=v,j.d=$e,j.n=Rt,j.getDateTimeFormat=M,j.setDateTimeFormat=p,j.mergeDateTimeFormat=w,j.getNumberFormat=k,j.setNumberFormat=O,j.mergeNumberFormat=x,j[Pw]=n,j[Fi]=H,j[Hi]=B,j[$i]=Y,j}const Ca={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function xw({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Ue?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},ye())}function Yd(){return Ue}const Mw=St({name:"i18n-t",props:Ae({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ne(e)||!isNaN(e)}},Ca),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Sa({useScope:e.scope,__useComponent:!0});return()=>{const o=()=>{const l=Object.keys(n).filter(f=>f[0]!=="_"),u=ye();e.locale&&(u.locale=e.locale),e.plural!==void 0&&(u.plural=G(e.plural)?+e.plural:e.plural);const c=xw(t,l);return s[Fi](e.keypath,c,u)},i=Ae(ye(),r),a=G(e.tag)||ce(e.tag)?e.tag:Yd();return ce(a)?Ie(a,i,{default:o}):Ie(a,i,o())}}}),Sc=Mw;function Dw(e){return Le(e)&&!G(e[0])}function Xd(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i=()=>{const u={part:!0};let c=ye();e.locale&&(u.locale=e.locale),G(e.format)?u.key=e.format:ce(e.format)&&(G(e.format.key)&&(u.key=e.format.key),c=Object.keys(e.format).reduce((h,_)=>n.includes(_)?Ae(ye(),h,{[_]:e.format[_]}):h,ye()));const f=r(e.value,u,c);let d=[u.key];return Le(f)?d=f.map((h,_)=>{const m=s[h.type],R=m?m({[h.type]:h.value,index:_,parts:f}):[h.value];return Dw(R)&&(R[0].key=`${h.type}-${_}`),R}):G(f)&&(d=[f]),d},a=Ae(ye(),o),l=G(e.tag)||ce(e.tag)?e.tag:Yd();return ce(l)?Ie(l,a,{default:i}):Ie(l,a,i())}}const Fw=St({name:"i18n-n",props:Ae({value:{type:Number,required:!0},format:{type:[String,Object]}},Ca),setup(e,t){const n=e.i18n||Sa({useScope:e.scope,__useComponent:!0});return Xd(e,t,Vd,(...r)=>n[$i](...r))}}),Rc=Fw;function Hw(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function $w(e){const t=i=>{const{instance:a,value:l}=i;if(!a||!a.$)throw mt(lt.UNEXPECTED_ERROR);const u=Hw(e,a.$),c=Tc(l);return[Reflect.apply(u.t,u,[...Lc(c)]),u]};return{created:(i,a)=>{const[l,u]=t(a);xs&&(i.__i18nWatcher=at(u.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=u,i.textContent=l},unmounted:i=>{xs&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,u=Tc(a);i.textContent=Reflect.apply(l.t,l,[...Lc(u)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Tc(e){if(G(e))return{path:e};if(fe(e)){if(!("path"in e))throw mt(lt.REQUIRED_VALUE,"path");return e}else throw mt(lt.INVALID_VALUE)}function Lc(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return G(n)&&(i.locale=n),Ne(s)&&(i.plural=s),Ne(o)&&(i.plural=o),[t,a,i]}function Uw(e,t,...n){const r=fe(n[0])?n[0]:{};(!Se(r.globalInstall)||r.globalInstall)&&([Sc.name,"I18nT"].forEach(o=>e.component(o,Sc)),[Rc.name,"I18nN"].forEach(o=>e.component(o,Rc)),[Pc.name,"I18nD"].forEach(o=>e.component(o,Pc))),e.directive("t",$w(t))}const jw=yn("global-vue-i18n");function Bw(e={}){const t=Se(e.globalInjection)?e.globalInjection:!0,n=new Map,[r,s]=Vw(e),o=yn("");function i(c){return n.get(c)||null}function a(c,f){n.set(c,f)}function l(c){n.delete(c)}const u={get mode(){return"composition"},async install(c,...f){if(c.__VUE_I18N_SYMBOL__=o,c.provide(c.__VUE_I18N_SYMBOL__,u),fe(f[0])){const _=f[0];u.__composerExtend=_.__composerExtend,u.__vueI18nExtend=_.__vueI18nExtend}let d=null;t&&(d=Jw(c,u.global)),Uw(c,u,...f);const h=c.unmount;c.unmount=()=>{d&&d(),u.dispose(),h()}},get global(){return s},dispose(){r.stop()},__instances:n,__getInstance:i,__setInstance:a,__deleteInstance:l};return u}function Sa(e={}){const t=qd();if(t==null)throw mt(lt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw mt(lt.NOT_INSTALLED);const n=Ww(t),r=Gw(n),s=Ow(t),o=Kw(e,s);if(o==="global")return Iw(r,e,s),r;if(o==="parent"){let l=kc(n,t,e.__useComponent);return l==null&&(l=r),l}if(o==="isolated"){if(n.mode!=="composition")throw mt(lt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const l=n,u=Ae({},e),c=kc(n,t);u.__root=c||r;const f=Ui(u);return l.__composerExtend&&(f[Kn]=l.__composerExtend(f)),dr()&&Nr(()=>{const h=f[Kn];h&&(h(),delete f[Kn])}),f}const i=n;let a=i.__getInstance(t);if(a==null){const l=Ae({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=Ui(l),i.__composerExtend&&(a[Kn]=i.__composerExtend(a)),Yw(i,t,a),i.__setInstance(t,a)}return a}function Vw(e,t){const n=Yr(),r=n.run(()=>Ui(e));if(r==null)throw mt(lt.UNEXPECTED_ERROR);return[n,r]}function Ww(e){const t=Fe(e.isCE?jw:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw mt(e.isCE?lt.NOT_INSTALLED_WITH_PROVIDE:lt.UNEXPECTED_ERROR);return t}function Kw(e,t){return ao(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Gw(e){return e.mode==="composition"?e.global:e.global.__composer}function kc(e,t,n=!1){let r=null;const s=t.root;let o=qw(t,n);for(;o!=null;){const i=e;if(e.mode==="composition"&&(r=i.__getInstance(o)),r!=null||s===o)break;o=o.parent}return r}function qw(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Yw(e,t,n){Qs(()=>{},t),zs(()=>{const r=n;e.__deleteInstance(t);const s=r[Kn];s&&(s(),delete r[Kn])},t)}const Xw=["locale","fallbackLocale","availableLocales"],Ac=["t","rt","d","n","tm","te"];function Jw(e,t){const n=Object.create(null);return Xw.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw mt(lt.UNEXPECTED_ERROR);const i=ve(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Ac.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw mt(lt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,Ac.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}const Qw=St({name:"i18n-d",props:Ae({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Ca),setup(e,t){const n=e.i18n||Sa({useScope:e.scope,__useComponent:!0});return Xd(e,t,Bd,(...r)=>n[Hi](...r))}}),Pc=Qw;uw(XE);fw(aw);dw(Ni);function Oc(e=ue()){const t=fo(e);return n=>{if(n!=null)return t.getRouteBaseName(n)||void 0}}function zw(e=ue()){const t=fo(e);return(n,r)=>_d(t,n,r)}function Zw(e=ue()){const t=fo(e);return(n,r)=>bd(t,n,r)}function Jd(e=ue()){const t=fo(e);return n=>Ed(t,n)}const Ic="nuxt-i18n-slp",e0=new RegExp([``,".+?",``].join(""),"g"),t0=Ge({name:"i18n:plugin:switch-locale-path-ssr",dependsOn:["i18n:plugin"],setup(e){const t=ue(e._id),n=Jd(t);t.hook("app:rendered",r=>{r.renderResult?.html!=null&&(r.renderResult.html=r.renderResult.html.replaceAll(e0,(s,o)=>{const i=encodeURI(n(o??""));return s.replace(/href="([^"]+)"/,`href="${i||"#"}" `)}))})}}),n0=Ge({name:"i18n:plugin:route-locale-detect",dependsOn:["i18n:plugin"],async setup(e){let t,n;const r=ue(e._id),s=ya(r),o=Ld();[t,n]=On(()=>r.runWithContext(()=>kd(r,s.initial&&o.value||dE(r,r.$router.currentRoute.value)))),await t,n()}}),r0=Ge({name:"i18n:plugin:preload",dependsOn:["i18n:plugin"],async setup(e){}});function s0(e,{extendComposer:t,extendComposerInstance:n}){const r=Yr(),s=e.install.bind(e);e.install=(o,...i)=>{const a=Ae({},i[0]);a.__composerExtend=u=>(n(u,ps(e)),()=>{}),e.mode==="legacy"&&(a.__vueI18nExtend=u=>(n(u,ps(u)),()=>{})),Reflect.apply(s,e,[o,a]);const l=ps(e);if(r.run(()=>{t(l),e.mode==="legacy"&&"__composer"in e.global&&n(e.global,ps(e.global))}),e.mode==="composition"&&o.config.globalProperties.$i18n!=null&&n(o.config.globalProperties.$i18n,l),o.unmount){const u=o.unmount.bind(o);o.unmount=()=>{r.stop(),u()}}}}const o0=async e=>{const t=await $v(Fv);t.locale=e||t.locale||"en-US",t.defaultLocale=e,t.fallbackLocale??=!1,t.messages??={};for(const n of Wr)t.messages[n]??={};return t};var i0={hu:"349b7781",en:"349b7781"};const a0=Ge({name:"i18n:plugin",parallel:!1,async setup(e){let t,n;Object.defineProperty(e.versions,"nuxtI18n",{get:()=>"10.4.0"});const r=ue(e._id),s=co(r),o=r.ssrContext?.event?.context?.nuxtI18n?.vueI18nOptions,i=Jv(dd().host)||s.defaultLocale||"",a=o||([t,n]=On(()=>o0(i)),t=await t,n(),t),l=Td();l.value??=qv(a.fallbackLocale),Wr.map(d=>`/_i18n/${i0[d]}/${d}/messages.json`);const u=Bw(a),c=_a(void 0,uo(r),r),f=Zv(r,u,a.defaultLocale);r._nuxtI18n=f,s0(u,{extendComposer(d){d.locales=ke(()=>s.locales),d.localeCodes=ke(()=>Wr);const h=et(f.getBaseUrl());d.baseUrl=ke(()=>h.value),at(d.locale,()=>h.value=f.getBaseUrl()),d.strategy="no_prefix",d.localeProperties=ke(()=>es.find(_=>_.code===d.locale.value)||{code:d.locale.value}),d.setLocale=async _=>{await kd(r,_),await r.runWithContext(()=>(r.$router.currentRoute.value,void 0))},d.loadLocaleMessages=f.loadMessages,d.differentDomains=!1,d.defaultLocale=a.defaultLocale,d.getBrowserLocale=()=>rc(c.navigator()),d.getLocaleCookie=()=>rc(c.cookie()),d.setLocaleCookie=f.setCookieLocale,d.finalizePendingLocaleChange=async()=>{u.__pendingLocale&&await u.__resolvePendingLocalePromise?.()},d.waitForPendingLocaleChange=async()=>{await u?.__pendingLocalePromise}},extendComposerInstance(d,h){const _=[["locales",()=>h.locales],["localeCodes",()=>h.localeCodes],["baseUrl",()=>h.baseUrl],["strategy",()=>"no_prefix"],["localeProperties",()=>h.localeProperties],["setLocale",()=>m=>Reflect.apply(h.setLocale,h,[m])],["loadLocaleMessages",()=>m=>Reflect.apply(h.loadLocaleMessages,h,[m])],["differentDomains",()=>!1],["defaultLocale",()=>h.defaultLocale],["getBrowserLocale",()=>()=>Reflect.apply(h.getBrowserLocale,h,[])],["getLocaleCookie",()=>()=>Reflect.apply(h.getLocaleCookie,h,[])],["setLocaleCookie",()=>m=>Reflect.apply(h.setLocaleCookie,h,[m])],["finalizePendingLocaleChange",()=>()=>Reflect.apply(h.finalizePendingLocaleChange,h,[])],["waitForPendingLocaleChange",()=>()=>Reflect.apply(h.waitForPendingLocaleChange,h,[])]];for(const[m,R]of _)Object.defineProperty(d,m,{get:R})}}),r.vueApp.use(u),Object.defineProperty(r,"$i18n",{get:()=>ma(u)}),r.provide("localeHead",d=>Av(r._nuxtI18n.composableCtx,d)),r.provide("localePath",zw(r)),r.provide("localeRoute",Zw(r)),r.provide("routeBaseName",Oc(r)),r.provide("getRouteBaseName",Oc(r)),r.provide("switchLocalePath",Jd(r))}}),l0=Ge({name:"i18n:plugin:ssg-detect",dependsOn:["i18n:plugin","i18n:plugin:route-locale-detect"],enforce:"post",setup(e){}}),c0=[f_,h_,__,jb,Bb,Vb,Wb,Gb,av,lv,cv,t0,n0,r0,a0,l0],Qd=(e="RouteProvider")=>St({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 gn(Mn,Dt(s)),()=>t.vnode?Ie(t.vnode,{ref:t.vnodeRef}):t.vnode}}),u0=Qd(),Nc=new WeakMap,f0=St({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=ue(),o=et(),i=Fe(Mn,null);let a;r({pageRef:o});const l=Fe(Af,null);let u;const c=s.deferHydration();let f=!1,d=!1,h=0;if(s.isHydrating){const m=s.hooks.hookOnce("app:error",c),R=tt().beforeEach(()=>{m(),R()})}e.pageKey&&at(()=>e.pageKey,(m,R)=>{m!==R&&s.callHook("page:loading:start")});let _=!1;{const m=tt().beforeResolve(()=>{_=!1});zr(()=>{m(),c()})}return()=>Ie(sd,{name:e.name,route:e.route,...t},{default:m=>{const R=d0(i,m.route,m.Component),b=i&&i.matched.length===m.route.matched.length;if(!m.Component){if(u&&!b&&!Wo(u))return u;c();return}if(u&&l&&!Wo(u)&&!l.isCurrent(m.route))return u;if(R&&i&&(!l||l?.isCurrent(i)))return(b||u)&&!Wo(u)?u:null;const E=ki(m,e.pageKey),g=h0(i,m.route,m.Component);!s.isHydrating&&a===E&&!g&&nn(()=>{_||(_=!0,s.callHook("page:loading:end"))}),f&&a!==E&&d&&h++,a=E;const y=!!(e.transition??m.route.meta.pageTransition??_l),C=y&&ld([e.transition,m.route.meta.pageTransition,_l,{onAfterLeave(){s["~transitionFinish"]?.(),delete s["~transitionFinish"],delete s["~transitionPromise"],s.callHook("page:transition:finish",m.Component)}}]),A=e.keepalive??m.route.meta.keepalive??Hm;return u=ad(y&&C,kb(A,Ie(na,{key:h,suspensible:!0,onPending:()=>{f=!0,y&&!s["~transitionPromise"]&&(s["~transitionPromise"]=new Promise(L=>{s["~transitionFinish"]=L})),s.callHook("page:start",m.Component)},onResolve:async()=>{f=!1,d=!0;try{await nn(),s._route.sync?.(),await s.callHook("page:finish",m.Component),!_&&!g&&(_=!0,await s.callHook("page:loading:end"))}finally{c()}}},{default:()=>{const L={key:E||void 0,vnode:n.default?p0(n.default,m):m.Component,route:m.route,renderKey:E||void 0,trackRootNodes:y,vnodeRef:o};if(!A)return Ie(u0,L);const F=m.Component.type,N=F;let D=Nc.get(N);return D||(D=Qd(F.name||F.__name),Nc.set(N,D)),Ie(D,L)}}))).default(),u}})}});function d0(e,t,n){if(!e)return!1;const r=t.matched.findIndex(i=>i.components?.default===n?.type);if(r===-1)return!1;const s=t.matched.slice(0,r).filter(i=>i.components?.default);if(!s.length)return!1;const o=e.matched.filter(i=>i.components?.default);return s.some((i,a)=>i.components?.default!==o[a]?.components?.default)||n&&ki({route:t,Component:n})!==ki({route:e,Component:n})}function h0(e,t,n){return e?t.matched.findIndex(s=>s.components?.default===n?.type)Ie(pn[e.name],e.layoutProps,t.slots)}}),m0={name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},y0=St({name:"NuxtLayout",inheritAttrs:!1,props:m0,setup(e,t){const n=ue(),r=Fe(Mn),o=!r||r===la()?od():r,i=ke(()=>{let c=me(e.name)??o?.meta.layout??zd(o?.path).appLayout??"default";return c&&!(c in pn)&&e.fallback&&(c=me(e.fallback)),c}),a=Nn();t.expose({layoutRef:a});const l=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",l),f=tt().beforeEach(()=>{c(),f()})}let u;return()=>{const f=!!i.value&&i.value in pn&&!!(o?.meta.layoutTransition??yl),d=f&&ld([o?.meta.layoutTransition,yl,{onBeforeLeave(){n["~transitionPromise"]=new Promise(_=>{n["~transitionFinish"]=_})},onAfterLeave(){n["~transitionFinish"]?.(),delete n["~transitionFinish"],delete n["~transitionPromise"]}}]),h=u;return u=i.value,ad(d,{default:()=>Ie(na,{suspensible:!0,onResolve:async()=>{await nn(l)}},{default:()=>Ie(_0,{layoutProps:nf(t.attrs,o.meta.layoutProps??{},{ref:a}),key:i.value||void 0,name:i.value,shouldProvide:!e.name,isRenderingNewLayout:_=>_!==h&&_===i.value,hasTransition:f},t.slots)})}).default()}}}),_0=St({name:"NuxtLayoutProvider",inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean},isRenderingNewLayout:{type:Function,required:!0}},setup(e,t){const n=e.name;e.shouldProvide&&gn(Af,{isCurrent:o=>n===!1||n===(o.meta.layout??zd(o.path).appLayout??"default")});const r=Fe(Mn);if(r&&r===la()){const o=od(),i={};for(const a in o){const l=a;Object.defineProperty(i,l,{enumerable:!0,get:()=>e.isRenderingNewLayout(e.name)?o[l]:r[l]})}gn(Mn,Dt(i))}return()=>!n||typeof n=="string"&&!(n in pn)?t.slots.default?.():Ie(g0,{key:n,layoutProps:e.layoutProps,name:n},t.slots)}}),b0=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},v0={};function E0(e,t){const n=f0,r=y0;return pt(),Mt(r,null,{default:Qi(()=>[Re(n)]),_:1})}const w0=b0(v0,[["render",E0]]),C0={__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(),a=void 0,c=s?Qo(()=>vt(()=>import("./C8yzOtqa.js"),__vite__mapDeps([6,1,7]),import.meta.url)):Qo(()=>vt(()=>import("./Cx40nPNe.js"),__vite__mapDeps([8,9]),import.meta.url));return(f,d)=>(pt(),Mt(me(c),lh(ef({status:me(r),statusText:me(o),statusCode:me(r),statusMessage:me(o),description:me(i),stack:me(a)})),null,16))}},S0={key:0},xc={__name:"nuxt-root",setup(e){const t=()=>null,n=ue(),r=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",r),f=tt().beforeEach(()=>{c(),f()})}const s=!1;gn(Mn,la()),n.hooks.callHookWith(c=>c.map(f=>f()),"vue:setup",[]);const o=oo(),i=!1,a=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function l(c,f,d){const h=n.vueApp.config.errorHandler;if(h&&!h.__nuxt_default)try{h(c,f,d)}catch(_){console.error("[nuxt] Error in `app.config.errorHandler`",_)}}Ru((c,f,d)=>{if(n.hooks.callHook("vue:error",c,f,d).catch(h=>console.error("[nuxt] Error in `vue:error` hook",h)),a.test(navigator.userAgent))return n.hooks.callHook("app:error",c),console.error(`[nuxt] Not rendering error page for bot with user agent \`${navigator.userAgent}\`:`,c),!1;if(Of(c)&&(c.fatal||c.unhandled))return n.runWithContext(()=>Rn(c)),l(c,f,d),!1});const u=!1;return(c,f)=>(pt(),Mt(na,{onResolve:me(r)},{default:Qi(()=>[me(i)?(pt(),Vp("div",S0)):me(o)?(pt(),Mt(me(C0),{key:1,error:me(o)},null,8,["error"])):me(u)?(pt(),Mt(me(t),{key:2,context:me(u)},null,8,["context"])):me(s)?(pt(),Mt(dp(me(s)),{key:3})):(pt(),Mt(me(w0),{key:4}))]),_:1},8,["onResolve"]))}};let Mc;{let e;Mc=async function(){if(e)return e;const r=!!(window.__NUXT__?.serverRendered??document.getElementById("__NUXT_DATA__")?.dataset.ssr==="true")?Ig(xc):Og(xc),s=Vm({vueApp:r});async function o(i){await s.callHook("app:error",i),s.payload.error||=In(i)}o.__nuxt_default=!0,r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)});try{await Gm(s,c0)}catch(i){o(i)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(Um),await s.hooks.callHook("app:mounted",r),await nn()}catch(i){o(i)}return r},e=Mc().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{ci as $,fd as A,F0 as B,H0 as C,od as D,Sa as E,Ue as F,zs as G,P0 as H,Mt as I,k0 as J,$0 as K,ue as L,pa as M,Xl as N,zr as O,U0 as P,Ie as Q,T0 as R,sa as S,Nn as T,Zm as U,iv as V,an as W,Pn as X,ey as Y,D0 as Z,b0 as _,Zu as a,om as a0,Br as a1,so as a2,Re as b,Vp as c,tf as d,St as e,A0 as f,tt as g,me as h,Kp as i,x0 as j,R0 as k,ve as l,et as m,Gs as n,pt as o,Ef as p,N0 as q,L0 as r,sn as s,dh as t,s_ as u,O0 as v,Qi as w,ke as x,Qs as y,I0 as z}; diff --git a/frontend_admin/.nuxt/dist/client/_nuxt/Drr7KP9v.js b/frontend_admin/.output/public/_nuxt/CqyNVJx6.js similarity index 98% rename from frontend_admin/.nuxt/dist/client/_nuxt/Drr7KP9v.js rename to frontend_admin/.output/public/_nuxt/CqyNVJx6.js index f3b8666..538a57f 100644 --- a/frontend_admin/.nuxt/dist/client/_nuxt/Drr7KP9v.js +++ b/frontend_admin/.output/public/_nuxt/CqyNVJx6.js @@ -1 +1 @@ -import{g as d,o,c as r,j as a,a as e,F as c,r as m,n as x,t as l}from"./C3Ck-LNv.js";const p={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},h={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},u={class:"space-y-4"},v={class:"flex-1 min-w-0"},g={class:"text-sm text-slate-300"},b={class:"text-xs text-slate-500 mt-0.5"},y=d({__name:"index",setup(f){const i=[{text:"New user registered: john.doe@example.com",time:"2 minutes ago",dotColor:"bg-emerald-400"},{text:"Vehicle #V-8842 added to catalog",time:"15 minutes ago",dotColor:"bg-cyan-400"},{text:"Payment received: €120.00 from Garage XYZ",time:"1 hour ago",dotColor:"bg-emerald-400"},{text:"System error: DVLA API timeout on request #4421",time:"2 hours ago",dotColor:"bg-rose-400"},{text:"Permission updated for user: superadmin@sf.hu",time:"3 hours ago",dotColor:"bg-indigo-400"}];return(w,t)=>(o(),r("div",null,[t[2]||(t[2]=a('

Dashboard

ServiceFinder administration overview

+12%

Active Users

2,847

1,240 new this month

+5%

Total Vehicles

12,493

342 added this month

+18%

Monthly Revenue

€48,250

€6,200 from premium

+3

Error Logs

23

3 critical today

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

Quick Actions

',1)),e("div",h,[t[0]||(t[0]=e("h2",{class:"text-lg font-semibold text-white mb-4"},"Recent Activity",-1)),e("div",u,[(o(),r(c,null,m(i,(s,n)=>e("div",{key:n,class:"flex items-start gap-3"},[e("div",{class:x(["w-2 h-2 mt-2 rounded-full flex-shrink-0",s.dotColor])},null,2),e("div",v,[e("p",g,l(s.text),1),e("p",b,l(s.time),1)])])),64))])])])]))}});export{y as default}; +import{e as d,o,c as r,f as a,a as e,F as c,r as m,n as x,t as l}from"./CqYPuxVf.js";const p={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},h={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},u={class:"space-y-4"},v={class:"flex-1 min-w-0"},g={class:"text-sm text-slate-300"},b={class:"text-xs text-slate-500 mt-0.5"},y=d({__name:"index",setup(f){const i=[{text:"New user registered: john.doe@example.com",time:"2 minutes ago",dotColor:"bg-emerald-400"},{text:"Vehicle #V-8842 added to catalog",time:"15 minutes ago",dotColor:"bg-cyan-400"},{text:"Payment received: €120.00 from Garage XYZ",time:"1 hour ago",dotColor:"bg-emerald-400"},{text:"System error: DVLA API timeout on request #4421",time:"2 hours ago",dotColor:"bg-rose-400"},{text:"Permission updated for user: superadmin@sf.hu",time:"3 hours ago",dotColor:"bg-indigo-400"}];return(w,t)=>(o(),r("div",null,[t[2]||(t[2]=a('

Dashboard

ServiceFinder administration overview

+12%

Active Users

2,847

1,240 new this month

+5%

Total Vehicles

12,493

342 added this month

+18%

Monthly Revenue

€48,250

€6,200 from premium

+3

Error Logs

23

3 critical today

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

Quick Actions

',1)),e("div",h,[t[0]||(t[0]=e("h2",{class:"text-lg font-semibold text-white mb-4"},"Recent Activity",-1)),e("div",u,[(o(),r(c,null,m(i,(s,n)=>e("div",{key:n,class:"flex items-start gap-3"},[e("div",{class:x(["w-2 h-2 mt-2 rounded-full flex-shrink-0",s.dotColor])},null,2),e("div",v,[e("p",g,l(s.text),1),e("p",b,l(s.time),1)])])),64))])])])]))}});export{y as default}; diff --git a/frontend_admin/.output/public/_nuxt/Cx40nPNe.js b/frontend_admin/.output/public/_nuxt/Cx40nPNe.js new file mode 100644 index 0000000..fb5b106 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/Cx40nPNe.js @@ -0,0 +1 @@ +import{_ as s,u as a,o as i,c as u,a as e,t as o}from"./CqYPuxVf.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const n=t;return a({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,r)=>(i(),u("div",l,[r[0]||(r[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},b=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{b as default}; diff --git a/frontend_admin/.output/public/_nuxt/CyOWWS80.js b/frontend_admin/.output/public/_nuxt/CyOWWS80.js deleted file mode 100644 index cfef663..0000000 --- a/frontend_admin/.output/public/_nuxt/CyOWWS80.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p,c as r,j as l,a as e,F as o,r as i,o as n,t as a,n as d}from"./C3Ck-LNv.js";const g={class:"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"},u={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},x={class:"space-y-3"},v={class:"text-sm text-slate-300"},h={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},k={class:"space-y-3"},y={class:"text-sm text-slate-300"},f={class:"bg-slate-800 rounded-xl border border-slate-700 p-6"},w={class:"space-y-3"},_={class:"text-sm text-slate-300"},B=p({__name:"index",setup(C){const b=[{key:"user_mgmt",label:"User Management",enabled:!0},{key:"billing_admin",label:"Billing Administration",enabled:!0},{key:"robot_config",label:"Robot Configuration",enabled:!0},{key:"system_logs",label:"System Logs Access",enabled:!0},{key:"api_keys",label:"API Key Management",enabled:!1}],m=[{key:"vehicle_crud",label:"Vehicle CRUD",enabled:!0},{key:"service_booking",label:"Service Booking",enabled:!0},{key:"customer_view",label:"Customer Data View",enabled:!0},{key:"report_export",label:"Report Export",enabled:!1},{key:"bulk_import",label:"Bulk Import",enabled:!1}],c=[{key:"premium_features",label:"Premium Features",enabled:!0},{key:"analytics",label:"Analytics Dashboard",enabled:!0},{key:"multi_garage",label:"Multi-Garage Support",enabled:!1},{key:"white_label",label:"White Label Branding",enabled:!1},{key:"api_access",label:"API Access",enabled:!0}];return(M,t)=>(n(),r("div",null,[t[6]||(t[6]=l('

Jogosultság Kezelés

Permissions Management — Role-based access control matrix

This is the permissions management interface. The 3D Capability Matrix UI (Superadmin, Garages, and Packages toggles) will be implemented here in the next iteration.

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

Superadmin

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

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

Garages

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

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

Packages

Subscription package permissions — feature toggles per plan tier.

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

3D Capability Matrix

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

',1))]))}});export{B as default}; diff --git a/frontend_admin/.output/public/_nuxt/DP_n9i02.js b/frontend_admin/.output/public/_nuxt/DP_n9i02.js new file mode 100644 index 0000000..4ef2d4d --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/DP_n9i02.js @@ -0,0 +1 @@ +const t={permissions:{title:{t:0,b:{t:2,i:[{t:3}],s:"Jogosultság Kezelés"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Permissions Management — Role-based access control & subscription feature flags"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Jogosultságok betöltése..."}},error_title:{t:0,b:{t:2,i:[{t:3}],s:"Nem sikerült betölteni a jogosultságokat"}},retry:{t:0,b:{t:2,i:[{t:3}],s:"Újra"}},save_changes:{t:0,b:{t:2,i:[{t:3}],s:"Változtatások Mentése"}},discard:{t:0,b:{t:2,i:[{t:3}],s:"Elvetés"}},modified_count:{t:0,b:{t:2,i:[{t:4,k:"count"},{t:3,v:" módosítás"}]}},current_tier:{t:0,b:{t:2,i:[{t:3}],s:"Aktuális Csomag"}},expires:{t:0,b:{t:2,i:[{t:3}],s:"Lejárat"}},superadmin:{t:0,b:{t:2,i:[{t:3}],s:"Superadmin"}},superadmin_desc:{t:0,b:{t:2,i:[{t:3}],s:"Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció."}},garages:{t:0,b:{t:2,i:[{t:3}],s:"Garázsok"}},garages_desc:{t:0,b:{t:2,i:[{t:3}],s:"Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok."}},feature_flags:{t:0,b:{t:2,i:[{t:3}],s:"Feature Flags"}},feature_flags_desc:{t:0,b:{t:2,i:[{t:3,v:"Előfizetési funkciók — a jelenlegi csomagod alapján ("},{t:4,k:"tier"},{t:3,v:")."}]}},rbac_title:{t:0,b:{t:2,i:[{t:3}],s:"RBAC Jogosultsági Mátrix"}},rbac_desc:{t:0,b:{t:2,i:[{t:3}],s:"Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik."}},action:{t:0,b:{t:2,i:[{t:3}],s:"Művelet"}},perms:{user_mgmt:{t:0,b:{t:2,i:[{t:3}],s:"Felhasználókezelés"}},billing_admin:{t:0,b:{t:2,i:[{t:3}],s:"Számlázási Adminisztráció"}},robot_config:{t:0,b:{t:2,i:[{t:3}],s:"Robot Konfiguráció"}},system_logs:{t:0,b:{t:2,i:[{t:3}],s:"Rendszernaplók Elérése"}},api_keys:{t:0,b:{t:2,i:[{t:3}],s:"API Kulcs Kezelés"}},vehicle_crud:{t:0,b:{t:2,i:[{t:3}],s:"Jármű CRUD"}},service_booking:{t:0,b:{t:2,i:[{t:3}],s:"Szervizfoglalás"}},customer_view:{t:0,b:{t:2,i:[{t:3}],s:"Ügyféladatok Megtekintése"}},report_export:{t:0,b:{t:2,i:[{t:3}],s:"Jelentés Exportálás"}},bulk_import:{t:0,b:{t:2,i:[{t:3}],s:"Tömeges Import"}}}},packages:{title:{t:0,b:{t:2,i:[{t:3}],s:"Csomagok Kezelése"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise"}},loading:{t:0,b:{t:2,i:[{t:3}],s:"Csomagok betöltése..."}},retry:{t:0,b:{t:2,i:[{t:3}],s:"Újra"}},create_new:{t:0,b:{t:2,i:[{t:3}],s:"Új Csomag"}},no_packages:{t:0,b:{t:2,i:[{t:3}],s:"Még nincsenek csomagok"}},no_packages_desc:{t:0,b:{t:2,i:[{t:3}],s:"Hozd létre az első előfizetési csomagot a kezdéshez."}},create_first:{t:0,b:{t:2,i:[{t:3}],s:"Első Csomag Létrehozása"}},popular:{t:0,b:{t:2,i:[{t:3}],s:"Népszerű"}},fallback_badge:{t:0,b:{t:2,i:[{t:3}],s:"Visszaesési"}},trial_badge:{t:0,b:{t:2,i:[{t:3}],s:"Próba"}},month:{t:0,b:{t:2,i:[{t:3}],s:"hó"}},feature_flags:{t:0,b:{t:2,i:[{t:3}],s:"Elérhető Funkciók"}},edit:{t:0,b:{t:2,i:[{t:3}],s:"Szerkesztés"}},delete:{t:0,b:{t:2,i:[{t:3}],s:"Törlés"}},set_as_default:{t:0,b:{t:2,i:[{t:3}],s:"Beállítás alapértelmezettként"}},set_as_default_success:{t:0,b:{t:2,i:[{t:3}],s:"alapértelmezett csomagként beállítva!"}},edit_title:{t:0,b:{t:2,i:[{t:3}],s:"Csomag Szerkesztése"}},create_title:{t:0,b:{t:2,i:[{t:3}],s:"Csomag Létrehozása"}},cancel:{t:0,b:{t:2,i:[{t:3}],s:"Mégse"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Változtatások Mentése"}},create:{t:0,b:{t:2,i:[{t:3}],s:"Létrehozás"}},save_success:{t:0,b:{t:2,i:[{t:3}],s:"Csomag sikeresen frissítve!"}},delete_title:{t:0,b:{t:2,i:[{t:3}],s:"Csomag Törlése"}},delete_confirm:{t:0,b:{t:2,i:[{t:3,v:'Biztosan törölni szeretnéd a "'},{t:4,k:"name"},{t:3,v:'" csomagot?'}]}},delete_btn:{t:0,b:{t:2,i:[{t:3}],s:"Törlés"}},allowances:{t:0,b:{t:2,i:[{t:3}],s:"Korlátok"}},max_vehicles:{t:0,b:{t:2,i:[{t:3}],s:"Max Jármű"}},max_garages:{t:0,b:{t:2,i:[{t:3}],s:"Max Garázs"}},monthly_credits:{t:0,b:{t:2,i:[{t:3}],s:"Havi Kredit"}},tier_level:{t:0,b:{t:2,i:[{t:3}],s:"Szint"}},form_name:{t:0,b:{t:2,i:[{t:3}],s:"Rendszer Név"}},form_name_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"pl. premium_2024"}},form_display_name:{t:0,b:{t:2,i:[{t:3}],s:"Megjelenítési Név"}},form_display_name_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"pl. Premium Plus"}},form_type:{t:0,b:{t:2,i:[{t:3}],s:"Típus"}},type_private:{t:0,b:{t:2,i:[{t:3}],s:"Magán"}},type_corporate:{t:0,b:{t:2,i:[{t:3}],s:"Vállalati"}},form_tier_level:{t:0,b:{t:2,i:[{t:3}],s:"Szintszám"}},form_tier_level_hint:{t:0,b:{t:2,i:[{t:3}],s:"Magasabb szám = több funkció és magasabb rang"}},form_monthly_price:{t:0,b:{t:2,i:[{t:3}],s:"Havi Díj"}},form_yearly_price:{t:0,b:{t:2,i:[{t:3}],s:"Éves Díj"}},form_currency:{t:0,b:{t:2,i:[{t:3}],s:"Pénznem"}},form_subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Felirat / Leírás"}},form_subtitle_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"pl. Ideális kisvállalkozásoknak"}},form_badge:{t:0,b:{t:2,i:[{t:3}],s:"Jelvény Szöveg"}},form_badge_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"pl. Legnépszerűbb"}},form_is_custom:{t:0,b:{t:2,i:[{t:3}],s:"Egyedi Csomag (nem publikus)"}},singleton_rules:{t:0,b:{t:2,i:[{t:3}],s:"Egyediségi Szabályok"}},form_is_default_fallback:{t:0,b:{t:2,i:[{t:3}],s:"Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált"}},form_trial_days:{t:0,b:{t:2,i:[{t:3}],s:"Próba Napok Regisztrációnál"}},form_trial_days_hint:{t:0,b:{t:2,i:[{t:3}],s:"Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0."}}},garages:{title:{t:0,b:{t:2,i:[{t:3}],s:"Garázsok CRM"}},subtitle:{t:0,b:{t:2,i:[{t:3}],s:"Garázsok listája, csomagkezelés és státuszmódosítás"}},total_garages:{t:0,b:{t:2,i:[{t:3}],s:"Összes Garázs"}},active_garages:{t:0,b:{t:2,i:[{t:3}],s:"Aktív Garázsok"}},premium_garages:{t:0,b:{t:2,i:[{t:3}],s:"Premium Garázsok"}},enterprise_garages:{t:0,b:{t:2,i:[{t:3}],s:"Enterprise Garázsok"}},search_placeholder:{t:0,b:{t:2,i:[{t:3}],s:"Keresés név, kapcsolattartó vagy e-mail alapján..."}},all_tiers:{t:0,b:{t:2,i:[{t:3}],s:"Összes csomag"}},company_name:{t:0,b:{t:2,i:[{t:3}],s:"Cégnév"}},email:{t:0,b:{t:2,i:[{t:3}],s:"E-mail"}},status:{t:0,b:{t:2,i:[{t:3}],s:"Státusz"}},current_package:{t:0,b:{t:2,i:[{t:3}],s:"Aktuális Csomag"}},actions:{t:0,b:{t:2,i:[{t:3}],s:"Műveletek"}},active:{t:0,b:{t:2,i:[{t:3}],s:"Aktív"}},inactive:{t:0,b:{t:2,i:[{t:3}],s:"Inaktív"}},suspended:{t:0,b:{t:2,i:[{t:3}],s:"Felfüggesztve"}},change_package:{t:0,b:{t:2,i:[{t:3}],s:"Csomag Módosítása"}},view:{t:0,b:{t:2,i:[{t:3}],s:"Megtekintés"}},activate:{t:0,b:{t:2,i:[{t:3}],s:"Aktiválás"}},deactivate:{t:0,b:{t:2,i:[{t:3}],s:"Deaktiválás"}},no_results:{t:0,b:{t:2,i:[{t:3}],s:"Nincs a keresésnek megfelelő garázs."}}}};export{t as default}; diff --git a/frontend_admin/.output/public/_nuxt/DWjNh9rV.js b/frontend_admin/.output/public/_nuxt/DWjNh9rV.js new file mode 100644 index 0000000..2450b63 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/DWjNh9rV.js @@ -0,0 +1 @@ +import{K as _,m as u,x as a}from"./CqYPuxVf.js";const h=_("region",()=>{const t=u([]),n=u(null),c=u(!1),l=u(null),o=a(()=>t.value.find(e=>e.country_code==="DEFAULT")||null),s=a(()=>{const e=new Map;for(const r of t.value)e.set(r.country_code,r);return e}),i=a(()=>n.value?.currency||o.value?.currency||"EUR"),v=a(()=>n.value?.locale_code||o.value?.locale_code||"en-EU"),f=a(()=>n.value?.default_vat_rate??o.value?.default_vat_rate??0),d=a(()=>n.value?.timezone||o.value?.timezone||"Europe/Brussels");async function g(){if(!(t.value.length>0)){c.value=!0,l.value=null;try{const e=await $fetch("/api/v1/system/regions");t.value=e||[]}catch(e){l.value=e?.data?.detail||e?.message||"Failed to load regions",console.error("[RegionStore] Fetch error:",e)}finally{c.value=!1}}}function m(e){const r=t.value.find(R=>R.country_code===e);n.value=r||o.value}function y(e){return s.value.get(e)}return{regions:t,activeRegion:n,isLoading:c,error:l,defaultRegion:o,regionMap:s,activeCurrency:i,activeLocale:v,activeVatRate:f,activeTimezone:d,fetchRegions:g,setActiveRegion:m,getRegion:y}});export{h as u}; diff --git a/frontend_admin/.output/public/_nuxt/Da4aCGAe.js b/frontend_admin/.output/public/_nuxt/Da4aCGAe.js new file mode 100644 index 0000000..1fa16f6 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/Da4aCGAe.js @@ -0,0 +1 @@ +import{e as E,g as P,L as q,y as N,M as U,N as j,O as H,P as I,Q as A,R as _,S as V,T as D,m as F,U as O,V as W,h as f,C as z,x,W as B,X as M,Y as $,Z as Q,$ as G,a0 as X,a1 as Y,a2 as Z}from"./CqYPuxVf.js";const J=(...t)=>t.find(r=>r!==void 0);function T(t){let r=t.replace(/[\u0000-\u001f\s]+/g,"");for(;r.toLowerCase().startsWith("view-source:");)r=r.slice(12);const c=r.indexOf(":");return c>0&&G(r.slice(0,c+1))?null:t}function K(t){const r=t.componentName||"NuxtLink";function c(e){return typeof e=="string"&&e.startsWith("#")}function R(e,s,d){const a=d??t.trailingSlash;if(!e||a!=="append"&&a!=="remove")return e;if(typeof e=="string")return w(e,a);const i="path"in e&&e.path!==void 0?e.path:s(e).path;return{...e,name:void 0,path:w(i,a)}}function k(e){const s=P(),d=Z(),a=x(()=>!!f(e.target)&&f(e.target)!=="_self"),i=x(()=>{const o=f(e.to)||f(e.href)||"";return typeof o=="string"&&B(o,{acceptRelative:!0})}),S=_("RouterLink"),y=S&&typeof S!="string"?S.useLink:void 0,v=x(()=>{if(f(e.external))return!0;const o=f(e.to)||f(e.href)||"";return typeof o=="object"?!1:o===""||i.value}),l=x(()=>{const o=f(e.to)||f(e.href)||"";return v.value?o:R(o,s.resolve,f(e.trailingSlash))}),b=v.value?void 0:y?.({...e,to:l,viewTransition:f(e.viewTransition)}),m=x(()=>{const o=f(e.trailingSlash)??t.trailingSlash;if(!l.value||i.value||c(l.value)){const h=l.value;return typeof h=="string"?T(h):h}if(v.value){const h=typeof l.value=="object"&&"path"in l.value?O(l.value):l.value,p=typeof h=="object"?s.resolve(h).href:h,u=typeof p=="string"?T(p):p;return u===null?null:w(u,o)}return typeof l.value=="object"?s.resolve(l.value)?.href??null:w(M(d.app.baseURL,l.value),o)});return{to:l,hasTarget:a,isAbsoluteUrl:i,isExternal:v,href:m,isActive:b?.isActive??x(()=>l.value===s.currentRoute.value.path),isExactActive:b?.isExactActive??x(()=>l.value===s.currentRoute.value.path),route:b?.route??x(()=>s.resolve(l.value)),async navigate(o){m.value!==null&&await z(m.value,{replace:f(e.replace),external:v.value||a.value})}}}return E({name:r,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:k,setup(e,{slots:s}){const d=P(),{to:a,href:i,navigate:S,isExternal:y,hasTarget:v,isAbsoluteUrl:l}=k(e),b=D(!1),m=F(null),o=u=>{m.value=e.custom?u?.$el?.nextElementSibling:u?.$el};function h(u){return!b.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===u:e.prefetchOn?.[u]??t.prefetchOn?.[u])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ae()}async function p(u=q()){if(b.value||i.value===null)return;b.value=!0;const g=typeof a.value=="string"?a.value:y.value?O(a.value):d.resolve(a.value).fullPath,n=y.value?new URL(g,window.location.href).href:g;await Promise.all([u.hooks.callHook("link:prefetch",n).catch(()=>{}),!y.value&&!v.value&&W(a.value,d).catch(()=>{})])}if(h("visibility")){const u=q();let g,n=null;N(()=>{const C=ee();U(()=>{g=j(()=>{m?.value?.tagName&&(n=C.observe(m.value,async()=>{n?.(),n=null,await p(u)}))})})}),H(()=>{g&&I(g),n?.(),n=null})}return()=>{if(!y.value&&!v.value&&!c(a.value)){const n={ref:o,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(h("interaction")&&(n.onPointerenter=p.bind(null,void 0),n.onFocus=p.bind(null,void 0)),b.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),A(_("RouterLink"),n,s.default)}const u=e.target||null,g=J(e.noRel?"":e.rel,t.externalRelAttribute,l.value||v.value?"noopener noreferrer":"")||null;return e.custom?s.default?s.default({href:i.value,navigate:S,prefetch:p,get route(){if(!i.value)return;const n=new URL(i.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return V(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:g,target:u,isExternal:y.value||v.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:m,href:i.value||null,rel:g,target:u,onClick:async n=>{if(!(y.value||v.value)){n.preventDefault();try{const C=$(i.value??"");return await(e.replace?d.replace(C):d.push(C))}finally{if(c(a.value)){const C=a.value.slice(1);let L=C;try{L=decodeURIComponent(C)}catch{}document.getElementById(L)?.focus()}}}}},s.default?.())}}})}const le=K(Q);function w(t,r){const c=r==="append"?X:Y;return B(t)&&!t.startsWith("http")?t:c(t,!0)}function ee(){const t=q();if(t._observer)return t._observer;let r=null;const c=new Map,R=(e,s)=>(r||=new IntersectionObserver(d=>{for(const a of d){const i=c.get(a.target);(a.isIntersecting||a.intersectionRatio>0)&&i&&i()}}),c.set(e,s),r.observe(e),()=>{c.delete(e),r?.unobserve(e),c.size===0&&(r?.disconnect(),r=null)});return t._observer={observe:R}}const te=/2g/;function ae(){const t=navigator.connection;return!!(t&&(t.saveData||te.test(t.effectiveType)))}export{le as _}; diff --git a/frontend_admin/.output/public/_nuxt/Di-57MrI.js b/frontend_admin/.output/public/_nuxt/Di-57MrI.js deleted file mode 100644 index 463fbe6..0000000 --- a/frontend_admin/.output/public/_nuxt/Di-57MrI.js +++ /dev/null @@ -1 +0,0 @@ -import{u as a,e as s,h as u,i as r,f as o}from"./C3Ck-LNv.js";function i(e){const t=e||s();return t?.ssrContext?.head||t?.runWithContext(()=>{if(u())return r(o)})}function x(e,t={}){const n=i(t.nuxt);if(n)return a(e,{head:n,...t})}export{x as u}; diff --git a/frontend_admin/.output/public/_nuxt/DuYZ8wdr.js b/frontend_admin/.output/public/_nuxt/DuYZ8wdr.js new file mode 100644 index 0000000..dd6b0cc --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/DuYZ8wdr.js @@ -0,0 +1 @@ +import{B as o,A as t,C as a}from"./CqYPuxVf.js";const s=o((e,i)=>{if(e.path==="/login")return;if(!t("access_token").value)return a("/login")});export{s as default}; diff --git a/frontend_admin/.output/public/_nuxt/Oih3kTQ2.js b/frontend_admin/.output/public/_nuxt/Oih3kTQ2.js deleted file mode 100644 index dab4572..0000000 --- a/frontend_admin/.output/public/_nuxt/Oih3kTQ2.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a}from"./QKJPEFuj.js";import{_ as i,o as u,c,a as e,t as r,b as l,w as d,d as p}from"./C3Ck-LNv.js";import{u as f}from"./Di-57MrI.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},b=["textContent"],h=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return f({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return u(),c("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,b),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,h),e("div",x,[l(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:d(()=>[p(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{z as default}; diff --git a/frontend_admin/.output/public/_nuxt/QKJPEFuj.js b/frontend_admin/.output/public/_nuxt/QKJPEFuj.js deleted file mode 100644 index 6e5ff02..0000000 --- a/frontend_admin/.output/public/_nuxt/QKJPEFuj.js +++ /dev/null @@ -1 +0,0 @@ -import{g as E,k as P,K as q,B as N,L as U,M as j,N as H,O as I,P as A,Q as _,R as V,S as z,x as D,T as O,U as F,l as f,z as W,H as x,V as B,W as M,X as $,Y as Q,Z as G,$ as K,a0 as X,a1 as Y}from"./C3Ck-LNv.js";const Z=(...t)=>t.find(r=>r!==void 0);function T(t){let r=t.replace(/[\u0000-\u001f\s]+/g,"");for(;r.toLowerCase().startsWith("view-source:");)r=r.slice(12);const c=r.indexOf(":");return c>0&&G(r.slice(0,c+1))?null:t}function J(t){const r=t.componentName||"NuxtLink";function c(e){return typeof e=="string"&&e.startsWith("#")}function w(e,s,d){const a=d??t.trailingSlash;if(!e||a!=="append"&&a!=="remove")return e;if(typeof e=="string")return C(e,a);const i="path"in e&&e.path!==void 0?e.path:s(e).path;return{...e,name:void 0,path:C(i,a)}}function k(e){const s=P(),d=Y(),a=x(()=>!!f(e.target)&&f(e.target)!=="_self"),i=x(()=>{const o=f(e.to)||f(e.href)||"";return typeof o=="string"&&B(o,{acceptRelative:!0})}),R=_("RouterLink"),y=typeof R!="string"?R.useLink:void 0,v=x(()=>{if(f(e.external))return!0;const o=f(e.to)||f(e.href)||"";return typeof o=="object"?!1:o===""||i.value}),l=x(()=>{const o=f(e.to)||f(e.href)||"";return v.value?o:w(o,s.resolve,f(e.trailingSlash))}),b=v.value?void 0:y?.({...e,to:l,viewTransition:f(e.viewTransition)}),m=x(()=>{const o=f(e.trailingSlash)??t.trailingSlash;if(!l.value||i.value||c(l.value)){const h=l.value;return typeof h=="string"?T(h):h}if(v.value){const h=typeof l.value=="object"&&"path"in l.value?O(l.value):l.value,p=typeof h=="object"?s.resolve(h).href:h,u=typeof p=="string"?T(p):p;return u===null?null:C(u,o)}return typeof l.value=="object"?s.resolve(l.value)?.href??null:C(M(d.app.baseURL,l.value),o)});return{to:l,hasTarget:a,isAbsoluteUrl:i,isExternal:v,href:m,isActive:b?.isActive??x(()=>l.value===s.currentRoute.value.path),isExactActive:b?.isExactActive??x(()=>l.value===s.currentRoute.value.path),route:b?.route??x(()=>s.resolve(l.value)),async navigate(o){m.value!==null&&await W(m.value,{replace:f(e.replace),external:v.value||a.value})}}}return E({name:r,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:k,setup(e,{slots:s}){const d=P(),{to:a,href:i,navigate:R,isExternal:y,hasTarget:v,isAbsoluteUrl:l}=k(e),b=z(!1),m=D(null),o=u=>{m.value=e.custom?u?.$el?.nextElementSibling:u?.$el};function h(u){return!b.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===u:e.prefetchOn?.[u]??t.prefetchOn?.[u])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ae()}async function p(u=q()){if(b.value||i.value===null)return;b.value=!0;const g=typeof a.value=="string"?a.value:y.value?O(a.value):d.resolve(a.value).fullPath,n=y.value?new URL(g,window.location.href).href:g;await Promise.all([u.hooks.callHook("link:prefetch",n).catch(()=>{}),!y.value&&!v.value&&F(a.value,d).catch(()=>{})])}if(h("visibility")){const u=q();let g,n=null;N(()=>{const S=ee();U(()=>{g=j(()=>{m?.value?.tagName&&(n=S.observe(m.value,async()=>{n?.(),n=null,await p(u)}))})})}),H(()=>{g&&I(g),n?.(),n=null})}return()=>{if(!y.value&&!v.value&&!c(a.value)){const n={ref:o,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(h("interaction")&&(n.onPointerenter=p.bind(null,void 0),n.onFocus=p.bind(null,void 0)),b.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),A(_("RouterLink"),n,s.default)}const u=e.target||null,g=Z(e.noRel?"":e.rel,t.externalRelAttribute,l.value||v.value?"noopener noreferrer":"")||null;return e.custom?s.default?s.default({href:i.value,navigate:R,prefetch:p,get route(){if(!i.value)return;const n=new URL(i.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return V(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:g,target:u,isExternal:y.value||v.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:m,href:i.value||null,rel:g,target:u,onClick:async n=>{if(!(y.value||v.value)){n.preventDefault();try{const S=$(i.value??"");return await(e.replace?d.replace(S):d.push(S))}finally{if(c(a.value)){const S=a.value.slice(1);let L=S;try{L=decodeURIComponent(S)}catch{}document.getElementById(L)?.focus()}}}}},s.default?.())}}})}const le=J(Q);function C(t,r){const c=r==="append"?K:X;return B(t)&&!t.startsWith("http")?t:c(t,!0)}function ee(){const t=q();if(t._observer)return t._observer;let r=null;const c=new Map,w=(e,s)=>(r||=new IntersectionObserver(d=>{for(const a of d){const i=c.get(a.target);(a.isIntersecting||a.intersectionRatio>0)&&i&&i()}}),c.set(e,s),r.observe(e),()=>{c.delete(e),r?.unobserve(e),c.size===0&&(r?.disconnect(),r=null)});return t._observer={observe:w}}const te=/2g/;function ae(){const t=navigator.connection;return!!(t&&(t.saveData||te.test(t.effectiveType)))}export{le as _}; diff --git a/frontend_admin/.output/public/_nuxt/XMkMKtwS.js b/frontend_admin/.output/public/_nuxt/XMkMKtwS.js deleted file mode 100644 index 57e2113..0000000 --- a/frontend_admin/.output/public/_nuxt/XMkMKtwS.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as v}from"./QKJPEFuj.js";import{g as y,k as h,c as n,a as t,j as _,l as s,t as c,m as u,p as k,q as p,v as m,s as x,b as S,w as V,x as f,o as i,d as C}from"./C3Ck-LNv.js";import{u as L,_ as N}from"./ByPKVH1D.js";import"./BoAo7BJa.js";const B={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},E={class:"w-full max-w-md"},j={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},R={key:0,class:"mb-6 p-3 rounded-lg bg-red-900/40 border border-red-700 text-red-300 text-sm"},q=["disabled"],A={key:0,class:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},D={class:"mt-6 text-center"},U=y({__name:"login",setup(F){const a=f(""),r=f(""),b=h(),o=L();async function g(){try{await o.login(a.value,r.value),b.push("/")}catch(d){console.error("Login failed:",d)}}return(d,e)=>{const w=v;return i(),n("div",B,[t("div",E,[e[6]||(e[6]=_('
ServiceFinder LogoSERVICEFINDER

Staff Portal

Authorised personnel only

',1)),t("div",j,[s(o).error?(i(),n("div",R,c(s(o).error),1)):u("",!0),t("form",{onSubmit:k(g,["prevent"]),class:"space-y-5"},[t("div",null,[e[2]||(e[2]=t("label",{for:"email",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Email Address ",-1)),p(t("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=l=>x(a)?a.value=l:null),type:"email",autocomplete:"email",required:"",placeholder:"admin@example.com",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(a)]])]),t("div",null,[e[3]||(e[3]=t("label",{for:"password",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Password ",-1)),p(t("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=l=>x(r)?r.value=l:null),type:"password",autocomplete:"current-password",required:"",placeholder:"••••••••",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(r)]])]),t("button",{type:"submit",disabled:s(o).isLoading,class:"w-full py-2.5 px-4 bg-cyan-600 hover:bg-cyan-500 disabled:bg-cyan-800 disabled:cursor-not-allowed text-white font-semibold rounded-lg transition duration-200 flex items-center justify-center gap-2"},[s(o).isLoading?(i(),n("svg",A,[...e[4]||(e[4]=[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):u("",!0),t("span",null,c(s(o).isLoading?"Signing in...":"Sign In"),1)],8,q)],32),t("div",D,[S(w,{to:"/",class:"text-sm text-slate-500 hover:text-cyan-400 transition"},{default:V(()=>[...e[5]||(e[5]=[C(" ← Back to ServiceFinder ",-1)])]),_:1})])])])])}}});export{U as default}; diff --git a/frontend_admin/.output/public/_nuxt/builds/latest.json b/frontend_admin/.output/public/_nuxt/builds/latest.json index 9c58b77..32b6852 100644 --- a/frontend_admin/.output/public/_nuxt/builds/latest.json +++ b/frontend_admin/.output/public/_nuxt/builds/latest.json @@ -1 +1 @@ -{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021} \ No newline at end of file +{"id":"dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233","timestamp":1782345679846} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json b/frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json deleted file mode 100644 index baae62d..0000000 --- a/frontend_admin/.output/public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"30eed3bb-14ef-4661-b342-1d1b41361648","timestamp":1782300411021,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json b/frontend_admin/.output/public/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json new file mode 100644 index 0000000..5fb889c --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json @@ -0,0 +1 @@ +{"id":"dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233","timestamp":1782345679846,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/builds/meta/dev.json b/frontend_admin/.output/public/_nuxt/builds/meta/dev.json index f5503bc..8a6a5b5 100644 --- a/frontend_admin/.output/public/_nuxt/builds/meta/dev.json +++ b/frontend_admin/.output/public/_nuxt/builds/meta/dev.json @@ -1 +1 @@ -{"id":"dev","timestamp":1782300411347,"prerendered":[]} \ No newline at end of file +{"id":"dev","timestamp":1782345680189,"prerendered":[]} \ No newline at end of file diff --git a/frontend_admin/.output/public/_nuxt/ncKxzOzI.js b/frontend_admin/.output/public/_nuxt/ncKxzOzI.js new file mode 100644 index 0000000..02672aa --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/ncKxzOzI.js @@ -0,0 +1,5 @@ +import{e as de,y as ue,c as r,a as e,t as o,d as H,F as j,r as D,j as K,k as _,v as x,q as O,z as Q,i as y,h as E,n as Z,m as g,x as pe,s as me,A as _e,o as i}from"./CqYPuxVf.js";import{u as X}from"./DWjNh9rV.js";function ge(){const f=X();function $(n,c){const d=f.activeLocale||"en-EU";try{return new Intl.NumberFormat(d,c).format(n)}catch{return new Intl.NumberFormat("en-EU",c).format(n)}}function v(n,c,d){const m=f.activeLocale||"en-EU",u=c||f.activeCurrency||"EUR";try{return new Intl.NumberFormat(m,{style:"currency",currency:u,minimumFractionDigits:2,maximumFractionDigits:2,...d}).format(n)}catch{return`${n.toFixed(2)} ${u}`}}function L(n,c){const d=f.activeLocale||"en-EU",m=f.activeTimezone||"Europe/Brussels",u=typeof n=="string"||typeof n=="number"?new Date(n):n;try{return new Intl.DateTimeFormat(d,{timezone:m,year:"numeric",month:"2-digit",day:"2-digit",...c}).format(u)}catch{return u.toLocaleDateString("en-GB")}}function b(n,c){const d=f.activeLocale||"en-EU",m=f.activeTimezone||"Europe/Brussels",u=typeof n=="string"||typeof n=="number"?new Date(n):n;try{return new Intl.DateTimeFormat(d,{timezone:m,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",...c}).format(u)}catch{return u.toLocaleString("en-GB")}}function A(n,c){const d=f.activeLocale||"en-EU";try{return new Intl.NumberFormat(d,{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1,...c}).format(n/100)}catch{return`${n}%`}}function V(n,c){const d=c??f.activeVatRate??0,m=n*(d/100),u=n+m;return{net:n,vat:m,gross:u,vatRate:d}}function T(n,c,d){const{net:m,vat:u,gross:C,vatRate:h}=V(n,c),k=d||f.activeCurrency||"EUR";return`Net: ${v(m,k)} | VAT: ${v(u,k)} (${h}%) | Gross: ${v(C,k)}`}return{formatNumber:$,formatCurrency:v,formatDate:L,formatDateTime:b,formatPercent:A,calculatePriceWithVat:V,formatPriceWithVat:T}}const fe={class:"mb-8 flex items-center justify-between"},be={class:"text-2xl font-bold text-white"},xe={class:"text-slate-400 mt-1"},ye={key:0,class:"flex items-center justify-center py-20"},ve={class:"flex flex-col items-center gap-3"},he={class:"text-slate-400 text-sm"},ke={key:1,class:"bg-red-900/30 border border-red-700 rounded-xl p-6 text-center"},we={class:"text-red-300 mb-3"},$e={key:2,class:"bg-slate-800/50 border border-slate-700 rounded-xl p-12 text-center"},Ce={class:"text-lg font-medium text-slate-300 mb-2"},Ue={class:"text-slate-500 mb-6"},ze={key:3,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-6 mb-8"},Ve={class:"flex items-center justify-between mb-4"},Fe={class:"flex items-center gap-3"},Ee=["innerHTML"],Te={class:"text-lg font-semibold text-white"},je={class:"text-xs text-slate-500 font-mono"},De={class:"flex items-center gap-1.5 flex-wrap"},Le={key:0,class:"px-2 py-0.5 text-xs font-semibold rounded-full bg-indigo-500/20 text-indigo-300"},Pe={key:1,class:"px-2 py-0.5 text-xs font-semibold rounded-full bg-amber-500/20 text-amber-300",title:"Default fallback package for expired subscriptions"},Me=["title"],Re={class:"mb-4"},Ne={class:"text-3xl font-bold text-white"},Ae={class:"text-sm text-slate-400 ml-1"},Be={class:"text-sm text-slate-400 mb-4 flex-1"},Ie={class:"border-t border-slate-700 pt-4 mb-4"},Se={class:"text-xs font-semibold uppercase tracking-wider text-slate-500 mb-3"},He={class:"space-y-2"},Oe={class:"flex items-center justify-between text-sm"},Ze={class:"text-slate-400"},Ge={class:"text-slate-200 font-medium"},Je={class:"flex items-center justify-between text-sm"},qe={class:"text-slate-400"},We={class:"text-slate-200 font-medium"},Ke={class:"flex items-center justify-between text-sm"},Qe={class:"text-slate-400"},Xe={class:"text-slate-200 font-medium"},Ye={class:"mb-4"},et={class:"text-xs text-slate-500"},tt={class:"text-xs font-mono text-slate-400"},st={class:"flex gap-2"},at=["onClick"],lt=["onClick","title"],ot={class:"bg-slate-800 border border-slate-700 rounded-xl w-full max-w-3xl mx-4 shadow-2xl max-h-[90vh] flex flex-col"},nt={class:"flex items-center justify-between px-6 py-4 border-b border-slate-700"},rt={class:"text-lg font-semibold text-white"},it={class:"flex border-b border-slate-700 px-6"},ct=["onClick"],dt={class:"flex-1 overflow-y-auto px-6 py-5"},ut={key:0,class:"space-y-4"},pt={class:"block text-sm font-medium text-slate-300 mb-1"},mt=["placeholder"],_t={class:"block text-sm font-medium text-slate-300 mb-1"},gt=["placeholder"],ft={class:"grid grid-cols-2 gap-4"},bt={class:"block text-sm font-medium text-slate-300 mb-1"},xt={value:"private"},yt={value:"corporate"},vt={class:"block text-sm font-medium text-slate-300 mb-1"},ht={class:"text-xs text-slate-500 mt-1"},kt={class:"grid grid-cols-2 gap-4"},wt={class:"block text-sm font-medium text-slate-300 mb-1"},$t=["placeholder"],Ct={class:"block text-sm font-medium text-slate-300 mb-1"},Ut=["placeholder"],zt={class:"flex items-center gap-3"},Vt={for:"is_custom",class:"text-sm text-slate-300"},Ft={class:"border-t border-slate-700 pt-4"},Et={class:"text-sm font-semibold text-slate-300 mb-3"},Tt={class:"space-y-4"},jt={class:"flex items-center gap-3"},Dt={for:"is_default_fallback",class:"text-sm text-slate-300"},Lt={class:"block text-sm text-slate-300 mb-1"},Pt={class:"text-xs text-slate-500 mt-1"},Mt={key:1,class:"space-y-6"},Rt={class:"text-sm font-semibold text-slate-300 mb-3"},Nt={class:"overflow-x-auto"},At={class:"w-full text-sm"},Bt={class:"border-b border-slate-700"},It={class:"text-left py-2 px-3 text-slate-400 font-medium"},St={class:"text-left py-2 px-3 text-slate-400 font-medium"},Ht={class:"text-left py-2 px-3 text-slate-400 font-medium"},Ot={class:"py-2 px-3 text-slate-200 font-medium"},Zt={class:"inline-flex items-center gap-1.5"},Gt={class:"text-xs text-slate-500"},Jt={class:"py-2 px-3"},qt=["value","onInput"],Wt={class:"py-2 px-3"},Kt=["value","onInput"],Qt={class:"py-2 px-3"},Xt=["value","onInput"],Yt={class:"border-t border-slate-700 pt-5"},es={class:"text-sm font-semibold text-slate-300 mb-3"},ts={class:"bg-slate-700/30 rounded-xl p-4 space-y-4"},ss={class:"grid grid-cols-3 gap-4"},as={class:"block text-xs text-slate-400 mb-1"},ls={class:"block text-xs text-slate-400 mb-1"},os=["value"],ns={class:"block text-xs text-slate-400 mb-1"},rs=["value"],is={class:"grid grid-cols-3 gap-4 pt-2"},cs={class:"bg-slate-800 rounded-lg p-3 text-center"},ds={class:"text-xs text-slate-400 mb-1"},us={class:"text-lg font-bold text-white"},ps={class:"bg-slate-800 rounded-lg p-3 text-center"},ms={class:"text-xs text-slate-400 mb-1"},_s={class:"text-lg font-bold text-amber-400"},gs={class:"bg-slate-800 rounded-lg p-3 text-center ring-2 ring-emerald-500/50"},fs={class:"text-xs text-slate-400 mb-1"},bs={class:"text-lg font-bold text-emerald-400"},xs={class:"flex justify-end pt-1"},ys={key:2,class:"space-y-5"},vs={class:"text-sm font-semibold text-slate-300 mb-3"},hs={class:"grid grid-cols-3 gap-4"},ks={class:"block text-xs text-slate-400 mb-1"},ws={class:"block text-xs text-slate-400 mb-1"},$s={class:"block text-xs text-slate-400 mb-1"},Cs={class:"border-t border-slate-700 pt-4"},Us={class:"text-sm font-semibold text-slate-300 mb-3"},zs={class:"text-xs text-slate-500 mt-1"},Vs={key:0,class:"text-xs text-red-400 mt-1"},Fs={class:"flex items-center justify-between px-6 py-4 border-t border-slate-700"},Es={class:"text-xs text-slate-500"},Ts={class:"flex items-center gap-3"},js=["disabled"],Ds={key:0,class:"animate-spin h-4 w-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},Ls={class:"bg-slate-800 border border-slate-700 rounded-xl w-full max-w-md mx-4 p-6 shadow-2xl"},Ps={class:"text-lg font-semibold text-white mb-2"},Ms={class:"text-slate-400 text-sm mb-6"},Rs={class:"flex items-center justify-end gap-3"},Ns=["disabled"],Is=de({__name:"index",setup(f){const $=X(),{formatCurrency:v}=ge(),L=[{key:"basic",label:"📋 Basic Info"},{key:"pricing",label:"💰 Pricing"},{key:"features",label:"⚡ Features"}],b=g("basic"),A=pe(()=>{const t=L.find(s=>s.key===b.value);return t?t.label:""}),V=g([]),T=g(!0),n=g(null),c=g(!1),d=g(!1),m=g(null),u=g(null),C=g(!1),h=g(!1),k=g(null),P=g(null),U=g(0),F=g(27),z=g("EUR"),G={name:"",display_name:"",type:"private",tier_level:0,monthly_price:0,yearly_price:0,currency:"EUR",max_vehicles:1,max_garages:1,monthly_free_credits:0,subtitle:"",badge:"",is_custom:!1,is_default_fallback:!1,trial_days_on_signup:0,feature_capabilities_json:`{ + "ai_analysis": false, + "priority_support": false, + "api_access": false +}`,pricing_zones:{}},l=me({...G});function J(t,s){const a=l.pricing_zones[t];return a?s==="monthly"?a.monthly_price:a.yearly_price:0}function q(t,s,a){const p=parseFloat(a)||0;l.pricing_zones[t]||(l.pricing_zones[t]={monthly_price:0,yearly_price:0,currency:"EUR"}),s==="monthly"?l.pricing_zones[t].monthly_price=p:l.pricing_zones[t].yearly_price=p}function Y(t){const s=l.pricing_zones[t];return s?s.currency:"EUR"}function ee(t,s){l.pricing_zones[t]||(l.pricing_zones[t]={monthly_price:0,yearly_price:0,currency:"EUR"}),l.pricing_zones[t].currency=s.toUpperCase()}function te(){const t=$.regions.find(a=>a.default_vat_rate===F);if(!t){w("error","No region found with the selected VAT rate");return}const s=t.country_code;l.pricing_zones[s]||(l.pricing_zones[s]={monthly_price:0,yearly_price:0,currency:t.currency}),l.pricing_zones[s].monthly_price=U,l.pricing_zones[s].currency=z,w("success",`Applied net price ${v(U,z)} to ${s} region`)}function M(){const s=_e("access_token").value;return s?{Authorization:`Bearer ${s}`}:{}}async function R(){T.value=!0,n.value=null;try{const t=await $fetch("/api/v1/admin/packages",{headers:M()});V.value=t.tiers||[]}catch(t){n.value=t?.data?.detail||t?.message||"Failed to load packages",console.error("[Packages] Fetch error:",t)}finally{T.value=!1}}function N(t){return t.rules?.display_name||t.name}function se(t){return t.rules?.marketing?.subtitle||t.rules?.marketing?.badge||""}function ae(t){const s=t.rules?.pricing_zones,a=t.rules?.pricing;if(s&&s.DEFAULT){const p=s.DEFAULT,I=p.currency==="HUF"?"Ft":"€";return`${p.monthly_price} ${I}`}if(a){const p=a.currency==="HUF"?"Ft":"€";return`${a.monthly_price} ${p}`}return"—"}function B(t,s){const a=t.rules?.allowances;return a?a[s]??"—":"—"}function le(t){return t>=2?"bg-purple-500/10 text-purple-400":t>=1?"bg-amber-500/10 text-amber-400":"bg-slate-500/10 text-slate-400"}function oe(t){return t>=2?"🏢":t>=1?"⭐":"🔓"}function W(){C.value=!0,m.value=null,b.value="basic",Object.assign(l,G),c.value=!0}function ne(t){C.value=!1,m.value=t,b.value="basic";const s=t.rules||{},a=s.pricing_zones?.DEFAULT||s.pricing||{},p=s.allowances||{};if(l.name=t.name,l.display_name=s.display_name||"",l.type=s.type||"private",l.tier_level=t.tier_level,l.monthly_price=a.monthly_price||0,l.yearly_price=a.yearly_price||0,l.currency=a.currency||"EUR",l.max_vehicles=p.max_vehicles||1,l.max_garages=p.max_garages||1,l.monthly_free_credits=p.monthly_free_credits||0,l.subtitle=s.marketing?.subtitle||"",l.badge=s.marketing?.badge||"",l.is_custom=t.is_custom,l.is_default_fallback=t.is_default_fallback,l.trial_days_on_signup=t.trial_days_on_signup,l.pricing_zones={},s.pricing_zones)for(const[I,S]of Object.entries(s.pricing_zones))l.pricing_zones[I]={monthly_price:S.monthly_price||0,yearly_price:S.yearly_price||0,currency:S.currency||"EUR"};l.feature_capabilities_json=JSON.stringify(t.feature_capabilities||{},null,2),c.value=!0}function re(t){u.value=t,d.value=!0}async function ie(){if(!l.name.trim()){w("error","Package name is required");return}let t={};try{t=JSON.parse(l.feature_capabilities_json),P.value=null}catch{P.value="Invalid JSON in feature capabilities",b.value="features";return}h.value=!0;try{const s={...l.pricing_zones};s.DEFAULT||(s.DEFAULT={monthly_price:l.monthly_price,yearly_price:l.yearly_price,currency:l.currency.toUpperCase()});const a={type:l.type,display_name:l.display_name||null,pricing_zones:s,allowances:{max_vehicles:l.max_vehicles,max_garages:l.max_garages,monthly_free_credits:l.monthly_free_credits},marketing:{subtitle:l.subtitle||null,badge:l.badge||null},lifecycle:{is_public:!0}};C.value?(await $fetch("/api/v1/admin/packages",{method:"POST",headers:{...M(),"Content-Type":"application/json"},body:{name:l.name.trim().toLowerCase(),rules:a,is_custom:l.is_custom,tier_level:l.tier_level,feature_capabilities:t,is_default_fallback:l.is_default_fallback,trial_days_on_signup:l.trial_days_on_signup}}),w("success",`Package "${l.name}" created successfully`)):m.value&&(await $fetch(`/api/v1/admin/packages/${m.value.id}`,{method:"PATCH",headers:{...M(),"Content-Type":"application/json"},body:{name:l.name.trim().toLowerCase(),rules:a,is_custom:l.is_custom,tier_level:l.tier_level,feature_capabilities:t,is_default_fallback:l.is_default_fallback,trial_days_on_signup:l.trial_days_on_signup}}),w("success",`Package "${l.name}" updated successfully`)),c.value=!1,await R()}catch(s){const a=s?.data?.detail||s?.message||"Operation failed";w("error",a),console.error("[Packages] Save error:",s)}finally{h.value=!1}}async function ce(){if(u.value){h.value=!0;try{await $fetch(`/api/v1/admin/packages/${u.value.id}`,{method:"DELETE",headers:M()}),w("success",`Package "${N(u.value)}" deactivated`),d.value=!1,u.value=null,await R()}catch(t){const s=t?.data?.detail||t?.message||"Delete failed";w("error",s),console.error("[Packages] Delete error:",t)}finally{h.value=!1}}}function w(t,s){k.value={type:t,message:s},setTimeout(()=>{k.value=null},4e3)}return ue(()=>{R(),$.fetchRegions()}),(t,s)=>(i(),r("div",null,[e("div",fe,[e("div",null,[e("h1",be,o(t.$t("packages.title")),1),e("p",xe,o(t.$t("packages.subtitle")),1)]),e("button",{onClick:W,class:"px-5 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-medium rounded-lg transition text-sm flex items-center gap-2"},[s[21]||(s[21]=e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)),H(" "+o(t.$t("packages.create_new")),1)])]),T.value?(i(),r("div",ye,[e("div",ve,[s[22]||(s[22]=e("svg",{class:"animate-spin h-8 w-8 text-indigo-400",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),e("span",he,o(t.$t("packages.loading")),1)])])):n.value?(i(),r("div",ke,[e("p",we,o(n.value),1),e("button",{onClick:R,class:"px-4 py-2 bg-red-700 hover:bg-red-600 text-white rounded-lg transition text-sm"},o(t.$t("packages.retry")),1)])):V.value.length===0?(i(),r("div",$e,[s[23]||(s[23]=e("svg",{class:"w-16 h-16 mx-auto text-slate-600 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"})],-1)),e("h3",Ce,o(t.$t("packages.no_packages")),1),e("p",Ue,o(t.$t("packages.no_packages_desc")),1),e("button",{onClick:W,class:"px-5 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-medium rounded-lg transition text-sm"},o(t.$t("packages.create_first")),1)])):(i(),r("div",ze,[(i(!0),r(j,null,D(V.value,a=>(i(),r("div",{key:a.id,class:"bg-slate-800 rounded-xl border border-slate-700 p-6 flex flex-col transition-all hover:border-slate-600"},[e("div",Ve,[e("div",Fe,[e("div",{class:Z(["p-2 rounded-lg",le(a.tier_level)])},[e("span",{class:"w-5 h-5 text-lg",innerHTML:oe(a.tier_level)},null,8,Ee)],2),e("div",null,[e("h2",Te,o(N(a)),1),e("span",je,o(a.name),1)])]),e("div",De,[a.tier_level>=1?(i(),r("span",Le,o(t.$t("packages.popular")),1)):y("",!0),a.is_default_fallback?(i(),r("span",Pe," 🔒 "+o(t.$t("packages.fallback_badge")),1)):y("",!0),a.trial_days_on_signup>0?(i(),r("span",{key:2,class:"px-2 py-0.5 text-xs font-semibold rounded-full bg-emerald-500/20 text-emerald-300",title:`${a.trial_days_on_signup} days trial on signup`}," 🎯 "+o(t.$t("packages.trial_badge"))+": "+o(a.trial_days_on_signup)+"d ",9,Me)):y("",!0)])]),e("div",Re,[e("span",Ne,o(ae(a)),1),e("span",Ae,"/ "+o(t.$t("packages.month")),1)]),e("p",Be,o(se(a)),1),e("div",Ie,[e("h3",Se,o(t.$t("packages.allowances")),1),e("div",He,[e("div",Oe,[e("span",Ze,o(t.$t("packages.max_vehicles")),1),e("span",Ge,o(B(a,"max_vehicles")),1)]),e("div",Je,[e("span",qe,o(t.$t("packages.max_garages")),1),e("span",We,o(B(a,"max_garages")),1)]),e("div",Ke,[e("span",Qe,o(t.$t("packages.monthly_credits")),1),e("span",Xe,o(B(a,"monthly_free_credits")),1)])])]),e("div",Ye,[e("span",et,o(t.$t("packages.tier_level"))+": ",1),e("span",tt,o(a.tier_level),1)]),e("div",st,[e("button",{onClick:p=>ne(a),class:"flex-1 px-4 py-2.5 bg-indigo-600 hover:bg-indigo-500 text-white font-medium rounded-lg transition text-sm"},o(t.$t("packages.edit")),9,at),e("button",{onClick:p=>re(a),class:"px-3 py-2.5 bg-red-700 hover:bg-red-600 text-red-200 rounded-lg transition",title:t.$t("packages.delete")},[...s[24]||(s[24]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})],-1)])],8,lt)])]))),128))])),c.value?(i(),r("div",{key:4,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:s[18]||(s[18]=K(a=>c.value=!1,["self"]))},[e("div",ot,[e("div",nt,[e("h3",rt,o(C.value?t.$t("packages.create_title"):t.$t("packages.edit_title")+": "+N(m.value)),1),e("button",{onClick:s[0]||(s[0]=a=>c.value=!1),class:"p-1 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition"},[...s[25]||(s[25]=[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),e("div",it,[(i(),r(j,null,D(L,a=>e("button",{key:a.key,onClick:p=>b.value=a.key,class:Z(["px-4 py-3 text-sm font-medium border-b-2 transition",b.value===a.key?"border-indigo-500 text-indigo-300":"border-transparent text-slate-400 hover:text-slate-200 hover:border-slate-500"])},o(a.label),11,ct)),64))]),e("div",dt,[b.value==="basic"?(i(),r("div",ut,[e("div",null,[e("label",pt,o(t.$t("packages.form_name")),1),_(e("input",{"onUpdate:modelValue":s[1]||(s[1]=a=>l.name=a),type:"text",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent",placeholder:t.$t("packages.form_name_placeholder")},null,8,mt),[[x,l.name]])]),e("div",null,[e("label",_t,o(t.$t("packages.form_display_name")),1),_(e("input",{"onUpdate:modelValue":s[2]||(s[2]=a=>l.display_name=a),type:"text",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent",placeholder:t.$t("packages.form_display_name_placeholder")},null,8,gt),[[x,l.display_name]])]),e("div",ft,[e("div",null,[e("label",bt,o(t.$t("packages.form_type")),1),_(e("select",{"onUpdate:modelValue":s[3]||(s[3]=a=>l.type=a),class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},[e("option",xt,o(t.$t("packages.type_private")),1),e("option",yt,o(t.$t("packages.type_corporate")),1)],512),[[O,l.type]])]),e("div",null,[e("label",vt,o(t.$t("packages.form_tier_level")),1),_(e("input",{"onUpdate:modelValue":s[4]||(s[4]=a=>l.tier_level=a),type:"number",min:"0",max:"10",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},null,512),[[x,l.tier_level,void 0,{number:!0}]]),e("p",ht,o(t.$t("packages.form_tier_level_hint")),1)])]),e("div",kt,[e("div",null,[e("label",wt,o(t.$t("packages.form_subtitle")),1),_(e("input",{"onUpdate:modelValue":s[5]||(s[5]=a=>l.subtitle=a),type:"text",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent",placeholder:t.$t("packages.form_subtitle_placeholder")},null,8,$t),[[x,l.subtitle]])]),e("div",null,[e("label",Ct,o(t.$t("packages.form_badge")),1),_(e("input",{"onUpdate:modelValue":s[6]||(s[6]=a=>l.badge=a),type:"text",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent",placeholder:t.$t("packages.form_badge_placeholder")},null,8,Ut),[[x,l.badge]])])]),e("div",zt,[_(e("input",{"onUpdate:modelValue":s[7]||(s[7]=a=>l.is_custom=a),type:"checkbox",id:"is_custom",class:"rounded bg-slate-700 border-slate-600 text-indigo-600 focus:ring-indigo-500"},null,512),[[Q,l.is_custom]]),e("label",Vt,o(t.$t("packages.form_is_custom")),1)]),e("div",Ft,[e("h4",Et,o(t.$t("packages.singleton_rules")),1),e("div",Tt,[e("div",jt,[_(e("input",{"onUpdate:modelValue":s[8]||(s[8]=a=>l.is_default_fallback=a),type:"checkbox",id:"is_default_fallback",class:"rounded bg-slate-700 border-slate-600 text-amber-500 focus:ring-amber-500"},null,512),[[Q,l.is_default_fallback]]),e("label",Dt,o(t.$t("packages.form_is_default_fallback")),1)]),e("div",null,[e("label",Lt,o(t.$t("packages.form_trial_days")),1),_(e("input",{"onUpdate:modelValue":s[9]||(s[9]=a=>l.trial_days_on_signup=a),type:"number",min:"0",max:"365",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent"},null,512),[[x,l.trial_days_on_signup,void 0,{number:!0}]]),e("p",Pt,o(t.$t("packages.form_trial_days_hint")),1)])])])])):y("",!0),b.value==="pricing"?(i(),r("div",Mt,[e("div",null,[e("h4",Rt,o(t.$t("packages.per_region_pricing")),1),e("div",Nt,[e("table",At,[e("thead",null,[e("tr",Bt,[s[26]||(s[26]=e("th",{class:"text-left py-2 px-3 text-slate-400 font-medium"},"Region",-1)),e("th",It,o(t.$t("packages.form_monthly_price")),1),e("th",St,o(t.$t("packages.form_yearly_price")),1),e("th",Ht,o(t.$t("packages.form_currency")),1)])]),e("tbody",null,[(i(!0),r(j,null,D(E($).regions,a=>(i(),r("tr",{key:a.country_code,class:"border-b border-slate-700/50"},[e("td",Ot,[e("span",Zt,[e("span",null,o(a.country_code),1),e("span",Gt,"("+o(a.currency)+", "+o(a.default_vat_rate)+"% VAT)",1)])]),e("td",Jt,[e("input",{value:J(a.country_code,"monthly"),onInput:p=>q(a.country_code,"monthly",p.target.value),type:"number",step:"0.01",min:"0",class:"w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},null,40,qt)]),e("td",Wt,[e("input",{value:J(a.country_code,"yearly"),onInput:p=>q(a.country_code,"yearly",p.target.value),type:"number",step:"0.01",min:"0",class:"w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},null,40,Kt)]),e("td",Qt,[e("input",{value:Y(a.country_code),onInput:p=>ee(a.country_code,p.target.value),type:"text",maxlength:"3",class:"w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent uppercase"},null,40,Xt)])]))),128))])])])]),e("div",Yt,[e("h4",es,"🧮 "+o(t.$t("packages.smart_calculator")),1),e("div",ts,[e("div",ss,[e("div",null,[e("label",as,o(t.$t("packages.calc_net_price")),1),_(e("input",{"onUpdate:modelValue":s[10]||(s[10]=a=>U.value=a),type:"number",step:"0.01",min:"0",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent",placeholder:"0.00"},null,512),[[x,U.value,void 0,{number:!0}]])]),e("div",null,[e("label",ls,o(t.$t("packages.calc_vat_rate")),1),_(e("select",{"onUpdate:modelValue":s[11]||(s[11]=a=>F.value=a),class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent"},[(i(!0),r(j,null,D(E($).regions,a=>(i(),r("option",{key:a.country_code,value:a.default_vat_rate},o(a.country_code)+" — "+o(a.default_vat_rate)+"% ",9,os))),128))],512),[[O,F.value]])]),e("div",null,[e("label",ns,o(t.$t("packages.calc_currency")),1),_(e("select",{"onUpdate:modelValue":s[12]||(s[12]=a=>z.value=a),class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent"},[(i(!0),r(j,null,D(E($).regions,a=>(i(),r("option",{key:a.country_code,value:a.currency},o(a.currency)+" ("+o(a.country_code)+") ",9,rs))),128))],512),[[O,z.value]])])]),e("div",is,[e("div",cs,[e("p",ds,o(t.$t("packages.calc_net")),1),e("p",us,o(E(v)(U.value,z.value)),1)]),e("div",ps,[e("p",ms,o(t.$t("packages.calc_vat"))+" ("+o(F.value)+"%)",1),e("p",_s,o(E(v)(U.value*(F.value/100),z.value)),1)]),e("div",gs,[e("p",fs,o(t.$t("packages.calc_gross")),1),e("p",bs,o(E(v)(U.value*(1+F.value/100),z.value)),1)])]),e("div",xs,[e("button",{onClick:te,class:"px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white text-sm font-medium rounded-lg transition flex items-center gap-2"},[s[27]||(s[27]=e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 10V3L4 14h7v7l9-11h-7z"})],-1)),H(" "+o(t.$t("packages.calc_apply")),1)])])])])])):y("",!0),b.value==="features"?(i(),r("div",ys,[e("div",null,[e("h4",vs,o(t.$t("packages.allowances")),1),e("div",hs,[e("div",null,[e("label",ks,o(t.$t("packages.max_vehicles")),1),_(e("input",{"onUpdate:modelValue":s[13]||(s[13]=a=>l.max_vehicles=a),type:"number",min:"0",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},null,512),[[x,l.max_vehicles,void 0,{number:!0}]])]),e("div",null,[e("label",ws,o(t.$t("packages.max_garages")),1),_(e("input",{"onUpdate:modelValue":s[14]||(s[14]=a=>l.max_garages=a),type:"number",min:"0",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},null,512),[[x,l.max_garages,void 0,{number:!0}]])]),e("div",null,[e("label",$s,o(t.$t("packages.monthly_credits")),1),_(e("input",{"onUpdate:modelValue":s[15]||(s[15]=a=>l.monthly_free_credits=a),type:"number",min:"0",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"},null,512),[[x,l.monthly_free_credits,void 0,{number:!0}]])])])]),e("div",Cs,[e("h4",Us,o(t.$t("packages.feature_capabilities")),1),_(e("textarea",{"onUpdate:modelValue":s[16]||(s[16]=a=>l.feature_capabilities_json=a),rows:"8",class:"w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm font-mono focus:ring-2 focus:ring-indigo-500 focus:border-transparent",placeholder:'{\\n "ai_analysis": true,\\n "priority_support": false,\\n "api_access": true\\n}'},null,512),[[x,l.feature_capabilities_json]]),e("p",zs,o(t.$t("packages.feature_capabilities_hint")),1),P.value?(i(),r("p",Vs,o(P.value),1)):y("",!0)])])):y("",!0)]),e("div",Fs,[e("div",Es,o(A.value),1),e("div",Ts,[e("button",{onClick:s[17]||(s[17]=a=>c.value=!1),class:"px-4 py-2 text-sm text-slate-400 hover:text-white transition"},o(t.$t("packages.cancel")),1),e("button",{onClick:ie,disabled:h.value,class:"px-6 py-2 bg-emerald-600 hover:bg-emerald-500 disabled:bg-slate-600 disabled:cursor-not-allowed text-white font-medium rounded-lg transition text-sm flex items-center gap-2"},[h.value?(i(),r("svg",Ds,[...s[28]||(s[28]=[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),H(" "+o(C.value?t.$t("packages.create"):t.$t("packages.save")),1)],8,js)])])])])):y("",!0),d.value&&u.value?(i(),r("div",{key:5,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:s[20]||(s[20]=K(a=>d.value=!1,["self"]))},[e("div",Ls,[e("h3",Ps,o(t.$t("packages.delete_title")),1),e("p",Ms,o(t.$t("packages.delete_confirm",{name:N(u.value)})),1),e("div",Rs,[e("button",{onClick:s[19]||(s[19]=a=>d.value=!1),class:"px-4 py-2 text-sm text-slate-400 hover:text-white transition"},o(t.$t("packages.cancel")),1),e("button",{onClick:ce,disabled:h.value,class:"px-6 py-2 bg-red-600 hover:bg-red-500 disabled:bg-slate-600 disabled:cursor-not-allowed text-white font-medium rounded-lg transition text-sm"},o(t.$t("packages.delete_btn")),9,Ns)])])])):y("",!0),k.value?(i(),r("div",{key:6,class:Z(["fixed bottom-6 right-6 px-5 py-3 rounded-xl shadow-xl text-sm font-medium z-50",k.value.type==="success"?"bg-emerald-600 text-white":"bg-red-600 text-white"])},o(k.value.message),3)):y("",!0)]))}});export{Is as default}; diff --git a/frontend_admin/.output/public/_nuxt/usmOON9X.js b/frontend_admin/.output/public/_nuxt/usmOON9X.js deleted file mode 100644 index 5552f4d..0000000 --- a/frontend_admin/.output/public/_nuxt/usmOON9X.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as i,a as e,t as o}from"./C3Ck-LNv.js";import{u}from"./Di-57MrI.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return u({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(a(),i("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},h=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{h as default}; diff --git a/frontend_admin/.output/public/_nuxt/zPyClsoP.js b/frontend_admin/.output/public/_nuxt/zPyClsoP.js new file mode 100644 index 0000000..47970a2 --- /dev/null +++ b/frontend_admin/.output/public/_nuxt/zPyClsoP.js @@ -0,0 +1 @@ +import{e as G,c as i,a as e,t as a,k as _,v as H,q as K,F as k,r as w,i as g,n as r,m as v,s as T,x as h,o as n,d as y}from"./CqYPuxVf.js";const V={class:"mb-8"},F={class:"text-2xl font-bold text-white"},L={class:"text-slate-400 mt-1"},D={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-8"},P={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},U={class:"flex items-center gap-3"},q={class:"text-xs text-slate-400 uppercase tracking-wider"},E={class:"text-2xl font-bold text-white"},Z={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},Q={class:"flex items-center gap-3"},R={class:"text-xs text-slate-400 uppercase tracking-wider"},I={class:"text-2xl font-bold text-emerald-400"},J={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},O={class:"flex items-center gap-3"},W={class:"text-xs text-slate-400 uppercase tracking-wider"},X={class:"text-2xl font-bold text-amber-400"},Y={class:"bg-slate-800 rounded-xl border border-slate-700 p-4"},ee={class:"flex items-center gap-3"},te={class:"text-xs text-slate-400 uppercase tracking-wider"},se={class:"text-2xl font-bold text-purple-400"},oe={class:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4 mb-6"},ae={class:"relative flex-1 max-w-md"},le=["placeholder"],ie={class:"flex items-center gap-2"},re={value:"all"},ne={class:"bg-slate-800/50 border border-slate-700 rounded-xl overflow-hidden"},de={class:"overflow-x-auto"},ce={class:"w-full text-sm"},ue={class:"border-b border-slate-700 bg-slate-800/80"},pe={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},me={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},ge={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},ve={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},he={class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},xe={class:"py-3.5 px-4 text-slate-400 font-mono text-xs"},fe={class:"py-3.5 px-4"},be={class:"flex items-center gap-3"},_e={class:"text-sm font-medium text-white"},ke={class:"text-xs text-slate-500"},we={class:"py-3.5 px-4 text-slate-300"},ye={class:"py-3.5 px-4"},Ce={class:"py-3.5 px-4"},$e={class:"flex items-center gap-2"},Ne=["onClick","title"],ze={key:0,class:"absolute right-0 mt-1 w-44 bg-slate-800 border border-slate-700 rounded-lg shadow-xl py-1 z-40"},Me=["onClick"],je={key:0,class:"ml-auto"},Be={class:"py-3.5 px-4"},Se={class:"flex items-center gap-2"},Ae=["onClick"],Ge=["onClick"],He={key:0,class:"flex flex-col items-center justify-center py-16 text-center"},Ke={class:"text-slate-400 text-sm"},Fe=G({__name:"index",setup(Te){const u=v(""),p=v("all"),m=v(null),c=v(null),C=["free","premium","enterprise"],d=T([{id:1,companyName:"Kovács Autószerviz",contactName:"Kovács István",email:"kovacs@autoserviz.hu",status:"active",tier:"premium",initials:"KA",colorClass:"bg-amber-600"},{id:2,companyName:"Nagy Gépjárműjavító Kft.",contactName:"Nagy Péter",email:"info@nagygepjarmu.hu",status:"active",tier:"enterprise",initials:"NG",colorClass:"bg-purple-600"},{id:3,companyName:"Tóth Autó és Motorgarázs",contactName:"Tóth Gábor",email:"toth@garazs.hu",status:"active",tier:"free",initials:"TA",colorClass:"bg-slate-600"},{id:4,companyName:"Szabó Flottakezelő Kft.",contactName:"Szabó Márta",email:"szabo@flotta.hu",status:"inactive",tier:"premium",initials:"SZ",colorClass:"bg-amber-600"},{id:5,companyName:"Horváth Autótechnika",contactName:"Horváth László",email:"horvath@autotechnika.hu",status:"suspended",tier:"free",initials:"HA",colorClass:"bg-slate-600"},{id:6,companyName:"Kiss & Társa Szerviz",contactName:"Kiss Anna",email:"kiss@szerviz.hu",status:"active",tier:"enterprise",initials:"KT",colorClass:"bg-purple-600"},{id:7,companyName:"Molnár Autóház Kft.",contactName:"Molnár Zoltán",email:"molnar@autohaz.hu",status:"active",tier:"premium",initials:"MA",colorClass:"bg-amber-600"},{id:8,companyName:"Farkas Gépjármű Szerviz",contactName:"Farkas Béla",email:"farkas@gepjarmu.hu",status:"inactive",tier:"free",initials:"FG",colorClass:"bg-slate-600"}]),$=h(()=>d.filter(t=>t.status==="active").length),N=h(()=>d.filter(t=>t.tier==="premium").length),z=h(()=>d.filter(t=>t.tier==="enterprise").length),x=h(()=>d.filter(t=>{if(u.value){const s=u.value.toLowerCase();if(!(t.companyName.toLowerCase().includes(s)||t.contactName.toLowerCase().includes(s)||t.email.toLowerCase().includes(s)))return!1}return!(p.value!=="all"&&t.tier!==p.value)}));function M(t){return t==="enterprise"?"bg-purple-500/20 text-purple-300":t==="premium"?"bg-amber-500/20 text-amber-300":"bg-slate-500/20 text-slate-300"}function j(t){m.value=m.value===t?null:t}function B(t,s){const o=d.find(b=>b.id===t);if(!o)return;const l=o.tier;o.tier=s,m.value=null,f("success",`"${o.companyName}" csomag módosítva: ${l} → ${s}`),console.log(`[Garages] Package changed: garage=${t}, from=${l}, to=${s}`)}function S(t){console.log(`[Garages] View garage: ${t}`)}function A(t){const s=d.find(o=>o.id===t);s&&(s.status=s.status==="active"?"inactive":"active",f("success",`"${s.companyName}" státusz módosítva: ${s.status}`),console.log(`[Garages] Status toggled: garage=${t}, newStatus=${s.status}`))}function f(t,s){c.value={type:t,message:s},setTimeout(()=>{c.value=null},4e3)}return(t,s)=>(n(),i("div",null,[e("div",V,[e("h1",F,a(t.$t("garages.title")),1),e("p",L,a(t.$t("garages.subtitle")),1)]),e("div",D,[e("div",P,[e("div",U,[s[2]||(s[2]=e("div",{class:"p-2 rounded-lg bg-indigo-500/10 text-indigo-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})])],-1)),e("div",null,[e("p",q,a(t.$t("garages.total_garages")),1),e("p",E,a(d.length),1)])])]),e("div",Z,[e("div",Q,[s[3]||(s[3]=e("div",{class:"p-2 rounded-lg bg-emerald-500/10 text-emerald-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})])],-1)),e("div",null,[e("p",R,a(t.$t("garages.active_garages")),1),e("p",I,a($.value),1)])])]),e("div",J,[e("div",O,[s[4]||(s[4]=e("div",{class:"p-2 rounded-lg bg-amber-500/10 text-amber-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})])],-1)),e("div",null,[e("p",W,a(t.$t("garages.premium_garages")),1),e("p",X,a(N.value),1)])])]),e("div",Y,[e("div",ee,[s[5]||(s[5]=e("div",{class:"p-2 rounded-lg bg-purple-500/10 text-purple-400"},[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"})])],-1)),e("div",null,[e("p",te,a(t.$t("garages.enterprise_garages")),1),e("p",se,a(z.value),1)])])])]),e("div",oe,[e("div",ae,[s[6]||(s[6]=e("svg",{class:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)),_(e("input",{"onUpdate:modelValue":s[0]||(s[0]=o=>u.value=o),type:"text",placeholder:t.$t("garages.search_placeholder"),class:"w-full pl-10 pr-4 py-2.5 bg-slate-800 border border-slate-700 rounded-lg text-sm text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 transition"},null,8,le),[[H,u.value]])]),e("div",ie,[_(e("select",{"onUpdate:modelValue":s[1]||(s[1]=o=>p.value=o),class:"px-3 py-2.5 bg-slate-800 border border-slate-700 rounded-lg text-sm text-slate-300 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 transition"},[e("option",re,a(t.$t("garages.all_tiers")),1),s[7]||(s[7]=e("option",{value:"free"},"Free",-1)),s[8]||(s[8]=e("option",{value:"premium"},"Premium",-1)),s[9]||(s[9]=e("option",{value:"enterprise"},"Enterprise",-1))],512),[[K,p.value]])])]),e("div",ne,[e("div",de,[e("table",ce,[e("thead",null,[e("tr",ue,[s[10]||(s[10]=e("th",{class:"text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400"},"ID",-1)),e("th",pe,a(t.$t("garages.company_name")),1),e("th",me,a(t.$t("garages.email")),1),e("th",ge,a(t.$t("garages.status")),1),e("th",ve,a(t.$t("garages.current_package")),1),e("th",he,a(t.$t("garages.actions")),1)])]),e("tbody",null,[(n(!0),i(k,null,w(x.value,o=>(n(),i("tr",{key:o.id,class:"border-b border-slate-700/50 hover:bg-slate-700/30 transition"},[e("td",xe,a(o.id),1),e("td",fe,[e("div",be,[e("div",{class:r(["w-8 h-8 rounded-lg flex items-center justify-center text-sm font-bold text-white",o.colorClass])},a(o.initials),3),e("div",null,[e("p",_e,a(o.companyName),1),e("p",ke,a(o.contactName),1)])])]),e("td",we,a(o.email),1),e("td",ye,[e("span",{class:r(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",o.status==="active"?"bg-emerald-500/10 text-emerald-400":o.status==="suspended"?"bg-red-500/10 text-red-400":"bg-slate-500/10 text-slate-400"])},[e("span",{class:r(["w-1.5 h-1.5 rounded-full mr-1.5",o.status==="active"?"bg-emerald-400":o.status==="suspended"?"bg-red-400":"bg-slate-400"])},null,2),y(" "+a(o.status==="active"?t.$t("garages.active"):o.status==="suspended"?t.$t("garages.suspended"):t.$t("garages.inactive")),1)],2)]),e("td",Ce,[e("div",$e,[e("span",{class:r(["px-2.5 py-0.5 rounded-full text-xs font-medium",M(o.tier)])},a(o.tier),3),e("div",{class:"relative",ref_for:!0,ref:"dropdownRefs"},[e("button",{onClick:l=>j(o.id),class:"p-1.5 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition",title:t.$t("garages.change_package")},[...s[11]||(s[11]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])],8,Ne),m.value===o.id?(n(),i("div",ze,[(n(),i(k,null,w(C,l=>e("button",{key:l,onClick:b=>B(o.id,l),class:r(["flex items-center gap-2 w-full px-3 py-2 text-sm text-left transition",o.tier===l?"text-indigo-400 bg-indigo-500/10":"text-slate-300 hover:bg-slate-700 hover:text-white"])},[e("span",{class:r(["w-2 h-2 rounded-full",l==="free"?"bg-slate-400":l==="premium"?"bg-amber-400":"bg-purple-400"])},null,2),y(" "+a(l.charAt(0).toUpperCase()+l.slice(1))+" ",1),o.tier===l?(n(),i("span",je,[...s[12]||(s[12]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 13l4 4L19 7"})],-1)])])):g("",!0)],10,Me)),64))])):g("",!0)],512)])]),e("td",Be,[e("div",Se,[e("button",{onClick:l=>S(o.id),class:"px-3 py-1.5 text-xs font-medium bg-indigo-600/20 text-indigo-300 hover:bg-indigo-600/30 rounded-lg transition"},a(t.$t("garages.view")),9,Ae),e("button",{onClick:l=>A(o.id),class:r(["px-3 py-1.5 text-xs font-medium rounded-lg transition",o.status==="active"?"bg-red-500/10 text-red-300 hover:bg-red-500/20":"bg-emerald-500/10 text-emerald-300 hover:bg-emerald-500/20"])},a(o.status==="active"?t.$t("garages.deactivate"):t.$t("garages.activate")),11,Ge)])])]))),128))])])]),x.value.length===0?(n(),i("div",He,[s[13]||(s[13]=e("svg",{class:"w-12 h-12 text-slate-600 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})],-1)),e("p",Ke,a(t.$t("garages.no_results")),1)])):g("",!0)]),c.value?(n(),i("div",{key:0,class:r(["fixed bottom-6 right-6 px-5 py-3 rounded-xl shadow-xl text-sm font-medium z-50",c.value.type==="success"?"bg-emerald-600 text-white":"bg-red-600 text-white"])},a(c.value.message),3)):g("",!0)]))}});export{Fe as default}; diff --git a/frontend_admin/.output/public/logo.svg b/frontend_admin/.output/public/logo.svg new file mode 100644 index 0000000..601e670 --- /dev/null +++ b/frontend_admin/.output/public/logo.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + diff --git a/frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs b/frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs similarity index 79% rename from frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs rename to frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs index 5a8e96a..e4d7722 100644 --- a/frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs +++ b/frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs @@ -1,5 +1,4 @@ -import { d as defineNuxtRouteMiddleware, n as navigateTo } from './server.mjs'; -import { u as useCookie } from './cookie-CWIsZYm7.mjs'; +import { d as defineNuxtRouteMiddleware, b as useCookie, n as navigateTo } from './server.mjs'; import 'vue'; import '../nitro/nitro.mjs'; import 'node:http'; @@ -9,16 +8,16 @@ import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; +import 'vue-router'; import 'node:url'; +import 'pinia'; +import 'vue/server-renderer'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; -import 'vue/server-renderer'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'unhead/plugins'; -import 'pinia'; -import 'vue-router'; const auth = defineNuxtRouteMiddleware((to, from) => { if (to.path === "/login") { @@ -31,4 +30,4 @@ const auth = defineNuxtRouteMiddleware((to, from) => { }); export { auth as default }; -//# sourceMappingURL=auth-D_CY0lMs.mjs.map +//# sourceMappingURL=auth-BgwR5zMA.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs.map b/frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs.map new file mode 100644 index 0000000..7a8991c --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/auth-BgwR5zMA.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"auth-BgwR5zMA.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-BgwR5zMA.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,IAAA,GAAO,yBAAA,CAA0B,CAAC,EAAA,EAAI,IAAA,KAAS;AACnD,EAAA,IAAI,EAAA,CAAG,SAAS,QAAA,EAAU;AACxB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,EAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACtB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACF,CAAC;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs.map b/frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs.map deleted file mode 100644 index 94f536f..0000000 --- a/frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"auth-CRAMW6e4.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-CRAMW6e4.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs.map b/frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs.map deleted file mode 100644 index b792299..0000000 --- a/frontend_admin/.output/server/chunks/build/auth-D_CY0lMs.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"auth-D_CY0lMs.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-D_CY0lMs.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,IAAA,GAAO,yBAAA,CAA0B,CAAC,EAAA,EAAI,IAAA,KAAS;AACnD,EAAA,IAAI,EAAA,CAAG,SAAS,QAAA,EAAU;AACxB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,EAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACtB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACF,CAAC;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs b/frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs similarity index 92% rename from frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs rename to frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs index f204021..66073e8 100644 --- a/frontend_admin/.output/server/chunks/build/auth-CRAMW6e4.mjs +++ b/frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs @@ -1,9 +1,7 @@ -import { p as publicAssetsURL } from '../routes/renderer.mjs'; import { defineStore } from 'pinia'; import { ref, computed } from 'vue'; -import { u as useCookie } from './cookie-CWIsZYm7.mjs'; +import { b as useCookie } from './server.mjs'; -const _imports_0 = publicAssetsURL("/sf_logo.png"); const useAuthStore = defineStore("auth", () => { const user = ref(null); const token = ref(null); @@ -123,5 +121,5 @@ const useAuthStore = defineStore("auth", () => { }; }); -export { _imports_0 as _, useAuthStore as u }; -//# sourceMappingURL=auth-CRAMW6e4.mjs.map +export { useAuthStore as u }; +//# sourceMappingURL=auth-mCjBoLcA.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs.map b/frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs.map new file mode 100644 index 0000000..0e4ef43 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/auth-mCjBoLcA.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"auth-mCjBoLcA.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-mCjBoLcA.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/client.precomputed.mjs b/frontend_admin/.output/server/chunks/build/client.precomputed.mjs index d29c724..6a2f60d 100644 --- a/frontend_admin/.output/server/chunks/build/client.precomputed.mjs +++ b/frontend_admin/.output/server/chunks/build/client.precomputed.mjs @@ -1,4 +1,4 @@ -const client_precomputed = ((h,j,k,m,o)=>({dependencies:{"node_modules/nuxt/dist/app/entry.js":{scripts:{"node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:true,prefetch:true,preload:true,file:"C3Ck-LNv.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:true,dynamicImports:["middleware/auth.ts","layouts/default.vue","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]}},styles:{},preload:{"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_BoAo7BJa.js":{scripts:{},styles:{},preload:{"_BoAo7BJa.js":j={resourceType:"script",module:true,prefetch:true,preload:true,file:"BoAo7BJa.js",name:"cookie",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_ByPKVH1D.js":{scripts:{},styles:{},preload:{"_ByPKVH1D.js":k={resourceType:"script",module:true,prefetch:true,preload:true,file:"ByPKVH1D.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_BoAo7BJa.js":j},prefetch:{}},"_Di-57MrI.js":{scripts:{},styles:{},preload:{"_Di-57MrI.js":m={resourceType:"script",module:true,prefetch:true,preload:true,file:"Di-57MrI.js",name:"v3",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_QKJPEFuj.js":{scripts:{},styles:{},preload:{"_QKJPEFuj.js":o={resourceType:"script",module:true,prefetch:true,preload:true,file:"QKJPEFuj.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"BW9w-mbE.js",name:"default",src:"layouts/default.vue",isDynamicEntry:true,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_ByPKVH1D.js":k,"_BoAo7BJa.js":j},prefetch:{}},"middleware/auth.ts":{scripts:{},styles:{},preload:{"middleware/auth.ts":{resourceType:"script",module:true,prefetch:true,preload:true,file:"BFfxzM5G.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js","_BoAo7BJa.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_BoAo7BJa.js":j},prefetch:{}},"node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"Oih3kTQ2.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:true,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_Di-57MrI.js":m},prefetch:{}},"error-404.DL_4WIao.css":{scripts:{},styles:{},preload:{"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"usmOON9X.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js","_Di-57MrI.js"],css:[]},"node_modules/nuxt/dist/app/entry.js":h,"_Di-57MrI.js":m},prefetch:{}},"error-500.I1Dtv2V5.css":{scripts:{},styles:{},preload:{"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"entry.KrfumMBl.css":{scripts:{},styles:{},preload:{"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"pages/index.vue":{scripts:{},styles:{},preload:{"pages/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"Drr7KP9v.js",name:"index",src:"pages/index.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/login.vue":{scripts:{},styles:{},preload:{"pages/login.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"XMkMKtwS.js",name:"login",src:"pages/login.vue",isDynamicEntry:true,imports:["_QKJPEFuj.js","node_modules/nuxt/dist/app/entry.js","_ByPKVH1D.js","_BoAo7BJa.js"]},"_QKJPEFuj.js":o,"node_modules/nuxt/dist/app/entry.js":h,"_ByPKVH1D.js":k,"_BoAo7BJa.js":j},prefetch:{}},"pages/permissions/index.vue":{scripts:{},styles:{},preload:{"pages/permissions/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"CyOWWS80.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}}},entrypoints:["node_modules/nuxt/dist/app/entry.js"],modules:{"_BoAo7BJa.js":{file:"BoAo7BJa.js",resourceType:"script",mimeType:void 0,module:true},"_ByPKVH1D.js":{file:"ByPKVH1D.js",resourceType:"script",mimeType:void 0,module:true},"_Di-57MrI.js":{file:"Di-57MrI.js",resourceType:"script",mimeType:void 0,module:true},"_QKJPEFuj.js":{file:"QKJPEFuj.js",resourceType:"script",mimeType:void 0,module:true},"layouts/default.vue":{file:"BW9w-mbE.js",resourceType:"script",mimeType:void 0,module:true},"middleware/auth.ts":{file:"BFfxzM5G.js",resourceType:"script",mimeType:void 0,module:true},"node_modules/nuxt/dist/app/components/error-404.vue":{file:"Oih3kTQ2.js",resourceType:"script",mimeType:void 0,module:true},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/components/error-500.vue":{file:"usmOON9X.js",resourceType:"script",mimeType:void 0,module:true},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/entry.js":{file:"C3Ck-LNv.js",resourceType:"script",mimeType:void 0,module:true},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/index.vue":{file:"Drr7KP9v.js",resourceType:"script",mimeType:void 0,module:true},"pages/login.vue":{file:"XMkMKtwS.js",resourceType:"script",mimeType:void 0,module:true},"pages/permissions/index.vue":{file:"CyOWWS80.js",resourceType:"script",mimeType:void 0,module:true}}}))(); +const client_precomputed = ((h,j,k,m)=>({dependencies:{"node_modules/nuxt/dist/app/entry.js":{scripts:{"node_modules/nuxt/dist/app/entry.js":h={resourceType:"script",module:true,prefetch:true,preload:true,file:"CqYPuxVf.js",name:"entry",src:"node_modules/nuxt/dist/app/entry.js",isEntry:true,dynamicImports:["middleware/auth.ts","layouts/default.vue","i18n/locales/hu.json","i18n/locales/en.json","node_modules/nuxt/dist/app/components/error-404.vue","node_modules/nuxt/dist/app/components/error-500.vue"],css:[]}},styles:{},preload:{"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_CWA6Xjbg.js":{scripts:{},styles:{},preload:{"_CWA6Xjbg.js":j={resourceType:"script",module:true,prefetch:true,preload:true,file:"CWA6Xjbg.js",name:"auth",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_DWjNh9rV.js":{scripts:{},styles:{},preload:{"_DWjNh9rV.js":k={resourceType:"script",module:true,prefetch:true,preload:true,file:"DWjNh9rV.js",name:"region",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"_Da4aCGAe.js":{scripts:{},styles:{},preload:{"_Da4aCGAe.js":m={resourceType:"script",module:true,prefetch:true,preload:true,file:"Da4aCGAe.js",name:"nuxt-link",imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"i18n/locales/en.json":{scripts:{},styles:{},preload:{},prefetch:{}},"i18n/locales/hu.json":{scripts:{},styles:{},preload:{},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"CC4zKGJo.js",name:"default",src:"layouts/default.vue",isDynamicEntry:true,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js","_DWjNh9rV.js","_CWA6Xjbg.js"]},"_Da4aCGAe.js":m,"node_modules/nuxt/dist/app/entry.js":h,"_DWjNh9rV.js":k,"_CWA6Xjbg.js":j},prefetch:{}},"middleware/auth.ts":{scripts:{},styles:{},preload:{"middleware/auth.ts":{resourceType:"script",module:true,prefetch:true,preload:true,file:"DuYZ8wdr.js",name:"auth",src:"middleware/auth.ts",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"C8yzOtqa.js",name:"error-404",src:"node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:true,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js"],css:[]},"_Da4aCGAe.js":m,"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"error-404.DL_4WIao.css":{scripts:{},styles:{},preload:{"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"Cx40nPNe.js",name:"error-500",src:"node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"],css:[]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"error-500.I1Dtv2V5.css":{scripts:{},styles:{},preload:{"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"entry.KrfumMBl.css":{scripts:{},styles:{},preload:{"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",prefetch:true,preload:true}},prefetch:{}},"pages/garages/index.vue":{scripts:{},styles:{},preload:{"pages/garages/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"zPyClsoP.js",name:"index",src:"pages/garages/index.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/index.vue":{scripts:{},styles:{},preload:{"pages/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"CqyNVJx6.js",name:"index",src:"pages/index.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}},"pages/login.vue":{scripts:{},styles:{},preload:{"pages/login.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"9W9VXtTt.js",name:"login",src:"pages/login.vue",isDynamicEntry:true,imports:["_Da4aCGAe.js","node_modules/nuxt/dist/app/entry.js","_CWA6Xjbg.js"]},"_Da4aCGAe.js":m,"node_modules/nuxt/dist/app/entry.js":h,"_CWA6Xjbg.js":j},prefetch:{}},"pages/packages/index.vue":{scripts:{},styles:{},preload:{"pages/packages/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"ncKxzOzI.js",name:"index",src:"pages/packages/index.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js","_DWjNh9rV.js"]},"node_modules/nuxt/dist/app/entry.js":h,"_DWjNh9rV.js":k},prefetch:{}},"pages/permissions/index.vue":{scripts:{},styles:{},preload:{"pages/permissions/index.vue":{resourceType:"script",module:true,prefetch:true,preload:true,file:"BO90Bn6x.js",name:"index",src:"pages/permissions/index.vue",isDynamicEntry:true,imports:["node_modules/nuxt/dist/app/entry.js"]},"node_modules/nuxt/dist/app/entry.js":h},prefetch:{}}},entrypoints:["node_modules/nuxt/dist/app/entry.js"],modules:{"_CWA6Xjbg.js":{file:"CWA6Xjbg.js",resourceType:"script",mimeType:void 0,module:true},"_DWjNh9rV.js":{file:"DWjNh9rV.js",resourceType:"script",mimeType:void 0,module:true},"_Da4aCGAe.js":{file:"Da4aCGAe.js",resourceType:"script",mimeType:void 0,module:true},"i18n/locales/en.json":{file:"CgyjcGAF.js",resourceType:"script",mimeType:void 0,module:true},"i18n/locales/hu.json":{file:"DP_n9i02.js",resourceType:"script",mimeType:void 0,module:true},"layouts/default.vue":{file:"CC4zKGJo.js",resourceType:"script",mimeType:void 0,module:true},"middleware/auth.ts":{file:"DuYZ8wdr.js",resourceType:"script",mimeType:void 0,module:true},"node_modules/nuxt/dist/app/components/error-404.vue":{file:"C8yzOtqa.js",resourceType:"script",mimeType:void 0,module:true},"error-404.DL_4WIao.css":{file:"error-404.DL_4WIao.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/components/error-500.vue":{file:"Cx40nPNe.js",resourceType:"script",mimeType:void 0,module:true},"error-500.I1Dtv2V5.css":{file:"error-500.I1Dtv2V5.css",resourceType:"style",mimeType:void 0,module:void 0},"node_modules/nuxt/dist/app/entry.js":{file:"CqYPuxVf.js",resourceType:"script",mimeType:void 0,module:true},"entry.KrfumMBl.css":{file:"entry.KrfumMBl.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/garages/index.vue":{file:"zPyClsoP.js",resourceType:"script",mimeType:void 0,module:true},"pages/index.vue":{file:"CqyNVJx6.js",resourceType:"script",mimeType:void 0,module:true},"pages/login.vue":{file:"9W9VXtTt.js",resourceType:"script",mimeType:void 0,module:true},"pages/packages/index.vue":{file:"ncKxzOzI.js",resourceType:"script",mimeType:void 0,module:true},"pages/permissions/index.vue":{file:"BO90Bn6x.js",resourceType:"script",mimeType:void 0,module:true}}}))(); export { client_precomputed as default }; //# sourceMappingURL=client.precomputed.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/client.precomputed.mjs.map b/frontend_admin/.output/server/chunks/build/client.precomputed.mjs.map index 126454f..bcffac1 100644 --- a/frontend_admin/.output/server/chunks/build/client.precomputed.mjs.map +++ b/frontend_admin/.output/server/chunks/build/client.precomputed.mjs.map @@ -1 +1 @@ -{"version":3,"file":"client.precomputed.mjs","sources":["../../../../.nuxt/dist/server/client.precomputed.mjs"],"names":[],"mappings":"AAAA,2BAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,OAAO,CAAC,IAAE,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,qDAAqD,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qCAAqC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qDAAqD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qDAAqD,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qDAAqD,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qCAAqC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qDAAqD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qDAAqD,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qDAAqD,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qCAAqC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,6BAA6B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC;;;;"} \ No newline at end of file +{"version":3,"file":"client.precomputed.mjs","sources":["../../../../.nuxt/dist/server/client.precomputed.mjs"],"names":[],"mappings":"AAAA,2BAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,OAAO,CAAC,IAAE,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,qDAAqD,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qCAAqC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qDAAqD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qDAAqD,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qDAAqD,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,qDAAqD,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qDAAqD,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,qDAAqD,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,qCAAqC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,6BAA6B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,CAAC,QAAQ,CAAC,IAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,cAAc,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,qCAAqC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,qDAAqD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs b/frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs deleted file mode 100644 index 1f968f6..0000000 --- a/frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs +++ /dev/null @@ -1,77 +0,0 @@ -import { ref } from 'vue'; -import { t as klona, v as parse, x as getRequestHeader, y as destr, z as isEqual, A as setCookie, B as getCookie, C as deleteCookie } from '../nitro/nitro.mjs'; -import { a as useNuxtApp } from './server.mjs'; - -function useRequestEvent(nuxtApp) { - var _a; - nuxtApp || (nuxtApp = useNuxtApp()); - return (_a = nuxtApp.ssrContext) == null ? void 0 : _a.event; -} -const CookieDefaults = { - path: "/", - watch: true, - decode: (val) => { - const decoded = decodeURIComponent(val); - const parsed = destr(decoded); - if (typeof parsed === "number" && (!Number.isFinite(parsed) || String(parsed) !== decoded)) { - return decoded; - } - return parsed; - }, - encode: (val) => encodeURIComponent(typeof val === "string" ? val : JSON.stringify(val)) -}; -function useCookie(name, _opts) { - var _a, _b, _c; - const opts = { ...CookieDefaults, ..._opts }; - (_a = opts.filter) != null ? _a : opts.filter = (key) => key === name; - const cookies = readRawCookies(opts) || {}; - let delay; - if (opts.maxAge !== void 0) { - delay = opts.maxAge * 1e3; - } else if (opts.expires) { - delay = opts.expires.getTime() - Date.now(); - } - const hasExpired = delay !== void 0 && delay <= 0; - const cookieValue = klona(hasExpired ? void 0 : (_c = cookies[name]) != null ? _c : (_b = opts.default) == null ? void 0 : _b.call(opts)); - const cookie = ref(cookieValue); - { - const nuxtApp = useNuxtApp(); - const writeFinalCookieValue = () => { - if (opts.readonly || isEqual(cookie.value, cookies[name])) { - return; - } - nuxtApp._cookies || (nuxtApp._cookies = {}); - if (name in nuxtApp._cookies) { - if (isEqual(cookie.value, nuxtApp._cookies[name])) { - return; - } - } - nuxtApp._cookies[name] = cookie.value; - writeServerCookie(useRequestEvent(nuxtApp), name, cookie.value, opts); - }; - const unhook = nuxtApp.hooks.hookOnce("app:rendered", writeFinalCookieValue); - nuxtApp.hooks.hookOnce("app:error", () => { - unhook(); - return writeFinalCookieValue(); - }); - } - return cookie; -} -function readRawCookies(opts = {}) { - { - return parse(getRequestHeader(useRequestEvent(), "cookie") || "", opts); - } -} -function writeServerCookie(event, name, value, opts = {}) { - if (event) { - if (value !== null && value !== void 0) { - return setCookie(event, name, value, opts); - } - if (getCookie(event, name) !== void 0) { - return deleteCookie(event, name, opts); - } - } -} - -export { useCookie as u }; -//# sourceMappingURL=cookie-CWIsZYm7.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs.map b/frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs.map deleted file mode 100644 index e931dce..0000000 --- a/frontend_admin/.output/server/chunks/build/cookie-CWIsZYm7.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cookie-CWIsZYm7.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/cookie-CWIsZYm7.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs b/frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs similarity index 57% rename from frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs rename to frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs index 0375ebc..48c4cf8 100644 --- a/frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs +++ b/frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs @@ -1,10 +1,11 @@ -import { _ as __nuxt_component_0 } from './nuxt-link-DNVrgHUL.mjs'; -import { defineComponent, ref, computed, mergeProps, withCtx, createVNode, toDisplayString, withDirectives, vShow, openBlock, createBlock, createTextVNode, useSSRContext } from 'vue'; -import { ssrRenderAttrs, ssrRenderClass, ssrRenderAttr, ssrRenderList, ssrInterpolate, ssrRenderStyle, ssrRenderComponent, ssrRenderSlot } from 'vue/server-renderer'; -import { u as useAuthStore, _ as _imports_0 } from './auth-CRAMW6e4.mjs'; +import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs'; +import { defineComponent, computed, ref, mergeProps, withCtx, createVNode, toDisplayString, openBlock, createBlock, createTextVNode, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, ssrRenderAttr, ssrRenderList, ssrRenderStyle, ssrInterpolate, ssrRenderSlot } from 'vue/server-renderer'; +import { p as publicAssetsURL } from '../nitro/nitro.mjs'; import { useRoute } from 'vue-router'; -import { u as useRouter } from './server.mjs'; -import '../nitro/nitro.mjs'; +import { u as useRegionStore } from './region-0mvXqaMM.mjs'; +import { a as useRouter, c as useI18n } from './server.mjs'; +import { u as useAuthStore } from './auth-mCjBoLcA.mjs'; import 'node:http'; import 'node:https'; import 'node:events'; @@ -13,15 +14,15 @@ import 'node:fs'; import 'node:path'; import 'node:crypto'; import 'node:url'; +import 'pinia'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'unhead/plugins'; -import 'pinia'; -import './cookie-CWIsZYm7.mjs'; +const _imports_0 = publicAssetsURL("/logo.svg"); const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "default", __ssrInlineRender: true, @@ -29,6 +30,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ const route = useRoute(); useRouter(); const authStore = useAuthStore(); + useRegionStore(); + const { locale, locales } = useI18n(); + const availableLocales = computed(() => locales.value); + const currentLocale = computed(() => locale.value); const sidebarOpen = ref(false); const sidebarCollapsed = ref(false); const dropdownOpen = ref(false); @@ -78,6 +83,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ } ] }, + { + title: "P\xE9nz\xFCgyek", + items: [ + { + path: "/packages", + label: "Csomagok", + icon: '' + } + ] + }, { title: "Rendszer", items: [ @@ -106,6 +121,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ if (route.path.startsWith("/garages")) return "Gar\xE1zsok"; if (route.path.startsWith("/users")) return "Felhaszn\xE1l\xF3k"; if (route.path.startsWith("/logs")) return "Rendszernapl\xF3k"; + if (route.path.startsWith("/packages")) return "Csomagok"; return "Admin Panel"; }); function isActive(path) { @@ -125,28 +141,48 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ _push(``); } _push(`

${ssrInterpolate(pageTitle.value)}

`); + _push(`
ServiceFinder v2.0

${ssrInterpolate(pageTitle.value)}

`); + ssrRenderList(availableLocales.value, (locale2) => { + _push(``); + }); + _push(`
`); if (dropdownOpen.value) { _push(`

${ssrInterpolate(userEmail.value)}

Administrator

`); _push(ssrRenderComponent(_component_NuxtLink, { @@ -243,7 +277,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ } else { _push(``); } - _push(`
`); + _push(`
`); ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent); _push(`
`); }; @@ -257,4 +291,4 @@ _sfc_main.setup = (props, ctx) => { }; export { _sfc_main as default }; -//# sourceMappingURL=default-DbJQlxCD.mjs.map +//# sourceMappingURL=default-B9tlXlqE.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs.map b/frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs.map new file mode 100644 index 0000000..613bea4 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/default-B9tlXlqE.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"default-B9tlXlqE.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/default-B9tlXlqE.js"],"names":["_a"],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs.map b/frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs.map deleted file mode 100644 index 10e6210..0000000 --- a/frontend_admin/.output/server/chunks/build/default-DbJQlxCD.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-DbJQlxCD.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/default-DbJQlxCD.js"],"names":["_a"],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs b/frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs new file mode 100644 index 0000000..d850aea --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs @@ -0,0 +1,115 @@ +const resource = { + "permissions": { + "title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permissions Management" } }, + "subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permissions Management \u2014 Role-based access control & subscription feature flags" } }, + "loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading permissions data..." } }, + "error_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load permissions" } }, + "retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } }, + "save_changes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save Changes" } }, + "discard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Discard" } }, + "modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " modification(s)" }] } }, + "current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Current Tier" } }, + "expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Expires" } }, + "superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } }, + "superadmin_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Full system access \u2014 user management, billing, robots, and system configuration." } }, + "garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garages" } }, + "garages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garage-level access \u2014 vehicle management, service booking, customer data." } }, + "feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Feature Flags" } }, + "feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Subscription feature toggles \u2014 resolved from your current tier (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } }, + "rbac_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "RBAC Permission Matrix" } }, + "rbac_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Role-based access control \u2014 which roles can perform which admin actions." } }, + "action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Action" } }, + "perms": { + "user_mgmt": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User Management" } }, + "billing_admin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Billing Administration" } }, + "robot_config": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Robot Configuration" } }, + "system_logs": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "System Logs Access" } }, + "api_keys": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "API Key Management" } }, + "vehicle_crud": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vehicle CRUD" } }, + "service_booking": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Service Booking" } }, + "customer_view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Customer Data View" } }, + "report_export": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Report Export" } }, + "bulk_import": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Bulk Import" } } + } + }, + "packages": { + "title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Package Management" } }, + "subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage subscription packages and feature flags \u2014 Free, Premium, Enterprise" } }, + "loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading packages..." } }, + "retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } }, + "create_new": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Package" } }, + "no_packages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No packages yet" } }, + "no_packages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create your first subscription package to get started." } }, + "create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create First Package" } }, + "popular": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Popular" } }, + "fallback_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Fallback" } }, + "trial_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Trial" } }, + "month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "month" } }, + "feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Available Features" } }, + "edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } }, + "delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete" } }, + "set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Set as default" } }, + "set_as_default_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "set as default package!" } }, + "edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Package" } }, + "create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Package" } }, + "cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } }, + "save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save Changes" } }, + "create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create" } }, + "save_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Package updated successfully!" } }, + "delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete Package" } }, + "delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": 'Are you sure you want to delete "' }, { "t": 4, "k": "name" }, { "t": 3, "v": '"?' }] } }, + "delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete" } }, + "allowances": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Allowances" } }, + "max_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Vehicles" } }, + "max_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Garages" } }, + "monthly_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Monthly Credits" } }, + "tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tier Level" } }, + "form_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "System Name" } }, + "form_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. premium_2024" } }, + "form_display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Display Name" } }, + "form_display_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Premium Plus" } }, + "form_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Type" } }, + "type_private": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Private" } }, + "type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Corporate" } }, + "form_tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tier Level" } }, + "form_tier_level_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Higher number = more features & higher rank" } }, + "form_monthly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Monthly Price" } }, + "form_yearly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Yearly Price" } }, + "form_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Currency" } }, + "form_subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Subtitle / Description" } }, + "form_subtitle_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Best for small businesses" } }, + "form_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge Text" } }, + "form_badge_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Most Popular" } }, + "form_is_custom": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Custom Package (not publicly listed)" } }, + "singleton_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Singleton Rules" } }, + "form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Default Fallback Package \u2014 assigned when a subscription expires" } }, + "form_trial_days": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Trial Days on Signup" } }, + "form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New organizations get this many free days. Only one package can have trial > 0." } } + }, + "garages": { + "title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garages CRM" } }, + "subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garage list, package management and status changes" } }, + "total_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Total Garages" } }, + "active_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active Garages" } }, + "premium_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Premium Garages" } }, + "enterprise_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enterprise Garages" } }, + "search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Search by name, contact or email..." } }, + "all_tiers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All packages" } }, + "company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Company Name" } }, + "email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email" } }, + "status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } }, + "current_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Current Package" } }, + "actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } }, + "active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } }, + "inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inactive" } }, + "suspended": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Suspended" } }, + "change_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Change Package" } }, + "view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "View" } }, + "activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activate" } }, + "deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deactivate" } }, + "no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No garages match your search." } } + } +}; + +export { resource as default }; +//# sourceMappingURL=en-BScPj1A-.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs.map b/frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs.map new file mode 100644 index 0000000..762e92b --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/en-BScPj1A-.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"en-BScPj1A-.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/en-BScPj1A-.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs b/frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs deleted file mode 100644 index d302643..0000000 --- a/frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs +++ /dev/null @@ -1,14 +0,0 @@ -import { a as app_vue_vue_type_style_index_0_lang } from './entry-styles-3.mjs-C1rWf53M.mjs'; - -const tailwind = '*,::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: }*,: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;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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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:initial}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:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-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::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}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-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-x-0{--tw-translate-x:0px}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{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))}.rotate-90{--tw-rotate:90deg}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-indigo-500\\/20{border-color:#6366f133}.border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\\/50{border-color:#33415580}.bg-amber-500\\/10{background-color:#f59e0b1a}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-black\\/50{background-color:#00000080}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.bg-cyan-500\\/10{background-color:#06b6d41a}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-400\\/10{background-color:#34d3991a}.bg-emerald-500\\/10{background-color:#10b9811a}.bg-indigo-400{--tw-bg-opacity:1;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.bg-indigo-500\\/10{background-color:#6366f11a}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-indigo-600\\/20{background-color:#4f46e533}.bg-purple-500\\/10{background-color:#a855f71a}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-900\\/40{background-color:#7f1d1d66}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-400\\/10{background-color:#fb71851a}.bg-rose-500\\/10{background-color:#f43f5e1a}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-700\\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-800\\/50{background-color:#1e293b80}.bg-slate-800\\/95{background-color:#1e293bf2}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.p-1\\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.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-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-indigo-300{--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-slate-400::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px #00000012) drop-shadow(0 2px 2px #0000000f);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-sm{--tw-backdrop-blur:blur(4px);-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-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.last\\:border-0:last-child{border-width:0}.hover\\:border-cyan-500\\/50:hover{border-color:#06b6d480}.hover\\:border-emerald-500\\/50:hover{border-color:#10b98180}.hover\\:border-indigo-500\\/50:hover{border-color:#6366f180}.hover\\:border-rose-500\\/50:hover{border-color:#f43f5e80}.hover\\:bg-amber-500:hover{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.hover\\:bg-cyan-500:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.hover\\:bg-purple-500:hover{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\\:text-cyan-400:hover{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\\:border-transparent:focus{border-color:#0000}.focus\\:outline-none:focus{outline:2px solid #0000;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-cyan-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity,1))}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-cyan-800:disabled{--tw-bg-opacity:1;background-color:rgb(21 94 117/var(--tw-bg-opacity,1))}.group:hover .group-hover\\:bg-cyan-500\\/20{background-color:#06b6d433}.group:hover .group-hover\\:bg-emerald-500\\/20{background-color:#10b98133}.group:hover .group-hover\\:bg-indigo-500\\/20{background-color:#6366f133}.group:hover .group-hover\\:bg-rose-500\\/20{background-color:#f43f5e33}@media(min-width:640px){.sm\\:block{display:block}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\\:static{position:static}.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:w-20{width:5rem}.lg\\:translate-x-0{--tw-translate-x:0px;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))}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:p-6{padding:1.5rem}.lg\\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width:1280px){.xl\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}'; - -const main = '*,: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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-12{width:3rem}.w-2{width:.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-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-x-0{--tw-translate-x:0px}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-90{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))}.rotate-90{--tw-rotate:90deg}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-indigo-500\\/20{border-color:#6366f133}.border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\\/50{border-color:#33415580}.bg-amber-500\\/10{background-color:#f59e0b1a}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-black\\/50{background-color:#00000080}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.bg-cyan-500\\/10{background-color:#06b6d41a}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-400\\/10{background-color:#34d3991a}.bg-emerald-500\\/10{background-color:#10b9811a}.bg-indigo-400{--tw-bg-opacity:1;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.bg-indigo-500\\/10{background-color:#6366f11a}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-indigo-600\\/20{background-color:#4f46e533}.bg-purple-500\\/10{background-color:#a855f71a}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-900\\/40{background-color:#7f1d1d66}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-400\\/10{background-color:#fb71851a}.bg-rose-500\\/10{background-color:#f43f5e1a}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-700\\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-800\\/50{background-color:#1e293b80}.bg-slate-800\\/95{background-color:#1e293bf2}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.p-1\\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.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-4{padding-bottom:1rem}.pt-4,.py-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-indigo-300{--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-slate-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.placeholder-slate-400::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06));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-sm{--tw-backdrop-blur:blur(4px);-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-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}body{min-height:100vh;--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.last\\:border-0:last-child{border-width:0}.hover\\:border-cyan-500\\/50:hover{border-color:#06b6d480}.hover\\:border-emerald-500\\/50:hover{border-color:#10b98180}.hover\\:border-indigo-500\\/50:hover{border-color:#6366f180}.hover\\:border-rose-500\\/50:hover{border-color:#f43f5e80}.hover\\:bg-amber-500:hover{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.hover\\:bg-cyan-500:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.hover\\:bg-purple-500:hover{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\\:text-cyan-400:hover{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\\:border-transparent:focus{border-color:transparent}.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-cyan-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity,1))}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-cyan-800:disabled{--tw-bg-opacity:1;background-color:rgb(21 94 117/var(--tw-bg-opacity,1))}.group:hover .group-hover\\:bg-cyan-500\\/20{background-color:#06b6d433}.group:hover .group-hover\\:bg-emerald-500\\/20{background-color:#10b98133}.group:hover .group-hover\\:bg-indigo-500\\/20{background-color:#6366f133}.group:hover .group-hover\\:bg-rose-500\\/20{background-color:#f43f5e33}@media(min-width:640px){.sm\\:block{display:block}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\\:static{position:static}.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:w-20{width:5rem}.lg\\:translate-x-0{--tw-translate-x:0px;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))}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:p-6{padding:1.5rem}.lg\\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width:1280px){.xl\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}'; - -const entryStyles_BhrIOCGw = [ - tailwind, - main, - app_vue_vue_type_style_index_0_lang -]; - -export { entryStyles_BhrIOCGw as default }; -//# sourceMappingURL=entry-styles.BhrIOCGw.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs.map b/frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs.map deleted file mode 100644 index 3bd5a69..0000000 --- a/frontend_admin/.output/server/chunks/build/entry-styles.BhrIOCGw.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"entry-styles.BhrIOCGw.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CF-ChPYj.js","../../../../.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CntxBZab.js","../../../../.nuxt/dist/server/_nuxt/entry-styles.BhrIOCGw.mjs"],"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAA,GAAW,okfAAA;;ACAjB,MAAM,IAAA,GAAO,8kiBAAA;;ACGb,6BAAe;AACf,EAAEA,QAAO;AACT,EAAEC,IAAO;AACT,EAAEC;AACF;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs b/frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs new file mode 100644 index 0000000..99d858a --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs @@ -0,0 +1,14 @@ +import { a as app_vue_vue_type_style_index_0_lang } from './entry-styles-3.mjs-C1rWf53M.mjs'; + +const tailwind = `*,::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: }*,: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;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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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:initial}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:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-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::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}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-1\\/2{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1\\.5{margin-right:.375rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.max-h-\\[90vh\\]{max-height:90vh}.min-h-screen{min-height:100vh}.w-1\\.5{width:.375rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-0{max-width:0}.max-w-3xl{max-width:48rem}.max-w-\\[200px\\]{max-width:200px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.rotate-180{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))}.rotate-180{--tw-rotate:180deg}.rotate-90{--tw-rotate:90deg;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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-emerald-500\\/20{border-color:#10b98133}.border-indigo-500{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.border-indigo-500\\/20{border-color:#6366f133}.border-red-500\\/20{border-color:#ef444433}.border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\\/50{border-color:#33415580}.border-transparent{border-color:#0000}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-500\\/10{background-color:#f59e0b1a}.bg-amber-500\\/20{background-color:#f59e0b33}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-black\\/50{background-color:#00000080}.bg-black\\/60{background-color:#0009}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.bg-cyan-500\\/10{background-color:#06b6d41a}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-400\\/10{background-color:#34d3991a}.bg-emerald-500\\/10{background-color:#10b9811a}.bg-emerald-500\\/20{background-color:#10b98133}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-indigo-400{--tw-bg-opacity:1;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.bg-indigo-500\\/10{background-color:#6366f11a}.bg-indigo-500\\/20{background-color:#6366f133}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-indigo-600\\/20{background-color:#4f46e533}.bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.bg-purple-500\\/10{background-color:#a855f71a}.bg-purple-500\\/20{background-color:#a855f733}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-500\\/10{background-color:#ef44441a}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-red-900\\/30{background-color:#7f1d1d4d}.bg-red-900\\/40{background-color:#7f1d1d66}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-400\\/10{background-color:#fb71851a}.bg-rose-500\\/10{background-color:#f43f5e1a}.bg-slate-400{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.bg-slate-500\\/10{background-color:#64748b1a}.bg-slate-500\\/20{background-color:#64748b33}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-700\\/30{background-color:#3341554d}.bg-slate-700\\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-800\\/50{background-color:#1e293b80}.bg-slate-800\\/80{background-color:#1e293bcc}.bg-slate-800\\/95{background-color:#1e293bf2}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.py-20{padding-bottom:5rem;padding-top:5rem}.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}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.pb-8{padding-bottom:2rem}.pl-10{padding-left:2.5rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\\[10px\\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-indigo-300{--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-indigo-400\\/70{color:#818cf8b3}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-400\\/80{color:#f87171cc}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-slate-400::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.shadow-emerald-600\\/20{--tw-shadow-color:#05966933;--tw-shadow:var(--tw-shadow-colored)}.ring-2{--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)}.ring-emerald-500\\/50{--tw-ring-color:#10b98180}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px #00000012) drop-shadow(0 2px 2px #0000000f)}.drop-shadow-md,.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-sm{--tw-backdrop-blur:blur(4px);-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-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:left-\\[2px\\]:after{content:var(--tw-content);left:2px}.after\\:top-\\[2px\\]:after{content:var(--tw-content);top:2px}.after\\:h-4:after{content:var(--tw-content);height:1rem}.after\\:w-4:after{content:var(--tw-content);width:1rem}.after\\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\\:border:after{border-width:1px;content:var(--tw-content)}.after\\:border-slate-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.after\\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.last\\:border-0:last-child{border-width:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;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))}.hover\\:border-cyan-500\\/50:hover{border-color:#06b6d480}.hover\\:border-emerald-500\\/50:hover{border-color:#10b98180}.hover\\:border-indigo-500\\/50:hover{border-color:#6366f180}.hover\\:border-rose-500\\/50:hover{border-color:#f43f5e80}.hover\\:border-slate-500:hover{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.hover\\:border-slate-600:hover{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.hover\\:bg-cyan-500:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.hover\\:bg-emerald-500:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.hover\\:bg-emerald-500\\/20:hover{background-color:#10b98133}.hover\\:bg-indigo-500:hover{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.hover\\:bg-indigo-600\\/30:hover{background-color:#4f46e54d}.hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\\:bg-red-500\\/20:hover{background-color:#ef444433}.hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700\\/30:hover{background-color:#3341554d}.hover\\:bg-slate-700\\/50:hover{background-color:#33415580}.hover\\:text-cyan-400:hover{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.hover\\:text-slate-200:hover{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.focus\\:border-transparent:focus{border-color:#0000}.focus\\:outline-none:focus{outline:2px solid #0000;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-amber-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity,1))}.focus\\:ring-cyan-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity,1))}.focus\\:ring-emerald-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.focus\\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\\:ring-indigo-500\\/50:focus{--tw-ring-color:#6366f180}.active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:.98;--tw-scale-y:.98;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))}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-cyan-800:disabled{--tw-bg-opacity:1;background-color:rgb(21 94 117/var(--tw-bg-opacity,1))}.disabled\\:bg-slate-600:disabled{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.group:hover .group-hover\\:bg-cyan-500\\/20{background-color:#06b6d433}.group:hover .group-hover\\:bg-emerald-500\\/20{background-color:#10b98133}.group:hover .group-hover\\:bg-indigo-500\\/20{background-color:#6366f133}.group:hover .group-hover\\:bg-rose-500\\/20{background-color:#f43f5e33}.peer:checked~.peer-checked\\:bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\\:bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\\:bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\\:after\\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;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))}.peer:checked~.peer-checked\\:after\\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\\:outline-none{outline:2px solid #0000;outline-offset:2px}.peer:focus~.peer-focus\\:ring-2{--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)}.peer:focus~.peer-focus\\:ring-amber-500\\/50{--tw-ring-color:#f59e0b80}.peer:focus~.peer-focus\\:ring-cyan-500\\/50{--tw-ring-color:#06b6d480}.peer:focus~.peer-focus\\:ring-purple-500\\/50{--tw-ring-color:#a855f780}@media(min-width:640px){.sm\\:block{display:block}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:items-center{align-items:center}}@media(min-width:768px){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\\:static{position:static}.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\\:p-6{padding:1.5rem}.lg\\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width:1280px){.xl\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}`; + +const main = `*,: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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,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}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-1\\/2{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1\\.5{margin-right:.375rem}.mt-0\\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.max-h-\\[90vh\\]{max-height:90vh}.min-h-screen{min-height:100vh}.w-1\\.5{width:.375rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-4{width:1rem}.w-44{width:11rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.max-w-0{max-width:0}.max-w-3xl{max-width:48rem}.max-w-\\[200px\\]{max-width:200px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y:-50%}.-translate-y-1\\/2,.rotate-180{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))}.rotate-180{--tw-rotate:180deg}.rotate-90{--tw-rotate:90deg;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))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-emerald-500\\/20{border-color:#10b98133}.border-indigo-500{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.border-indigo-500\\/20{border-color:#6366f133}.border-red-500\\/20{border-color:#ef444433}.border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-700\\/50{border-color:#33415580}.border-transparent{border-color:transparent}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-500\\/10{background-color:#f59e0b1a}.bg-amber-500\\/20{background-color:#f59e0b33}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-black\\/50{background-color:#00000080}.bg-black\\/60{background-color:#0009}.bg-cyan-400{--tw-bg-opacity:1;background-color:rgb(34 211 238/var(--tw-bg-opacity,1))}.bg-cyan-500\\/10{background-color:#06b6d41a}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-emerald-400{--tw-bg-opacity:1;background-color:rgb(52 211 153/var(--tw-bg-opacity,1))}.bg-emerald-400\\/10{background-color:#34d3991a}.bg-emerald-500\\/10{background-color:#10b9811a}.bg-emerald-500\\/20{background-color:#10b98133}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-indigo-400{--tw-bg-opacity:1;background-color:rgb(129 140 248/var(--tw-bg-opacity,1))}.bg-indigo-500\\/10{background-color:#6366f11a}.bg-indigo-500\\/20{background-color:#6366f133}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-indigo-600\\/20{background-color:#4f46e533}.bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.bg-purple-500\\/10{background-color:#a855f71a}.bg-purple-500\\/20{background-color:#a855f733}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-500\\/10{background-color:#ef44441a}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.bg-red-900\\/30{background-color:#7f1d1d4d}.bg-red-900\\/40{background-color:#7f1d1d66}.bg-rose-400{--tw-bg-opacity:1;background-color:rgb(251 113 133/var(--tw-bg-opacity,1))}.bg-rose-400\\/10{background-color:#fb71851a}.bg-rose-500\\/10{background-color:#f43f5e1a}.bg-slate-400{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.bg-slate-500\\/10{background-color:#64748b1a}.bg-slate-500\\/20{background-color:#64748b33}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-700\\/30{background-color:#3341554d}.bg-slate-700\\/50{background-color:#33415580}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-800\\/50{background-color:#1e293b80}.bg-slate-800\\/80{background-color:#1e293bcc}.bg-slate-800\\/95{background-color:#1e293bf2}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.p-0\\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\\.5{padding-bottom:.625rem;padding-top:.625rem}.py-20{padding-bottom:5rem;padding-top:5rem}.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}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.pb-8{padding-bottom:2rem}.pl-10{padding-left:2.5rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\\[10px\\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-indigo-300{--tw-text-opacity:1;color:rgb(165 180 252/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-indigo-400\\/70{color:#818cf8b3}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-400\\/80{color:#f87171cc}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.placeholder-slate-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.placeholder-slate-400::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.shadow-emerald-600\\/20{--tw-shadow-color:rgba(5,150,105,.2);--tw-shadow:var(--tw-shadow-colored)}.ring-2{--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)}.ring-emerald-500\\/50{--tw-ring-color:rgba(16,185,129,.5)}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06))}.drop-shadow-md,.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-sm{--tw-backdrop-blur:blur(4px);-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-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}body{min-height:100vh;--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.after\\:absolute:after{content:var(--tw-content);position:absolute}.after\\:left-\\[2px\\]:after{content:var(--tw-content);left:2px}.after\\:top-\\[2px\\]:after{content:var(--tw-content);top:2px}.after\\:h-4:after{content:var(--tw-content);height:1rem}.after\\:w-4:after{content:var(--tw-content);width:1rem}.after\\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}.after\\:border:after{border-width:1px;content:var(--tw-content)}.after\\:border-slate-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.after\\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.after\\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:content-\\[\\'\\'\\]:after{--tw-content:"";content:var(--tw-content)}.last\\:border-0:last-child{border-width:0}.hover\\:scale-\\[1\\.02\\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;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))}.hover\\:border-cyan-500\\/50:hover{border-color:#06b6d480}.hover\\:border-emerald-500\\/50:hover{border-color:#10b98180}.hover\\:border-indigo-500\\/50:hover{border-color:#6366f180}.hover\\:border-rose-500\\/50:hover{border-color:#f43f5e80}.hover\\:border-slate-500:hover{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.hover\\:border-slate-600:hover{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.hover\\:bg-cyan-500:hover{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.hover\\:bg-emerald-500:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.hover\\:bg-emerald-500\\/20:hover{background-color:#10b98133}.hover\\:bg-indigo-500:hover{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.hover\\:bg-indigo-600\\/30:hover{background-color:#4f46e54d}.hover\\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\\:bg-red-500\\/20:hover{background-color:#ef444433}.hover\\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\\:bg-slate-700\\/30:hover{background-color:#3341554d}.hover\\:bg-slate-700\\/50:hover{background-color:#33415580}.hover\\:text-cyan-400:hover{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.hover\\:text-red-300:hover{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.hover\\:text-slate-200:hover{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.focus\\:border-transparent:focus{border-color:transparent}.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-amber-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(245 158 11/var(--tw-ring-opacity,1))}.focus\\:ring-cyan-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity,1))}.focus\\:ring-emerald-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(16 185 129/var(--tw-ring-opacity,1))}.focus\\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\\:ring-indigo-500\\/50:focus{--tw-ring-color:rgba(99,102,241,.5)}.active\\:scale-\\[0\\.98\\]:active{--tw-scale-x:.98;--tw-scale-y:.98;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))}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:bg-cyan-800:disabled{--tw-bg-opacity:1;background-color:rgb(21 94 117/var(--tw-bg-opacity,1))}.disabled\\:bg-slate-600:disabled{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.group:hover .group-hover\\:bg-cyan-500\\/20{background-color:#06b6d433}.group:hover .group-hover\\:bg-emerald-500\\/20{background-color:#10b98133}.group:hover .group-hover\\:bg-indigo-500\\/20{background-color:#6366f133}.group:hover .group-hover\\:bg-rose-500\\/20{background-color:#f43f5e33}.peer:checked~.peer-checked\\:bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\\:bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\\:bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.peer:checked~.peer-checked\\:after\\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;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))}.peer:checked~.peer-checked\\:after\\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.peer:focus~.peer-focus\\:outline-none{outline:2px solid transparent;outline-offset:2px}.peer:focus~.peer-focus\\:ring-2{--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)}.peer:focus~.peer-focus\\:ring-amber-500\\/50{--tw-ring-color:rgba(245,158,11,.5)}.peer:focus~.peer-focus\\:ring-cyan-500\\/50{--tw-ring-color:rgba(6,182,212,.5)}.peer:focus~.peer-focus\\:ring-purple-500\\/50{--tw-ring-color:rgba(168,85,247,.5)}@media(min-width:640px){.sm\\:block{display:block}.sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\\:flex-row{flex-direction:row}.sm\\:items-center{align-items:center}}@media(min-width:768px){.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\\:static{position:static}.lg\\:flex{display:flex}.lg\\:hidden{display:none}.lg\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\\:p-6{padding:1.5rem}.lg\\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width:1280px){.xl\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}`; + +const entryStyles_w3HlJ9O = [ + tailwind, + main, + app_vue_vue_type_style_index_0_lang +]; + +export { entryStyles_w3HlJ9O as default }; +//# sourceMappingURL=entry-styles.w3HlJ-9O.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs.map b/frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs.map new file mode 100644 index 0000000..4d152a3 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/entry-styles.w3HlJ-9O.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"entry-styles.w3HlJ-9O.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-DTfYoqFp.js","../../../../.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CM2W3GZ1.js","../../../../.nuxt/dist/server/_nuxt/entry-styles.w3HlJ-9O.mjs"],"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAA,GAAW,CAAA,w9xBAAA,CAAA;;ACAjB,MAAM,IAAA,GAAO,CAAA,mr1BAAA,CAAA;;ACGb,4BAAe;AACf,EAAEA,QAAO;AACT,EAAEC,IAAO;AACT,EAAEC;AACF;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs.map b/frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs.map deleted file mode 100644 index 57656c4..0000000 --- a/frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"error-404-BDmq62MM.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-BDmq62MM.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs b/frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs similarity index 96% rename from frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs rename to frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs index ef4d13a..b15ca0b 100644 --- a/frontend_admin/.output/server/chunks/build/error-404-BDmq62MM.mjs +++ b/frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs @@ -1,8 +1,7 @@ -import { _ as __nuxt_component_0 } from './nuxt-link-DNVrgHUL.mjs'; +import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs'; import { mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer'; -import { _ as _export_sfc } from './server.mjs'; -import { u as useHead } from './v3-DnDMBKvA.mjs'; +import { _ as _export_sfc, u as useHead } from './server.mjs'; import '../nitro/nitro.mjs'; import 'node:http'; import 'node:https'; @@ -11,15 +10,15 @@ import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; +import 'vue-router'; import 'node:url'; +import 'pinia'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'unhead/plugins'; -import 'pinia'; -import 'vue-router'; const _sfc_main = { __name: "error-404", @@ -96,4 +95,4 @@ _sfc_main.setup = (props, ctx) => { const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1bd9e11a"]]); export { error404 as default }; -//# sourceMappingURL=error-404-BDmq62MM.mjs.map +//# sourceMappingURL=error-404-C_elhLNc.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs.map b/frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs.map new file mode 100644 index 0000000..9f1b3c7 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/error-404-C_elhLNc.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404-C_elhLNc.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-C_elhLNc.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs b/frontend_admin/.output/server/chunks/build/error-500-C6MJq2Cl.mjs similarity index 96% rename from frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs rename to frontend_admin/.output/server/chunks/build/error-500-C6MJq2Cl.mjs index 7449ca5..7963ee6 100644 --- a/frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs +++ b/frontend_admin/.output/server/chunks/build/error-500-C6MJq2Cl.mjs @@ -1,7 +1,6 @@ import { mergeProps, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer'; -import { _ as _export_sfc } from './server.mjs'; -import { u as useHead } from './v3-DnDMBKvA.mjs'; +import { _ as _export_sfc, u as useHead } from './server.mjs'; import '../nitro/nitro.mjs'; import 'node:http'; import 'node:https'; @@ -10,15 +9,15 @@ import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; +import 'vue-router'; import 'node:url'; +import 'pinia'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'unhead/plugins'; -import 'pinia'; -import 'vue-router'; const _sfc_main = { __name: "error-500", @@ -74,4 +73,4 @@ _sfc_main.setup = (props, ctx) => { const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a01dd0ba"]]); export { error500 as default }; -//# sourceMappingURL=error-500-gzzPk_-U.mjs.map +//# sourceMappingURL=error-500-C6MJq2Cl.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs.map b/frontend_admin/.output/server/chunks/build/error-500-C6MJq2Cl.mjs.map similarity index 88% rename from frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs.map rename to frontend_admin/.output/server/chunks/build/error-500-C6MJq2Cl.mjs.map index 29298dd..e51a4b4 100644 --- a/frontend_admin/.output/server/chunks/build/error-500-gzzPk_-U.mjs.map +++ b/frontend_admin/.output/server/chunks/build/error-500-C6MJq2Cl.mjs.map @@ -1 +1 @@ -{"version":3,"file":"error-500-gzzPk_-U.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-500-gzzPk_-U.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,SAAA,GAAY;AAAA,EAChB,MAAA,EAAQ,WAAA;AAAA,EACR,iBAAA,EAAmB,IAAA;AAAA,EACnB,KAAA,EAAO;AAAA,IACL,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,MAAM,OAAA,EAAS;AACb,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,OAAA,CAAQ;AAAA,MACN,KAAA,EAAO,GAAG,KAAA,CAAM,MAAM,MAAM,KAAA,CAAM,UAAU,CAAA,GAAA,EAAM,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,MAC/D,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,SAAA,EAAW,CAAA,+rBAAA;AAAA;AACb,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,UACE,SAAA,EAAW,CAAA,yjDAAA;AAAA;AACb;AACF,KACD,CAAA;AACD,IAAA,OAAO,CAAC,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,MAAA,KAAW;AACvC,MAAA,KAAA,CAAM,CAAA,IAAA,EAAO,eAAe,UAAA,CAAW,EAAE,OAAO,gIAAA,EAAiI,EAAG,MAAM,CAAC,CAAC,gOAAgO,cAAA,CAAe,OAAA,CAAQ,MAAM,CAAC,CAAA,gGAAA,EAAmG,eAAe,OAAA,CAAQ,WAAW,CAAC,CAAA,gBAAA,CAAkB,CAAA;AAAA,IACplB,CAAA;AAAA,EACF;AACF,CAAA;AACA,MAAM,aAAa,SAAA,CAAU,KAAA;AAC7B,SAAA,CAAU,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,CAAC,UAAA,CAAW,YAAY,UAAA,CAAW,OAAA,uBAA8B,GAAA,EAAI,CAAA,EAAI,IAAI,qDAAqD,CAAA;AAClI,EAAA,OAAO,UAAA,GAAa,UAAA,CAAW,KAAA,EAAO,GAAG,CAAA,GAAI,MAAA;AAC/C,CAAA;AACA,MAAM,QAAA,+BAAuC,SAAA,EAAW,CAAC,CAAC,WAAA,EAAa,iBAAiB,CAAC,CAAC;;;;"} \ No newline at end of file +{"version":3,"file":"error-500-C6MJq2Cl.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-500-C6MJq2Cl.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,SAAA,GAAY;AAAA,EAChB,MAAA,EAAQ,WAAA;AAAA,EACR,iBAAA,EAAmB,IAAA;AAAA,EACnB,KAAA,EAAO;AAAA,IACL,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,MAAM,OAAA,EAAS;AACb,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,OAAA,CAAQ;AAAA,MACN,KAAA,EAAO,GAAG,KAAA,CAAM,MAAM,MAAM,KAAA,CAAM,UAAU,CAAA,GAAA,EAAM,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,MAC/D,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,SAAA,EAAW,CAAA,+rBAAA;AAAA;AACb,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,UACE,SAAA,EAAW,CAAA,yjDAAA;AAAA;AACb;AACF,KACD,CAAA;AACD,IAAA,OAAO,CAAC,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,MAAA,KAAW;AACvC,MAAA,KAAA,CAAM,CAAA,IAAA,EAAO,eAAe,UAAA,CAAW,EAAE,OAAO,gIAAA,EAAiI,EAAG,MAAM,CAAC,CAAC,gOAAgO,cAAA,CAAe,OAAA,CAAQ,MAAM,CAAC,CAAA,gGAAA,EAAmG,eAAe,OAAA,CAAQ,WAAW,CAAC,CAAA,gBAAA,CAAkB,CAAA;AAAA,IACplB,CAAA;AAAA,EACF;AACF,CAAA;AACA,MAAM,aAAa,SAAA,CAAU,KAAA;AAC7B,SAAA,CAAU,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,CAAC,UAAA,CAAW,YAAY,UAAA,CAAW,OAAA,uBAA8B,GAAA,EAAI,CAAA,EAAI,IAAI,qDAAqD,CAAA;AAClI,EAAA,OAAO,UAAA,GAAa,UAAA,CAAW,KAAA,EAAO,GAAG,CAAA,GAAI,MAAA;AAC/C,CAAA;AACA,MAAM,QAAA,+BAAuC,SAAA,EAAW,CAAC,CAAC,WAAA,EAAa,iBAAiB,CAAC,CAAC;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs b/frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs new file mode 100644 index 0000000..850f824 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs @@ -0,0 +1,115 @@ +const resource = { + "permissions": { + "title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosults\xE1g Kezel\xE9s" } }, + "subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permissions Management \u2014 Role-based access control & subscription feature flags" } }, + "loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosults\xE1gok bet\xF6lt\xE9se..." } }, + "error_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem siker\xFClt bet\xF6lteni a jogosults\xE1gokat" } }, + "retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAjra" } }, + "save_changes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1ltoztat\xE1sok Ment\xE9se" } }, + "discard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elvet\xE9s" } }, + "modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " m\xF3dos\xEDt\xE1s" }] } }, + "current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktu\xE1lis Csomag" } }, + "expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lej\xE1rat" } }, + "superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } }, + "superadmin_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Teljes rendszer hozz\xE1f\xE9r\xE9s \u2014 felhaszn\xE1l\xF3k, sz\xE1ml\xE1z\xE1s, robotok \xE9s rendszerkonfigur\xE1ci\xF3." } }, + "garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok" } }, + "garages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zs szint\u0171 hozz\xE1f\xE9r\xE9s \u2014 j\xE1rm\u0171kezel\xE9s, szervizfoglal\xE1s, \xFCgyf\xE9ladatok." } }, + "feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Feature Flags" } }, + "feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "El\u0151fizet\xE9si funkci\xF3k \u2014 a jelenlegi csomagod alapj\xE1n (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } }, + "rbac_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "RBAC Jogosults\xE1gi M\xE1trix" } }, + "rbac_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r alap\xFA hozz\xE1f\xE9r\xE9s-vez\xE9rl\xE9s \u2014 mely szerepk\xF6r\xF6k mely admin m\u0171veleteket v\xE9gezhetik." } }, + "action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171velet" } }, + "perms": { + "user_mgmt": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhaszn\xE1l\xF3kezel\xE9s" } }, + "billing_admin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Sz\xE1ml\xE1z\xE1si Adminisztr\xE1ci\xF3" } }, + "robot_config": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Robot Konfigur\xE1ci\xF3" } }, + "system_logs": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszernapl\xF3k El\xE9r\xE9se" } }, + "api_keys": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "API Kulcs Kezel\xE9s" } }, + "vehicle_crud": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "J\xE1rm\u0171 CRUD" } }, + "service_booking": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervizfoglal\xE1s" } }, + "customer_view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDCgyf\xE9ladatok Megtekint\xE9se" } }, + "report_export": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jelent\xE9s Export\xE1l\xE1s" } }, + "bulk_import": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "T\xF6meges Import" } } + } + }, + "packages": { + "title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok Kezel\xE9se" } }, + "subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\u0151fizet\xE9si csomagok \xE9s funkci\xF3k kezel\xE9se \u2014 Free, Premium, Enterprise" } }, + "loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok bet\xF6lt\xE9se..." } }, + "retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAjra" } }, + "create_new": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAj Csomag" } }, + "no_packages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE9g nincsenek csomagok" } }, + "no_packages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozd l\xE9tre az els\u0151 el\u0151fizet\xE9si csomagot a kezd\xE9shez." } }, + "create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Els\u0151 Csomag L\xE9trehoz\xE1sa" } }, + "popular": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "N\xE9pszer\u0171" } }, + "fallback_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Visszaes\xE9si" } }, + "trial_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pr\xF3ba" } }, + "month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "h\xF3" } }, + "feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\xE9rhet\u0151 Funkci\xF3k" } }, + "edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkeszt\xE9s" } }, + "delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "T\xF6rl\xE9s" } }, + "set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Be\xE1ll\xEDt\xE1s alap\xE9rtelmezettk\xE9nt" } }, + "set_as_default_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "alap\xE9rtelmezett csomagk\xE9nt be\xE1ll\xEDtva!" } }, + "edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Szerkeszt\xE9se" } }, + "create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag L\xE9trehoz\xE1sa" } }, + "cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE9gse" } }, + "save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1ltoztat\xE1sok Ment\xE9se" } }, + "create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "L\xE9trehoz\xE1s" } }, + "save_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag sikeresen friss\xEDtve!" } }, + "delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag T\xF6rl\xE9se" } }, + "delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": 'Biztosan t\xF6r\xF6lni szeretn\xE9d a "' }, { "t": 4, "k": "name" }, { "t": 3, "v": '" csomagot?' }] } }, + "delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "T\xF6rl\xE9s" } }, + "allowances": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Korl\xE1tok" } }, + "max_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max J\xE1rm\u0171" } }, + "max_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Gar\xE1zs" } }, + "monthly_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Kredit" } }, + "tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } }, + "form_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszer N\xE9v" } }, + "form_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. premium_2024" } }, + "form_display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megjelen\xEDt\xE9si N\xE9v" } }, + "form_display_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Premium Plus" } }, + "form_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "T\xEDpus" } }, + "type_private": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mag\xE1n" } }, + "type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1llalati" } }, + "form_tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintsz\xE1m" } }, + "form_tier_level_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Magasabb sz\xE1m = t\xF6bb funkci\xF3 \xE9s magasabb rang" } }, + "form_monthly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi D\xEDj" } }, + "form_yearly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC9ves D\xEDj" } }, + "form_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "P\xE9nznem" } }, + "form_subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felirat / Le\xEDr\xE1s" } }, + "form_subtitle_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Ide\xE1lis kisv\xE1llalkoz\xE1soknak" } }, + "form_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jelv\xE9ny Sz\xF6veg" } }, + "form_badge_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Legn\xE9pszer\u0171bb" } }, + "form_is_custom": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyedi Csomag (nem publikus)" } }, + "singleton_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyedis\xE9gi Szab\xE1lyok" } }, + "form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alap\xE9rtelmezett Visszaes\xE9si Csomag \u2014 lej\xE1rt el\u0151fizet\xE9s eset\xE9n erre v\xE1lt" } }, + "form_trial_days": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pr\xF3ba Napok Regisztr\xE1ci\xF3n\xE1l" } }, + "form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Az \xFAj szervezetek ennyi ingyenes napot kapnak. Csak egy csomagn\xE1l lehet > 0." } } + }, + "garages": { + "title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok CRM" } }, + "subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok list\xE1ja, csomagkezel\xE9s \xE9s st\xE1tuszm\xF3dos\xEDt\xE1s" } }, + "total_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes Gar\xE1zs" } }, + "active_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akt\xEDv Gar\xE1zsok" } }, + "premium_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Premium Gar\xE1zsok" } }, + "enterprise_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enterprise Gar\xE1zsok" } }, + "search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keres\xE9s n\xE9v, kapcsolattart\xF3 vagy e-mail alapj\xE1n..." } }, + "all_tiers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes csomag" } }, + "company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9gn\xE9v" } }, + "email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail" } }, + "status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } }, + "current_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktu\xE1lis Csomag" } }, + "actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171veletek" } }, + "active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akt\xEDv" } }, + "inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inakt\xEDv" } }, + "suspended": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felf\xFCggesztve" } }, + "change_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag M\xF3dos\xEDt\xE1sa" } }, + "view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megtekint\xE9s" } }, + "activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiv\xE1l\xE1s" } }, + "deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deaktiv\xE1l\xE1s" } }, + "no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs a keres\xE9snek megfelel\u0151 gar\xE1zs." } } + } +}; + +export { resource as default }; +//# sourceMappingURL=hu-CoGcC81v.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs.map b/frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs.map new file mode 100644 index 0000000..3e5ccf6 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/hu-CoGcC81v.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"hu-CoGcC81v.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/hu-CoGcC81v.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs b/frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs new file mode 100644 index 0000000..ebd4dfb --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs @@ -0,0 +1,143 @@ +import { defineComponent, ref, computed, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderList, ssrIncludeBooleanAttr } from 'vue/server-renderer'; + +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const loading = ref(true); + const error = ref(null); + const featureFlags = ref({ + tier: "free", + features: {}, + expires_at: null + }); + const permissionMatrix = ref([]); + const allActions = ref([]); + const modifiedPermissions = ref(/* @__PURE__ */ new Map()); + ref(/* @__PURE__ */ new Map()); + const saveNotification = ref(null); + const featureEntries = computed(() => { + return Object.entries(featureFlags.value.features || {}); + }); + const hasModifications = computed(() => { + return modifiedPermissions.value.size > 0; + }); + const tierBadgeClass = computed(() => { + const tier = featureFlags.value.tier; + if (tier === "enterprise") return "bg-purple-500/20 text-purple-300"; + if (tier === "premium") return "bg-amber-500/20 text-amber-300"; + return "bg-slate-500/20 text-slate-300"; + }); + const superadminPerms = [ + { key: "user_mgmt", label: "User Management", enabled: true }, + { key: "billing_admin", label: "Billing Administration", enabled: true }, + { key: "robot_config", label: "Robot Configuration", enabled: true }, + { key: "system_logs", label: "System Logs Access", enabled: true }, + { key: "api_keys", label: "API Key Management", enabled: false } + ]; + const garagePerms = [ + { key: "vehicle_crud", label: "Vehicle CRUD", enabled: true }, + { key: "service_booking", label: "Service Booking", enabled: true }, + { key: "customer_view", label: "Customer Data View", enabled: true }, + { key: "report_export", label: "Report Export", enabled: false }, + { key: "bulk_import", label: "Bulk Import", enabled: false } + ]; + function isPermEnabled(group, key) { + const mapKey = `${group}:${key}`; + if (modifiedPermissions.value.has(mapKey)) { + return modifiedPermissions.value.get(mapKey); + } + const perms = group === "superadmin" ? superadminPerms : garagePerms; + const perm = perms.find((p) => p.key === key); + return perm ? perm.enabled : false; + } + function formatFeatureLabel(key) { + return key.replace(/^cost_category:/, "").replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()); + } + function formatDate(dateStr) { + try { + const d = new Date(dateStr); + return d.toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" }); + } catch { + return dateStr; + } + } + function hasPermission(role, action) { + return role.actions.includes(action); + } + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(_ctx.$t("permissions.title"))}

${ssrInterpolate(_ctx.$t("permissions.subtitle"))}

`); + if (loading.value) { + _push(`
${ssrInterpolate(_ctx.$t("permissions.loading"))}
`); + } else if (error.value) { + _push(`

${ssrInterpolate(_ctx.$t("permissions.error_title"))}

${ssrInterpolate(error.value)}

`); + } else { + _push(``); + if (saveNotification.value) { + _push(`
${ssrInterpolate(saveNotification.value.message)}
`); + } else { + _push(``); + } + if (hasModifications.value) { + _push(`
${ssrInterpolate(_ctx.$t("permissions.modified_count", { count: modifiedPermissions.value.size }))}
`); + } else { + _push(``); + } + _push(`
${ssrInterpolate(_ctx.$t("permissions.current_tier"))}:${ssrInterpolate(featureFlags.value.tier || "free")}`); + if (featureFlags.value.expires_at) { + _push(`${ssrInterpolate(_ctx.$t("permissions.expires"))}: ${ssrInterpolate(formatDate(featureFlags.value.expires_at))}`); + } else { + _push(``); + } + _push(`

${ssrInterpolate(_ctx.$t("permissions.superadmin"))}

${ssrInterpolate(_ctx.$t("permissions.superadmin_desc"))}

`); + ssrRenderList(superadminPerms, (perm) => { + _push(`
${ssrInterpolate(_ctx.$t(`permissions.perms.${perm.key}`))}
`); + }); + _push(`

${ssrInterpolate(_ctx.$t("permissions.garages"))}

${ssrInterpolate(_ctx.$t("permissions.garages_desc"))}

`); + ssrRenderList(garagePerms, (perm) => { + _push(`
${ssrInterpolate(_ctx.$t(`permissions.perms.${perm.key}`))}
`); + }); + _push(`

${ssrInterpolate(_ctx.$t("permissions.feature_flags"))}

${ssrInterpolate(_ctx.$t("permissions.feature_flags_desc", { tier: featureFlags.value.tier || "free" }))}

`); + ssrRenderList(featureEntries.value, ([key, granted]) => { + _push(`
${ssrInterpolate(formatFeatureLabel(key))}${ssrInterpolate(key)}
`); + }); + _push(`

${ssrInterpolate(_ctx.$t("permissions.rbac_title"))}

${ssrInterpolate(_ctx.$t("permissions.rbac_desc"))}

`); + ssrRenderList(permissionMatrix.value, (role) => { + _push(``); + }); + _push(``); + ssrRenderList(allActions.value, (action) => { + _push(``); + ssrRenderList(permissionMatrix.value, (role) => { + _push(``); + }); + _push(``); + }); + _push(`
${ssrInterpolate(_ctx.$t("permissions.action"))}${ssrInterpolate(role.role)}
${ssrInterpolate(action)}`); + if (hasPermission(role, action)) { + _push(``); + } else { + _push(``); + } + _push(`
`); + if (hasModifications.value) { + _push(`
`); + } else { + _push(``); + } + _push(``); + } + _push(``); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/permissions/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; + +export { _sfc_main as default }; +//# sourceMappingURL=index-7zBAzpaD.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs.map b/frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs.map new file mode 100644 index 0000000..d3d3333 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/index-7zBAzpaD.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-7zBAzpaD.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-7zBAzpaD.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs b/frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs new file mode 100644 index 0000000..829ef7b --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs @@ -0,0 +1,302 @@ +import { defineComponent, ref, computed, reactive, unref, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from 'vue/server-renderer'; +import { u as useRegionStore } from './region-0mvXqaMM.mjs'; +import 'pinia'; + +function useFormatter() { + const regionStore = useRegionStore(); + function formatNumber(value, options) { + const locale = regionStore.activeLocale || "en-EU"; + try { + return new Intl.NumberFormat(locale, options).format(value); + } catch { + return new Intl.NumberFormat("en-EU", options).format(value); + } + } + function formatCurrency(value, currency, options) { + const locale = regionStore.activeLocale || "en-EU"; + const curr = currency || regionStore.activeCurrency || "EUR"; + try { + return new Intl.NumberFormat(locale, { + style: "currency", + currency: curr, + minimumFractionDigits: 2, + maximumFractionDigits: 2, + ...options + }).format(value); + } catch { + return `${value.toFixed(2)} ${curr}`; + } + } + function formatDate(date, options) { + const locale = regionStore.activeLocale || "en-EU"; + const timezone = regionStore.activeTimezone || "Europe/Brussels"; + const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date; + try { + return new Intl.DateTimeFormat(locale, { + timezone, + year: "numeric", + month: "2-digit", + day: "2-digit", + ...options + }).format(d); + } catch { + return d.toLocaleDateString("en-GB"); + } + } + function formatDateTime(date, options) { + const locale = regionStore.activeLocale || "en-EU"; + const timezone = regionStore.activeTimezone || "Europe/Brussels"; + const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date; + try { + return new Intl.DateTimeFormat(locale, { + timezone, + year: "numeric", + month: "2-digit", + day: "2-digit", + hour: "2-digit", + minute: "2-digit", + ...options + }).format(d); + } catch { + return d.toLocaleString("en-GB"); + } + } + function formatPercent(value, options) { + const locale = regionStore.activeLocale || "en-EU"; + try { + return new Intl.NumberFormat(locale, { + style: "percent", + minimumFractionDigits: 0, + maximumFractionDigits: 1, + ...options + }).format(value / 100); + } catch { + return `${value}%`; + } + } + function calculatePriceWithVat(netPrice, vatRate) { + var _a; + const rate = (_a = vatRate != null ? vatRate : regionStore.activeVatRate) != null ? _a : 0; + const vat = netPrice * (rate / 100); + const gross = netPrice + vat; + return { net: netPrice, vat, gross, vatRate: rate }; + } + function formatPriceWithVat(netPrice, vatRate, currency) { + const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate); + const curr = currency || regionStore.activeCurrency || "EUR"; + return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}`; + } + return { + formatNumber, + formatCurrency, + formatDate, + formatDateTime, + formatPercent, + calculatePriceWithVat, + formatPriceWithVat + }; +} +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const regionStore = useRegionStore(); + const { formatCurrency } = useFormatter(); + const tabs = [ + { key: "basic", label: "\u{1F4CB} Basic Info" }, + { key: "pricing", label: "\u{1F4B0} Pricing" }, + { key: "features", label: "\u26A1 Features" } + ]; + const activeTab = ref("basic"); + const activeTabLabel = computed(() => { + const tab = tabs.find((t) => t.key === activeTab.value); + return tab ? tab.label : ""; + }); + const packages = ref([]); + const loading = ref(true); + const error = ref(null); + const showModal = ref(false); + const showDeleteConfirm = ref(false); + const editingPackage = ref(null); + const deletingPackage = ref(null); + const isCreating = ref(false); + const saving = ref(false); + const saveNotification = ref(null); + const featureCapabilitiesError = ref(null); + const calcNetPrice = ref(0); + const calcVatRate = ref(27); + const calcCurrency = ref("EUR"); + const defaultForm = { + name: "", + display_name: "", + type: "private", + tier_level: 0, + monthly_price: 0, + yearly_price: 0, + currency: "EUR", + max_vehicles: 1, + max_garages: 1, + monthly_free_credits: 0, + subtitle: "", + badge: "", + is_custom: false, + is_default_fallback: false, + trial_days_on_signup: 0, + feature_capabilities_json: '{\n "ai_analysis": false,\n "priority_support": false,\n "api_access": false\n}', + pricing_zones: {} + }; + const form = reactive({ ...defaultForm }); + function getZonePrice(countryCode, period) { + const zone = form.pricing_zones[countryCode]; + if (!zone) return 0; + return period === "monthly" ? zone.monthly_price : zone.yearly_price; + } + function getZoneCurrency(countryCode) { + const zone = form.pricing_zones[countryCode]; + if (!zone) return "EUR"; + return zone.currency; + } + function getDisplayName(pkg) { + var _a; + return ((_a = pkg.rules) == null ? void 0 : _a.display_name) || pkg.name; + } + function getDescription(pkg) { + var _a, _b, _c, _d; + return ((_b = (_a = pkg.rules) == null ? void 0 : _a.marketing) == null ? void 0 : _b.subtitle) || ((_d = (_c = pkg.rules) == null ? void 0 : _c.marketing) == null ? void 0 : _d.badge) || ""; + } + function getFormattedPrice(pkg) { + var _a, _b; + const zones = (_a = pkg.rules) == null ? void 0 : _a.pricing_zones; + const pricing = (_b = pkg.rules) == null ? void 0 : _b.pricing; + if (zones && zones["DEFAULT"]) { + const p = zones["DEFAULT"]; + const currency = p.currency === "HUF" ? "Ft" : "\u20AC"; + return `${p.monthly_price} ${currency}`; + } + if (pricing) { + const currency = pricing.currency === "HUF" ? "Ft" : "\u20AC"; + return `${pricing.monthly_price} ${currency}`; + } + return "\u2014"; + } + function getAllowance(pkg, key) { + var _a, _b; + const allowances = (_a = pkg.rules) == null ? void 0 : _a.allowances; + if (!allowances) return "\u2014"; + return (_b = allowances[key]) != null ? _b : "\u2014"; + } + function getTierColorClass(level) { + if (level >= 2) return "bg-purple-500/10 text-purple-400"; + if (level >= 1) return "bg-amber-500/10 text-amber-400"; + return "bg-slate-500/10 text-slate-400"; + } + function getTierIcon(level) { + if (level >= 2) return "\u{1F3E2}"; + if (level >= 1) return "\u2B50"; + return "\u{1F513}"; + } + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(_ctx.$t("packages.title"))}

${ssrInterpolate(_ctx.$t("packages.subtitle"))}

`); + if (loading.value) { + _push(`
${ssrInterpolate(_ctx.$t("packages.loading"))}
`); + } else if (error.value) { + _push(`

${ssrInterpolate(error.value)}

`); + } else if (packages.value.length === 0) { + _push(`

${ssrInterpolate(_ctx.$t("packages.no_packages"))}

${ssrInterpolate(_ctx.$t("packages.no_packages_desc"))}

`); + } else { + _push(`
`); + ssrRenderList(packages.value, (pkg) => { + var _a; + _push(`
${(_a = getTierIcon(pkg.tier_level)) != null ? _a : ""}

${ssrInterpolate(getDisplayName(pkg))}

${ssrInterpolate(pkg.name)}
`); + if (pkg.tier_level >= 1) { + _push(`${ssrInterpolate(_ctx.$t("packages.popular"))}`); + } else { + _push(``); + } + if (pkg.is_default_fallback) { + _push(` \u{1F512} ${ssrInterpolate(_ctx.$t("packages.fallback_badge"))}`); + } else { + _push(``); + } + if (pkg.trial_days_on_signup > 0) { + _push(` \u{1F3AF} ${ssrInterpolate(_ctx.$t("packages.trial_badge"))}: ${ssrInterpolate(pkg.trial_days_on_signup)}d `); + } else { + _push(``); + } + _push(`
${ssrInterpolate(getFormattedPrice(pkg))}/ ${ssrInterpolate(_ctx.$t("packages.month"))}

${ssrInterpolate(getDescription(pkg))}

${ssrInterpolate(_ctx.$t("packages.allowances"))}

${ssrInterpolate(_ctx.$t("packages.max_vehicles"))}${ssrInterpolate(getAllowance(pkg, "max_vehicles"))}
${ssrInterpolate(_ctx.$t("packages.max_garages"))}${ssrInterpolate(getAllowance(pkg, "max_garages"))}
${ssrInterpolate(_ctx.$t("packages.monthly_credits"))}${ssrInterpolate(getAllowance(pkg, "monthly_free_credits"))}
${ssrInterpolate(_ctx.$t("packages.tier_level"))}: ${ssrInterpolate(pkg.tier_level)}
`); + }); + _push(`
`); + } + if (showModal.value) { + _push(`

${ssrInterpolate(isCreating.value ? _ctx.$t("packages.create_title") : _ctx.$t("packages.edit_title") + ": " + getDisplayName(editingPackage.value))}

`); + ssrRenderList(tabs, (tab) => { + _push(``); + }); + _push(`
`); + if (activeTab.value === "basic") { + _push(`

${ssrInterpolate(_ctx.$t("packages.form_tier_level_hint"))}

${ssrInterpolate(_ctx.$t("packages.singleton_rules"))}

${ssrInterpolate(_ctx.$t("packages.form_trial_days_hint"))}

`); + } else { + _push(``); + } + if (activeTab.value === "pricing") { + _push(`

${ssrInterpolate(_ctx.$t("packages.per_region_pricing"))}

`); + ssrRenderList(unref(regionStore).regions, (region) => { + _push(``); + }); + _push(`
Region${ssrInterpolate(_ctx.$t("packages.form_monthly_price"))}${ssrInterpolate(_ctx.$t("packages.form_yearly_price"))}${ssrInterpolate(_ctx.$t("packages.form_currency"))}
${ssrInterpolate(region.country_code)}(${ssrInterpolate(region.currency)}, ${ssrInterpolate(region.default_vat_rate)}% VAT)

\u{1F9EE} ${ssrInterpolate(_ctx.$t("packages.smart_calculator"))}

${ssrInterpolate(_ctx.$t("packages.calc_net"))}

${ssrInterpolate(unref(formatCurrency)(calcNetPrice.value, calcCurrency.value))}

${ssrInterpolate(_ctx.$t("packages.calc_vat"))} (${ssrInterpolate(calcVatRate.value)}%)

${ssrInterpolate(unref(formatCurrency)(calcNetPrice.value * (calcVatRate.value / 100), calcCurrency.value))}

${ssrInterpolate(_ctx.$t("packages.calc_gross"))}

${ssrInterpolate(unref(formatCurrency)(calcNetPrice.value * (1 + calcVatRate.value / 100), calcCurrency.value))}

`); + } else { + _push(``); + } + if (activeTab.value === "features") { + _push(`

${ssrInterpolate(_ctx.$t("packages.allowances"))}

${ssrInterpolate(_ctx.$t("packages.feature_capabilities"))}

${ssrInterpolate(_ctx.$t("packages.feature_capabilities_hint"))}

`); + if (featureCapabilitiesError.value) { + _push(`

${ssrInterpolate(featureCapabilitiesError.value)}

`); + } else { + _push(``); + } + _push(`
`); + } else { + _push(``); + } + _push(`
${ssrInterpolate(activeTabLabel.value)}
`); + if (saving.value) { + _push(``); + } else { + _push(``); + } + _push(` ${ssrInterpolate(isCreating.value ? _ctx.$t("packages.create") : _ctx.$t("packages.save"))}
`); + } else { + _push(``); + } + if (showDeleteConfirm.value && deletingPackage.value) { + _push(`

${ssrInterpolate(_ctx.$t("packages.delete_title"))}

${ssrInterpolate(_ctx.$t("packages.delete_confirm", { name: getDisplayName(deletingPackage.value) }))}

${ssrInterpolate(_ctx.$t("packages.delete_btn"))}
`); + } else { + _push(``); + } + if (saveNotification.value) { + _push(`
${ssrInterpolate(saveNotification.value.message)}
`); + } else { + _push(``); + } + _push(``); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/packages/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; + +export { _sfc_main as default }; +//# sourceMappingURL=index-BPETUF7a.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs.map b/frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs.map new file mode 100644 index 0000000..89f855b --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/index-BPETUF7a.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-BPETUF7a.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-BPETUF7a.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs b/frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs new file mode 100644 index 0000000..2f4f5a9 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs @@ -0,0 +1,159 @@ +import { defineComponent, ref, reactive, computed, useSSRContext } from 'vue'; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderClass } from 'vue/server-renderer'; + +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const searchQuery = ref(""); + const filterTier = ref("all"); + const openDropdownId = ref(null); + const saveNotification = ref(null); + const availableTiers = ["free", "premium", "enterprise"]; + const garages = reactive([ + { + id: 1, + companyName: "Kov\xE1cs Aut\xF3szerviz", + contactName: "Kov\xE1cs Istv\xE1n", + email: "kovacs@autoserviz.hu", + status: "active", + tier: "premium", + initials: "KA", + colorClass: "bg-amber-600" + }, + { + id: 2, + companyName: "Nagy G\xE9pj\xE1rm\u0171jav\xEDt\xF3 Kft.", + contactName: "Nagy P\xE9ter", + email: "info@nagygepjarmu.hu", + status: "active", + tier: "enterprise", + initials: "NG", + colorClass: "bg-purple-600" + }, + { + id: 3, + companyName: "T\xF3th Aut\xF3 \xE9s Motorgar\xE1zs", + contactName: "T\xF3th G\xE1bor", + email: "toth@garazs.hu", + status: "active", + tier: "free", + initials: "TA", + colorClass: "bg-slate-600" + }, + { + id: 4, + companyName: "Szab\xF3 Flottakezel\u0151 Kft.", + contactName: "Szab\xF3 M\xE1rta", + email: "szabo@flotta.hu", + status: "inactive", + tier: "premium", + initials: "SZ", + colorClass: "bg-amber-600" + }, + { + id: 5, + companyName: "Horv\xE1th Aut\xF3technika", + contactName: "Horv\xE1th L\xE1szl\xF3", + email: "horvath@autotechnika.hu", + status: "suspended", + tier: "free", + initials: "HA", + colorClass: "bg-slate-600" + }, + { + id: 6, + companyName: "Kiss & T\xE1rsa Szerviz", + contactName: "Kiss Anna", + email: "kiss@szerviz.hu", + status: "active", + tier: "enterprise", + initials: "KT", + colorClass: "bg-purple-600" + }, + { + id: 7, + companyName: "Moln\xE1r Aut\xF3h\xE1z Kft.", + contactName: "Moln\xE1r Zolt\xE1n", + email: "molnar@autohaz.hu", + status: "active", + tier: "premium", + initials: "MA", + colorClass: "bg-amber-600" + }, + { + id: 8, + companyName: "Farkas G\xE9pj\xE1rm\u0171 Szerviz", + contactName: "Farkas B\xE9la", + email: "farkas@gepjarmu.hu", + status: "inactive", + tier: "free", + initials: "FG", + colorClass: "bg-slate-600" + } + ]); + const activeCount = computed(() => garages.filter((g) => g.status === "active").length); + const premiumCount = computed(() => garages.filter((g) => g.tier === "premium").length); + const enterpriseCount = computed(() => garages.filter((g) => g.tier === "enterprise").length); + const filteredGarages = computed(() => { + return garages.filter((g) => { + if (searchQuery.value) { + const q = searchQuery.value.toLowerCase(); + const matchesSearch = g.companyName.toLowerCase().includes(q) || g.contactName.toLowerCase().includes(q) || g.email.toLowerCase().includes(q); + if (!matchesSearch) return false; + } + if (filterTier.value !== "all" && g.tier !== filterTier.value) return false; + return true; + }); + }); + function tierBadgeClass(tier) { + if (tier === "enterprise") return "bg-purple-500/20 text-purple-300"; + if (tier === "premium") return "bg-amber-500/20 text-amber-300"; + return "bg-slate-500/20 text-slate-300"; + } + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(_ctx.$t("garages.title"))}

${ssrInterpolate(_ctx.$t("garages.subtitle"))}

${ssrInterpolate(_ctx.$t("garages.total_garages"))}

${ssrInterpolate(garages.length)}

${ssrInterpolate(_ctx.$t("garages.active_garages"))}

${ssrInterpolate(activeCount.value)}

${ssrInterpolate(_ctx.$t("garages.premium_garages"))}

${ssrInterpolate(premiumCount.value)}

${ssrInterpolate(_ctx.$t("garages.enterprise_garages"))}

${ssrInterpolate(enterpriseCount.value)}

`); + ssrRenderList(filteredGarages.value, (garage) => { + _push(``); + }); + _push(`
ID${ssrInterpolate(_ctx.$t("garages.company_name"))}${ssrInterpolate(_ctx.$t("garages.email"))}${ssrInterpolate(_ctx.$t("garages.status"))}${ssrInterpolate(_ctx.$t("garages.current_package"))}${ssrInterpolate(_ctx.$t("garages.actions"))}
${ssrInterpolate(garage.id)}
${ssrInterpolate(garage.initials)}

${ssrInterpolate(garage.companyName)}

${ssrInterpolate(garage.contactName)}

${ssrInterpolate(garage.email)} ${ssrInterpolate(garage.status === "active" ? _ctx.$t("garages.active") : garage.status === "suspended" ? _ctx.$t("garages.suspended") : _ctx.$t("garages.inactive"))}
${ssrInterpolate(garage.tier)}
`); + if (openDropdownId.value === garage.id) { + _push(`
`); + ssrRenderList(availableTiers, (tier) => { + _push(``); + }); + _push(`
`); + } else { + _push(``); + } + _push(`
`); + if (filteredGarages.value.length === 0) { + _push(`

${ssrInterpolate(_ctx.$t("garages.no_results"))}

`); + } else { + _push(``); + } + _push(`
`); + if (saveNotification.value) { + _push(`
${ssrInterpolate(saveNotification.value.message)}
`); + } else { + _push(``); + } + _push(``); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/garages/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; + +export { _sfc_main as default }; +//# sourceMappingURL=index-ebkVtBaw.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs.map b/frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs.map new file mode 100644 index 0000000..91a661d --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/index-ebkVtBaw.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index-ebkVtBaw.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-ebkVtBaw.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs b/frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs deleted file mode 100644 index a8064d4..0000000 --- a/frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs +++ /dev/null @@ -1,54 +0,0 @@ -import { defineComponent, useSSRContext } from 'vue'; -import { ssrRenderAttrs, ssrRenderList, ssrInterpolate, ssrRenderClass } from 'vue/server-renderer'; - -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "index", - __ssrInlineRender: true, - setup(__props) { - const superadminPerms = [ - { key: "user_mgmt", label: "User Management", enabled: true }, - { key: "billing_admin", label: "Billing Administration", enabled: true }, - { key: "robot_config", label: "Robot Configuration", enabled: true }, - { key: "system_logs", label: "System Logs Access", enabled: true }, - { key: "api_keys", label: "API Key Management", enabled: false } - ]; - const garagePerms = [ - { key: "vehicle_crud", label: "Vehicle CRUD", enabled: true }, - { key: "service_booking", label: "Service Booking", enabled: true }, - { key: "customer_view", label: "Customer Data View", enabled: true }, - { key: "report_export", label: "Report Export", enabled: false }, - { key: "bulk_import", label: "Bulk Import", enabled: false } - ]; - const packagePerms = [ - { key: "premium_features", label: "Premium Features", enabled: true }, - { key: "analytics", label: "Analytics Dashboard", enabled: true }, - { key: "multi_garage", label: "Multi-Garage Support", enabled: false }, - { key: "white_label", label: "White Label Branding", enabled: false }, - { key: "api_access", label: "API Access", enabled: true } - ]; - return (_ctx, _push, _parent, _attrs) => { - _push(`

Jogosults\xE1g Kezel\xE9s

Permissions Management \u2014 Role-based access control matrix

This is the permissions management interface. The 3D Capability Matrix UI (Superadmin, Garages, and Packages toggles) will be implemented here in the next iteration.

Superadmin

Full system access \u2014 user management, billing, robots, and system configuration.

`); - ssrRenderList(superadminPerms, (perm) => { - _push(`
${ssrInterpolate(perm.label)}${ssrInterpolate(perm.enabled ? "Enabled" : "Disabled")}
`); - }); - _push(`

Garages

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

`); - ssrRenderList(garagePerms, (perm) => { - _push(`
${ssrInterpolate(perm.label)}${ssrInterpolate(perm.enabled ? "Enabled" : "Disabled")}
`); - }); - _push(`

Packages

Subscription package permissions \u2014 feature toggles per plan tier.

`); - ssrRenderList(packagePerms, (perm) => { - _push(`
${ssrInterpolate(perm.label)}${ssrInterpolate(perm.enabled ? "Enabled" : "Disabled")}
`); - }); - _push(`

3D Capability Matrix

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

`); - }; - } -}); -const _sfc_setup = _sfc_main.setup; -_sfc_main.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/permissions/index.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; - -export { _sfc_main as default }; -//# sourceMappingURL=index-nGH29Vk2.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs.map b/frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs.map deleted file mode 100644 index 05677a0..0000000 --- a/frontend_admin/.output/server/chunks/build/index-nGH29Vk2.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index-nGH29Vk2.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/index-nGH29Vk2.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs b/frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs similarity index 93% rename from frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs rename to frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs index 7b8616f..57817cc 100644 --- a/frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs +++ b/frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs @@ -1,9 +1,9 @@ -import { _ as __nuxt_component_0 } from './nuxt-link-DNVrgHUL.mjs'; +import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs'; import { defineComponent, ref, mergeProps, unref, withCtx, createTextVNode, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderAttr, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderComponent } from 'vue/server-renderer'; -import { u as useAuthStore, _ as _imports_0 } from './auth-CRAMW6e4.mjs'; -import { u as useRouter } from './server.mjs'; -import '../nitro/nitro.mjs'; +import { p as publicAssetsURL } from '../nitro/nitro.mjs'; +import { a as useRouter } from './server.mjs'; +import { u as useAuthStore } from './auth-mCjBoLcA.mjs'; import 'node:http'; import 'node:https'; import 'node:events'; @@ -11,17 +11,17 @@ import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; +import 'vue-router'; import 'node:url'; +import 'pinia'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'unhead/plugins'; -import 'pinia'; -import './cookie-CWIsZYm7.mjs'; -import 'vue-router'; +const _imports_0 = publicAssetsURL("/sf_logo.png"); const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "login", __ssrInlineRender: true, @@ -72,4 +72,4 @@ _sfc_main.setup = (props, ctx) => { }; export { _sfc_main as default }; -//# sourceMappingURL=login-CLIOTi6c.mjs.map +//# sourceMappingURL=login-BHmaTZZZ.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs.map b/frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs.map new file mode 100644 index 0000000..0b0e8a8 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/login-BHmaTZZZ.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"login-BHmaTZZZ.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs.map b/frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs.map deleted file mode 100644 index 4104459..0000000 --- a/frontend_admin/.output/server/chunks/build/login-CLIOTi6c.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"login-CLIOTi6c.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/login-CLIOTi6c.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs b/frontend_admin/.output/server/chunks/build/nuxt-link-Cp-CAJwR.mjs similarity index 96% rename from frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs rename to frontend_admin/.output/server/chunks/build/nuxt-link-Cp-CAJwR.mjs index 82d9918..de7f31a 100644 --- a/frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs +++ b/frontend_admin/.output/server/chunks/build/nuxt-link-Cp-CAJwR.mjs @@ -1,6 +1,6 @@ import { defineComponent, shallowRef, h, resolveComponent, computed, unref } from 'vue'; -import { D as parseQuery, k as hasProtocol, m as joinURL, l as isScriptProtocol, E as withTrailingSlash, F as withoutTrailingSlash } from '../nitro/nitro.mjs'; -import { u as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, a as useNuxtApp, b as useRuntimeConfig, c as nuxtLinkDefaults } from './server.mjs'; +import { O as parseQuery, t as hasProtocol, w as joinURL, v as isScriptProtocol, Q as withTrailingSlash, P as withoutTrailingSlash } from '../nitro/nitro.mjs'; +import { a as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, f as useNuxtApp, g as useRuntimeConfig, h as nuxtLinkDefaults } from './server.mjs'; const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); function sanitizeExternalHref(value) { @@ -307,4 +307,4 @@ function applyTrailingSlashBehavior(to, trailingSlash) { } export { __nuxt_component_0 as _ }; -//# sourceMappingURL=nuxt-link-DNVrgHUL.mjs.map +//# sourceMappingURL=nuxt-link-Cp-CAJwR.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs.map b/frontend_admin/.output/server/chunks/build/nuxt-link-Cp-CAJwR.mjs.map similarity index 98% rename from frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs.map rename to frontend_admin/.output/server/chunks/build/nuxt-link-Cp-CAJwR.mjs.map index f55039a..3b27eca 100644 --- a/frontend_admin/.output/server/chunks/build/nuxt-link-DNVrgHUL.mjs.map +++ b/frontend_admin/.output/server/chunks/build/nuxt-link-Cp-CAJwR.mjs.map @@ -1 +1 @@ -{"version":3,"file":"nuxt-link-DNVrgHUL.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/nuxt-link-DNVrgHUL.js"],"names":["_a","_b","_c"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"nuxt-link-Cp-CAJwR.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/nuxt-link-Cp-CAJwR.js"],"names":["_a","_b","_c"],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs b/frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs new file mode 100644 index 0000000..d015138 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs @@ -0,0 +1,78 @@ +import { defineStore } from 'pinia'; +import { ref, computed } from 'vue'; + +const useRegionStore = defineStore("region", () => { + const regions = ref([]); + const activeRegion = ref(null); + const isLoading = ref(false); + const error = ref(null); + const defaultRegion = computed(() => { + return regions.value.find((r) => r.country_code === "DEFAULT") || null; + }); + const regionMap = computed(() => { + const map = /* @__PURE__ */ new Map(); + for (const r of regions.value) { + map.set(r.country_code, r); + } + return map; + }); + const activeCurrency = computed(() => { + var _a, _b; + return ((_a = activeRegion.value) == null ? void 0 : _a.currency) || ((_b = defaultRegion.value) == null ? void 0 : _b.currency) || "EUR"; + }); + const activeLocale = computed(() => { + var _a, _b; + return ((_a = activeRegion.value) == null ? void 0 : _a.locale_code) || ((_b = defaultRegion.value) == null ? void 0 : _b.locale_code) || "en-EU"; + }); + const activeVatRate = computed(() => { + var _a, _b, _c, _d; + return (_d = (_c = (_a = activeRegion.value) == null ? void 0 : _a.default_vat_rate) != null ? _c : (_b = defaultRegion.value) == null ? void 0 : _b.default_vat_rate) != null ? _d : 0; + }); + const activeTimezone = computed(() => { + var _a, _b; + return ((_a = activeRegion.value) == null ? void 0 : _a.timezone) || ((_b = defaultRegion.value) == null ? void 0 : _b.timezone) || "Europe/Brussels"; + }); + async function fetchRegions() { + var _a; + if (regions.value.length > 0) return; + isLoading.value = true; + error.value = null; + try { + const data = await $fetch("/api/v1/system/regions"); + regions.value = data || []; + } catch (err) { + error.value = ((_a = err == null ? void 0 : err.data) == null ? void 0 : _a.detail) || (err == null ? void 0 : err.message) || "Failed to load regions"; + console.error("[RegionStore] Fetch error:", err); + } finally { + isLoading.value = false; + } + } + function setActiveRegion(countryCode) { + const found = regions.value.find((r) => r.country_code === countryCode); + activeRegion.value = found || defaultRegion.value; + } + function getRegion(countryCode) { + return regionMap.value.get(countryCode); + } + return { + // State + regions, + activeRegion, + isLoading, + error, + // Getters + defaultRegion, + regionMap, + activeCurrency, + activeLocale, + activeVatRate, + activeTimezone, + // Actions + fetchRegions, + setActiveRegion, + getRegion + }; +}); + +export { useRegionStore as u }; +//# sourceMappingURL=region-0mvXqaMM.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs.map b/frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs.map new file mode 100644 index 0000000..99e40a3 --- /dev/null +++ b/frontend_admin/.output/server/chunks/build/region-0mvXqaMM.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"region-0mvXqaMM.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/region-0mvXqaMM.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/server.mjs b/frontend_admin/.output/server/chunks/build/server.mjs index e8a3e61..d18c20a 100644 --- a/frontend_admin/.output/server/chunks/build/server.mjs +++ b/frontend_admin/.output/server/chunks/build/server.mjs @@ -1,9 +1,10 @@ -import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { hasInjectionContext, getCurrentInstance, defineComponent, createElementBlock, shallowRef, provide, cloneVNode, h, defineAsyncComponent, inject, computed, unref, shallowReactive, ref, Suspense, Fragment, createApp, onErrorCaptured, onServerPrefetch, createVNode, resolveDynamicComponent, reactive, effectScope, mergeProps, getCurrentScope, toRef, withCtx, nextTick, isReadonly, toRaw, useSSRContext, isRef, isShallow, isReactive } from 'vue'; -import { p as parseURL, e as encodePath, i as decodePath, k as hasProtocol, l as isScriptProtocol, m as joinURL, w as withQuery, s as sanitizeStatusCode, n as getContext, $ as $fetch, o as defu, q as createHooks, c as createError$1, r as executeAsync } from '../nitro/nitro.mjs'; -import { b as baseURL } from '../routes/renderer.mjs'; +import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import * as Vue from 'vue'; +import { ref, getCurrentScope, onScopeDispose, inject, computed, hasInjectionContext, getCurrentInstance as getCurrentInstance$1, shallowRef, defineComponent, createElementBlock, provide, cloneVNode, h, defineAsyncComponent, unref, shallowReactive, Suspense, Fragment, createApp, createVNode, Text, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, reactive, effectScope, mergeProps, toRef, withCtx, nextTick, isReadonly, toRaw, useSSRContext, isRef, isShallow, isReactive } from 'vue'; +import { q as klona, r as parseURL, e as encodePath, s as decodePath, t as hasProtocol, v as isScriptProtocol, w as joinURL, x as withQuery, y as parse$1, z as getRequestHeader, A as destr, B as isEqual, C as sanitizeStatusCode, D as setCookie, E as getCookie, F as deleteCookie, G as getContext, $ as $fetch$1, H as baseURL, I as defu, J as createHooks, j as createError$1, K as executeAsync, L as getRequestURL, M as createDefu, N as parsePath, O as parseQuery, P as withoutTrailingSlash } from '../nitro/nitro.mjs'; import { setActivePinia, createPinia, shouldHydrate } from 'pinia'; import { useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, START_LOCATION } from 'vue-router'; import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode } from 'vue/server-renderer'; +import { u as useHead$1, h as headSymbol } from '../routes/renderer.mjs'; import 'node:http'; import 'node:https'; import 'node:events'; @@ -19,7 +20,7 @@ import 'unhead/utils'; import 'unhead/plugins'; if (!globalThis.$fetch) { - globalThis.$fetch = $fetch.create({ + globalThis.$fetch = $fetch$1.create({ baseURL: baseURL() }); } @@ -220,7 +221,7 @@ function callWithNuxt(nuxt, setup, args) { function tryUseNuxtApp(id) { let nuxtAppInstance; if (hasInjectionContext()) { - nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt; + nuxtAppInstance = getCurrentInstance$1()?.appContext.app.$nuxt; } nuxtAppInstance ||= getNuxtAppCtx(id).tryUse(); return nuxtAppInstance || null; @@ -393,6 +394,20 @@ const createError = (error) => { }); return nuxtError; }; +function injectHead(nuxtApp) { + const nuxt = nuxtApp || tryUseNuxtApp(); + return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => { + if (hasInjectionContext()) { + return inject(headSymbol); + } + }); +} +function useHead(input, options = {}) { + const head = injectHead(options.nuxt); + if (head) { + return useHead$1(input, { head, ...options }); + } +} const matcher = (m, p) => { return []; }; @@ -441,7 +456,7 @@ const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defin nuxtApp.vueApp.use(head); } }); -function toArray$1(value) { +function toArray$3(value) { return Array.isArray(value) ? value : [value]; } const _routes = [ @@ -454,13 +469,25 @@ const _routes = [ { name: "login", path: "/login", - component: () => import('./login-CLIOTi6c.mjs') + component: () => import('./login-BHmaTZZZ.mjs') + }, + { + name: "garages", + path: "/garages", + meta: { "middleware": "auth" }, + component: () => import('./index-ebkVtBaw.mjs') + }, + { + name: "packages", + path: "/packages", + meta: { "middleware": "auth" }, + component: () => import('./index-BPETUF7a.mjs') }, { name: "permissions", path: "/permissions", meta: { "middleware": "auth" }, - component: () => import('./index-nGH29Vk2.mjs') + component: () => import('./index-7zBAzpaD.mjs') } ]; const _wrapInTransition = (props, children) => { @@ -488,7 +515,7 @@ function isChangingPage(to, from) { } return true; } -function toArray(value) { +function toArray$2(value) { return Array.isArray(value) ? value : [value]; } function _mergeTransitionProps(routeProps) { @@ -499,8 +526,8 @@ function _mergeTransitionProps(routeProps) { } _props.push({ ...prop, - onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0, - onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0 + onAfterLeave: prop.onAfterLeave ? toArray$2(prop.onAfterLeave) : void 0, + onBeforeLeave: prop.onBeforeLeave ? toArray$2(prop.onBeforeLeave) : void 0 }); } return defu(..._props); @@ -605,7 +632,7 @@ const globalMiddleware = [ manifest_45route_45rule ]; const namedMiddleware = { - auth: () => import('./auth-D_CY0lMs.mjs') + auth: () => import('./auth-BgwR5zMA.mjs') }; Object.assign(/* @__PURE__ */ Object.create(null), {}); const pageIslandRoutes = Object.assign(/* @__PURE__ */ Object.create(null), {}); @@ -724,7 +751,7 @@ const plugin$1 = /* @__PURE__ */ defineNuxtPlugin({ if (!componentMiddleware) { continue; } - for (const entry2 of toArray$1(componentMiddleware)) { + for (const entry2 of toArray$3(componentMiddleware)) { middlewareEntries.add(entry2); } } @@ -858,7 +885,7 @@ defineComponent({ ...false, setup(props, { slots, attrs }) { const mounted = shallowRef(false); - const vm = getCurrentInstance(); + const vm = getCurrentInstance$1(); if (vm) { vm._nuxtClientOnly = true; } @@ -881,6 +908,110 @@ defineComponent({ }; } }); +const useStateKeyPrefix = "$s"; +function useState(...args) { + const autoKey = typeof args[args.length - 1] === "string" ? args.pop() : void 0; + if (typeof args[0] !== "string") { + args.unshift(autoKey); + } + const [_key, init] = args; + if (!_key || typeof _key !== "string") { + throw new TypeError("[nuxt] [useState] key must be a string: " + _key); + } + if (init !== void 0 && typeof init !== "function") { + throw new Error("[nuxt] [useState] init must be a function: " + init); + } + const key = useStateKeyPrefix + _key; + const nuxtApp = useNuxtApp(); + const state = toRef(nuxtApp.payload.state, key); + if (state.value === void 0 && init) { + const initialValue = init(); + if (isRef(initialValue)) { + nuxtApp.payload.state[key] = initialValue; + return initialValue; + } + state.value = initialValue; + } + return state; +} +function useRequestEvent(nuxtApp) { + nuxtApp ||= useNuxtApp(); + return nuxtApp.ssrContext?.event; +} +function prerenderRoutes(path) { + { + return; + } +} +const CookieDefaults = { + path: "/", + watch: true, + decode: (val) => { + const decoded = decodeURIComponent(val); + const parsed = destr(decoded); + if (typeof parsed === "number" && (!Number.isFinite(parsed) || String(parsed) !== decoded)) { + return decoded; + } + return parsed; + }, + encode: (val) => encodeURIComponent(typeof val === "string" ? val : JSON.stringify(val)) +}; +function useCookie(name, _opts) { + const opts = { ...CookieDefaults, ..._opts }; + opts.filter ??= (key) => key === name; + const cookies = readRawCookies(opts) || {}; + let delay; + if (opts.maxAge !== void 0) { + delay = opts.maxAge * 1e3; + } else if (opts.expires) { + delay = opts.expires.getTime() - Date.now(); + } + const hasExpired = delay !== void 0 && delay <= 0; + const cookieValue = klona(hasExpired ? void 0 : cookies[name] ?? opts.default?.()); + const cookie = ref(cookieValue); + { + const nuxtApp = useNuxtApp(); + const writeFinalCookieValue = () => { + if (opts.readonly || isEqual(cookie.value, cookies[name])) { + return; + } + nuxtApp._cookies ||= {}; + if (name in nuxtApp._cookies) { + if (isEqual(cookie.value, nuxtApp._cookies[name])) { + return; + } + } + nuxtApp._cookies[name] = cookie.value; + writeServerCookie(useRequestEvent(nuxtApp), name, cookie.value, opts); + }; + const unhook = nuxtApp.hooks.hookOnce("app:rendered", writeFinalCookieValue); + nuxtApp.hooks.hookOnce("app:error", () => { + unhook(); + return writeFinalCookieValue(); + }); + } + return cookie; +} +function readRawCookies(opts = {}) { + { + return parse$1(getRequestHeader(useRequestEvent(), "cookie") || "", opts); + } +} +function writeServerCookie(event, name, value, opts = {}) { + if (event) { + if (value !== null && value !== void 0) { + return setCookie(event, name, value, opts); + } + if (getCookie(event, name) !== void 0) { + return deleteCookie(event, name, opts); + } + } +} +function useRequestURL(opts) { + { + return getRequestURL(useRequestEvent(), opts); + } +} const plugin = /* @__PURE__ */ defineNuxtPlugin({ name: "pinia", setup(nuxtApp) { @@ -907,16 +1038,4973 @@ const plugin = /* @__PURE__ */ defineNuxtPlugin({ const components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 = /* @__PURE__ */ defineNuxtPlugin({ name: "nuxt:global-components" }); +function warn(msg, err) { + if (typeof console !== "undefined") { + console.warn(`[intlify] ` + msg); + if (err) { + console.warn(err.stack); + } + } +} +const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name); +const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source }); +const friendlyJSONstringify = (json) => JSON.stringify(json).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029").replace(/\u0027/g, "\\u0027"); +const isNumber = (val) => typeof val === "number" && isFinite(val); +const isDate = (val) => toTypeString(val) === "[object Date]"; +const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0; +const assign = Object.assign; +const _create = Object.create; +const create = (obj = null) => _create(obj); +function escapeHtml(rawText) { + return rawText.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/").replace(/=/g, "="); +} +function escapeAttributeValue(value) { + return value.replace(/&(?![a-zA-Z0-9#]{2,6};)/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(//g, ">"); +} +function sanitizeTranslatedHtml(html) { + html = html.replace(/(\w+)\s*=\s*"([^"]*)"/g, (_, attrName, attrValue) => `${attrName}="${escapeAttributeValue(attrValue)}"`); + html = html.replace(/(\w+)\s*=\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`); + const eventHandlerPattern = /\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi; + if (eventHandlerPattern.test(html)) { + html = html.replace(/(\s+)(on)(\w+\s*=)/gi, "$1on$3"); + } + const javascriptUrlPattern = [ + // In href, src, action, formaction attributes + /(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi, + // In style attributes within url() + /(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi + ]; + javascriptUrlPattern.forEach((pattern) => { + html = html.replace(pattern, "$1javascript:"); + }); + return html; +} +const hasOwnProperty = Object.prototype.hasOwnProperty; +function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); +} +const isArray = Array.isArray; +const isFunction = (val) => typeof val === "function"; +const isString = (val) => typeof val === "string"; +const isBoolean = (val) => typeof val === "boolean"; +const isObject = (val) => val !== null && typeof val === "object"; +const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const isPlainObject = (val) => toTypeString(val) === "[object Object]"; +const toDisplayString = (val) => { + return val == null ? "" : isArray(val) || isPlainObject(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val); +}; +function join(items, separator2 = "") { + return items.reduce((str, item, index) => index === 0 ? str + item : str + separator2 + item, ""); +} +const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val); +function deepCopy(src, des) { + if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { + throw new Error("Invalid value"); + } + const stack = [{ src, des }]; + while (stack.length) { + const { src: src2, des: des2 } = stack.pop(); + Object.keys(src2).forEach((key) => { + if (key === "__proto__") { + return; + } + if (isObject(src2[key]) && !isObject(des2[key])) { + des2[key] = Array.isArray(src2[key]) ? [] : create(); + } + if (isNotObjectOrIsArray(des2[key]) || isNotObjectOrIsArray(src2[key])) { + des2[key] = src2[key]; + } else { + stack.push({ src: src2[key], des: des2[key] }); + } + }); + } +} +function localeHead$1(options, currentLanguage = options.getCurrentLanguage(), currentDirection = options.getCurrentDirection()) { + const metaObject = { + htmlAttrs: {}, + link: [], + meta: [] + }; + if (options.dir) { + metaObject.htmlAttrs.dir = currentDirection; + } + if (options.lang && currentLanguage) { + metaObject.htmlAttrs.lang = currentLanguage; + } + if (options.seo) { + const alternateLinks = getHreflangLinks(options); + metaObject.link = metaObject.link.concat( + alternateLinks, + getCanonicalLink(options) + ); + metaObject.meta = metaObject.meta.concat( + getOgUrl(options), + getCurrentOgLocale(options), + getAlternateOgLocales( + options, + options.locales.map((x) => x.language || x.code) + ) + ); + } + return metaObject; +} +function createLocaleMap(locales) { + const localeMap = /* @__PURE__ */ new Map(); + for (const locale of locales) { + if (!locale.language) { + console.warn("Locale `language` ISO code is required to generate alternate link"); + continue; + } + const [language, region] = locale.language.split("-"); + if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) { + localeMap.set(language, locale); + } + localeMap.set(locale.language, locale); + } + return localeMap; +} +function getHreflangLinks(options) { + if (!options.hreflangLinks) { + return []; + } + const links = []; + const localeMap = createLocaleMap(options.locales); + for (const [language, locale] of localeMap.entries()) { + const link = getHreflangLink(language, locale, options); + if (!link) { + continue; + } + links.push(link); + if (options.defaultLocale && options.defaultLocale === locale.code && links[0].hreflang !== "x-default") { + links.unshift( + { [options.key]: "i18n-xd", rel: "alternate", href: link.href, hreflang: "x-default" } + ); + } + } + return links; +} +function getHreflangLink(language, locale, options, routeWithoutQuery = options.strictCanonicals ? options.getRouteWithoutQuery() : void 0) { + const localePath2 = options.getLocalizedRoute(locale.code, routeWithoutQuery); + if (!localePath2) { + return void 0; + } + const href = withQuery( + hasProtocol(localePath2) ? localePath2 : joinURL(options.baseUrl, localePath2), + options.strictCanonicals ? getCanonicalQueryParams(options) : {} + ); + return { [options.key]: `i18n-alt-${language}`, rel: "alternate", href, hreflang: language }; +} +function getCanonicalUrl(options, route = options.getCurrentRoute()) { + const currentRoute = options.getLocaleRoute( + Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) }) + ); + if (!currentRoute) { + return ""; + } + return withQuery(joinURL(options.baseUrl, currentRoute.path), getCanonicalQueryParams(options)); +} +function getCanonicalLink(options, href = getCanonicalUrl(options)) { + if (!href) { + return []; + } + return [{ [options.key]: "i18n-can", rel: "canonical", href }]; +} +function getCanonicalQueryParams(options, route = options.getCurrentRoute()) { + const currentRoute = options.getLocaleRoute( + Object.assign({}, route, { path: void 0, name: options.getRouteBaseName(route) }) + ); + const currentRouteQuery = currentRoute?.query ?? {}; + const params = {}; + for (const param of options.canonicalQueries.filter((x) => x in currentRouteQuery)) { + params[param] ??= []; + for (const val of toArray$1(currentRouteQuery[param])) { + params[param].push(val || ""); + } + } + return params; +} +function getOgUrl(options, href = getCanonicalUrl(options)) { + if (!href) { + return []; + } + return [ + { [options.key]: "i18n-og-url", property: "og:url", content: href } + ]; +} +function getCurrentOgLocale(options, currentLanguage = options.getCurrentLanguage()) { + if (!currentLanguage) { + return []; + } + return [ + { [options.key]: "i18n-og", property: "og:locale", content: formatOgLanguage(currentLanguage) } + ]; +} +function getAlternateOgLocales(options, languages, currentLanguage = options.getCurrentLanguage()) { + const alternateLocales = languages.filter((locale) => locale && locale !== currentLanguage); + return alternateLocales.map( + (locale) => ({ + [options.key]: `i18n-og-alt-${locale}`, + property: "og:locale:alternate", + content: formatOgLanguage(locale) + }) + ); +} +function formatOgLanguage(val = "") { + return val.replace(/-/g, "_"); +} +function toArray$1(value) { + return Array.isArray(value) ? value : [value]; +} +function localePath(ctx, route, locale = ctx.getLocale()) { + if (isString(route) && hasProtocol(route, { acceptRelative: true })) { + return route; + } + try { + return resolveRoute(ctx, route, locale).fullPath; + } catch { + return ""; + } +} +function localeRoute(ctx, route, locale = ctx.getLocale()) { + try { + return resolveRoute(ctx, route, locale); + } catch { + return; + } +} +function normalizeRawLocation(route) { + if (!isString(route)) { + return assign({}, route); + } + if (route[0] === "/") { + const { pathname: path, search, hash } = parsePath(route); + return { path, query: parseQuery(search), hash }; + } + return { name: route }; +} +function resolveRoute(ctx, route, locale) { + const normalized = normalizeRawLocation(route); + const resolved = ctx.router.resolve(ctx.resolveLocalizedRouteObject(normalized, locale)); + if (resolved.name) { + return resolved; + } + return ctx.router.resolve(route); +} +function switchLocalePath(ctx, locale, route = ctx.router.currentRoute.value) { + const name = ctx.getRouteBaseName(route); + if (!name) { + return ""; + } + const routeCopy = { + name, + params: assign( + {}, + route.params, + ctx.getLocalizedDynamicParams(locale) + ), + fullPath: route.fullPath, + query: route.query, + hash: route.hash, + path: route.path, + meta: route.meta + }; + const path = localePath(ctx, routeCopy, locale); + return ctx.afterSwitchLocalePath(path, locale); +} +function createHeadContext(ctx, config, locale = ctx.getLocale(), locales = ctx.getLocales(), baseUrl = ctx.getBaseUrl()) { + const currentLocale = locales.find((l) => l.code === locale) || {}; + const canonicalQueries = typeof config.seo === "object" && config.seo?.canonicalQueries || []; + if (!baseUrl && true && true) { + console.warn("I18n `baseUrl` is required to generate valid SEO tag links."); + } + return { + ...config, + key: "id", + locales, + baseUrl, + canonicalQueries, + hreflangLinks: ctx.routingOptions.hreflangLinks, + defaultLocale: ctx.routingOptions.defaultLocale, + strictCanonicals: ctx.routingOptions.strictCanonicals, + getRouteBaseName: ctx.getRouteBaseName, + getCurrentRoute: () => ctx.router.currentRoute.value, + getCurrentLanguage: () => currentLocale.language, + getCurrentDirection: () => currentLocale.dir || "ltr", + getLocaleRoute: (route) => localeRoute(ctx, route), + getLocalizedRoute: (locale2, route) => switchLocalePath(ctx, locale2, route), + getRouteWithoutQuery: () => { + try { + return assign({}, ctx.router.resolve({ query: {} }), { meta: ctx.router.currentRoute.value.meta }); + } catch { + return void 0; + } + } + }; +} +function localeHead(ctx, { dir = true, lang = true, seo = true }) { + return localeHead$1(createHeadContext(ctx, { dir, lang, seo })); +} +function parseAcceptLanguage(value) { + return value.split(",").map((tag) => tag.split(";")[0]).filter( + (tag) => !(tag === "*" || tag === "") + ); +} +function createPathIndexLanguageParser(index = 0) { + return (path) => { + const rawPath = typeof path === "string" ? path : path.pathname; + const normalizedPath = rawPath.split("?")[0]; + const parts = normalizedPath.split("/"); + if (parts[0] === "") { + parts.shift(); + } + return parts.length > index ? parts[index] || "" : ""; + }; +} +const separator = "___"; +function normalizeRouteName(routeName) { + if (typeof routeName === "string") { + return routeName; + } + if (routeName != null) { + return routeName.toString(); + } + return ""; +} +function getRouteBaseName(route) { + return normalizeRouteName(typeof route === "object" ? route?.name : route).split(separator)[0]; +} +const pathLanguageParser = createPathIndexLanguageParser(0); +const getLocaleFromRoutePath = (path) => pathLanguageParser(path); +const getLocaleFromRouteName = (name) => name.split(separator).at(1) ?? ""; +function normalizeInput(input) { + return typeof input !== "object" ? String(input) : String(input?.name || input?.path || ""); +} +function getLocaleFromRoute(route) { + const input = normalizeInput(route); + if (input[0] === "/") { + return getLocaleFromRoutePath(input); + } + const fromName = getLocaleFromRouteName(input); + if (fromName) { + return fromName; + } + if (typeof route === "object" && route?.path) { + return getLocaleFromRoutePath(String(route.path)); + } + return ""; +} +function createLocaleRouteNameGetter(defaultLocale) { + { + return (routeName) => normalizeRouteName(routeName); + } +} +function createLocalizedRouteByPathResolver(router) { + { + return (route) => route; + } +} +const localeCodes = [ + "hu", + "en" +]; +const localeLoaders = { + hu: [ + { + key: "locale_hu_46json_ee06c965", + load: () => import( + './hu-CoGcC81v.mjs' + /* webpackChunkName: "locale_hu_46json_ee06c965" */ + ), + cache: true + } + ], + en: [ + { + key: "locale_en_46json_0b63539c", + load: () => import( + './en-BScPj1A-.mjs' + /* webpackChunkName: "locale_en_46json_0b63539c" */ + ), + cache: true + } + ] +}; +const vueI18nConfigs = []; +const normalizedLocales = [ + { + code: "hu", + iso: "hu-HU", + name: "Magyar", + language: void 0 + }, + { + code: "en", + iso: "en-GB", + name: "English", + language: void 0 + } +]; +const cacheMessages = /* @__PURE__ */ new Map(); +const merger = createDefu((obj, key, value) => { + if (key === "messages" || key === "datetimeFormats" || key === "numberFormats") { + obj[key] ??= create(null); + deepCopy(value, obj[key]); + return true; + } +}); +async function loadVueI18nOptions(vueI18nConfigs2) { + const nuxtApp = useNuxtApp(); + let vueI18nOptions = { messages: create(null) }; + for (const configFile of vueI18nConfigs2) { + const resolver = await configFile().then((x) => isModule(x) ? x.default : x); + const resolved = isFunction(resolver) ? await nuxtApp.runWithContext(() => resolver()) : resolver; + vueI18nOptions = merger(create(null), resolved, vueI18nOptions); + } + vueI18nOptions.fallbackLocale ??= false; + return vueI18nOptions; +} +const isModule = (val) => toTypeString(val) === "[object Module]"; +async function getLocaleMessages$1(locale, loader) { + const nuxtApp = useNuxtApp(); + try { + const getter = await nuxtApp.runWithContext(loader.load).then((x) => isModule(x) ? x.default : x); + return isFunction(getter) ? await nuxtApp.runWithContext(() => getter(locale)) : getter; + } catch (e) { + throw new Error(`Failed loading locale (${locale}): ` + e.message); + } +} +async function getLocaleMessagesMergedCached(locale, loaders = []) { + const nuxtApp = useNuxtApp(); + const messages = await Promise.all(loaders.map(async (loader) => { + const cached = getCachedMessages(loader); + const messages2 = cached || await nuxtApp.runWithContext(() => getLocaleMessages$1(locale, loader)); + if (!cached && loader.cache !== false) { + cacheMessages.set(loader.key, { ttl: Date.now() + 86400 * 1e3, value: messages2 }); + } + return messages2; + })); + const merged = {}; + for (const message of messages) { + deepCopy(message, merged); + } + return merged; +} +function getCachedMessages(loader) { + if (loader.cache === false) { + return; + } + const cache2 = cacheMessages.get(loader.key); + if (cache2 == null) { + return; + } + return cache2.ttl > Date.now() ? cache2.value : void 0; +} +function getI18nTarget(i18n) { + return i18n != null && "global" in i18n && "mode" in i18n ? i18n.global : i18n; +} +function getComposer$3(i18n) { + const target = getI18nTarget(i18n); + return "__composer" in target ? target.__composer : target; +} +function useRuntimeI18n(nuxtApp, event) { + if (!nuxtApp) { + return (/* @__PURE__ */ useRuntimeConfig()).public.i18n; + } + return nuxtApp.$config.public.i18n; +} +function useI18nDetection(nuxtApp) { + const detectBrowserLanguage = useRuntimeI18n(nuxtApp).detectBrowserLanguage; + const detect = detectBrowserLanguage || {}; + return { + ...detect, + enabled: !!detectBrowserLanguage, + cookieKey: detect.cookieKey || "i18n_redirected" + }; +} +function resolveRootRedirect(config) { + if (!config) { + return void 0; + } + return { + path: "/" + (isString(config) ? config : config.path).replace(/^\//, ""), + code: !isString(config) && config.statusCode || 302 + }; +} +function toArray(value) { + return Array.isArray(value) ? value : [value]; +} +function matchDomainLocale(locales, host, pathLocale) { + const normalizeDomain = (domain = "") => domain.replace(/https?:\/\//, ""); + const matches = locales.filter( + (locale) => normalizeDomain(locale.domain) === host || toArray(locale.domains).includes(host) + ); + if (matches.length <= 1) { + return matches[0]?.code; + } + return ( + // match by current path locale + matches.find((l) => l.code === pathLocale)?.code || matches.find((l) => l.defaultForDomains?.includes(host) ?? l.domainDefault)?.code + ); +} +function domainFromLocale(domainLocales, url, locale) { + const lang = normalizedLocales.find((x) => x.code === locale); + const domain = domainLocales?.[locale]?.domain || lang?.domain || lang?.domains?.find((v) => v === url.host); + if (!domain) { + return; + } + if (hasProtocol(domain, { strict: true })) { + return domain; + } + return url.protocol + "//" + domain; +} +function getDefaultLocaleForDomain(host) { + return normalizedLocales.find((l) => !!l.defaultForDomains?.includes(host))?.code; +} +const isSupportedLocale = (locale) => localeCodes.includes(locale || ""); +const resolveSupportedLocale = (locale) => isSupportedLocale(locale) ? locale : void 0; +var define_I18N_LOCALE_HASHES_default$1 = { hu: "349b7781", en: "349b7781" }; +const useLocaleConfigs = () => useState( + "i18n:cached-locale-configs", + () => void 0 +); +const useResolvedLocale = () => useState("i18n:resolved-locale", () => ""); +function useI18nCookie({ cookieCrossOrigin, cookieDomain, cookieSecure, cookieKey }) { + const date = /* @__PURE__ */ new Date(); + return useCookie(cookieKey, { + path: "/", + readonly: false, + expires: new Date(date.setDate(date.getDate() + 365)), + sameSite: cookieCrossOrigin ? "none" : "lax", + domain: cookieDomain || void 0, + secure: cookieCrossOrigin || cookieSecure + }); +} +function createNuxtI18nContext(nuxt, vueI18n, defaultLocale) { + const i18n = getI18nTarget(vueI18n); + const runtimeI18n = useRuntimeI18n(nuxt); + const detectConfig = useI18nDetection(nuxt); + const serverLocaleConfigs = useLocaleConfigs(); + const localeCookie = useI18nCookie(detectConfig); + const loadMap = /* @__PURE__ */ new Set(); + const getLocaleConfig = (locale) => serverLocaleConfigs.value[locale]; + const getDomainFromLocale = (locale) => domainFromLocale(runtimeI18n.domainLocales, useRequestURL({ xForwardedHost: true }), locale); + const baseUrl = createBaseUrlGetter(nuxt, runtimeI18n.baseUrl); + const resolvedLocale = useResolvedLocale(); + if (nuxt.ssrContext?.event?.context?.nuxtI18n?.detectLocale) { + resolvedLocale.value = nuxt.ssrContext.event.context.nuxtI18n.detectLocale; + } + const loadMessagesFromClient = async (locale) => { + const locales = getLocaleConfig(locale)?.fallbacks ?? []; + if (!locales.includes(locale)) { + locales.push(locale); + } + for (const k of locales) { + const msg = await nuxt.runWithContext(() => getLocaleMessagesMergedCached(k, localeLoaders[k])); + i18n.mergeLocaleMessage(k, msg); + } + }; + const loadMessagesFromServer = async (locale) => { + if (locale in localeLoaders === false) { + return; + } + const headers = getLocaleConfig(locale)?.cacheable ? {} : { "Cache-Control": "no-cache" }; + const prefix = ""; + const url = joinURL(prefix, "/_i18n", define_I18N_LOCALE_HASHES_default$1[locale], locale, "messages.json"); + const messages = await $fetch(url, { headers }); + for (const k of Object.keys(messages)) { + i18n.mergeLocaleMessage(k, messages[k]); + } + }; + const ctx = { + vueI18n, + initial: true, + preloaded: false, + config: runtimeI18n, + rootRedirect: resolveRootRedirect(runtimeI18n.rootRedirect), + redirectStatusCode: runtimeI18n.redirectStatusCode ?? 302, + dynamicResourcesSSG: false, + getDefaultLocale: () => defaultLocale, + getLocale: () => unref(i18n.locale), + setLocale: async (locale) => { + const oldLocale = ctx.getLocale(); + if (locale === oldLocale || !isSupportedLocale(locale)) { + return; + } + if (isRef(i18n.locale)) { + i18n.locale.value = locale; + } else { + i18n.locale = locale; + } + await nuxt.callHook("i18n:localeSwitched", { newLocale: locale, oldLocale }); + resolvedLocale.value = locale; + }, + setLocaleSuspend: async (locale) => { + if (!isSupportedLocale(locale)) { + return; + } + ctx.vueI18n.__pendingLocale = locale; + ctx.vueI18n.__pendingLocalePromise = new Promise((resolve) => { + ctx.vueI18n.__resolvePendingLocalePromise = async () => { + ctx.setCookieLocale(locale); + await ctx.setLocale(locale); + ctx.vueI18n.__pendingLocale = void 0; + resolve(); + }; + }); + { + await ctx.vueI18n.__resolvePendingLocalePromise?.(); + } + }, + getLocales: () => unref(i18n.locales).map((x) => isString(x) ? { code: x } : x), + setCookieLocale: (locale) => { + if (detectConfig.useCookie && isSupportedLocale(locale)) { + localeCookie.value = locale; + } + }, + getBaseUrl: (locale) => { + if (locale) { + return joinURL(getDomainFromLocale(locale) || baseUrl(), nuxt.$config.app.baseURL); + } + return joinURL(baseUrl(), nuxt.$config.app.baseURL); + }, + loadMessages: async (locale) => { + if (nuxt.isHydrating && loadMap.has(locale)) { + return; + } + try { + return ctx.dynamicResourcesSSG || false ? await loadMessagesFromClient(locale) : await loadMessagesFromServer(locale); + } catch (e) { + console.warn(`Failed to load messages for locale "${locale}"`, e); + } finally { + loadMap.add(locale); + } + }, + composableCtx: void 0 + }; + ctx.composableCtx = createComposableContext(ctx, nuxt); + return ctx; +} +function useNuxtI18nContext(nuxt) { + if (nuxt._nuxtI18n == null) { + throw new Error("Nuxt I18n context has not been set up yet."); + } + return nuxt._nuxtI18n; +} +function matchBrowserLocale(locales, browserLocales) { + const matchedLocales = []; + for (const [index, browserCode] of browserLocales.entries()) { + const matchedLocale = locales.find((l) => l.language?.toLowerCase() === browserCode.toLowerCase()); + if (matchedLocale) { + matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length }); + break; + } + } + for (const [index, browserCode] of browserLocales.entries()) { + const languageCode = browserCode.split("-")[0].toLowerCase(); + const matchedLocale = locales.find((l) => l.language?.split("-")[0].toLowerCase() === languageCode); + if (matchedLocale) { + matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length }); + break; + } + } + return matchedLocales; +} +function compareBrowserLocale(a, b) { + if (a.score === b.score) { + return b.code.length - a.code.length; + } + return b.score - a.score; +} +function findBrowserLocale(locales, browserLocales) { + const matchedLocales = matchBrowserLocale( + locales.map((l) => ({ code: l.code, language: l.language || l.code })), + browserLocales + ); + return matchedLocales.sort(compareBrowserLocale).at(0)?.code ?? ""; +} +const getCookieLocale = (event, cookieName) => getCookie(event, cookieName) || void 0; +const getRouteLocale = (event, route) => getLocaleFromRoute(route); +const getHeaderLocale = (event) => findBrowserLocale(normalizedLocales, parseAcceptLanguage(getRequestHeader(event, "accept-language") || "")); +const getHostLocale = (event, path, domainLocales) => { + const host = getRequestURL(event, { xForwardedHost: true }).host; + const locales = normalizedLocales.map((l) => ({ + ...l, + domain: domainLocales[l.code]?.domain ?? l.domain + })); + return matchDomainLocale(locales, host, getLocaleFromRoutePath(path)); +}; +const useDetectors = (event, config, nuxtApp) => { + if (!event) { + throw new Error("H3Event is required for server-side locale detection"); + } + const runtimeI18n = useRuntimeI18n(nuxtApp); + return { + cookie: () => getCookieLocale(event, config.cookieKey), + header: () => getHeaderLocale(event), + navigator: () => void 0, + host: (path) => getHostLocale(event, path, runtimeI18n.domainLocales), + route: (path) => getRouteLocale(event, path) + }; +}; +const isRouteLocationPathRaw = (val) => !!val.path && !val.name; +function useComposableContext(nuxtApp) { + const context = nuxtApp?._nuxtI18n?.composableCtx; + if (!context) { + throw new Error( + "i18n context is not initialized. Ensure the i18n plugin is installed and the composable is used within a Vue component or setup function." + ); + } + return context; +} +const formatTrailingSlash = withoutTrailingSlash; +function createComposableContext(ctx, nuxtApp = useNuxtApp()) { + const router = useRouter(); + useDetectors(useRequestEvent(), useI18nDetection(nuxtApp), nuxtApp); + const defaultLocale = ctx.getDefaultLocale(); + const getLocalizedRouteName = createLocaleRouteNameGetter(); + function resolveLocalizedRouteByName(route, locale) { + route.name = getRouteBaseName(route.name || router.currentRoute.value); + const localizedName = getLocalizedRouteName(route.name, locale); + if (router.hasRoute(localizedName)) { + route.name = localizedName; + } + route.name = localizedName; + return route; + } + const routeByPathResolver = createLocalizedRouteByPathResolver(); + function resolveLocalizedRouteByPath(input, locale) { + const route = routeByPathResolver(input, locale); + const baseName = getRouteBaseName(route); + if (baseName) { + const localizedName = getLocalizedRouteName(baseName, locale); + if (router.hasRoute(localizedName)) { + route.name = localizedName; + return route; + } + route.name = localizedName; + return route; + } + route.path = formatTrailingSlash(route.path, true); + return route; + } + const composableCtx = { + router, + _head: void 0, + get head() { + this._head ??= useHead({}); + return this._head; + }, + metaState: { htmlAttrs: {}, meta: [], link: [] }, + seoSettings: { + dir: false, + lang: false, + seo: false + }, + localePathPayload: getLocalePathPayload(), + routingOptions: { + defaultLocale, + strictCanonicals: ctx.config.experimental.alternateLinkCanonicalQueries ?? true, + hreflangLinks: false + }, + getLocale: ctx.getLocale, + getLocales: ctx.getLocales, + getBaseUrl: ctx.getBaseUrl, + getRouteBaseName, + getRouteLocalizedParams: () => router.currentRoute.value.meta["nuxtI18nInternal"] ?? {}, + getLocalizedDynamicParams: (locale) => { + return composableCtx.getRouteLocalizedParams()?.[locale]; + }, + afterSwitchLocalePath: (path, locale) => { + composableCtx.getRouteLocalizedParams(); + return path; + }, + resolveLocalizedRouteObject: (route, locale) => { + return isRouteLocationPathRaw(route) ? resolveLocalizedRouteByPath(route, locale) : resolveLocalizedRouteByName(route, locale); + } + }; + return composableCtx; +} +function getLocalePathPayload(nuxtApp = useNuxtApp()) { + return JSON.parse("{}"); +} +async function loadAndSetLocale(nuxtApp, locale) { + const ctx = useNuxtI18nContext(nuxtApp); + const oldLocale = ctx.getLocale(); + if (locale === oldLocale && !ctx.initial && (!ctx.vueI18n.__pendingLocale || ctx.vueI18n.__pendingLocale === locale)) { + return locale; + } + const data = { oldLocale, newLocale: locale, initialSetup: ctx.initial, context: nuxtApp }; + let override = await nuxtApp.callHook("i18n:beforeLocaleSwitch", data); + if (override != null && false) { + console.warn("[nuxt-i18n] Do not return in `i18n:beforeLocaleSwitch`, mutate `data.newLocale` instead."); + } + override ??= data.newLocale; + if (isSupportedLocale(override)) { + locale = override; + } + await ctx.loadMessages(locale); + await ctx.setLocaleSuspend(locale); + return locale; +} +function skipDetect(detect, path, pathLocale) { + { + return false; + } +} +function detectLocale(nuxtApp, route) { + const detectConfig = useI18nDetection(nuxtApp); + const detectors = useDetectors(useRequestEvent(nuxtApp), detectConfig, nuxtApp); + const ctx = useNuxtI18nContext(nuxtApp); + const path = isString(route) ? route : route.path; + function* detect() { + if (ctx.initial && detectConfig.enabled && !skipDetect(detectConfig, path, detectors.route(path))) { + yield detectors.cookie(); + yield detectors.header(); + yield detectors.navigator(); + yield detectConfig.fallbackLocale; + } + } + for (const detected of detect()) { + if (detected && isSupportedLocale(detected)) { + return detected; + } + } + return ctx.getLocale() || ctx.getDefaultLocale() || ""; +} +function navigate(nuxtApp, to, locale) { + { + return; + } +} +function createBaseUrlGetter(nuxt, baseUrl, defaultLocale, getDomainFromLocale) { + if (isFunction(baseUrl)) { + return () => baseUrl(nuxt); + } + return () => { + return baseUrl ?? ""; + }; +} +function createPosition(line, column, offset) { + return { line, column, offset }; +} +function createLocation(start, end, source) { + const loc = { start, end }; + return loc; +} +const CompileErrorCodes = { + // tokenizer error codes + EXPECTED_TOKEN: 1, + INVALID_TOKEN_IN_PLACEHOLDER: 2, + UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3, + UNKNOWN_ESCAPE_SEQUENCE: 4, + INVALID_UNICODE_ESCAPE_SEQUENCE: 5, + UNBALANCED_CLOSING_BRACE: 6, + UNTERMINATED_CLOSING_BRACE: 7, + EMPTY_PLACEHOLDER: 8, + NOT_ALLOW_NEST_PLACEHOLDER: 9, + INVALID_LINKED_FORMAT: 10, + // parser error codes + MUST_HAVE_MESSAGES_IN_PLURAL: 11, + UNEXPECTED_EMPTY_LINKED_MODIFIER: 12, + UNEXPECTED_EMPTY_LINKED_KEY: 13, + UNEXPECTED_LEXICAL_ANALYSIS: 14}; +const COMPILE_ERROR_CODES_EXTEND_POINT = 17; +function createCompileError(code, loc, options = {}) { + const { domain, messages, args } = options; + const msg = code; + const error = new SyntaxError(String(msg)); + error.code = code; + if (loc) { + error.location = loc; + } + error.domain = domain; + return error; +} +function defaultOnError(error) { + throw error; +} +const CHAR_SP = " "; +const CHAR_CR = "\r"; +const CHAR_LF = "\n"; +const CHAR_LS = String.fromCharCode(8232); +const CHAR_PS = String.fromCharCode(8233); +function createScanner(str) { + const _buf = str; + let _index = 0; + let _line = 1; + let _column = 1; + let _peekOffset = 0; + const isCRLF = (index2) => _buf[index2] === CHAR_CR && _buf[index2 + 1] === CHAR_LF; + const isLF = (index2) => _buf[index2] === CHAR_LF; + const isPS = (index2) => _buf[index2] === CHAR_PS; + const isLS = (index2) => _buf[index2] === CHAR_LS; + const isLineEnd = (index2) => isCRLF(index2) || isLF(index2) || isPS(index2) || isLS(index2); + const index = () => _index; + const line = () => _line; + const column = () => _column; + const peekOffset = () => _peekOffset; + const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset]; + const currentChar = () => charAt(_index); + const currentPeek = () => charAt(_index + _peekOffset); + function next() { + _peekOffset = 0; + if (isLineEnd(_index)) { + _line++; + _column = 0; + } + if (isCRLF(_index)) { + _index++; + } + _index++; + _column++; + return _buf[_index]; + } + function peek() { + if (isCRLF(_index + _peekOffset)) { + _peekOffset++; + } + _peekOffset++; + return _buf[_index + _peekOffset]; + } + function reset() { + _index = 0; + _line = 1; + _column = 1; + _peekOffset = 0; + } + function resetPeek(offset = 0) { + _peekOffset = offset; + } + function skipToPeek() { + const target = _index + _peekOffset; + while (target !== _index) { + next(); + } + _peekOffset = 0; + } + return { + index, + line, + column, + peekOffset, + charAt, + currentChar, + currentPeek, + next, + peek, + reset, + resetPeek, + skipToPeek + }; +} +const EOF = void 0; +const DOT = "."; +const LITERAL_DELIMITER = "'"; +const ERROR_DOMAIN$3 = "tokenizer"; +function createTokenizer(source, options = {}) { + const location = options.location !== false; + const _scnr = createScanner(source); + const currentOffset = () => _scnr.index(); + const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index()); + const _initLoc = currentPosition(); + const _initOffset = currentOffset(); + const _context = { + currentType: 13, + offset: _initOffset, + startLoc: _initLoc, + endLoc: _initLoc, + lastType: 13, + lastOffset: _initOffset, + lastStartLoc: _initLoc, + lastEndLoc: _initLoc, + braceNest: 0, + inLinked: false, + text: "" + }; + const context = () => _context; + const { onError } = options; + function emitError(code, pos, offset, ...args) { + const ctx = context(); + pos.column += offset; + pos.offset += offset; + if (onError) { + const loc = location ? createLocation(ctx.startLoc, pos) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$3, + args + }); + onError(err); + } + } + function getToken(context2, type, value) { + context2.endLoc = currentPosition(); + context2.currentType = type; + const token = { type }; + if (location) { + token.loc = createLocation(context2.startLoc, context2.endLoc); + } + if (value != null) { + token.value = value; + } + return token; + } + const getEndToken = (context2) => getToken( + context2, + 13 + /* TokenTypes.EOF */ + ); + function eat(scnr, ch) { + if (scnr.currentChar() === ch) { + scnr.next(); + return ch; + } else { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + return ""; + } + } + function peekSpaces(scnr) { + let buf = ""; + while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) { + buf += scnr.currentPeek(); + scnr.peek(); + } + return buf; + } + function skipSpaces(scnr) { + const buf = peekSpaces(scnr); + scnr.skipToPeek(); + return buf; + } + function isIdentifierStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc === 95; + } + function isNumberStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; + } + function isNamedIdentifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isListIdentifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ch = scnr.currentPeek() === "-" ? scnr.peek() : scnr.currentPeek(); + const ret = isNumberStart(ch); + scnr.resetPeek(); + return ret; + } + function isLiteralStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 2) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === LITERAL_DELIMITER; + scnr.resetPeek(); + return ret; + } + function isLinkedDotStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 7) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === "."; + scnr.resetPeek(); + return ret; + } + function isLinkedModifierStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 8) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isLinkedDelimiterStart(scnr, context2) { + const { currentType } = context2; + if (!(currentType === 7 || currentType === 11)) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === ":"; + scnr.resetPeek(); + return ret; + } + function isLinkedReferStart(scnr, context2) { + const { currentType } = context2; + if (currentType !== 9) { + return false; + } + const fn = () => { + const ch = scnr.currentPeek(); + if (ch === "{") { + return isIdentifierStart(scnr.peek()); + } else if (ch === "@" || ch === "|" || ch === ":" || ch === "." || ch === CHAR_SP || !ch) { + return false; + } else if (ch === CHAR_LF) { + scnr.peek(); + return fn(); + } else { + return isTextStart(scnr, false); + } + }; + const ret = fn(); + scnr.resetPeek(); + return ret; + } + function isPluralStart(scnr) { + peekSpaces(scnr); + const ret = scnr.currentPeek() === "|"; + scnr.resetPeek(); + return ret; + } + function isTextStart(scnr, reset = true) { + const fn = (hasSpace = false, prev = "") => { + const ch = scnr.currentPeek(); + if (ch === "{") { + return hasSpace; + } else if (ch === "@" || !ch) { + return hasSpace; + } else if (ch === "|") { + return !(prev === CHAR_SP || prev === CHAR_LF); + } else if (ch === CHAR_SP) { + scnr.peek(); + return fn(true, CHAR_SP); + } else if (ch === CHAR_LF) { + scnr.peek(); + return fn(true, CHAR_LF); + } else { + return true; + } + }; + const ret = fn(); + reset && scnr.resetPeek(); + return ret; + } + function takeChar(scnr, fn) { + const ch = scnr.currentChar(); + if (ch === EOF) { + return EOF; + } + if (fn(ch)) { + scnr.next(); + return ch; + } + return null; + } + function isIdentifier(ch) { + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc >= 48 && cc <= 57 || // 0-9 + cc === 95 || // _ + cc === 36; + } + function takeIdentifierChar(scnr) { + return takeChar(scnr, isIdentifier); + } + function isNamedIdentifier(ch) { + const cc = ch.charCodeAt(0); + return cc >= 97 && cc <= 122 || // a-z + cc >= 65 && cc <= 90 || // A-Z + cc >= 48 && cc <= 57 || // 0-9 + cc === 95 || // _ + cc === 36 || // $ + cc === 45; + } + function takeNamedIdentifierChar(scnr) { + return takeChar(scnr, isNamedIdentifier); + } + function isDigit(ch) { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; + } + function takeDigit(scnr) { + return takeChar(scnr, isDigit); + } + function isHexDigit(ch) { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57 || // 0-9 + cc >= 65 && cc <= 70 || // A-F + cc >= 97 && cc <= 102; + } + function takeHexDigit(scnr) { + return takeChar(scnr, isHexDigit); + } + function getDigits(scnr) { + let ch = ""; + let num = ""; + while (ch = takeDigit(scnr)) { + num += ch; + } + return num; + } + function readText(scnr) { + let buf = ""; + while (true) { + const ch = scnr.currentChar(); + if (ch === "\\") { + const nextCh = scnr.peek(); + if (nextCh === "{" || nextCh === "}" || nextCh === "@" || nextCh === "|" || nextCh === "\\") { + buf += ch + nextCh; + scnr.next(); + scnr.next(); + } else { + scnr.resetPeek(); + buf += ch; + scnr.next(); + } + } else if (ch === "{" || ch === "}" || ch === "@" || ch === "|" || !ch) { + break; + } else if (ch === CHAR_SP || ch === CHAR_LF) { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } else if (isPluralStart(scnr)) { + break; + } else { + buf += ch; + scnr.next(); + } + } else { + buf += ch; + scnr.next(); + } + } + return buf; + } + function readNamedIdentifier(scnr) { + skipSpaces(scnr); + let ch = ""; + let name = ""; + while (ch = takeNamedIdentifierChar(scnr)) { + name += ch; + } + const currentChar = scnr.currentChar(); + if (currentChar && currentChar !== "}" && currentChar !== EOF && currentChar !== CHAR_SP && currentChar !== CHAR_LF && currentChar !== " ") { + const invalidPart = readInvalidIdentifier(scnr); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart); + return name + invalidPart; + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return name; + } + function readListIdentifier(scnr) { + skipSpaces(scnr); + let value = ""; + if (scnr.currentChar() === "-") { + scnr.next(); + value += `-${getDigits(scnr)}`; + } else { + value += getDigits(scnr); + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return value; + } + function isLiteral2(ch) { + return ch !== LITERAL_DELIMITER && ch !== CHAR_LF; + } + function readLiteral(scnr) { + skipSpaces(scnr); + eat(scnr, `'`); + let ch = ""; + let literal = ""; + while (ch = takeChar(scnr, isLiteral2)) { + if (ch === "\\") { + literal += readEscapeSequence(scnr); + } else { + literal += ch; + } + } + const current = scnr.currentChar(); + if (current === CHAR_LF || current === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0); + if (current === CHAR_LF) { + scnr.next(); + eat(scnr, `'`); + } + return literal; + } + eat(scnr, `'`); + return literal; + } + function readEscapeSequence(scnr) { + const ch = scnr.currentChar(); + switch (ch) { + case "\\": + case `'`: + scnr.next(); + return `\\${ch}`; + case "u": + return readUnicodeEscapeSequence(scnr, ch, 4); + case "U": + return readUnicodeEscapeSequence(scnr, ch, 6); + default: + emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch); + return ""; + } + } + function readUnicodeEscapeSequence(scnr, unicode, digits) { + eat(scnr, unicode); + let sequence = ""; + for (let i = 0; i < digits; i++) { + const ch = takeHexDigit(scnr); + if (!ch) { + emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`); + break; + } + sequence += ch; + } + return `\\${unicode}${sequence}`; + } + function isInvalidIdentifier(ch) { + return ch !== "{" && ch !== "}" && ch !== CHAR_SP && ch !== CHAR_LF; + } + function readInvalidIdentifier(scnr) { + skipSpaces(scnr); + let ch = ""; + let identifiers = ""; + while (ch = takeChar(scnr, isInvalidIdentifier)) { + identifiers += ch; + } + return identifiers; + } + function readLinkedModifier(scnr) { + let ch = ""; + let name = ""; + while (ch = takeIdentifierChar(scnr)) { + name += ch; + } + return name; + } + function readLinkedRefer(scnr) { + const fn = (buf) => { + const ch = scnr.currentChar(); + if (ch === "{" || ch === "@" || ch === "|" || ch === "(" || ch === ")" || !ch) { + return buf; + } else if (ch === CHAR_SP) { + return buf; + } else if (ch === CHAR_LF || ch === DOT) { + buf += ch; + scnr.next(); + return fn(buf); + } else { + buf += ch; + scnr.next(); + return fn(buf); + } + }; + return fn(""); + } + function readPlural(scnr) { + skipSpaces(scnr); + const plural = eat( + scnr, + "|" + /* TokenChars.Pipe */ + ); + skipSpaces(scnr); + return plural; + } + function readTokenInPlaceholder(scnr, context2) { + let token = null; + const ch = scnr.currentChar(); + switch (ch) { + case "{": + if (context2.braceNest >= 1) { + emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken( + context2, + 2, + "{" + /* TokenChars.BraceLeft */ + ); + skipSpaces(scnr); + context2.braceNest++; + return token; + case "}": + if (context2.braceNest > 0 && context2.currentType === 2) { + emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken( + context2, + 3, + "}" + /* TokenChars.BraceRight */ + ); + context2.braceNest--; + context2.braceNest > 0 && skipSpaces(scnr); + if (context2.inLinked && context2.braceNest === 0) { + context2.inLinked = false; + } + return token; + case "@": + if (context2.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = readTokenInLinked(scnr, context2) || getEndToken(context2); + context2.braceNest = 0; + return token; + default: { + let validNamedIdentifier = true; + let validListIdentifier = true; + let validLiteral = true; + if (isPluralStart(scnr)) { + if (context2.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (context2.braceNest > 0 && (context2.currentType === 4 || context2.currentType === 5 || context2.currentType === 6)) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + context2.braceNest = 0; + return readToken(scnr, context2); + } + if (validNamedIdentifier = isNamedIdentifierStart(scnr, context2)) { + token = getToken(context2, 4, readNamedIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if (validListIdentifier = isListIdentifierStart(scnr, context2)) { + token = getToken(context2, 5, readListIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if (validLiteral = isLiteralStart(scnr, context2)) { + token = getToken(context2, 6, readLiteral(scnr)); + skipSpaces(scnr); + return token; + } + if (!validNamedIdentifier && !validListIdentifier && !validLiteral) { + token = getToken(context2, 12, readInvalidIdentifier(scnr)); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value); + skipSpaces(scnr); + return token; + } + break; + } + } + return token; + } + function readTokenInLinked(scnr, context2) { + const { currentType } = context2; + let token = null; + const ch = scnr.currentChar(); + if ((currentType === 7 || currentType === 8 || currentType === 11 || currentType === 9) && (ch === CHAR_LF || ch === CHAR_SP)) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + switch (ch) { + case "@": + scnr.next(); + token = getToken( + context2, + 7, + "@" + /* TokenChars.LinkedAlias */ + ); + context2.inLinked = true; + return token; + case ".": + skipSpaces(scnr); + scnr.next(); + return getToken( + context2, + 8, + "." + /* TokenChars.LinkedDot */ + ); + case ":": + skipSpaces(scnr); + scnr.next(); + return getToken( + context2, + 9, + ":" + /* TokenChars.LinkedDelimiter */ + ); + default: + if (isPluralStart(scnr)) { + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (isLinkedDotStart(scnr, context2) || isLinkedDelimiterStart(scnr, context2)) { + skipSpaces(scnr); + return readTokenInLinked(scnr, context2); + } + if (isLinkedModifierStart(scnr, context2)) { + skipSpaces(scnr); + return getToken(context2, 11, readLinkedModifier(scnr)); + } + if (isLinkedReferStart(scnr, context2)) { + skipSpaces(scnr); + if (ch === "{") { + return readTokenInPlaceholder(scnr, context2) || token; + } else { + return getToken(context2, 10, readLinkedRefer(scnr)); + } + } + if (currentType === 7) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + context2.braceNest = 0; + context2.inLinked = false; + return readToken(scnr, context2); + } + } + function readToken(scnr, context2) { + let token = { + type: 13 + /* TokenTypes.EOF */ + }; + if (context2.braceNest > 0) { + return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); + } + if (context2.inLinked) { + return readTokenInLinked(scnr, context2) || getEndToken(context2); + } + const ch = scnr.currentChar(); + switch (ch) { + case "{": + return readTokenInPlaceholder(scnr, context2) || getEndToken(context2); + case "}": + emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0); + scnr.next(); + return getToken( + context2, + 3, + "}" + /* TokenChars.BraceRight */ + ); + case "@": + return readTokenInLinked(scnr, context2) || getEndToken(context2); + default: { + if (isPluralStart(scnr)) { + token = getToken(context2, 1, readPlural(scnr)); + context2.braceNest = 0; + context2.inLinked = false; + return token; + } + if (isTextStart(scnr)) { + return getToken(context2, 0, readText(scnr)); + } + break; + } + } + return token; + } + function nextToken() { + const { currentType, offset, startLoc, endLoc } = _context; + _context.lastType = currentType; + _context.lastOffset = offset; + _context.lastStartLoc = startLoc; + _context.lastEndLoc = endLoc; + _context.offset = currentOffset(); + _context.startLoc = currentPosition(); + if (_scnr.currentChar() === EOF) { + return getToken( + _context, + 13 + /* TokenTypes.EOF */ + ); + } + return readToken(_scnr, _context); + } + return { + nextToken, + currentOffset, + currentPosition, + context + }; +} +const ERROR_DOMAIN$2 = "parser"; +const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g; +const TEXT_ESCAPES = /\\([\\@{}|])/g; +function fromTextEscapeSequence(_match, char) { + return char; +} +function fromEscapeSequence(match, codePoint4, codePoint6) { + switch (match) { + case `\\\\`: + return `\\`; + // eslint-disable-next-line no-useless-escape + case `\\'`: + return `'`; + default: { + const codePoint = parseInt(codePoint4 || codePoint6, 16); + if (codePoint <= 55295 || codePoint >= 57344) { + return String.fromCodePoint(codePoint); + } + return "�"; + } + } +} +function createParser(options = {}) { + const location = options.location !== false; + const { onError } = options; + function emitError(tokenzer, code, start, offset, ...args) { + const end = tokenzer.currentPosition(); + end.offset += offset; + end.column += offset; + if (onError) { + const loc = location ? createLocation(start, end) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$2, + args + }); + onError(err); + } + } + function startNode(type, offset, loc) { + const node = { type }; + if (location) { + node.start = offset; + node.end = offset; + node.loc = { start: loc, end: loc }; + } + return node; + } + function endNode(node, offset, pos, type) { + if (location) { + node.end = offset; + if (node.loc) { + node.loc.end = pos; + } + } + } + function parseText(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(3, context.offset, context.startLoc); + node.value = value.replace(TEXT_ESCAPES, fromTextEscapeSequence); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseList(tokenizer, index) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(5, offset, loc); + node.index = parseInt(index, 10); + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseNamed(tokenizer, key) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(4, offset, loc); + node.key = key; + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLiteral(tokenizer, value) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(9, offset, loc); + node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence); + tokenizer.nextToken(); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinkedModifier(tokenizer) { + const token = tokenizer.nextToken(); + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; + const node = startNode(8, offset, loc); + if (token.type !== 11) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0); + node.value = ""; + endNode(node, offset, loc); + return { + nextConsumeToken: token, + node + }; + } + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.value = token.value || ""; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node + }; + } + function parseLinkedKey(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(7, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinked(tokenizer) { + const context = tokenizer.context(); + const linkedNode = startNode(6, context.offset, context.startLoc); + let token = tokenizer.nextToken(); + if (token.type === 8) { + const parsed = parseLinkedModifier(tokenizer); + linkedNode.modifier = parsed.node; + token = parsed.nextConsumeToken || tokenizer.nextToken(); + } + if (token.type !== 9) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + token = tokenizer.nextToken(); + if (token.type === 2) { + token = tokenizer.nextToken(); + } + switch (token.type) { + case 10: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLinkedKey(tokenizer, token.value || ""); + break; + case 4: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseNamed(tokenizer, token.value || ""); + break; + case 5: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseList(tokenizer, token.value || ""); + break; + case 6: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLiteral(tokenizer, token.value || ""); + break; + default: { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0); + const nextContext = tokenizer.context(); + const emptyLinkedKeyNode = startNode(7, nextContext.offset, nextContext.startLoc); + emptyLinkedKeyNode.value = ""; + endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc); + linkedNode.key = emptyLinkedKeyNode; + endNode(linkedNode, nextContext.offset, nextContext.startLoc); + return { + nextConsumeToken: token, + node: linkedNode + }; + } + } + endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node: linkedNode + }; + } + function parseMessage(tokenizer) { + const context = tokenizer.context(); + const startOffset = context.currentType === 1 ? tokenizer.currentOffset() : context.offset; + const startLoc = context.currentType === 1 ? context.endLoc : context.startLoc; + const node = startNode(2, startOffset, startLoc); + node.items = []; + let nextToken = null; + do { + const token = nextToken || tokenizer.nextToken(); + nextToken = null; + switch (token.type) { + case 0: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseText(tokenizer, token.value || "")); + break; + case 5: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseList(tokenizer, token.value || "")); + break; + case 4: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseNamed(tokenizer, token.value || "")); + break; + case 6: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseLiteral(tokenizer, token.value || "")); + break; + case 7: { + const parsed = parseLinked(tokenizer); + node.items.push(parsed.node); + nextToken = parsed.nextConsumeToken || null; + break; + } + } + } while (context.currentType !== 13 && context.currentType !== 1); + const endOffset = context.currentType === 1 ? context.lastOffset : tokenizer.currentOffset(); + const endLoc = context.currentType === 1 ? context.lastEndLoc : tokenizer.currentPosition(); + endNode(node, endOffset, endLoc); + return node; + } + function parsePlural(tokenizer, offset, loc, msgNode) { + const context = tokenizer.context(); + let hasEmptyMessage = msgNode.items.length === 0; + const node = startNode(1, offset, loc); + node.cases = []; + node.cases.push(msgNode); + do { + const msg = parseMessage(tokenizer); + if (!hasEmptyMessage) { + hasEmptyMessage = msg.items.length === 0; + } + node.cases.push(msg); + } while (context.currentType !== 13); + if (hasEmptyMessage) { + emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseResource(tokenizer) { + const context = tokenizer.context(); + const { offset, startLoc } = context; + const msgNode = parseMessage(tokenizer); + if (context.currentType === 13) { + return msgNode; + } else { + return parsePlural(tokenizer, offset, startLoc, msgNode); + } + } + function parse2(source) { + const tokenizer = createTokenizer(source, assign({}, options)); + const context = tokenizer.context(); + const node = startNode(0, context.offset, context.startLoc); + if (location && node.loc) { + node.loc.source = source; + } + node.body = parseResource(tokenizer); + if (options.onCacheKey) { + node.cacheKey = options.onCacheKey(source); + } + if (context.currentType !== 13) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || ""); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + return { parse: parse2 }; +} +function getTokenCaption(token) { + if (token.type === 13) { + return "EOF"; + } + const name = (token.value || "").replace(/\r?\n/gu, "\\n"); + return name.length > 10 ? name.slice(0, 9) + "…" : name; +} +function createTransformer(ast, options = {}) { + const _context = { + ast, + helpers: /* @__PURE__ */ new Set() + }; + const context = () => _context; + const helper = (name) => { + _context.helpers.add(name); + return name; + }; + return { context, helper }; +} +function traverseNodes(nodes, transformer) { + for (let i = 0; i < nodes.length; i++) { + traverseNode(nodes[i], transformer); + } +} +function traverseNode(node, transformer) { + switch (node.type) { + case 1: + traverseNodes(node.cases, transformer); + transformer.helper( + "plural" + /* HelperNameMap.PLURAL */ + ); + break; + case 2: + traverseNodes(node.items, transformer); + break; + case 6: { + const linked = node; + traverseNode(linked.key, transformer); + transformer.helper( + "linked" + /* HelperNameMap.LINKED */ + ); + transformer.helper( + "type" + /* HelperNameMap.TYPE */ + ); + break; + } + case 5: + transformer.helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ); + transformer.helper( + "list" + /* HelperNameMap.LIST */ + ); + break; + case 4: + transformer.helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ); + transformer.helper( + "named" + /* HelperNameMap.NAMED */ + ); + break; + } +} +function transform(ast, options = {}) { + const transformer = createTransformer(ast); + transformer.helper( + "normalize" + /* HelperNameMap.NORMALIZE */ + ); + ast.body && traverseNode(ast.body, transformer); + const context = transformer.context(); + ast.helpers = Array.from(context.helpers); +} +function optimize(ast) { + const body = ast.body; + if (body.type === 2) { + optimizeMessageNode(body); + } else { + body.cases.forEach((c) => optimizeMessageNode(c)); + } + return ast; +} +function optimizeMessageNode(message) { + if (message.items.length === 1) { + const item = message.items[0]; + if (item.type === 3 || item.type === 9) { + message.static = item.value; + delete item.value; + } + } else { + const values = []; + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (!(item.type === 3 || item.type === 9)) { + break; + } + if (item.value == null) { + break; + } + values.push(item.value); + } + if (values.length === message.items.length) { + message.static = join(values); + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (item.type === 3 || item.type === 9) { + delete item.value; + } + } + } + } +} +function minify(node) { + node.t = node.type; + switch (node.type) { + case 0: { + const resource = node; + minify(resource.body); + resource.b = resource.body; + delete resource.body; + break; + } + case 1: { + const plural = node; + const cases = plural.cases; + for (let i = 0; i < cases.length; i++) { + minify(cases[i]); + } + plural.c = cases; + delete plural.cases; + break; + } + case 2: { + const message = node; + const items = message.items; + for (let i = 0; i < items.length; i++) { + minify(items[i]); + } + message.i = items; + delete message.items; + if (message.static) { + message.s = message.static; + delete message.static; + } + break; + } + case 3: + case 9: + case 8: + case 7: { + const valueNode = node; + if (valueNode.value) { + valueNode.v = valueNode.value; + delete valueNode.value; + } + break; + } + case 6: { + const linked = node; + minify(linked.key); + linked.k = linked.key; + delete linked.key; + if (linked.modifier) { + minify(linked.modifier); + linked.m = linked.modifier; + delete linked.modifier; + } + break; + } + case 5: { + const list = node; + list.i = list.index; + delete list.index; + break; + } + case 4: { + const named = node; + named.k = named.key; + delete named.key; + break; + } + } + delete node.type; +} +function createCodeGenerator(ast, options) { + const { filename, breakLineCode, needIndent: _needIndent } = options; + const location = options.location !== false; + const _context = { + filename, + code: "", + column: 1, + line: 1, + offset: 0, + map: void 0, + breakLineCode, + needIndent: _needIndent, + indentLevel: 0 + }; + if (location && ast.loc) { + _context.source = ast.loc.source; + } + const context = () => _context; + function push(code, node) { + _context.code += code; + } + function _newline(n, withBreakLine = true) { + const _breakLineCode = withBreakLine ? breakLineCode : ""; + push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode); + } + function indent(withNewLine = true) { + const level = ++_context.indentLevel; + withNewLine && _newline(level); + } + function deindent(withNewLine = true) { + const level = --_context.indentLevel; + withNewLine && _newline(level); + } + function newline() { + _newline(_context.indentLevel); + } + const helper = (key) => `_${key}`; + const needIndent = () => _context.needIndent; + return { + context, + push, + indent, + deindent, + newline, + helper, + needIndent + }; +} +function generateLinkedNode(generator, node) { + const { helper } = generator; + generator.push(`${helper( + "linked" + /* HelperNameMap.LINKED */ + )}(`); + generateNode(generator, node.key); + if (node.modifier) { + generator.push(`, `); + generateNode(generator, node.modifier); + generator.push(`, _type`); + } else { + generator.push(`, undefined, _type`); + } + generator.push(`)`); +} +function generateMessageNode(generator, node) { + const { helper, needIndent } = generator; + generator.push(`${helper( + "normalize" + /* HelperNameMap.NORMALIZE */ + )}([`); + generator.indent(needIndent()); + const length = node.items.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.items[i]); + if (i === length - 1) { + break; + } + generator.push(", "); + } + generator.deindent(needIndent()); + generator.push("])"); +} +function generatePluralNode(generator, node) { + const { helper, needIndent } = generator; + if (node.cases.length > 1) { + generator.push(`${helper( + "plural" + /* HelperNameMap.PLURAL */ + )}([`); + generator.indent(needIndent()); + const length = node.cases.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.cases[i]); + if (i === length - 1) { + break; + } + generator.push(", "); + } + generator.deindent(needIndent()); + generator.push(`])`); + } +} +function generateResource(generator, node) { + if (node.body) { + generateNode(generator, node.body); + } else { + generator.push("null"); + } +} +function generateNode(generator, node) { + const { helper } = generator; + switch (node.type) { + case 0: + generateResource(generator, node); + break; + case 1: + generatePluralNode(generator, node); + break; + case 2: + generateMessageNode(generator, node); + break; + case 6: + generateLinkedNode(generator, node); + break; + case 8: + generator.push(JSON.stringify(node.value), node); + break; + case 7: + generator.push(JSON.stringify(node.value), node); + break; + case 5: + generator.push(`${helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + )}(${helper( + "list" + /* HelperNameMap.LIST */ + )}(${node.index}))`, node); + break; + case 4: + generator.push(`${helper( + "interpolate" + /* HelperNameMap.INTERPOLATE */ + )}(${helper( + "named" + /* HelperNameMap.NAMED */ + )}(${JSON.stringify(node.key)}))`, node); + break; + case 9: + generator.push(JSON.stringify(node.value), node); + break; + case 3: + generator.push(JSON.stringify(node.value), node); + break; + } +} +const generate = (ast, options = {}) => { + const mode = isString(options.mode) ? options.mode : "normal"; + const filename = isString(options.filename) ? options.filename : "message.intl"; + !!options.sourceMap; + const breakLineCode = options.breakLineCode != null ? options.breakLineCode : mode === "arrow" ? ";" : "\n"; + const needIndent = options.needIndent ? options.needIndent : mode !== "arrow"; + const helpers = ast.helpers || []; + const generator = createCodeGenerator(ast, { + filename, + breakLineCode, + needIndent + }); + generator.push(mode === "normal" ? `function __msg__ (ctx) {` : `(ctx) => {`); + generator.indent(needIndent); + if (helpers.length > 0) { + generator.push(`const { ${join(helpers.map((s) => `${s}: _${s}`), ", ")} } = ctx`); + generator.newline(); + } + generator.push(`return `); + generateNode(generator, ast); + generator.deindent(needIndent); + generator.push(`}`); + delete ast.helpers; + const { code, map } = generator.context(); + return { + ast, + code, + map: map ? map.toJSON() : void 0 + // eslint-disable-line @typescript-eslint/no-explicit-any + }; +}; +function baseCompile$1(source, options = {}) { + const assignedOptions = assign({}, options); + const jit = !!assignedOptions.jit; + const enalbeMinify = !!assignedOptions.minify; + const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize; + const parser = createParser(assignedOptions); + const ast = parser.parse(source); + if (!jit) { + transform(ast, assignedOptions); + return generate(ast, assignedOptions); + } else { + enambeOptimize && optimize(ast); + enalbeMinify && minify(ast); + return { ast, code: "" }; + } +} +function isMessageAST(val) { + return isObject(val) && resolveType(val) === 0 && (hasOwn(val, "b") || hasOwn(val, "body")); +} +const PROPS_BODY = ["b", "body"]; +function resolveBody(node) { + return resolveProps(node, PROPS_BODY); +} +const PROPS_CASES = ["c", "cases"]; +function resolveCases(node) { + return resolveProps(node, PROPS_CASES, []); +} +const PROPS_STATIC = ["s", "static"]; +function resolveStatic(node) { + return resolveProps(node, PROPS_STATIC); +} +const PROPS_ITEMS = ["i", "items"]; +function resolveItems(node) { + return resolveProps(node, PROPS_ITEMS, []); +} +const PROPS_TYPE = ["t", "type"]; +function resolveType(node) { + return resolveProps(node, PROPS_TYPE); +} +const PROPS_VALUE = ["v", "value"]; +function resolveValue$1(node, type) { + const resolved = resolveProps(node, PROPS_VALUE); + if (resolved != null) { + return resolved; + } else { + throw createUnhandleNodeError(type); + } +} +const PROPS_MODIFIER = ["m", "modifier"]; +function resolveLinkedModifier(node) { + return resolveProps(node, PROPS_MODIFIER); +} +const PROPS_KEY = ["k", "key"]; +function resolveLinkedKey(node) { + const resolved = resolveProps(node, PROPS_KEY); + if (resolved) { + return resolved; + } else { + throw createUnhandleNodeError( + 6 + /* NodeTypes.Linked */ + ); + } +} +function resolveProps(node, props, defaultValue) { + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + if (hasOwn(node, prop) && node[prop] != null) { + return node[prop]; + } + } + return defaultValue; +} +const AST_NODE_PROPS_KEYS = [ + ...PROPS_BODY, + ...PROPS_CASES, + ...PROPS_STATIC, + ...PROPS_ITEMS, + ...PROPS_KEY, + ...PROPS_MODIFIER, + ...PROPS_VALUE, + ...PROPS_TYPE +]; +function createUnhandleNodeError(type) { + return new Error(`unhandled node type: ${type}`); +} +function format(ast) { + const msg = (ctx) => formatParts(ctx, ast); + return msg; +} +function formatParts(ctx, ast) { + const body = resolveBody(ast); + if (body == null) { + throw createUnhandleNodeError( + 0 + /* NodeTypes.Resource */ + ); + } + const type = resolveType(body); + if (type === 1) { + const plural = body; + const cases = resolveCases(plural); + return ctx.plural(cases.reduce((messages, c) => [ + ...messages, + formatMessageParts(ctx, c) + ], [])); + } else { + return formatMessageParts(ctx, body); + } +} +function formatMessageParts(ctx, node) { + const static_ = resolveStatic(node); + if (static_ != null) { + return ctx.type === "text" ? static_ : ctx.normalize([static_]); + } else { + const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []); + return ctx.normalize(messages); + } +} +function formatMessagePart(ctx, node) { + const type = resolveType(node); + switch (type) { + case 3: { + return resolveValue$1(node, type); + } + case 9: { + return resolveValue$1(node, type); + } + case 4: { + const named = node; + if (hasOwn(named, "k") && named.k) { + return ctx.interpolate(ctx.named(named.k)); + } + if (hasOwn(named, "key") && named.key) { + return ctx.interpolate(ctx.named(named.key)); + } + throw createUnhandleNodeError(type); + } + case 5: { + const list = node; + if (hasOwn(list, "i") && isNumber(list.i)) { + return ctx.interpolate(ctx.list(list.i)); + } + if (hasOwn(list, "index") && isNumber(list.index)) { + return ctx.interpolate(ctx.list(list.index)); + } + throw createUnhandleNodeError(type); + } + case 6: { + const linked = node; + const modifier = resolveLinkedModifier(linked); + const key = resolveLinkedKey(linked); + return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : void 0, ctx.type); + } + case 7: { + return resolveValue$1(node, type); + } + case 8: { + return resolveValue$1(node, type); + } + default: + throw new Error(`unhandled node on format message part: ${type}`); + } +} +const defaultOnCacheKey = (message) => message; +let compileCache = create(); +function baseCompile(message, options = {}) { + let detectError = false; + const onError = options.onError || defaultOnError; + options.onError = (err) => { + detectError = true; + onError(err); + }; + return { ...baseCompile$1(message, options), detectError }; +} +// @__NO_SIDE_EFFECTS__ +function compile(message, context) { + if (isString(message)) { + isBoolean(context.warnHtmlMessage) ? context.warnHtmlMessage : true; + const onCacheKey = context.onCacheKey || defaultOnCacheKey; + const cacheKey = onCacheKey(message); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + const { ast, detectError } = baseCompile(message, { + ...context, + location: "production" !== "production", + jit: true + }); + const msg = format(ast); + return !detectError ? compileCache[cacheKey] = msg : msg; + } else { + const cacheKey = message.cacheKey; + if (cacheKey) { + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + return compileCache[cacheKey] = format(message); + } else { + return format(message); + } + } +} +const CoreErrorCodes = { + INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT, + // 17 + INVALID_DATE_ARGUMENT: 18, + INVALID_ISO_DATE_ARGUMENT: 19, + NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21, + NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22, + NOT_SUPPORT_LOCALE_TYPE: 23 +}; +const CORE_ERROR_CODES_EXTEND_POINT = 24; +function createCoreError(code) { + return createCompileError(code, null, void 0); +} +function getLocale(context, options) { + return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale); +} +let _resolveLocale; +function resolveLocale(locale) { + if (isString(locale)) { + return locale; + } else { + if (isFunction(locale)) { + if (locale.resolvedOnce && _resolveLocale != null) { + return _resolveLocale; + } else if (locale.constructor.name === "Function") { + const resolve = locale(); + if (isPromise(resolve)) { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE); + } + return _resolveLocale = resolve; + } else { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION); + } + } else { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE); + } + } +} +function fallbackWithSimple(ctx, fallback, start) { + return [.../* @__PURE__ */ new Set([ + start, + ...isArray(fallback) ? fallback : isObject(fallback) ? Object.keys(fallback) : isString(fallback) ? [fallback] : [start] + ])]; +} +function fallbackWithLocaleChain(ctx, fallback, start) { + const startLocale = isString(start) ? start : DEFAULT_LOCALE; + const context = ctx; + if (!context.__localeChainCache) { + context.__localeChainCache = /* @__PURE__ */ new Map(); + } + let chain = context.__localeChainCache.get(startLocale); + if (!chain) { + chain = []; + let block = [start]; + while (isArray(block)) { + block = appendBlockToChain(chain, block, fallback); + } + const defaults = isArray(fallback) || !isPlainObject(fallback) ? fallback : fallback["default"] ? fallback["default"] : null; + block = isString(defaults) ? [defaults] : defaults; + if (isArray(block)) { + appendBlockToChain(chain, block, false); + } + context.__localeChainCache.set(startLocale, chain); + } + return chain; +} +function appendBlockToChain(chain, block, blocks) { + let follow = true; + for (let i = 0; i < block.length && isBoolean(follow); i++) { + const locale = block[i]; + if (isString(locale)) { + follow = appendLocaleToChain(chain, block[i], blocks); + } + } + return follow; +} +function appendLocaleToChain(chain, locale, blocks) { + let follow; + const tokens = locale.split("-"); + do { + const target = tokens.join("-"); + follow = appendItemToChain(chain, target, blocks); + tokens.splice(-1, 1); + } while (tokens.length && follow === true); + return follow; +} +function appendItemToChain(chain, target, blocks) { + let follow = false; + if (!chain.includes(target)) { + follow = true; + if (target) { + follow = target[target.length - 1] !== "!"; + const locale = target.replace(/!/g, ""); + chain.push(locale); + if ((isArray(blocks) || isPlainObject(blocks)) && blocks[locale]) { + follow = blocks[locale]; + } + } + } + return follow; +} +const pathStateMachine = []; +pathStateMachine[ + 0 + /* States.BEFORE_PATH */ +] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 0 + /* States.BEFORE_PATH */ + ], + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4 + /* States.IN_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7 + /* States.AFTER_PATH */ + ] +}; +pathStateMachine[ + 1 + /* States.IN_PATH */ +] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 1 + /* States.IN_PATH */ + ], + [ + "." + /* PathCharTypes.DOT */ + ]: [ + 2 + /* States.BEFORE_IDENT */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4 + /* States.IN_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7 + /* States.AFTER_PATH */ + ] +}; +pathStateMachine[ + 2 + /* States.BEFORE_IDENT */ +] = { + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 2 + /* States.BEFORE_IDENT */ + ], + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "0" + /* PathCharTypes.ZERO */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ] +}; +pathStateMachine[ + 3 + /* States.IN_IDENT */ +] = { + [ + "i" + /* PathCharTypes.IDENT */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "0" + /* PathCharTypes.ZERO */ + ]: [ + 3, + 0 + /* Actions.APPEND */ + ], + [ + "w" + /* PathCharTypes.WORKSPACE */ + ]: [ + 1, + 1 + /* Actions.PUSH */ + ], + [ + "." + /* PathCharTypes.DOT */ + ]: [ + 2, + 1 + /* Actions.PUSH */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4, + 1 + /* Actions.PUSH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: [ + 7, + 1 + /* Actions.PUSH */ + ] +}; +pathStateMachine[ + 4 + /* States.IN_SUB_PATH */ +] = { + [ + "'" + /* PathCharTypes.SINGLE_QUOTE */ + ]: [ + 5, + 0 + /* Actions.APPEND */ + ], + [ + '"' + /* PathCharTypes.DOUBLE_QUOTE */ + ]: [ + 6, + 0 + /* Actions.APPEND */ + ], + [ + "[" + /* PathCharTypes.LEFT_BRACKET */ + ]: [ + 4, + 2 + /* Actions.INC_SUB_PATH_DEPTH */ + ], + [ + "]" + /* PathCharTypes.RIGHT_BRACKET */ + ]: [ + 1, + 3 + /* Actions.PUSH_SUB_PATH */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ] +}; +pathStateMachine[ + 5 + /* States.IN_SINGLE_QUOTE */ +] = { + [ + "'" + /* PathCharTypes.SINGLE_QUOTE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 5, + 0 + /* Actions.APPEND */ + ] +}; +pathStateMachine[ + 6 + /* States.IN_DOUBLE_QUOTE */ +] = { + [ + '"' + /* PathCharTypes.DOUBLE_QUOTE */ + ]: [ + 4, + 0 + /* Actions.APPEND */ + ], + [ + "o" + /* PathCharTypes.END_OF_FAIL */ + ]: 8, + [ + "l" + /* PathCharTypes.ELSE */ + ]: [ + 6, + 0 + /* Actions.APPEND */ + ] +}; +const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; +function isLiteral(exp) { + return literalValueRE.test(exp); +} +function stripQuotes(str) { + const a = str.charCodeAt(0); + const b = str.charCodeAt(str.length - 1); + return a === b && (a === 34 || a === 39) ? str.slice(1, -1) : str; +} +function getPathCharType(ch) { + if (ch === void 0 || ch === null) { + return "o"; + } + const code = ch.charCodeAt(0); + switch (code) { + case 91: + // [ + case 93: + // ] + case 46: + // . + case 34: + // " + case 39: + return ch; + case 95: + // _ + case 36: + // $ + case 45: + return "i"; + case 9: + // Tab (HT) + case 10: + // Newline (LF) + case 13: + // Return (CR) + case 160: + // No-break space (NBSP) + case 65279: + // Byte Order Mark (BOM) + case 8232: + // Line Separator (LS) + case 8233: + return "w"; + } + return "i"; +} +function formatSubPath(path) { + const trimmed = path.trim(); + if (path.charAt(0) === "0" && isNaN(parseInt(path))) { + return false; + } + return isLiteral(trimmed) ? stripQuotes(trimmed) : "*" + trimmed; +} +function parse(path) { + const keys = []; + let index = -1; + let mode = 0; + let subPathDepth = 0; + let c; + let key; + let newChar; + let type; + let transition; + let action; + let typeMap; + const actions = []; + actions[ + 0 + /* Actions.APPEND */ + ] = () => { + if (key === void 0) { + key = newChar; + } else { + key += newChar; + } + }; + actions[ + 1 + /* Actions.PUSH */ + ] = () => { + if (key !== void 0) { + keys.push(key); + key = void 0; + } + }; + actions[ + 2 + /* Actions.INC_SUB_PATH_DEPTH */ + ] = () => { + actions[ + 0 + /* Actions.APPEND */ + ](); + subPathDepth++; + }; + actions[ + 3 + /* Actions.PUSH_SUB_PATH */ + ] = () => { + if (subPathDepth > 0) { + subPathDepth--; + mode = 4; + actions[ + 0 + /* Actions.APPEND */ + ](); + } else { + subPathDepth = 0; + if (key === void 0) { + return false; + } + key = formatSubPath(key); + if (key === false) { + return false; + } else { + actions[ + 1 + /* Actions.PUSH */ + ](); + } + } + }; + function maybeUnescapeQuote() { + const nextChar = path[index + 1]; + if (mode === 5 && nextChar === "'" || mode === 6 && nextChar === '"') { + index++; + newChar = "\\" + nextChar; + actions[ + 0 + /* Actions.APPEND */ + ](); + return true; + } + } + while (mode !== null) { + index++; + c = path[index]; + if (c === "\\" && maybeUnescapeQuote()) { + continue; + } + type = getPathCharType(c); + typeMap = pathStateMachine[mode]; + transition = typeMap[type] || typeMap[ + "l" + /* PathCharTypes.ELSE */ + ] || 8; + if (transition === 8) { + return; + } + mode = transition[0]; + if (transition[1] !== void 0) { + action = actions[transition[1]]; + if (action) { + newChar = c; + if (action() === false) { + return; + } + } + } + if (mode === 7) { + return keys; + } + } +} +const cache = /* @__PURE__ */ new Map(); +function resolveWithKeyValue(obj, path) { + return isObject(obj) ? obj[path] : null; +} +function resolveValue(obj, path) { + if (!isObject(obj)) { + return null; + } + let hit = cache.get(path); + if (!hit) { + hit = parse(path); + if (hit) { + cache.set(path, hit); + } + } + if (!hit) { + return null; + } + const len = hit.length; + let last = obj; + let i = 0; + while (i < len) { + const key = hit[i]; + if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) { + return null; + } + if (!isObject(last)) { + return null; + } + if (!hasOwn(last, key)) { + return null; + } + const val = last[key]; + if (val === void 0) { + return null; + } + if (isFunction(last)) { + return null; + } + last = val; + i++; + } + return last; +} +const VERSION$1 = "11.4.2"; +const NOT_REOSLVED = -1; +const DEFAULT_LOCALE = "en-US"; +const MISSING_RESOLVE_VALUE = ""; +const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`; +function getDefaultLinkedModifiers() { + return { + upper: (val, type) => { + return type === "text" && isString(val) ? val.toUpperCase() : type === "vnode" && isObject(val) && "__v_isVNode" in val ? val.children.toUpperCase() : val; + }, + lower: (val, type) => { + return type === "text" && isString(val) ? val.toLowerCase() : type === "vnode" && isObject(val) && "__v_isVNode" in val ? val.children.toLowerCase() : val; + }, + capitalize: (val, type) => { + return type === "text" && isString(val) ? capitalize(val) : type === "vnode" && isObject(val) && "__v_isVNode" in val ? capitalize(val.children) : val; + } + }; +} +let _compiler; +function registerMessageCompiler(compiler) { + _compiler = compiler; +} +let _resolver; +function registerMessageResolver(resolver) { + _resolver = resolver; +} +let _fallbacker; +function registerLocaleFallbacker(fallbacker) { + _fallbacker = fallbacker; +} +const setAdditionalMeta = /* @__NO_SIDE_EFFECTS__ */ (meta) => { +}; +let _fallbackContext = null; +const setFallbackContext = (context) => { + _fallbackContext = context; +}; +const getFallbackContext = () => _fallbackContext; +let _cid = 0; +function createCoreContext(options = {}) { + const onWarn = isFunction(options.onWarn) ? options.onWarn : warn; + const version = isString(options.version) ? options.version : VERSION$1; + const locale = isString(options.locale) || isFunction(options.locale) ? options.locale : DEFAULT_LOCALE; + const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale; + const fallbackLocale = isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || isString(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale; + const messages = isPlainObject(options.messages) ? options.messages : createResources(_locale); + const datetimeFormats = isPlainObject(options.datetimeFormats) ? options.datetimeFormats : createResources(_locale); + const numberFormats = isPlainObject(options.numberFormats) ? options.numberFormats : createResources(_locale); + const modifiers = assign(create(), options.modifiers, getDefaultLinkedModifiers()); + const pluralRules = options.pluralRules || create(); + const missing = isFunction(options.missing) ? options.missing : null; + const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + const fallbackFormat = !!options.fallbackFormat; + const unresolving = !!options.unresolving; + const postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + const processor = isPlainObject(options.processor) ? options.processor : null; + const warnHtmlMessage = isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + const escapeParameter = !!options.escapeParameter; + const messageCompiler = isFunction(options.messageCompiler) ? options.messageCompiler : _compiler; + const messageResolver = isFunction(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue; + const localeFallbacker = isFunction(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple; + const fallbackContext = isObject(options.fallbackContext) ? options.fallbackContext : void 0; + const internalOptions = options; + const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : /* @__PURE__ */ new Map(); + const __numberFormatters = isObject(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : /* @__PURE__ */ new Map(); + const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {}; + _cid++; + const context = { + version, + cid: _cid, + locale, + fallbackLocale, + messages, + modifiers, + pluralRules, + missing, + missingWarn, + fallbackWarn, + fallbackFormat, + unresolving, + postTranslation, + processor, + warnHtmlMessage, + escapeParameter, + messageCompiler, + messageResolver, + localeFallbacker, + fallbackContext, + onWarn, + __meta + }; + { + context.datetimeFormats = datetimeFormats; + context.numberFormats = numberFormats; + context.__datetimeFormatters = __datetimeFormatters; + context.__numberFormatters = __numberFormatters; + } + return context; +} +const createResources = (locale) => ({ [locale]: create() }); +function handleMissing(context, key, locale, missingWarn, type) { + const { missing, onWarn } = context; + if (missing !== null) { + const ret = missing(context, locale, key, type); + return isString(ret) ? ret : key; + } else { + return key; + } +} +function updateFallbackLocale(ctx, locale, fallback) { + const context = ctx; + context.__localeChainCache = /* @__PURE__ */ new Map(); + ctx.localeFallbacker(ctx, fallback, locale); +} +function isAlmostSameLocale(locale, compareLocale) { + if (locale === compareLocale) + return false; + return locale.split("-")[0] === compareLocale.split("-")[0]; +} +function isImplicitFallback(targetLocale, locales) { + const index = locales.indexOf(targetLocale); + if (index === -1) { + return false; + } + for (let i = index + 1; i < locales.length; i++) { + if (isAlmostSameLocale(targetLocale, locales[i])) { + return true; + } + } + return false; +} +function datetime(context, ...args) { + const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __datetimeFormatters } = context; + if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) { + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseDateTimeArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, + locale + ); + if (!isString(key) || key === "") { + return new Intl.DateTimeFormat(locale.replace(/!/g, ""), overrides).format(value); + } + let datetimeFormat = {}; + let targetLocale; + let format2 = null; + const type = "datetime format"; + for (let i = 0; i < locales.length; i++) { + targetLocale = locales[i]; + datetimeFormat = datetimeFormats[targetLocale] || {}; + format2 = datetimeFormat[key]; + if (isPlainObject(format2)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); + } + if (!isPlainObject(format2) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __datetimeFormatters.get(id); + if (!formatter) { + formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format2, overrides)); + __datetimeFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); +} +const DATETIME_FORMAT_OPTIONS_KEYS = [ + "localeMatcher", + "weekday", + "era", + "year", + "month", + "day", + "hour", + "minute", + "second", + "timeZoneName", + "formatMatcher", + "hour12", + "timeZone", + "dateStyle", + "timeStyle", + "calendar", + "dayPeriod", + "numberingSystem", + "hourCycle", + "fractionalSecondDigits" +]; +function parseDateTimeArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = create(); + let overrides = create(); + let value; + if (isString(arg1)) { + const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/); + if (!matches) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + const dateTime = matches[3] ? matches[3].trim().startsWith("T") ? `${matches[1].trim()}${matches[3].trim()}` : `${matches[1].trim()}T${matches[3].trim()}` : matches[1].trim(); + value = new Date(dateTime); + try { + value.toISOString(); + } catch { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + } else if (isDate(arg1)) { + if (isNaN(arg1.getTime())) { + throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT); + } + value = arg1; + } else if (isNumber(arg1)) { + value = arg1; + } else { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + if (isString(arg2)) { + options.key = arg2; + } else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach((key) => { + if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || "", value, options, overrides]; +} +function clearDateTimeFormat(ctx, locale, format2) { + const context = ctx; + for (const key in format2) { + const id = `${locale}__${key}`; + if (!context.__datetimeFormatters.has(id)) { + continue; + } + context.__datetimeFormatters.delete(id); + } +} +function number(context, ...args) { + const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __numberFormatters } = context; + if (!isNumber(args[0])) { + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseNumberArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, + locale + ); + if (!isString(key) || key === "") { + return new Intl.NumberFormat(locale.replace(/!/g, ""), overrides).format(value); + } + let numberFormat = {}; + let targetLocale; + let format2 = null; + const type = "number format"; + for (let i = 0; i < locales.length; i++) { + targetLocale = locales[i]; + numberFormat = numberFormats[targetLocale] || {}; + format2 = numberFormat[key]; + if (isPlainObject(format2)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); + } + if (!isPlainObject(format2) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __numberFormatters.get(id); + if (!formatter) { + formatter = new Intl.NumberFormat(targetLocale, assign({}, format2, overrides)); + __numberFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); +} +const NUMBER_FORMAT_OPTIONS_KEYS = [ + "localeMatcher", + "style", + "currency", + "currencyDisplay", + "currencySign", + "useGrouping", + "minimumIntegerDigits", + "minimumFractionDigits", + "maximumFractionDigits", + "minimumSignificantDigits", + "maximumSignificantDigits", + "compactDisplay", + "notation", + "signDisplay", + "unit", + "unitDisplay", + "roundingMode", + "roundingPriority", + "roundingIncrement", + "trailingZeroDisplay" +]; +function parseNumberArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = create(); + let overrides = create(); + if (!isNumber(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const value = arg1; + if (isString(arg2)) { + options.key = arg2; + } else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach((key) => { + if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || "", value, options, overrides]; +} +function clearNumberFormat(ctx, locale, format2) { + const context = ctx; + for (const key in format2) { + const id = `${locale}__${key}`; + if (!context.__numberFormatters.has(id)) { + continue; + } + context.__numberFormatters.delete(id); + } +} +const DEFAULT_MODIFIER = (str) => str; +const DEFAULT_MESSAGE = (ctx) => ""; +const DEFAULT_MESSAGE_DATA_TYPE = "text"; +const DEFAULT_NORMALIZE = (values) => values.length === 0 ? "" : join(values); +const DEFAULT_INTERPOLATE = toDisplayString; +function pluralDefault(choice, choicesLength) { + choice = Math.abs(choice); + if (choicesLength === 2) { + return choice === 1 ? 0 : 1; + } + return Math.min(choice, 2); +} +function getPluralIndex(options) { + const index = isNumber(options.pluralIndex) ? options.pluralIndex : -1; + return isNumber(options.named?.count) ? options.named.count : isNumber(options.named?.n) ? options.named.n : index; +} +function createMessageContext(options = {}) { + const locale = options.locale; + const pluralIndex = getPluralIndex(options); + const pluralRule = isString(locale) && isFunction(options.pluralRules?.[locale]) ? options.pluralRules[locale] : pluralDefault; + const orgPluralRule = pluralRule === pluralDefault ? void 0 : pluralDefault; + const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)]; + const _list = options.list || []; + const list = (index) => _list[index]; + const _named = options.named || create(); + if (isNumber(options.pluralIndex)) { + _named.count ||= options.pluralIndex; + _named.n ||= options.pluralIndex; + } + const named = (key) => _named[key]; + function message(key, useLinked) { + const msg = isFunction(options.messages) ? options.messages(key, !!useLinked) : isObject(options.messages) ? options.messages[key] : false; + return !msg ? options.parent ? options.parent.message(key) : DEFAULT_MESSAGE : msg; + } + const _modifier = (name) => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER; + const normalize = isFunction(options.processor?.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE; + const interpolate = isFunction(options.processor?.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE; + const type = isString(options.processor?.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE; + const linked = (key, ...args) => { + const [arg1, arg2] = args; + let type2 = "text"; + let modifier = ""; + if (args.length === 1) { + if (isObject(arg1)) { + modifier = arg1.modifier || modifier; + type2 = arg1.type || type2; + } else if (isString(arg1)) { + modifier = arg1 || modifier; + } + } else if (args.length === 2) { + if (isString(arg1)) { + modifier = arg1 || modifier; + } + if (isString(arg2)) { + type2 = arg2 || type2; + } + } + const ret = message(key, true)(ctx); + const resolved = ret === "" || ret === void 0 ? key : ret; + const msg = ( + // The message in vnode resolved with linked are returned as an array by processor.nomalize + type2 === "vnode" && isArray(resolved) && modifier ? resolved[0] : resolved + ); + return modifier ? _modifier(modifier)(msg, type2) : msg; + }; + const ctx = { + [ + "list" + /* HelperNameMap.LIST */ + ]: list, + [ + "named" + /* HelperNameMap.NAMED */ + ]: named, + [ + "plural" + /* HelperNameMap.PLURAL */ + ]: plural, + [ + "linked" + /* HelperNameMap.LINKED */ + ]: linked, + [ + "message" + /* HelperNameMap.MESSAGE */ + ]: message, + [ + "type" + /* HelperNameMap.TYPE */ + ]: type, + [ + "interpolate" + /* HelperNameMap.INTERPOLATE */ + ]: interpolate, + [ + "normalize" + /* HelperNameMap.NORMALIZE */ + ]: normalize, + [ + "values" + /* HelperNameMap.VALUES */ + ]: assign(create(), _list, _named) + }; + return ctx; +} +const NOOP_MESSAGE_FUNCTION = () => ""; +const isMessageFunction = (val) => isFunction(val); +function translate(context, ...args) { + const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context; + const [key, options] = parseTranslateArgs(...args); + const missingWarn = isBoolean(options.missingWarn) ? options.missingWarn : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn; + const escapeParameter = isBoolean(options.escapeParameter) ? options.escapeParameter : context.escapeParameter; + const resolvedMessage = !!options.resolvedMessage; + const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) ? !isBoolean(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat ? !messageCompiler ? () => key : key : null; + const enableDefaultMsg = fallbackFormat || defaultMsgOrKey != null && (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey)); + const locale = getLocale(context, options); + escapeParameter && escapeParams(options); + let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) : [ + key, + locale, + messages[locale] || create() + ]; + let format2 = formatScope; + let cacheBaseKey = key; + if (!resolvedMessage && !(isString(format2) || isMessageAST(format2) || isMessageFunction(format2))) { + if (enableDefaultMsg) { + format2 = defaultMsgOrKey; + cacheBaseKey = format2; + } + } + if (!resolvedMessage && (!(isString(format2) || isMessageAST(format2) || isMessageFunction(format2)) || !isString(targetLocale))) { + return unresolving ? NOT_REOSLVED : key; + } + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = !isMessageFunction(format2) ? compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) : format2; + if (occurred) { + return format2; + } + const ctxOptions = getMessageContextOptions(context, targetLocale, message, options); + const msgContext = createMessageContext(ctxOptions); + const messaged = evaluateMessage(context, msg, msgContext); + let ret = postTranslation ? postTranslation(messaged, key) : messaged; + if (escapeParameter && isString(ret)) { + ret = sanitizeTranslatedHtml(ret); + } + return ret; +} +function escapeParams(options) { + if (isArray(options.list)) { + options.list = options.list.map((item) => isString(item) ? escapeHtml(item) : item); + } else if (isObject(options.named)) { + Object.keys(options.named).forEach((key) => { + if (isString(options.named[key])) { + options.named[key] = escapeHtml(options.named[key]); + } + }); + } +} +function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) { + const { messages, onWarn, messageResolver: resolveValue2, localeFallbacker } = context; + const locales = localeFallbacker(context, fallbackLocale, locale); + let message = create(); + let targetLocale; + let format2 = null; + const type = "translate"; + for (let i = 0; i < locales.length; i++) { + targetLocale = locales[i]; + message = messages[targetLocale] || create(); + if ((format2 = resolveValue2(message, key)) === null) { + format2 = message[key]; + } + if (isString(format2) || isMessageAST(format2) || isMessageFunction(format2)) { + break; + } + if (!isImplicitFallback(targetLocale, locales)) { + const missingRet = handleMissing( + context, + // eslint-disable-line @typescript-eslint/no-explicit-any + key, + targetLocale, + missingWarn, + type + ); + if (missingRet !== key) { + format2 = missingRet; + } + } + } + return [format2, targetLocale, message]; +} +function compileMessageFormat(context, key, targetLocale, format2, cacheBaseKey, onError) { + const { messageCompiler, warnHtmlMessage } = context; + if (isMessageFunction(format2)) { + const msg2 = format2; + msg2.locale = msg2.locale || targetLocale; + msg2.key = msg2.key || key; + return msg2; + } + if (messageCompiler == null) { + const msg2 = (() => format2); + msg2.locale = targetLocale; + msg2.key = key; + return msg2; + } + const msg = messageCompiler(format2, getCompileContext(context, targetLocale, cacheBaseKey, format2, warnHtmlMessage, onError)); + msg.locale = targetLocale; + msg.key = key; + msg.source = format2; + return msg; +} +function evaluateMessage(context, msg, msgCtx) { + const messaged = msg(msgCtx); + return messaged; +} +function parseTranslateArgs(...args) { + const [arg1, arg2, arg3] = args; + const options = create(); + if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const key = isNumber(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1; + if (isNumber(arg2)) { + options.plural = arg2; + } else if (isString(arg2)) { + options.default = arg2; + } else if (isPlainObject(arg2) && !isEmptyObject(arg2)) { + options.named = arg2; + } else if (isArray(arg2)) { + options.list = arg2; + } + if (isNumber(arg3)) { + options.plural = arg3; + } else if (isString(arg3)) { + options.default = arg3; + } else if (isPlainObject(arg3)) { + assign(options, arg3); + } + return [key, options]; +} +function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) { + return { + locale, + key, + warnHtmlMessage, + onError: (err) => { + onError && onError(err); + throw err; + }, + onCacheKey: (source2) => generateFormatCacheKey(locale, key, source2) + }; +} +function getMessageContextOptions(context, locale, message, options) { + const { modifiers, pluralRules, messageResolver: resolveValue2, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context; + const resolveMessage = (key, useLinked) => { + let val = resolveValue2(message, key); + if (val == null && (fallbackContext || useLinked)) { + const [format2, , message2] = resolveMessageFormat( + fallbackContext || context, + // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context + key, + locale, + fallbackLocale, + fallbackWarn, + missingWarn + ); + val = format2 ?? resolveValue2(message2, key); + } + if (isString(val) || isMessageAST(val)) { + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = compileMessageFormat(context, key, locale, val, key, onError); + return !occurred ? msg : NOOP_MESSAGE_FUNCTION; + } else if (isMessageFunction(val)) { + return val; + } else { + return NOOP_MESSAGE_FUNCTION; + } + }; + const ctxOptions = { + locale, + modifiers, + pluralRules, + messages: resolveMessage + }; + if (context.processor) { + ctxOptions.processor = context.processor; + } + if (options.list) { + ctxOptions.list = options.list; + } + if (options.named) { + ctxOptions.named = options.named; + } + if (isNumber(options.plural)) { + ctxOptions.pluralIndex = options.plural; + } + return ctxOptions; +} +const VERSION = "11.4.2"; +const I18nErrorCodes = { + // composer module errors + UNEXPECTED_RETURN_TYPE: CORE_ERROR_CODES_EXTEND_POINT, + // 24 + // legacy module errors + INVALID_ARGUMENT: 25, + // i18n module errors + MUST_BE_CALL_SETUP_TOP: 26, + NOT_INSTALLED: 27, + // directive module errors + REQUIRED_VALUE: 28, + INVALID_VALUE: 29, + NOT_INSTALLED_WITH_PROVIDE: 31, + // unexpected error + UNEXPECTED_ERROR: 32, + // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly + NOT_AVAILABLE_COMPOSITION_IN_LEGACY: 34 +}; +function createI18nError(code, ...args) { + return createCompileError(code, null, void 0); +} +const TranslateVNodeSymbol = /* @__PURE__ */ makeSymbol("__translateVNode"); +const DatetimePartsSymbol = /* @__PURE__ */ makeSymbol("__datetimeParts"); +const NumberPartsSymbol = /* @__PURE__ */ makeSymbol("__numberParts"); +const SetPluralRulesSymbol = makeSymbol("__setPluralRules"); +const InejctWithOptionSymbol = /* @__PURE__ */ makeSymbol("__injectWithOption"); +const DisposeSymbol = /* @__PURE__ */ makeSymbol("__dispose"); +function handleFlatJson(obj) { + if (!isObject(obj)) { + return obj; + } + if (isMessageAST(obj)) { + return obj; + } + for (const key in obj) { + if (!hasOwn(obj, key)) { + continue; + } + if (!key.includes(".")) { + if (isObject(obj[key])) { + handleFlatJson(obj[key]); + } + } else { + const subKeys = key.split("."); + const lastIndex = subKeys.length - 1; + let currentObj = obj; + let hasStringValue = false; + for (let i = 0; i < lastIndex; i++) { + if (subKeys[i] === "__proto__") { + throw new Error(`unsafe key: ${subKeys[i]}`); + } + if (!(subKeys[i] in currentObj)) { + currentObj[subKeys[i]] = create(); + } + if (!isObject(currentObj[subKeys[i]])) { + hasStringValue = true; + break; + } + currentObj = currentObj[subKeys[i]]; + } + if (!hasStringValue) { + if (!isMessageAST(currentObj)) { + currentObj[subKeys[lastIndex]] = obj[key]; + delete obj[key]; + } else { + if (!AST_NODE_PROPS_KEYS.includes(subKeys[lastIndex])) { + delete obj[key]; + } + } + } + if (!isMessageAST(currentObj)) { + const target = currentObj[subKeys[lastIndex]]; + if (isObject(target)) { + handleFlatJson(target); + } + } + } + } + return obj; +} +function getLocaleMessages(locale, options) { + const { messages, __i18n, messageResolver, flatJson } = options; + const ret = isPlainObject(messages) ? messages : isArray(__i18n) ? create() : { [locale]: create() }; + if (isArray(__i18n)) { + __i18n.forEach((custom) => { + if ("locale" in custom && "resource" in custom) { + const { locale: locale2, resource } = custom; + if (locale2) { + ret[locale2] = ret[locale2] || create(); + deepCopy(resource, ret[locale2]); + } else { + deepCopy(resource, ret); + } + } else { + isString(custom) && deepCopy(JSON.parse(custom), ret); + } + }); + } + if (messageResolver == null && flatJson) { + for (const key in ret) { + if (hasOwn(ret, key)) { + handleFlatJson(ret[key]); + } + } + } + return ret; +} +function getComponentOptions(instance) { + return instance.type; +} +function adjustI18nResources(gl, options, componentOptions) { + let messages = isObject(options.messages) ? options.messages : create(); + if ("__i18nGlobal" in componentOptions) { + messages = getLocaleMessages(gl.locale.value, { + messages, + __i18n: componentOptions.__i18nGlobal + }); + } + const locales = Object.keys(messages); + if (locales.length) { + locales.forEach((locale) => { + gl.mergeLocaleMessage(locale, messages[locale]); + }); + } + { + if (isObject(options.datetimeFormats)) { + const locales2 = Object.keys(options.datetimeFormats); + if (locales2.length) { + locales2.forEach((locale) => { + gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]); + }); + } + } + if (isObject(options.numberFormats)) { + const locales2 = Object.keys(options.numberFormats); + if (locales2.length) { + locales2.forEach((locale) => { + gl.mergeNumberFormat(locale, options.numberFormats[locale]); + }); + } + } + } +} +function createTextNode(key) { + return createVNode(Text, null, key, 0); +} +function getCurrentInstance() { + const key = "currentInstance"; + if (key in Vue) { + return Vue[key]; + } else { + return Vue.getCurrentInstance(); + } +} +const DEVTOOLS_META = "__INTLIFY_META__"; +const NOOP_RETURN_ARRAY = () => []; +const NOOP_RETURN_FALSE = () => false; +let composerID = 0; +function defineCoreMissingHandler(missing) { + return ((ctx, locale, key, type) => { + return missing(locale, key, getCurrentInstance() || void 0, type); + }); +} +const getMetaInfo = /* @__NO_SIDE_EFFECTS__ */ () => { + const instance = getCurrentInstance(); + let meta = null; + return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META]) ? { [DEVTOOLS_META]: meta } : null; +}; +function createComposer(options = {}) { + const { __root, __injectWithOption } = options; + const _isGlobal = __root === void 0; + const flatJson = options.flatJson; + const _ref = shallowRef; + let _inheritLocale = isBoolean(options.inheritLocale) ? options.inheritLocale : true; + const _locale = _ref( + // prettier-ignore + __root && _inheritLocale ? __root.locale.value : isString(options.locale) ? options.locale : DEFAULT_LOCALE + ); + const _fallbackLocale = _ref( + // prettier-ignore + __root && _inheritLocale ? __root.fallbackLocale.value : isString(options.fallbackLocale) || isArray(options.fallbackLocale) || isPlainObject(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale.value + ); + const _messages = _ref(getLocaleMessages(_locale.value, options)); + const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats) ? options.datetimeFormats : { [_locale.value]: {} }); + const _numberFormats = _ref(isPlainObject(options.numberFormats) ? options.numberFormats : { [_locale.value]: {} }); + let _missingWarn = __root ? __root.missingWarn : isBoolean(options.missingWarn) || isRegExp(options.missingWarn) ? options.missingWarn : true; + let _fallbackWarn = __root ? __root.fallbackWarn : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) ? options.fallbackWarn : true; + let _fallbackRoot = __root ? __root.fallbackRoot : isBoolean(options.fallbackRoot) ? options.fallbackRoot : true; + let _fallbackFormat = !!options.fallbackFormat; + let _missing = isFunction(options.missing) ? options.missing : null; + let _runtimeMissing = isFunction(options.missing) ? defineCoreMissingHandler(options.missing) : null; + let _postTranslation = isFunction(options.postTranslation) ? options.postTranslation : null; + let _warnHtmlMessage = __root ? __root.warnHtmlMessage : isBoolean(options.warnHtmlMessage) ? options.warnHtmlMessage : true; + let _escapeParameter = !!options.escapeParameter; + const _modifiers = __root ? __root.modifiers : isPlainObject(options.modifiers) ? options.modifiers : {}; + let _pluralRules = options.pluralRules || __root && __root.pluralRules; + let _context; + const getCoreContext = () => { + _isGlobal && setFallbackContext(null); + const ctxOptions = { + version: VERSION, + locale: _locale.value, + fallbackLocale: _fallbackLocale.value, + messages: _messages.value, + modifiers: _modifiers, + pluralRules: _pluralRules, + missing: _runtimeMissing === null ? void 0 : _runtimeMissing, + missingWarn: _missingWarn, + fallbackWarn: _fallbackWarn, + fallbackFormat: _fallbackFormat, + unresolving: true, + postTranslation: _postTranslation === null ? void 0 : _postTranslation, + warnHtmlMessage: _warnHtmlMessage, + escapeParameter: _escapeParameter, + messageResolver: options.messageResolver, + messageCompiler: options.messageCompiler, + __meta: { framework: "vue" } + }; + { + ctxOptions.datetimeFormats = _datetimeFormats.value; + ctxOptions.numberFormats = _numberFormats.value; + ctxOptions.__datetimeFormatters = isPlainObject(_context) ? _context.__datetimeFormatters : void 0; + ctxOptions.__numberFormatters = isPlainObject(_context) ? _context.__numberFormatters : void 0; + } + const ctx = createCoreContext(ctxOptions); + _isGlobal && setFallbackContext(ctx); + return ctx; + }; + _context = getCoreContext(); + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + function trackReactivityValues() { + return [ + _locale.value, + _fallbackLocale.value, + _messages.value, + _datetimeFormats.value, + _numberFormats.value + ]; + } + const locale = computed({ + get: () => _locale.value, + set: (val) => { + _context.locale = val; + _locale.value = val; + } + }); + const fallbackLocale = computed({ + get: () => _fallbackLocale.value, + set: (val) => { + _context.fallbackLocale = val; + _fallbackLocale.value = val; + updateFallbackLocale(_context, _locale.value, val); + } + }); + const messages = computed(() => _messages.value); + const datetimeFormats = /* @__PURE__ */ computed(() => _datetimeFormats.value); + const numberFormats = /* @__PURE__ */ computed(() => _numberFormats.value); + function getPostTranslationHandler() { + return isFunction(_postTranslation) ? _postTranslation : null; + } + function setPostTranslationHandler(handler) { + _postTranslation = handler; + _context.postTranslation = handler; + } + function getMissingHandler() { + return _missing; + } + function setMissingHandler(handler) { + if (handler !== null) { + _runtimeMissing = defineCoreMissingHandler(handler); + } + _missing = handler; + _context.missing = _runtimeMissing; + } + const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => { + trackReactivityValues(); + let ret; + try { + if ("production" !== "production" || false) ; + if (!_isGlobal) { + _context.fallbackContext = __root ? getFallbackContext() : void 0; + } + ret = fn(_context); + } finally { + if (!_isGlobal) { + _context.fallbackContext = void 0; + } + } + if (warnType !== "translate exists" && // for not `te` (e.g `t`) + isNumber(ret) && ret === NOT_REOSLVED || warnType === "translate exists" && !ret) { + const [key, arg2] = argumentParser(); + return __root && _fallbackRoot ? fallbackSuccess(__root) : fallbackFail(key); + } else if (successCondition(ret)) { + return ret; + } else { + throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE); + } + }; + function t(...args) { + return wrapWithDeps((context) => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), "translate", (root) => Reflect.apply(root.t, root, [...args]), (key) => key, (val) => isString(val)); + } + function rt(...args) { + const [arg1, arg2, arg3] = args; + if (arg3 && !isObject(arg3)) { + throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT); + } + return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]); + } + function d(...args) { + return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString(val) || isArray(val)); + } + function n(...args) { + return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, (val) => isString(val) || isArray(val)); + } + function normalize(values) { + return values.map((val) => isString(val) || isNumber(val) || isBoolean(val) ? createTextNode(String(val)) : val); + } + const interpolate = (val) => val; + const processor = { + normalize, + interpolate, + type: "vnode" + }; + function translateVNode(...args) { + return wrapWithDeps((context) => { + let ret; + const _context2 = context; + try { + _context2.processor = processor; + ret = Reflect.apply(translate, null, [_context2, ...args]); + } finally { + _context2.processor = null; + } + return ret; + }, () => parseTranslateArgs(...args), "translate", (root) => root[TranslateVNodeSymbol](...args), (key) => [createTextNode(key)], (val) => isArray(val)); + } + function numberParts(...args) { + return wrapWithDeps((context) => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), "number format", (root) => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString(val) || isArray(val)); + } + function datetimeParts(...args) { + return wrapWithDeps((context) => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), "datetime format", (root) => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, (val) => isString(val) || isArray(val)); + } + function setPluralRules(rules) { + _pluralRules = rules; + _context.pluralRules = _pluralRules; + } + function te(key, locale2) { + return wrapWithDeps(() => { + if (!key) { + return false; + } + const targetLocale = isString(locale2) ? locale2 : _locale.value; + const locales = isString(locale2) ? [targetLocale] : fallbackWithLocaleChain(_context, _fallbackLocale.value, targetLocale); + for (let i = 0; i < locales.length; i++) { + const message = getLocaleMessage(locales[i]); + let resolved = _context.messageResolver(message, key); + if (resolved === null) { + resolved = message[key]; + } + if (isMessageAST(resolved) || isMessageFunction(resolved) || isString(resolved)) { + return true; + } + } + return false; + }, () => [key], "translate exists", (root) => { + return Reflect.apply(root.te, root, [key, locale2]); + }, NOOP_RETURN_FALSE, (val) => isBoolean(val)); + } + function resolveMessages(key) { + let messages2 = null; + const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value); + for (let i = 0; i < locales.length; i++) { + const targetLocaleMessages = _messages.value[locales[i]] || {}; + const messageValue = _context.messageResolver(targetLocaleMessages, key); + if (messageValue != null) { + messages2 = messageValue; + break; + } + } + return messages2; + } + function tm(key) { + const messages2 = resolveMessages(key); + return messages2 != null ? messages2 : __root ? __root.tm(key) || {} : {}; + } + function getLocaleMessage(locale2) { + return _messages.value[locale2] || {}; + } + function setLocaleMessage(locale2, message) { + if (flatJson) { + const _message = { [locale2]: message }; + for (const key in _message) { + if (hasOwn(_message, key)) { + handleFlatJson(_message[key]); + } + } + message = _message[locale2]; + } + _messages.value[locale2] = message; + _context.messages = _messages.value; + } + function mergeLocaleMessage(locale2, message) { + _messages.value[locale2] = _messages.value[locale2] || {}; + const _message = { [locale2]: message }; + if (flatJson) { + for (const key in _message) { + if (hasOwn(_message, key)) { + handleFlatJson(_message[key]); + } + } + } + message = _message[locale2]; + deepCopy(message, _messages.value[locale2]); + _context.messages = _messages.value; + } + function getDateTimeFormat(locale2) { + return _datetimeFormats.value[locale2] || {}; + } + function setDateTimeFormat(locale2, format2) { + _datetimeFormats.value[locale2] = format2; + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale2, format2); + } + function mergeDateTimeFormat(locale2, format2) { + _datetimeFormats.value[locale2] = assign(_datetimeFormats.value[locale2] || {}, format2); + _context.datetimeFormats = _datetimeFormats.value; + clearDateTimeFormat(_context, locale2, format2); + } + function getNumberFormat(locale2) { + return _numberFormats.value[locale2] || {}; + } + function setNumberFormat(locale2, format2) { + _numberFormats.value[locale2] = format2; + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale2, format2); + } + function mergeNumberFormat(locale2, format2) { + _numberFormats.value[locale2] = assign(_numberFormats.value[locale2] || {}, format2); + _context.numberFormats = _numberFormats.value; + clearNumberFormat(_context, locale2, format2); + } + composerID++; + const composer = { + id: composerID, + locale, + fallbackLocale, + get inheritLocale() { + return _inheritLocale; + }, + set inheritLocale(val) { + _inheritLocale = val; + if (val && __root) { + _locale.value = __root.locale.value; + _fallbackLocale.value = __root.fallbackLocale.value; + updateFallbackLocale(_context, _locale.value, _fallbackLocale.value); + } + }, + get availableLocales() { + return Object.keys(_messages.value).sort(); + }, + messages, + get modifiers() { + return _modifiers; + }, + get pluralRules() { + return _pluralRules || {}; + }, + get isGlobal() { + return _isGlobal; + }, + get missingWarn() { + return _missingWarn; + }, + set missingWarn(val) { + _missingWarn = val; + _context.missingWarn = _missingWarn; + }, + get fallbackWarn() { + return _fallbackWarn; + }, + set fallbackWarn(val) { + _fallbackWarn = val; + _context.fallbackWarn = _fallbackWarn; + }, + get fallbackRoot() { + return _fallbackRoot; + }, + set fallbackRoot(val) { + _fallbackRoot = val; + }, + get fallbackFormat() { + return _fallbackFormat; + }, + set fallbackFormat(val) { + _fallbackFormat = val; + _context.fallbackFormat = _fallbackFormat; + }, + get warnHtmlMessage() { + return _warnHtmlMessage; + }, + set warnHtmlMessage(val) { + _warnHtmlMessage = val; + _context.warnHtmlMessage = val; + }, + get escapeParameter() { + return _escapeParameter; + }, + set escapeParameter(val) { + _escapeParameter = val; + _context.escapeParameter = val; + }, + t, + getLocaleMessage, + setLocaleMessage, + mergeLocaleMessage, + getPostTranslationHandler, + setPostTranslationHandler, + getMissingHandler, + setMissingHandler, + [SetPluralRulesSymbol]: setPluralRules + }; + { + composer.datetimeFormats = datetimeFormats; + composer.numberFormats = numberFormats; + composer.rt = rt; + composer.te = te; + composer.tm = tm; + composer.d = d; + composer.n = n; + composer.getDateTimeFormat = getDateTimeFormat; + composer.setDateTimeFormat = setDateTimeFormat; + composer.mergeDateTimeFormat = mergeDateTimeFormat; + composer.getNumberFormat = getNumberFormat; + composer.setNumberFormat = setNumberFormat; + composer.mergeNumberFormat = mergeNumberFormat; + composer[InejctWithOptionSymbol] = __injectWithOption; + composer[TranslateVNodeSymbol] = translateVNode; + composer[DatetimePartsSymbol] = datetimeParts; + composer[NumberPartsSymbol] = numberParts; + } + return composer; +} +const baseFormatProps = { + tag: { + type: [String, Object] + }, + locale: { + type: String + }, + scope: { + type: String, + // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050 + validator: (val) => val === "parent" || val === "global", + default: "parent" + /* ComponentI18nScope */ + }, + i18n: { + type: Object + } +}; +function getInterpolateArg({ slots }, keys) { + if (keys.length === 1 && keys[0] === "default") { + const ret = slots.default ? slots.default() : []; + return ret.reduce((slot, current) => { + return [ + ...slot, + // prettier-ignore + ...current.type === Fragment ? current.children : [current] + ]; + }, []); + } else { + return keys.reduce((arg, key) => { + const slot = slots[key]; + if (slot) { + arg[key] = slot(); + } + return arg; + }, create()); + } +} +function getFragmentableTag() { + return Fragment; +} +const TranslationImpl = /* @__PURE__ */ defineComponent({ + /* eslint-disable */ + name: "i18n-t", + props: assign({ + keypath: { + type: String, + required: true + }, + plural: { + type: [Number, String], + validator: (val) => isNumber(val) || !isNaN(val) + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const { slots, attrs } = context; + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return () => { + const renderChildren = () => { + const keys = Object.keys(slots).filter((key) => key[0] !== "_"); + const options = create(); + if (props.locale) { + options.locale = props.locale; + } + if (props.plural !== void 0) { + options.plural = isString(props.plural) ? +props.plural : props.plural; + } + const arg = getInterpolateArg(context, keys); + return i18n[TranslateVNodeSymbol](props.keypath, arg, options); + }; + const assignedAttrs = assign(create(), attrs); + const tag = isString(props.tag) || isObject(props.tag) ? props.tag : getFragmentableTag(); + return isObject(tag) ? h(tag, assignedAttrs, { default: renderChildren }) : h(tag, assignedAttrs, renderChildren()); + }; + } +}); +const Translation = TranslationImpl; +function isVNode(target) { + return isArray(target) && !isString(target[0]); +} +function renderFormatter(props, context, slotKeys, partFormatter) { + const { slots, attrs } = context; + return () => { + const renderChildren = () => { + const options = { part: true }; + let overrides = create(); + if (props.locale) { + options.locale = props.locale; + } + if (isString(props.format)) { + options.key = props.format; + } else if (isObject(props.format)) { + if (isString(props.format.key)) { + options.key = props.format.key; + } + overrides = Object.keys(props.format).reduce((options2, prop) => { + return slotKeys.includes(prop) ? assign(create(), options2, { [prop]: props.format[prop] }) : options2; + }, create()); + } + const parts = partFormatter(...[props.value, options, overrides]); + let children = [options.key]; + if (isArray(parts)) { + children = parts.map((part, index) => { + const slot = slots[part.type]; + const node = slot ? slot({ [part.type]: part.value, index, parts }) : [part.value]; + if (isVNode(node)) { + node[0].key = `${part.type}-${index}`; + } + return node; + }); + } else if (isString(parts)) { + children = [parts]; + } + return children; + }; + const assignedAttrs = assign(create(), attrs); + const tag = isString(props.tag) || isObject(props.tag) ? props.tag : getFragmentableTag(); + return isObject(tag) ? h(tag, assignedAttrs, { default: renderChildren }) : h(tag, assignedAttrs, renderChildren()); + }; +} +const NumberFormatImpl = /* @__PURE__ */ defineComponent({ + /* eslint-disable */ + name: "i18n-n", + props: assign({ + value: { + type: Number, + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[NumberPartsSymbol](...args) + )); + } +}); +const NumberFormat = NumberFormatImpl; +function getComposer$1(i18n, instance) { + const i18nInternal = i18n; + if (i18n.mode === "composition") { + return i18nInternal.__getInstance(instance) || i18n.global; + } else { + const vueI18n = i18nInternal.__getInstance(instance); + return vueI18n != null ? vueI18n.__composer : i18n.global.__composer; + } +} +function vTDirective(i18n) { + const _process = (binding) => { + const { instance, value } = binding; + if (!instance || !instance.$) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const composer = getComposer$1(i18n, instance.$); + const parsedValue = parseValue(value); + return [ + Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]), + composer + ]; + }; + const register = (el, binding) => { + const [textContent, composer] = _process(binding); + el.__composer = composer; + el.textContent = textContent; + }; + const unregister = (el) => { + if (el.__composer) { + el.__composer = void 0; + delete el.__composer; + } + }; + const update = (el, { value }) => { + if (el.__composer) { + const composer = el.__composer; + const parsedValue = parseValue(value); + el.textContent = Reflect.apply(composer.t, composer, [ + ...makeParams(parsedValue) + ]); + } + }; + const getSSRProps = (binding) => { + const [textContent] = _process(binding); + return { textContent }; + }; + return { + created: register, + unmounted: unregister, + beforeUpdate: update, + getSSRProps + }; +} +function parseValue(value) { + if (isString(value)) { + return { path: value }; + } else if (isPlainObject(value)) { + if (!("path" in value)) { + throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, "path"); + } + return value; + } else { + throw createI18nError(I18nErrorCodes.INVALID_VALUE); + } +} +function makeParams(value) { + const { path, locale, args, choice, plural } = value; + const options = {}; + const named = args || {}; + if (isString(locale)) { + options.locale = locale; + } + if (isNumber(choice)) { + options.plural = choice; + } + if (isNumber(plural)) { + options.plural = plural; + } + return [path, named, options]; +} +function apply(app, i18n, ...options) { + const pluginOptions = isPlainObject(options[0]) ? options[0] : {}; + const globalInstall = isBoolean(pluginOptions.globalInstall) ? pluginOptions.globalInstall : true; + if (globalInstall) { + [Translation.name, "I18nT"].forEach((name) => app.component(name, Translation)); + [NumberFormat.name, "I18nN"].forEach((name) => app.component(name, NumberFormat)); + [DatetimeFormat.name, "I18nD"].forEach((name) => app.component(name, DatetimeFormat)); + } + { + app.directive("t", vTDirective(i18n)); + } +} +const I18nInjectionKey = /* @__PURE__ */ makeSymbol("global-vue-i18n"); +function createI18n(options = {}) { + const __globalInjection = isBoolean(options.globalInjection) ? options.globalInjection : true; + const __instances = /* @__PURE__ */ new Map(); + const [globalScope, __global] = createGlobal(options); + const symbol = /* @__PURE__ */ makeSymbol(""); + function __getInstance(component) { + return __instances.get(component) || null; + } + function __setInstance(component, instance) { + __instances.set(component, instance); + } + function __deleteInstance(component) { + __instances.delete(component); + } + const i18n = { + // mode + get mode() { + return "composition"; + }, + // install plugin + async install(app, ...options2) { + app.__VUE_I18N_SYMBOL__ = symbol; + app.provide(app.__VUE_I18N_SYMBOL__, i18n); + if (isPlainObject(options2[0])) { + const opts = options2[0]; + i18n.__composerExtend = opts.__composerExtend; + i18n.__vueI18nExtend = opts.__vueI18nExtend; + } + let globalReleaseHandler = null; + if (__globalInjection) { + globalReleaseHandler = injectGlobalFields(app, i18n.global); + } + { + apply(app, i18n, ...options2); + } + const unmountApp = app.unmount; + app.unmount = () => { + globalReleaseHandler && globalReleaseHandler(); + i18n.dispose(); + unmountApp(); + }; + }, + // global accessor + get global() { + return __global; + }, + dispose() { + globalScope.stop(); + }, + // @internal + __instances, + // @internal + __getInstance, + // @internal + __setInstance, + // @internal + __deleteInstance + }; + return i18n; +} +function useI18n(options = {}) { + const instance = getCurrentInstance(); + if (instance == null) { + throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP); + } + if (!instance.isCE && instance.appContext.app != null && !instance.appContext.app.__VUE_I18N_SYMBOL__) { + throw createI18nError(I18nErrorCodes.NOT_INSTALLED); + } + const i18n = getI18nInstance(instance); + const gl = getGlobalComposer(i18n); + const componentOptions = getComponentOptions(instance); + const scope = getScope(options, componentOptions); + if (scope === "global") { + adjustI18nResources(gl, options, componentOptions); + return gl; + } + if (scope === "parent") { + let composer2 = getComposer(i18n, instance, options.__useComponent); + if (composer2 == null) { + composer2 = gl; + } + return composer2; + } + if (scope === "isolated") { + if (i18n.mode !== "composition") { + throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY); + } + const i18nInternalIso = i18n; + const composerOptions = assign({}, options); + const parentComposer = getComposer(i18n, instance); + composerOptions.__root = parentComposer || gl; + const composer2 = createComposer(composerOptions); + if (i18nInternalIso.__composerExtend) { + composer2[DisposeSymbol] = i18nInternalIso.__composerExtend(composer2); + } + const currentScope = getCurrentScope(); + if (currentScope) { + onScopeDispose(() => { + const dispose = composer2[DisposeSymbol]; + if (dispose) { + dispose(); + delete composer2[DisposeSymbol]; + } + }); + } + return composer2; + } + const i18nInternal = i18n; + let composer = i18nInternal.__getInstance(instance); + if (composer == null) { + const composerOptions = assign({}, options); + if ("__i18n" in componentOptions) { + composerOptions.__i18n = componentOptions.__i18n; + } + if (gl) { + composerOptions.__root = gl; + } + composer = createComposer(composerOptions); + if (i18nInternal.__composerExtend) { + composer[DisposeSymbol] = i18nInternal.__composerExtend(composer); + } + i18nInternal.__setInstance(instance, composer); + } + return composer; +} +function createGlobal(options, legacyMode) { + const scope = effectScope(); + const obj = scope.run(() => createComposer(options)); + if (obj == null) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + return [scope, obj]; +} +function getI18nInstance(instance) { + const i18n = inject(!instance.isCE ? instance.appContext.app.__VUE_I18N_SYMBOL__ : I18nInjectionKey); + if (!i18n) { + throw createI18nError(!instance.isCE ? I18nErrorCodes.UNEXPECTED_ERROR : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE); + } + return i18n; +} +function getScope(options, componentOptions) { + return isEmptyObject(options) ? "__i18n" in componentOptions ? "local" : "global" : !options.useScope ? "local" : options.useScope; +} +function getGlobalComposer(i18n) { + return i18n.mode === "composition" ? i18n.global : i18n.global.__composer; +} +function getComposer(i18n, target, useComponent = false) { + let composer = null; + const root = target.root; + let current = getParentComponentInstance(target, useComponent); + while (current != null) { + const i18nInternal = i18n; + if (i18n.mode === "composition") { + composer = i18nInternal.__getInstance(current); + } + if (composer != null) { + break; + } + if (root === current) { + break; + } + current = current.parent; + } + return composer; +} +function getParentComponentInstance(target, useComponent = false) { + if (target == null) { + return null; + } + return !useComponent ? target.parent : target.vnode.ctx || target.parent; +} +const globalExportProps = [ + "locale", + "fallbackLocale", + "availableLocales" +]; +const globalExportMethods = ["t", "rt", "d", "n", "tm", "te"]; +function injectGlobalFields(app, composer) { + const i18n = /* @__PURE__ */ Object.create(null); + globalExportProps.forEach((prop) => { + const desc = Object.getOwnPropertyDescriptor(composer, prop); + if (!desc) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + const wrap = isRef(desc.value) ? { + get() { + return desc.value.value; + }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + set(val) { + desc.value.value = val; + } + } : { + get() { + return desc.get && desc.get(); + } + }; + Object.defineProperty(i18n, prop, wrap); + }); + app.config.globalProperties.$i18n = i18n; + globalExportMethods.forEach((method) => { + const desc = Object.getOwnPropertyDescriptor(composer, method); + if (!desc || !desc.value) { + throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR); + } + Object.defineProperty(app.config.globalProperties, `$${method}`, desc); + }); + const dispose = () => { + delete app.config.globalProperties.$i18n; + globalExportMethods.forEach((method) => { + delete app.config.globalProperties[`$${method}`]; + }); + }; + return dispose; +} +const DatetimeFormatImpl = /* @__PURE__ */ defineComponent({ + /* eslint-disable */ + name: "i18n-d", + props: assign({ + value: { + type: [Number, Date], + required: true + }, + format: { + type: [String, Object] + } + }, baseFormatProps), + /* eslint-enable */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + setup(props, context) { + const i18n = props.i18n || useI18n({ + useScope: props.scope, + __useComponent: true + }); + return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => ( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + i18n[DatetimePartsSymbol](...args) + )); + } +}); +const DatetimeFormat = DatetimeFormatImpl; +registerMessageCompiler(compile); +registerMessageResolver(resolveValue); +registerLocaleFallbacker(fallbackWithLocaleChain); +function useRouteBaseName(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (route) => { + if (route == null) { + return; + } + return common.getRouteBaseName(route) || void 0; + }; +} +function useLocalePath(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (route, locale) => localePath(common, route, locale); +} +function useLocaleRoute(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (route, locale) => localeRoute(common, route, locale); +} +function useSwitchLocalePath(nuxtApp = useNuxtApp()) { + const common = useComposableContext(nuxtApp); + return (locale) => switchLocalePath(common, locale); +} +const identifier = "nuxt-i18n-slp"; +const switchLocalePathLinkWrapperExpr = new RegExp( + [``, `.+?`, ``].join(""), + "g" +); +const switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:switch-locale-path-ssr", + dependsOn: ["i18n:plugin"], + setup(_nuxt) { + const nuxt = useNuxtApp(_nuxt._id); + const switchLocalePath2 = useSwitchLocalePath(nuxt); + nuxt.hook("app:rendered", (ctx) => { + if (ctx.renderResult?.html == null) { + return; + } + ctx.renderResult.html = ctx.renderResult.html.replaceAll( + switchLocalePathLinkWrapperExpr, + (match, p1) => { + const encoded = encodeURI(switchLocalePath2(p1 ?? "")); + return match.replace( + /href="([^"]+)"/, + `href="${encoded || "#"}" ${""}` + ); + } + ); + }); + } +}); +const route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:route-locale-detect", + dependsOn: ["i18n:plugin"], + async setup(_nuxt) { + let __temp, __restore; + const nuxt = useNuxtApp(_nuxt._id); + const ctx = useNuxtI18nContext(nuxt); + const resolvedLocale = useResolvedLocale(); + [__temp, __restore] = executeAsync(() => nuxt.runWithContext( + () => loadAndSetLocale( + nuxt, + ctx.initial && resolvedLocale.value || detectLocale(nuxt, nuxt.$router.currentRoute.value) + ) + )), await __temp, __restore(); + { + return; + } + } +}); +const preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24 = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:preload", + dependsOn: ["i18n:plugin"], + async setup(_nuxt) { + { + return; + } + } +}); +function extendI18n(i18n, { extendComposer, extendComposerInstance }) { + const scope = effectScope(); + const installI18n = i18n.install.bind(i18n); + i18n.install = (app, ...options) => { + const pluginOptions = assign({}, options[0]); + pluginOptions.__composerExtend = (c) => { + extendComposerInstance(c, getComposer$3(i18n)); + return () => { + }; + }; + if (i18n.mode === "legacy") { + pluginOptions.__vueI18nExtend = (vueI18n) => { + extendComposerInstance(vueI18n, getComposer$3(vueI18n)); + return () => { + }; + }; + } + Reflect.apply(installI18n, i18n, [app, pluginOptions]); + const globalComposer = getComposer$3(i18n); + scope.run(() => { + extendComposer(globalComposer); + if (i18n.mode === "legacy" && "__composer" in i18n.global) { + extendComposerInstance(i18n.global, getComposer$3(i18n.global)); + } + }); + if (i18n.mode === "composition" && app.config.globalProperties.$i18n != null) { + extendComposerInstance(app.config.globalProperties.$i18n, globalComposer); + } + if (app.unmount) { + const unmountApp = app.unmount.bind(app); + app.unmount = () => { + scope.stop(); + unmountApp(); + }; + } + }; +} +const setupVueI18nOptions = async (defaultLocale) => { + const options = await loadVueI18nOptions(vueI18nConfigs); + options.locale = defaultLocale || options.locale || "en-US"; + options.defaultLocale = defaultLocale; + options.fallbackLocale ??= false; + options.messages ??= {}; + for (const locale of localeCodes) { + options.messages[locale] ??= {}; + } + return options; +}; +var define_I18N_LOCALE_HASHES_default = { hu: "349b7781", en: "349b7781" }; +const i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin", + parallel: false, + async setup(_nuxt) { + let __temp, __restore; + Object.defineProperty(_nuxt.versions, "nuxtI18n", { get: () => "10.4.0" }); + const nuxt = useNuxtApp(_nuxt._id); + const runtimeI18n = useRuntimeI18n(nuxt); + const preloadedOptions = nuxt.ssrContext?.event?.context?.nuxtI18n?.vueI18nOptions; + const _defaultLocale = getDefaultLocaleForDomain(useRequestURL({ xForwardedHost: true }).host) || runtimeI18n.defaultLocale || ""; + const optionsI18n = preloadedOptions || ([__temp, __restore] = executeAsync(() => setupVueI18nOptions(_defaultLocale)), __temp = await __temp, __restore(), __temp); + const localeConfigs = useLocaleConfigs(); + { + localeConfigs.value = useRequestEvent().context.nuxtI18n?.localeConfigs || {}; + } + prerenderRoutes(localeCodes.map((locale) => `${"/_i18n"}/${define_I18N_LOCALE_HASHES_default[locale]}/${locale}/messages.json`)); + const i18n = createI18n(optionsI18n); + const detectors = useDetectors(useRequestEvent(nuxt), useI18nDetection(nuxt), nuxt); + const ctx = createNuxtI18nContext(nuxt, i18n, optionsI18n.defaultLocale); + nuxt._nuxtI18n = ctx; + extendI18n(i18n, { + extendComposer(composer) { + composer.locales = computed(() => runtimeI18n.locales); + composer.localeCodes = computed(() => localeCodes); + const _baseUrl = ref(ctx.getBaseUrl()); + composer.baseUrl = computed(() => _baseUrl.value); + composer.strategy = "no_prefix"; + composer.localeProperties = computed( + () => normalizedLocales.find((l) => l.code === composer.locale.value) || { code: composer.locale.value } + ); + composer.setLocale = async (locale) => { + await loadAndSetLocale(nuxt, locale); + await nuxt.runWithContext(() => navigate(nuxt, nuxt.$router.currentRoute.value)); + }; + composer.loadLocaleMessages = ctx.loadMessages; + composer.differentDomains = false; + composer.defaultLocale = optionsI18n.defaultLocale; + composer.getBrowserLocale = () => resolveSupportedLocale(detectors.header()); + composer.getLocaleCookie = () => resolveSupportedLocale(detectors.cookie()); + composer.setLocaleCookie = ctx.setCookieLocale; + composer.finalizePendingLocaleChange = async () => { + if (!i18n.__pendingLocale) { + return; + } + await i18n.__resolvePendingLocalePromise?.(); + }; + composer.waitForPendingLocaleChange = async () => { + await i18n?.__pendingLocalePromise; + }; + }, + extendComposerInstance(instance, c) { + const props = [ + ["locales", () => c.locales], + ["localeCodes", () => c.localeCodes], + ["baseUrl", () => c.baseUrl], + ["strategy", () => "no_prefix"], + ["localeProperties", () => c.localeProperties], + ["setLocale", () => (locale) => Reflect.apply(c.setLocale, c, [locale])], + ["loadLocaleMessages", () => (locale) => Reflect.apply(c.loadLocaleMessages, c, [locale])], + ["differentDomains", () => false], + ["defaultLocale", () => c.defaultLocale], + ["getBrowserLocale", () => () => Reflect.apply(c.getBrowserLocale, c, [])], + ["getLocaleCookie", () => () => Reflect.apply(c.getLocaleCookie, c, [])], + ["setLocaleCookie", () => (locale) => Reflect.apply(c.setLocaleCookie, c, [locale])], + ["finalizePendingLocaleChange", () => () => Reflect.apply(c.finalizePendingLocaleChange, c, [])], + ["waitForPendingLocaleChange", () => () => Reflect.apply(c.waitForPendingLocaleChange, c, [])] + ]; + for (const [key, get] of props) { + Object.defineProperty(instance, key, { get }); + } + } + }); + nuxt.vueApp.use(i18n); + Object.defineProperty(nuxt, "$i18n", { get: () => getI18nTarget(i18n) }); + nuxt.provide("localeHead", (options) => localeHead(nuxt._nuxtI18n.composableCtx, options)); + nuxt.provide("localePath", useLocalePath(nuxt)); + nuxt.provide("localeRoute", useLocaleRoute(nuxt)); + nuxt.provide("routeBaseName", useRouteBaseName(nuxt)); + nuxt.provide("getRouteBaseName", useRouteBaseName(nuxt)); + nuxt.provide("switchLocalePath", useSwitchLocalePath(nuxt)); + } +}); +const ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs = /* @__PURE__ */ defineNuxtPlugin({ + name: "i18n:plugin:ssg-detect", + dependsOn: ["i18n:plugin", "i18n:plugin:route-locale-detect"], + enforce: "post", + setup(_nuxt) { + { + return; + } + } +}); const plugins = [ payloadPlugin, unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU, plugin$1, revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms, plugin, - components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4 + components_plugin_z4hgvsiddfKkfXTP6M8M4zG5Cb7sGnDhcryKVM45Di4, + switch_locale_path_ssr_NflG9_QeVcJ1jVig0vCfxB_cZhpEMQ9U2ujRUiYbbVw, + route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U, + preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24, + i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM, + ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs ]; const layouts = { - default: defineAsyncComponent(() => import('./default-DbJQlxCD.mjs').then((m) => m.default || m)) + default: defineAsyncComponent(() => import('./default-B9tlXlqE.mjs').then((m) => m.default || m)) }; const routeRulesMatcher = _routeRulesMatcher; const LayoutLoader = defineComponent({ @@ -1198,8 +6286,8 @@ const _sfc_main$1 = { 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('./error-404-BDmq62MM.mjs')); - const _Error = defineAsyncComponent(() => import('./error-500-gzzPk_-U.mjs')); + const _Error404 = defineAsyncComponent(() => import('./error-404-C_elhLNc.mjs')); + const _Error = defineAsyncComponent(() => import('./error-500-C6MJq2Cl.mjs')); 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)); @@ -1291,5 +6379,5 @@ let entry; } const entry_default = ((ssrContext) => entry(ssrContext)); -export { _export_sfc as _, useNuxtApp as a, useRuntimeConfig as b, nuxtLinkDefaults as c, defineNuxtRouteMiddleware as d, entry_default as default, encodeRoutePath as e, navigateTo as n, resolveRouteObject as r, tryUseNuxtApp as t, useRouter as u }; +export { _export_sfc as _, useRouter as a, useCookie as b, useI18n as c, defineNuxtRouteMiddleware as d, entry_default as default, encodeRoutePath as e, useNuxtApp as f, useRuntimeConfig as g, nuxtLinkDefaults as h, navigateTo as n, resolveRouteObject as r, useHead as u }; //# sourceMappingURL=server.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/server.mjs.map b/frontend_admin/.output/server/chunks/build/server.mjs.map index 98b3f2e..d44ab86 100644 --- a/frontend_admin/.output/server/chunks/build/server.mjs.map +++ b/frontend_admin/.output/server/chunks/build/server.mjs.map @@ -1 +1 @@ -{"version":3,"file":"server.mjs","sources":["../../../../.nuxt/dist/server/server.mjs"],"names":["$fetch$1"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"server.mjs","sources":["../../../../.nuxt/dist/server/server.mjs"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/build/styles.mjs b/frontend_admin/.output/server/chunks/build/styles.mjs index 8c5751f..1352314 100644 --- a/frontend_admin/.output/server/chunks/build/styles.mjs +++ b/frontend_admin/.output/server/chunks/build/styles.mjs @@ -1,6 +1,6 @@ const interopDefault = r => r.default || r || []; const styles = { - "node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.BhrIOCGw.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.w3HlJ-9O.mjs').then(interopDefault), "app.vue": () => import('./app-styles.BKebClGy.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.CiJjK6WX.mjs').then(interopDefault), "node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.ulHNpcF1.mjs').then(interopDefault) diff --git a/frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs b/frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs deleted file mode 100644 index 4663c27..0000000 --- a/frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs +++ /dev/null @@ -1,22 +0,0 @@ -import { hasInjectionContext, inject } from 'vue'; -import { t as tryUseNuxtApp } from './server.mjs'; -import { u as useHead$1, h as headSymbol } from '../routes/renderer.mjs'; - -function injectHead(nuxtApp) { - var _a; - const nuxt = nuxtApp || tryUseNuxtApp(); - return ((_a = nuxt == null ? void 0 : nuxt.ssrContext) == null ? void 0 : _a.head) || (nuxt == null ? void 0 : nuxt.runWithContext(() => { - if (hasInjectionContext()) { - return inject(headSymbol); - } - })); -} -function useHead(input, options = {}) { - const head = injectHead(options.nuxt); - if (head) { - return useHead$1(input, { head, ...options }); - } -} - -export { useHead as u }; -//# sourceMappingURL=v3-DnDMBKvA.mjs.map diff --git a/frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs.map b/frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs.map deleted file mode 100644 index ecfb813..0000000 --- a/frontend_admin/.output/server/chunks/build/v3-DnDMBKvA.mjs.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"v3-DnDMBKvA.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/v3-DnDMBKvA.js"],"names":[],"mappings":";;;;AAGA,SAAS,WAAW,OAAA,EAAS;AAH7B,EAAA,IAAA,EAAA;AAIE,EAAA,MAAM,IAAA,GAAO,WAAW,aAAA,EAAc;AACtC,EAAA,OAAA,CAAA,CAAO,kCAAM,UAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,IAAA,MAAQ,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,eAAe,MAAM;AAC1D,IAAA,IAAI,qBAAoB,EAAG;AACzB,MAAA,OAAO,OAAO,UAAU,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA,CAAA,CAAA;AACF;AACA,SAAS,OAAA,CAAQ,KAAA,EAAO,OAAA,GAAU,EAAC,EAAG;AACpC,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAA;AACpC,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,OAAO,UAAU,KAAA,EAAO,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,EAC9C;AACF;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/nitro/nitro.mjs b/frontend_admin/.output/server/chunks/nitro/nitro.mjs index 214401b..809617d 100644 --- a/frontend_admin/.output/server/chunks/nitro/nitro.mjs +++ b/frontend_admin/.output/server/chunks/nitro/nitro.mjs @@ -5,6 +5,7 @@ import { Buffer as Buffer$1 } from 'node:buffer'; import { promises, existsSync } from 'node:fs'; import { resolve as resolve$1, dirname as dirname$1, join } from 'node:path'; import { createHash } from 'node:crypto'; +import { createRouterMatcher } from 'vue-router'; import { fileURLToPath } from 'node:url'; const suspectProtoRx = /"(?:_|\\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*:/; @@ -1004,6 +1005,20 @@ function isError(input) { function getQuery(event) { return getQuery$1(event.path || ""); } +function getRouterParams(event, opts = {}) { + let params = event.context.params || {}; + if (opts.decode) { + params = { ...params }; + for (const key in params) { + params[key] = decode$2(params[key]); + } + } + return params; +} +function getRouterParam(event, name, opts = {}) { + const params = getRouterParams(event, opts); + return params[name]; +} function isMethod(event, expected, allowHead) { if (typeof expected === "string") { if (event.method === expected) { @@ -2782,7 +2797,7 @@ const fetch = globalThis.fetch ? (...args) => globalThis.fetch(...args) : create const Headers$1 = globalThis.Headers || s$1; const AbortController = globalThis.AbortController || i; const ofetch = createFetch({ fetch, Headers: Headers$1, AbortController }); -const $fetch = ofetch; +const $fetch$1 = ofetch; function wrapToPromise(value) { if (!value || typeof value.then !== "function") { @@ -3558,14 +3573,14 @@ const unstorage_47drivers_47fs_45lite = defineDriver((opts = {}) => { }; }); -const storage = createStorage({}); +const storage$1 = createStorage({}); -storage.mount('/assets', assets$1); +storage$1.mount('/assets', assets$1); -storage.mount('data', unstorage_47drivers_47fs_45lite({"driver":"fsLite","base":"./.data/kv"})); +storage$1.mount('data', unstorage_47drivers_47fs_45lite({"driver":"fsLite","base":"./.data/kv"})); function useStorage(base = "") { - return base ? prefixStorage(storage, base) : storage; + return base ? prefixStorage(storage$1, base) : storage$1; } function serialize$1(o){return typeof o=="string"?`'${o}'`:new c().serialize(o)}const c=/*@__PURE__*/function(){class o{#t=new Map;compare(t,r){const e=typeof t,n=typeof r;return e==="string"&&n==="string"?t.localeCompare(r):e==="number"&&n==="number"?t-r:String.prototype.localeCompare.call(this.serialize(t,true),this.serialize(r,true))}serialize(t,r){if(t===null)return "null";switch(typeof t){case "string":return r?t:`'${t}'`;case "bigint":return `${t}n`;case "object":return this.$object(t);case "function":return this.$function(t)}return String(t)}serializeObject(t){const r=Object.prototype.toString.call(t);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),t);const e=t.constructor,n=e===Object||e===void 0?"":e.name;if(n!==""&&globalThis[n]===e)return this.serializeBuiltInType(n,t);if(typeof t.toJSON=="function"){const i=t.toJSON();return n+(i!==null&&typeof i=="object"?this.$object(i):`(${this.serialize(i)})`)}return this.serializeObjectEntries(n,Object.entries(t))}serializeBuiltInType(t,r){const e=this["$"+t];if(e)return e.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(t,r.entries());throw new Error(`Cannot serialize ${t}`)}serializeObjectEntries(t,r){const e=Array.from(r).sort((i,a)=>this.compare(i[0],a[0]));let n=`${t}{`;for(let i=0;ithis.compare(r,e)))}`}$Map(t){return this.serializeObjectEntries("Map",t.entries())}}for(const s of ["Error","RegExp","URL"])o.prototype["$"+s]=function(t){return `${s}(${t})`};for(const s of ["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])o.prototype["$"+s]=function(t){return `${s}[${t.join(",")}]`};for(const s of ["BigInt64Array","BigUint64Array"])o.prototype["$"+s]=function(t){return `${s}[${t.join("n,")}${t.length>0?"n":""}]`};return o}(); @@ -4286,7 +4301,7 @@ function _expandFromEnv(value) { const _inlineRuntimeConfig = { "app": { "baseURL": "/", - "buildId": "30eed3bb-14ef-4661-b342-1d1b41361648", + "buildId": "dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233", "buildAssetsDir": "/_nuxt/", "cdnURL": "" }, @@ -4313,7 +4328,62 @@ const _inlineRuntimeConfig = { } } }, - "public": {} + "public": { + "i18n": { + "baseUrl": "", + "defaultLocale": "hu", + "rootRedirect": "", + "redirectStatusCode": 302, + "skipSettingLocaleOnNavigate": false, + "locales": [ + { + "code": "hu", + "iso": "hu-HU", + "name": "Magyar", + "language": "" + }, + { + "code": "en", + "iso": "en-GB", + "name": "English", + "language": "" + } + ], + "detectBrowserLanguage": { + "alwaysRedirect": false, + "cookieCrossOrigin": false, + "cookieDomain": "", + "cookieKey": "i18n_redirected", + "cookieSecure": false, + "fallbackLocale": "", + "redirectOn": "root", + "useCookie": true + }, + "experimental": { + "localeDetector": "", + "typedPages": true, + "typedOptionsAndMessages": false, + "alternateLinkCanonicalQueries": true, + "devCache": false, + "cacheLifetime": "", + "stripMessagesPayload": false, + "preload": false, + "strictSeo": false, + "nitroContextDetection": true, + "httpCacheDuration": 10, + "compactRoutes": false, + "prerenderMessages": false + }, + "domainLocales": { + "hu": { + "domain": "" + }, + "en": { + "domain": "" + } + } + } + } }; const envOptions = { prefix: "NITRO_", @@ -4762,141 +4832,1012 @@ async function errorHandler(error, event) { // H3 will handle fallback } +/*! + * shared v11.4.2 + * (c) 2026 kazuya kawaguchi + * Released under the MIT License. + */ +const _create = Object.create; +const create = (obj = null) => _create(obj); +/* eslint-enable */ +/** + * Useful Utilities By Evan you + * Modified by kazuya kawaguchi + * MIT License + * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts + * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts + */ +const isArray = Array.isArray; +const isFunction = (val) => typeof val === 'function'; +const isString = (val) => typeof val === 'string'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const isObject = (val) => val !== null && typeof val === 'object'; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); + +const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val); +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function deepCopy(src, des) { + // src and des should both be objects, and none of them can be a array + if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { + throw new Error('Invalid value'); + } + const stack = [{ src, des }]; + while (stack.length) { + const { src, des } = stack.pop(); + // using `Object.keys` which skips prototype properties + Object.keys(src).forEach(key => { + if (key === '__proto__') { + return; + } + // if src[key] is an object/array, set des[key] + // to empty object/array to prevent setting by reference + if (isObject(src[key]) && !isObject(des[key])) { + des[key] = Array.isArray(src[key]) ? [] : create(); + } + if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) { + // replace with src[key] when: + // src[key] or des[key] is not an object, or + // src[key] or des[key] is an array + des[key] = src[key]; + } + else { + // src[key] and des[key] are both objects, merge them + stack.push({ src: src[key], des: des[key] }); + } + }); + } +} + +const __nuxtMock = { runWithContext: async (fn) => await fn() }; +const merger = createDefu((obj, key, value) => { + if (key === "messages" || key === "datetimeFormats" || key === "numberFormats") { + obj[key] ??= create(null); + deepCopy(value, obj[key]); + return true; + } +}); +async function loadVueI18nOptions(vueI18nConfigs) { + const nuxtApp = __nuxtMock; + let vueI18nOptions = { messages: create(null) }; + for (const configFile of vueI18nConfigs) { + const resolver = await configFile().then((x) => isModule(x) ? x.default : x); + const resolved = isFunction(resolver) ? await nuxtApp.runWithContext(() => resolver()) : resolver; + vueI18nOptions = merger(create(null), resolved, vueI18nOptions); + } + vueI18nOptions.fallbackLocale ??= false; + return vueI18nOptions; +} +const isModule = (val) => toTypeString(val) === "[object Module]"; +async function getLocaleMessages(locale, loader) { + const nuxtApp = __nuxtMock; + try { + const getter = await nuxtApp.runWithContext(loader.load).then((x) => isModule(x) ? x.default : x); + return isFunction(getter) ? await nuxtApp.runWithContext(() => getter(locale)) : getter; + } catch (e) { + throw new Error(`Failed loading locale (${locale}): ` + e.message); + } +} +async function getLocaleMessagesMerged(locale, loaders = []) { + const nuxtApp = __nuxtMock; + const messages = await Promise.all( + loaders.map((loader) => nuxtApp.runWithContext(() => getLocaleMessages(locale, loader))) + ); + const merged = {}; + for (const message of messages) { + deepCopy(message, merged); + } + return merged; +} + +var permissions$1 = { + title: "Jogosultság Kezelés", + subtitle: "Permissions Management — Role-based access control & subscription feature flags", + loading: "Jogosultságok betöltése...", + error_title: "Nem sikerült betölteni a jogosultságokat", + retry: "Újra", + save_changes: "Változtatások Mentése", + discard: "Elvetés", + modified_count: "{count} módosítás", + current_tier: "Aktuális Csomag", + expires: "Lejárat", + superadmin: "Superadmin", + superadmin_desc: "Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció.", + garages: "Garázsok", + garages_desc: "Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok.", + feature_flags: "Feature Flags", + feature_flags_desc: "Előfizetési funkciók — a jelenlegi csomagod alapján ({tier}).", + rbac_title: "RBAC Jogosultsági Mátrix", + rbac_desc: "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik.", + action: "Művelet", + perms: { + user_mgmt: "Felhasználókezelés", + billing_admin: "Számlázási Adminisztráció", + robot_config: "Robot Konfiguráció", + system_logs: "Rendszernaplók Elérése", + api_keys: "API Kulcs Kezelés", + vehicle_crud: "Jármű CRUD", + service_booking: "Szervizfoglalás", + customer_view: "Ügyféladatok Megtekintése", + report_export: "Jelentés Exportálás", + bulk_import: "Tömeges Import" + } +}; +var packages$1 = { + title: "Csomagok Kezelése", + subtitle: "Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise", + loading: "Csomagok betöltése...", + retry: "Újra", + create_new: "Új Csomag", + no_packages: "Még nincsenek csomagok", + no_packages_desc: "Hozd létre az első előfizetési csomagot a kezdéshez.", + create_first: "Első Csomag Létrehozása", + popular: "Népszerű", + fallback_badge: "Visszaesési", + trial_badge: "Próba", + month: "hó", + feature_flags: "Elérhető Funkciók", + edit: "Szerkesztés", + "delete": "Törlés", + set_as_default: "Beállítás alapértelmezettként", + set_as_default_success: "alapértelmezett csomagként beállítva!", + edit_title: "Csomag Szerkesztése", + create_title: "Csomag Létrehozása", + cancel: "Mégse", + save: "Változtatások Mentése", + create: "Létrehozás", + save_success: "Csomag sikeresen frissítve!", + delete_title: "Csomag Törlése", + delete_confirm: "Biztosan törölni szeretnéd a \"{name}\" csomagot?", + delete_btn: "Törlés", + allowances: "Korlátok", + max_vehicles: "Max Jármű", + max_garages: "Max Garázs", + monthly_credits: "Havi Kredit", + tier_level: "Szint", + form_name: "Rendszer Név", + form_name_placeholder: "pl. premium_2024", + form_display_name: "Megjelenítési Név", + form_display_name_placeholder: "pl. Premium Plus", + form_type: "Típus", + type_private: "Magán", + type_corporate: "Vállalati", + form_tier_level: "Szintszám", + form_tier_level_hint: "Magasabb szám = több funkció és magasabb rang", + form_monthly_price: "Havi Díj", + form_yearly_price: "Éves Díj", + form_currency: "Pénznem", + form_subtitle: "Felirat / Leírás", + form_subtitle_placeholder: "pl. Ideális kisvállalkozásoknak", + form_badge: "Jelvény Szöveg", + form_badge_placeholder: "pl. Legnépszerűbb", + form_is_custom: "Egyedi Csomag (nem publikus)", + singleton_rules: "Egyediségi Szabályok", + form_is_default_fallback: "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált", + form_trial_days: "Próba Napok Regisztrációnál", + form_trial_days_hint: "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0." +}; +var garages$1 = { + title: "Garázsok CRM", + subtitle: "Garázsok listája, csomagkezelés és státuszmódosítás", + total_garages: "Összes Garázs", + active_garages: "Aktív Garázsok", + premium_garages: "Premium Garázsok", + enterprise_garages: "Enterprise Garázsok", + search_placeholder: "Keresés név, kapcsolattartó vagy e-mail alapján...", + all_tiers: "Összes csomag", + company_name: "Cégnév", + email: "E-mail", + status: "Státusz", + current_package: "Aktuális Csomag", + actions: "Műveletek", + active: "Aktív", + inactive: "Inaktív", + suspended: "Felfüggesztve", + change_package: "Csomag Módosítása", + view: "Megtekintés", + activate: "Aktiválás", + deactivate: "Deaktiválás", + no_results: "Nincs a keresésnek megfelelő garázs." +}; +const locale_hu_46json_ee06c965 = { + permissions: permissions$1, + packages: packages$1, + garages: garages$1 +}; + +var permissions = { + title: "Permissions Management", + subtitle: "Permissions Management — Role-based access control & subscription feature flags", + loading: "Loading permissions data...", + error_title: "Failed to load permissions", + retry: "Retry", + save_changes: "Save Changes", + discard: "Discard", + modified_count: "{count} modification(s)", + current_tier: "Current Tier", + expires: "Expires", + superadmin: "Superadmin", + superadmin_desc: "Full system access — user management, billing, robots, and system configuration.", + garages: "Garages", + garages_desc: "Garage-level access — vehicle management, service booking, customer data.", + feature_flags: "Feature Flags", + feature_flags_desc: "Subscription feature toggles — resolved from your current tier ({tier}).", + rbac_title: "RBAC Permission Matrix", + rbac_desc: "Role-based access control — which roles can perform which admin actions.", + action: "Action", + perms: { + user_mgmt: "User Management", + billing_admin: "Billing Administration", + robot_config: "Robot Configuration", + system_logs: "System Logs Access", + api_keys: "API Key Management", + vehicle_crud: "Vehicle CRUD", + service_booking: "Service Booking", + customer_view: "Customer Data View", + report_export: "Report Export", + bulk_import: "Bulk Import" + } +}; +var packages = { + title: "Package Management", + subtitle: "Manage subscription packages and feature flags — Free, Premium, Enterprise", + loading: "Loading packages...", + retry: "Retry", + create_new: "Create Package", + no_packages: "No packages yet", + no_packages_desc: "Create your first subscription package to get started.", + create_first: "Create First Package", + popular: "Popular", + fallback_badge: "Fallback", + trial_badge: "Trial", + month: "month", + feature_flags: "Available Features", + edit: "Edit", + "delete": "Delete", + set_as_default: "Set as default", + set_as_default_success: "set as default package!", + edit_title: "Edit Package", + create_title: "Create Package", + cancel: "Cancel", + save: "Save Changes", + create: "Create", + save_success: "Package updated successfully!", + delete_title: "Delete Package", + delete_confirm: "Are you sure you want to delete \"{name}\"?", + delete_btn: "Delete", + allowances: "Allowances", + max_vehicles: "Max Vehicles", + max_garages: "Max Garages", + monthly_credits: "Monthly Credits", + tier_level: "Tier Level", + form_name: "System Name", + form_name_placeholder: "e.g. premium_2024", + form_display_name: "Display Name", + form_display_name_placeholder: "e.g. Premium Plus", + form_type: "Type", + type_private: "Private", + type_corporate: "Corporate", + form_tier_level: "Tier Level", + form_tier_level_hint: "Higher number = more features & higher rank", + form_monthly_price: "Monthly Price", + form_yearly_price: "Yearly Price", + form_currency: "Currency", + form_subtitle: "Subtitle / Description", + form_subtitle_placeholder: "e.g. Best for small businesses", + form_badge: "Badge Text", + form_badge_placeholder: "e.g. Most Popular", + form_is_custom: "Custom Package (not publicly listed)", + singleton_rules: "Singleton Rules", + form_is_default_fallback: "Default Fallback Package — assigned when a subscription expires", + form_trial_days: "Trial Days on Signup", + form_trial_days_hint: "New organizations get this many free days. Only one package can have trial > 0." +}; +var garages = { + title: "Garages CRM", + subtitle: "Garage list, package management and status changes", + total_garages: "Total Garages", + active_garages: "Active Garages", + premium_garages: "Premium Garages", + enterprise_garages: "Enterprise Garages", + search_placeholder: "Search by name, contact or email...", + all_tiers: "All packages", + company_name: "Company Name", + email: "Email", + status: "Status", + current_package: "Current Package", + actions: "Actions", + active: "Active", + inactive: "Inactive", + suspended: "Suspended", + change_package: "Change Package", + view: "View", + activate: "Activate", + deactivate: "Deactivate", + no_results: "No garages match your search." +}; +const locale_en_46json_0b63539c = { + permissions: permissions, + packages: packages, + garages: garages +}; + +// @ts-nocheck +const localeCodes = [ + "hu", + "en" +]; +const localeLoaders = { + hu: [ + { + key: "locale_hu_46json_ee06c965", + load: () => Promise.resolve(locale_hu_46json_ee06c965), + cache: true + } + ], + en: [ + { + key: "locale_en_46json_0b63539c", + load: () => Promise.resolve(locale_en_46json_0b63539c), + cache: true + } + ] +}; +const vueI18nConfigs = []; +const normalizedLocales = [ + { + code: "hu", + iso: "hu-HU", + name: "Magyar", + language: undefined + }, + { + code: "en", + iso: "en-GB", + name: "English", + language: undefined + } +]; + +const setupVueI18nOptions = async (defaultLocale) => { + const options = await loadVueI18nOptions(vueI18nConfigs); + options.locale = defaultLocale || options.locale || "en-US"; + options.defaultLocale = defaultLocale; + options.fallbackLocale ??= false; + options.messages ??= {}; + for (const locale of localeCodes) { + options.messages[locale] ??= {}; + } + return options; +}; + +function defineNitroPlugin(def) { + return def; +} + +function defineRenderHandler(render) { + const runtimeConfig = useRuntimeConfig(); + return eventHandler(async (event) => { + const nitroApp = useNitroApp(); + const ctx = { event, render, response: void 0 }; + await nitroApp.hooks.callHook("render:before", ctx); + if (!ctx.response) { + if (event.path === `${runtimeConfig.app.baseURL}favicon.ico`) { + setResponseHeader(event, "Content-Type", "image/x-icon"); + return send( + event, + "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" + ); + } + ctx.response = await ctx.render(event); + if (!ctx.response) { + const _currentStatus = getResponseStatus(event); + setResponseStatus(event, _currentStatus === 200 ? 500 : _currentStatus); + return send( + event, + "No response returned from render handler: " + event.path + ); + } + } + await nitroApp.hooks.callHook("render:response", ctx.response, ctx); + if (ctx.response.headers) { + setResponseHeaders(event, ctx.response.headers); + } + if (ctx.response.statusCode || ctx.response.statusMessage) { + setResponseStatus( + event, + ctx.response.statusCode, + ctx.response.statusMessage + ); + } + return ctx.response.body; + }); +} + +function baseURL() { + + return useRuntimeConfig().app.baseURL; +} +function buildAssetsDir() { + + return useRuntimeConfig().app.buildAssetsDir; +} +function buildAssetsURL(...path) { + return joinRelativeURL(publicAssetsURL(), buildAssetsDir(), ...path); +} +function publicAssetsURL(...path) { + + const app = useRuntimeConfig().app; + const publicBase = app.cdnURL || app.baseURL; + return path.length ? joinRelativeURL(publicBase, ...path) : publicBase; +} + +function parseAcceptLanguage(value) { + return value.split(",").map((tag) => tag.split(";")[0]).filter( + (tag) => !(tag === "*" || tag === "") + ); +} +function createPathIndexLanguageParser(index = 0) { + return (path) => { + const rawPath = typeof path === "string" ? path : path.pathname; + const normalizedPath = rawPath.split("?")[0]; + const parts = normalizedPath.split("/"); + if (parts[0] === "") { + parts.shift(); + } + return parts.length > index ? parts[index] || "" : ""; + }; +} + +function useRuntimeI18n(nuxtApp, event) { + { + return useRuntimeConfig(event).public.i18n; + } +} +function useI18nDetection(nuxtApp) { + const detectBrowserLanguage = useRuntimeI18n().detectBrowserLanguage; + const detect = detectBrowserLanguage || {}; + return { + ...detect, + enabled: !!detectBrowserLanguage, + cookieKey: detect.cookieKey || "i18n_redirected" + }; +} +function resolveRootRedirect(config) { + if (!config) { + return void 0; + } + return { + path: "/" + (isString(config) ? config : config.path).replace(/^\//, ""), + code: !isString(config) && config.statusCode || 302 + }; +} +function toArray(value) { + return Array.isArray(value) ? value : [value]; +} + +function createLocaleConfigs(fallbackLocale) { + const localeConfigs = {}; + for (const locale of localeCodes) { + const fallbacks = getFallbackLocaleCodes(fallbackLocale, [locale]); + const cacheable = isLocaleWithFallbacksCacheable(locale, fallbacks); + localeConfigs[locale] = { fallbacks, cacheable }; + } + return localeConfigs; +} +function getFallbackLocaleCodes(fallback, locales) { + if (fallback === false) { + return []; + } + if (isArray(fallback)) { + return fallback; + } + let fallbackLocales = []; + if (isString(fallback)) { + if (locales.every((locale) => locale !== fallback)) { + fallbackLocales.push(fallback); + } + return fallbackLocales; + } + const targets = [...locales, "default"]; + for (const locale of targets) { + if (locale in fallback == false) { + continue; + } + fallbackLocales = [...fallbackLocales, ...fallback[locale].filter(Boolean)]; + } + return fallbackLocales; +} +function isLocaleCacheable(locale) { + return localeLoaders[locale] != null && localeLoaders[locale].every((loader) => loader.cache !== false); +} +function isLocaleWithFallbacksCacheable(locale, fallbackLocales) { + return isLocaleCacheable(locale) && fallbackLocales.every((fallbackLocale) => isLocaleCacheable(fallbackLocale)); +} +function getDefaultLocaleForDomain(host) { + return normalizedLocales.find((l) => !!l.defaultForDomains?.includes(host))?.code; +} +const isSupportedLocale = (locale) => localeCodes.includes(locale || ""); + +function useI18nContext(event) { + if (event.context.nuxtI18n == null) { + throw new Error("Nuxt I18n server context has not been set up yet."); + } + return event.context.nuxtI18n; +} +function tryUseI18nContext(event) { + return event.context.nuxtI18n; +} +const getHost = (event) => getRequestURL(event, { xForwardedHost: true }).host; +async function initializeI18nContext(event) { + const runtimeI18n = useRuntimeI18n(void 0, event); + const defaultLocale = runtimeI18n.defaultLocale || ""; + const options = await setupVueI18nOptions(getDefaultLocaleForDomain(getHost(event)) || defaultLocale); + const localeConfigs = createLocaleConfigs(options.fallbackLocale); + const ctx = createI18nContext(); + ctx.vueI18nOptions = options; + ctx.localeConfigs = localeConfigs; + event.context.nuxtI18n = ctx; + return ctx; +} +function createI18nContext() { + return { + messages: {}, + slp: {}, + localeConfigs: {}, + trackMap: {}, + vueI18nOptions: void 0, + trackKey(key, locale) { + this.trackMap[locale] ??= /* @__PURE__ */ new Set(); + this.trackMap[locale].add(key); + } + }; +} + +function matchBrowserLocale(locales, browserLocales) { + const matchedLocales = []; + for (const [index, browserCode] of browserLocales.entries()) { + const matchedLocale = locales.find((l) => l.language?.toLowerCase() === browserCode.toLowerCase()); + if (matchedLocale) { + matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length }); + break; + } + } + for (const [index, browserCode] of browserLocales.entries()) { + const languageCode = browserCode.split("-")[0].toLowerCase(); + const matchedLocale = locales.find((l) => l.language?.split("-")[0].toLowerCase() === languageCode); + if (matchedLocale) { + matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length }); + break; + } + } + return matchedLocales; +} +function compareBrowserLocale(a, b) { + if (a.score === b.score) { + return b.code.length - a.code.length; + } + return b.score - a.score; +} +function findBrowserLocale(locales, browserLocales) { + const matchedLocales = matchBrowserLocale( + locales.map((l) => ({ code: l.code, language: l.language || l.code })), + browserLocales + ); + return matchedLocales.sort(compareBrowserLocale).at(0)?.code ?? ""; +} + +const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[],"style":[],"script":[],"noscript":[]}; + +const appRootTag = "div"; + +const appRootAttrs = {"id":"__nuxt"}; + +const appTeleportTag = "div"; + +const appTeleportAttrs = {"id":"teleports"}; + +const appId = "nuxt-app"; + +const separator = "___"; +const pathLanguageParser = createPathIndexLanguageParser(0); +const getLocaleFromRoutePath = (path) => pathLanguageParser(path); +const getLocaleFromRouteName = (name) => name.split(separator).at(1) ?? ""; +function normalizeInput(input) { + return typeof input !== "object" ? String(input) : String(input?.name || input?.path || ""); +} +function getLocaleFromRoute(route) { + const input = normalizeInput(route); + if (input[0] === "/") { + return getLocaleFromRoutePath(input); + } + const fromName = getLocaleFromRouteName(input); + if (fromName) { + return fromName; + } + if (typeof route === "object" && route?.path) { + return getLocaleFromRoutePath(String(route.path)); + } + return ""; +} + +function matchDomainLocale(locales, host, pathLocale) { + const normalizeDomain = (domain = "") => domain.replace(/https?:\/\//, ""); + const matches = locales.filter( + (locale) => normalizeDomain(locale.domain) === host || toArray(locale.domains).includes(host) + ); + if (matches.length <= 1) { + return matches[0]?.code; + } + return ( + // match by current path locale + matches.find((l) => l.code === pathLocale)?.code || matches.find((l) => l.defaultForDomains?.includes(host) ?? l.domainDefault)?.code + ); +} + +const getCookieLocale = (event, cookieName) => (getCookie(event, cookieName)) || void 0; +const getRouteLocale = (event, route) => getLocaleFromRoute(route); +const getHeaderLocale = (event) => findBrowserLocale(normalizedLocales, parseAcceptLanguage(getRequestHeader(event, "accept-language") || "")); +const getHostLocale = (event, path, domainLocales) => { + const host = getRequestURL(event, { xForwardedHost: true }).host; + const locales = normalizedLocales.map((l) => ({ + ...l, + domain: domainLocales[l.code]?.domain ?? l.domain + })); + return matchDomainLocale(locales, host, getLocaleFromRoutePath(path)); +}; +const useDetectors = (event, config, nuxtApp) => { + if (!event) { + throw new Error("H3Event is required for server-side locale detection"); + } + const runtimeI18n = useRuntimeI18n(); + return { + cookie: () => getCookieLocale(event, config.cookieKey), + header: () => getHeaderLocale(event) , + navigator: () => void 0, + host: (path) => getHostLocale(event, path, runtimeI18n.domainLocales), + route: (path) => getRouteLocale(event, path) + }; +}; + +// Generated by @nuxtjs/i18n +const pathToI18nConfig = {}; +const i18nPathToPath = {}; +const disabledI18nPathToPath = {}; + +const formatTrailingSlash = withoutTrailingSlash; +const matcher = createRouterMatcher([], {}); +for (const path of Object.keys(i18nPathToPath)) { + matcher.addRoute({ path, component: () => "", meta: {} }); +} +const disabledI18nMatcher = createRouterMatcher([], {}); +for (const path of Object.keys(disabledI18nPathToPath)) { + disabledI18nMatcher.addRoute({ path, component: () => "", meta: {} }); +} +const getI18nPathToI18nPath = (path, locale) => { + if (!path || !locale) { + return; + } + const plainPath = i18nPathToPath[path]; + const i18nConfig = pathToI18nConfig[plainPath]; + if (i18nConfig && i18nConfig[locale]) { + return i18nConfig[locale] === true ? plainPath : i18nConfig[locale]; + } +}; +function isExistingNuxtRoute(path) { + if (path === "") { + return; + } + if (path.endsWith("/__nuxt_error")) { + return; + } + const disabledI18nResolvedMatch = disabledI18nMatcher.resolve({ path }, { path: "/", name: "", matched: [], params: {}, meta: {} }); + if (disabledI18nResolvedMatch.matched.length > 0) { + return; + } + const resolvedMatch = matcher.resolve({ path }, { path: "/", name: "", matched: [], params: {}, meta: {} }); + return resolvedMatch.matched.length > 0 ? resolvedMatch : void 0; +} +function matchLocalized(path, locale, defaultLocale) { + if (path === "") { + return; + } + const parsed = parsePath(path); + const resolvedMatch = matcher.resolve( + { path: parsed.pathname || "/" }, + { path: "/", name: "", matched: [], params: {}, meta: {} } + ); + if (resolvedMatch.matched.length > 0) { + const alternate = getI18nPathToI18nPath(resolvedMatch.matched[0].path, locale); + const match = matcher.resolve( + { params: resolvedMatch.params }, + { path: alternate || "/", name: "", matched: [], params: {}, meta: {} } + ); + return formatTrailingSlash(withLeadingSlash(joinURL("", match.path)), true); + } +} + +function* detect(detectors, detection, path) { + if (detection.enabled) { + yield { locale: detectors.cookie(), source: "cookie" }; + yield { locale: detectors.header(), source: "header" }; + } + yield { locale: detection.fallbackLocale, source: "fallback" }; +} +function createRedirectResponse(event, dest, code) { + event.node.res.setHeader("location", dest); + event.node.res.statusCode = sanitizeStatusCode(code, event.node.res.statusCode); + return { + headers: event.node.res.getHeaders(), + statusCode: event.node.res.statusCode, + body: `` + }; +} +const _HSLR6LVYB6Jxg8OzRp1aUz6fuSwaQ2FVuwBtHNuoR0w = defineNitroPlugin(async (nitro) => { + const runtimeI18n = useRuntimeI18n(); + const rootRedirect = resolveRootRedirect(runtimeI18n.rootRedirect); + runtimeI18n.defaultLocale || ""; + try { + const cacheStorage = useStorage("cache"); + const cachedKeys = await cacheStorage.getKeys("nitro:handlers:i18n"); + await Promise.all(cachedKeys.map((key) => cacheStorage.removeItem(key))); + } catch { + } + const detection = useI18nDetection(); + const cookieOptions = { + path: "/", + domain: detection.cookieDomain || void 0, + maxAge: 60 * 60 * 24 * 365, + sameSite: "lax", + secure: detection.cookieSecure + }; + const createBaseUrlGetter = () => { + isFunction(runtimeI18n.baseUrl) ? "" : runtimeI18n.baseUrl || ""; + if (isFunction(runtimeI18n.baseUrl)) { + return () => ""; + } + return (event, defaultLocale) => { + return ""; + }; + }; + function resolveRedirectPath(event, path, pathLocale, defaultLocale, detector) { + let locale = ""; + for (const detected of detect(detector, detection, event.path)) { + if (detected.locale && isSupportedLocale(detected.locale)) { + locale = detected.locale; + break; + } + } + locale ||= defaultLocale; + function getLocalizedMatch(locale2) { + const res = matchLocalized(path || "/", locale2); + if (res && res !== event.path) { + return res; + } + } + let resolvedPath = void 0; + let redirectCode = 302; + const requestURL = getRequestURL(event); + if (rootRedirect && requestURL.pathname === "/") { + locale = detection.enabled && locale || defaultLocale; + resolvedPath = isSupportedLocale(detector.route(rootRedirect.path)) && rootRedirect.path || matchLocalized(rootRedirect.path, locale); + redirectCode = rootRedirect.code; + } else if (runtimeI18n.redirectStatusCode) { + redirectCode = runtimeI18n.redirectStatusCode; + } + switch (detection.redirectOn) { + case "root": + if (requestURL.pathname !== "/") { + break; + } + // fallthrough (root has no prefix) + case "no prefix": + if (pathLocale) { + break; + } + // fallthrough to resolve + case "all": + resolvedPath ??= getLocalizedMatch(locale); + break; + } + if (requestURL.pathname === "/" && "no_prefix" === "prefix") ; + return { path: resolvedPath, code: redirectCode, locale }; + } + const baseUrlGetter = createBaseUrlGetter(); + nitro.hooks.hook("request", async (event) => { + await initializeI18nContext(event); + }); + nitro.hooks.hook("render:before", async (context) => { + const { event } = context; + const ctx = useI18nContext(event); + const url = getRequestURL(event); + const detector = useDetectors(event, detection); + const localeSegment = detector.route(event.path); + const pathLocale = isSupportedLocale(localeSegment) && localeSegment || void 0; + const path = (pathLocale && url.pathname.slice(pathLocale.length + 1)) ?? url.pathname; + if (!url.pathname.includes("/_i18n") && !isExistingNuxtRoute(path)) { + return; + } + const resolved = resolveRedirectPath(event, path, pathLocale, ctx.vueI18nOptions.defaultLocale, detector); + if (resolved.path && resolved.path !== url.pathname) { + ctx.detectLocale = resolved.locale; + detection.useCookie && setCookie(event, detection.cookieKey, resolved.locale, cookieOptions); + context.response = createRedirectResponse( + event, + joinURL(baseUrlGetter(event, ctx.vueI18nOptions.defaultLocale), resolved.path + url.search), + resolved.code + ); + return; + } + }); + nitro.hooks.hook("render:html", (htmlContext, { event }) => { + tryUseI18nContext(event); + }); +}); + const plugins = [ - + _HSLR6LVYB6Jxg8OzRp1aUz6fuSwaQ2FVuwBtHNuoR0w ]; const assets = { - "/_nuxt/BoAo7BJa.js": { + "/_nuxt/9W9VXtTt.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"1db2-up6AHk0NiO9ou3IvLatc8XjW6QA\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 7602, - "path": "../public/_nuxt/BoAo7BJa.js" + "etag": "\"d10-1ygGQ8OwwV4VTbe0ORwxMQ/AnEU\"", + "mtime": "2026-06-25T00:01:28.108Z", + "size": 3344, + "path": "../public/_nuxt/9W9VXtTt.js" }, - "/_nuxt/BFfxzM5G.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"c0-K2O4LFT1vJU6rnJRRB+Cs3j2utc\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 192, - "path": "../public/_nuxt/BFfxzM5G.js" + "/logo.svg": { + "type": "image/svg+xml", + "etag": "\"1c93-1cv7aKDbuz99JYhQ43U9hm4KE3Q\"", + "mtime": "2026-06-25T00:01:28.112Z", + "size": 7315, + "path": "../public/logo.svg" }, - "/_nuxt/BW9w-mbE.js": { + "/_nuxt/BO90Bn6x.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"286d-lCT/2D9g0XNTbn8hHuhdgJ6YcBc\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 10349, - "path": "../public/_nuxt/BW9w-mbE.js" + "etag": "\"3be2-eOMMdZRJVXep6GD0Pd3WgyaGHBQ\"", + "mtime": "2026-06-25T00:01:28.108Z", + "size": 15330, + "path": "../public/_nuxt/BO90Bn6x.js" }, - "/_nuxt/ByPKVH1D.js": { + "/_nuxt/C8yzOtqa.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"653-G/Dt6x8akFdKRnXB52KEwYM9EqQ\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 1619, - "path": "../public/_nuxt/ByPKVH1D.js" + "etag": "\"e97-g+Qv3oIgIL72U9J8qSVSJKOYS3o\"", + "mtime": "2026-06-25T00:01:28.108Z", + "size": 3735, + "path": "../public/_nuxt/C8yzOtqa.js" }, - "/_nuxt/Di-57MrI.js": { + "/_nuxt/CC4zKGJo.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"f7-Auow7aSrSMDrNnG64RskpW44Pl8\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 247, - "path": "../public/_nuxt/Di-57MrI.js" + "etag": "\"30f7-gXOCgC6dBhanJ7m+eXDasYpx3Mw\"", + "mtime": "2026-06-25T00:01:28.108Z", + "size": 12535, + "path": "../public/_nuxt/CC4zKGJo.js" }, - "/_nuxt/CyOWWS80.js": { + "/_nuxt/CWA6Xjbg.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"1bdd-fQWY5IMOigegKsHK1ntCs4eoNXs\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 7133, - "path": "../public/_nuxt/CyOWWS80.js" + "etag": "\"616-/F9iCFrrlsdHfBojvJzEkxWY92A\"", + "mtime": "2026-06-25T00:01:28.109Z", + "size": 1558, + "path": "../public/_nuxt/CWA6Xjbg.js" }, - "/_nuxt/Drr7KP9v.js": { + "/_nuxt/CgyjcGAF.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"1fb8-8iqa1yiIxx4GnzcUpyZTkbN77+c\"", - "mtime": "2026-06-24T11:26:56.408Z", + "etag": "\"18ee-IWmEKuI1gHllpfBLWz7c1JaaVb0\"", + "mtime": "2026-06-25T00:01:28.109Z", + "size": 6382, + "path": "../public/_nuxt/CgyjcGAF.js" + }, + "/_nuxt/CqyNVJx6.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"1fb8-6HMViIUt89gbMbGrS+qjniFBDXY\"", + "mtime": "2026-06-25T00:01:28.109Z", "size": 8120, - "path": "../public/_nuxt/Drr7KP9v.js" + "path": "../public/_nuxt/CqyNVJx6.js" }, - "/_nuxt/Oih3kTQ2.js": { + "/_nuxt/Cx40nPNe.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"eb2-TEkcGDho8abUpDXnV+NHbRQ3C+o\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 3762, - "path": "../public/_nuxt/Oih3kTQ2.js" + "etag": "\"d2a-PVIoh3nGCytU0EY8w9TwVEKz5hw\"", + "mtime": "2026-06-25T00:01:28.109Z", + "size": 3370, + "path": "../public/_nuxt/Cx40nPNe.js" }, - "/_nuxt/QKJPEFuj.js": { + "/_nuxt/DP_n9i02.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"1614-wo6CIxUnZeQKOj+X2vzg+jSsrMY\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 5652, - "path": "../public/_nuxt/QKJPEFuj.js" + "etag": "\"1a56-wQcZfXtRyqQuRYq3Vb7WJxYDoKg\"", + "mtime": "2026-06-25T00:01:28.109Z", + "size": 6742, + "path": "../public/_nuxt/DP_n9i02.js" }, - "/_nuxt/XMkMKtwS.js": { + "/_nuxt/DWjNh9rV.js": { "type": "text/javascript; charset=utf-8", - "etag": "\"d12-h1U946TRc/uBF3IaMDmC4ThMnZ4\"", - "mtime": "2026-06-24T11:26:56.409Z", - "size": 3346, - "path": "../public/_nuxt/XMkMKtwS.js" + "etag": "\"444-U5PaXXhpfzdQ9Gz+o+GnJBs7RhA\"", + "mtime": "2026-06-25T00:01:28.109Z", + "size": 1092, + "path": "../public/_nuxt/DWjNh9rV.js" + }, + "/_nuxt/Da4aCGAe.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"1613-5rxIwz6i7CxojjuXQmd8mInWod8\"", + "mtime": "2026-06-25T00:01:28.110Z", + "size": 5651, + "path": "../public/_nuxt/Da4aCGAe.js" + }, + "/_nuxt/DuYZ8wdr.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"a5-dDh+JP1OYQEoH+LiAVuR1WxDtRg\"", + "mtime": "2026-06-25T00:01:28.110Z", + "size": 165, + "path": "../public/_nuxt/DuYZ8wdr.js" }, "/_nuxt/entry.KrfumMBl.css": { "type": "text/css; charset=utf-8", "etag": "\"19-60Qvpq/4eRs/sHLgNwhHUEqqm/o\"", - "mtime": "2026-06-24T11:26:56.409Z", + "mtime": "2026-06-25T00:01:28.110Z", "size": 25, "path": "../public/_nuxt/entry.KrfumMBl.css" }, + "/_nuxt/CqYPuxVf.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"3eefb-JwnLkq4JppZIxgkcGPsOibTdfts\"", + "mtime": "2026-06-25T00:01:28.109Z", + "size": 257787, + "path": "../public/_nuxt/CqYPuxVf.js" + }, "/_nuxt/error-404.DL_4WIao.css": { "type": "text/css; charset=utf-8", "etag": "\"dca-KnjyV0UbpsrliiJzZx69defY74k\"", - "mtime": "2026-06-24T11:26:56.409Z", + "mtime": "2026-06-25T00:01:28.110Z", "size": 3530, "path": "../public/_nuxt/error-404.DL_4WIao.css" }, - "/_nuxt/C3Ck-LNv.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"2ce18-Vu8zq7dD3le9/IDcUsoh5vbFqNg\"", - "mtime": "2026-06-24T11:26:56.408Z", - "size": 183832, - "path": "../public/_nuxt/C3Ck-LNv.js" - }, - "/_nuxt/usmOON9X.js": { - "type": "text/javascript; charset=utf-8", - "etag": "\"d40-3dsegxdEvyySv14DuA4N9Zc6gWU\"", - "mtime": "2026-06-24T11:26:56.409Z", - "size": 3392, - "path": "../public/_nuxt/usmOON9X.js" - }, - "/_nuxt/builds/latest.json": { - "type": "application/json", - "etag": "\"47-6GTIFTb15fghIMjuCzWVPfVbiZo\"", - "mtime": "2026-06-24T11:26:56.403Z", - "size": 71, - "path": "../public/_nuxt/builds/latest.json" - }, "/_nuxt/error-500.I1Dtv2V5.css": { "type": "text/css; charset=utf-8", "etag": "\"75a-vEGyJqldBVJrnMfcLsrGaHcxYl0\"", - "mtime": "2026-06-24T11:26:56.409Z", + "mtime": "2026-06-25T00:01:28.110Z", "size": 1882, "path": "../public/_nuxt/error-500.I1Dtv2V5.css" }, + "/_nuxt/ncKxzOzI.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"7168-oyelrzyCgmWiem0nExZjccXNyBY\"", + "mtime": "2026-06-25T00:01:28.110Z", + "size": 29032, + "path": "../public/_nuxt/ncKxzOzI.js" + }, + "/_nuxt/zPyClsoP.js": { + "type": "text/javascript; charset=utf-8", + "etag": "\"331b-h6zrom30VlrXYypt2LSqaquX5p0\"", + "mtime": "2026-06-25T00:01:28.110Z", + "size": 13083, + "path": "../public/_nuxt/zPyClsoP.js" + }, + "/_nuxt/builds/latest.json": { + "type": "application/json", + "etag": "\"47-dTkj5Cjp5AUFPrYaZFB/8XM0C1s\"", + "mtime": "2026-06-25T00:01:28.102Z", + "size": 71, + "path": "../public/_nuxt/builds/latest.json" + }, + "/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json": { + "type": "application/json", + "etag": "\"58-Jb6y6LJEoI0itMvdHhMqddt3SEo\"", + "mtime": "2026-06-25T00:01:28.098Z", + "size": 88, + "path": "../public/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json" + }, "/_nuxt/builds/meta/dev.json": { "type": "application/json", - "etag": "\"37-oeGqC60aIDyq4MUCy42wlJ1XE48\"", - "mtime": "2026-06-24T11:26:56.399Z", + "etag": "\"37-Hj3Yw6O0wi0qKWP0yCgLQiM2C48\"", + "mtime": "2026-06-25T00:01:28.098Z", "size": 55, "path": "../public/_nuxt/builds/meta/dev.json" }, - "/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json": { - "type": "application/json", - "etag": "\"58-iouVOFp+FrV/yV4WExGo8Jbcy4g\"", - "mtime": "2026-06-24T11:26:56.399Z", - "size": 88, - "path": "../public/_nuxt/builds/meta/30eed3bb-14ef-4661-b342-1d1b41361648.json" - }, "/sf_logo.png": { "type": "image/png", "etag": "\"4366a8-5u0A+e1MYT8zegFkKhhzxt5KbGs\"", - "mtime": "2026-06-24T11:26:56.412Z", + "mtime": "2026-06-25T00:01:28.112Z", "size": 4417192, "path": "../public/sf_logo.png" } @@ -5092,6 +6033,123 @@ const _oStzCE = eventHandler((event) => { return readAsset(id); }); +const storage = prefixStorage(useStorage(), "i18n"); +function cachedFunctionI18n(fn, opts) { + opts = { maxAge: 1, ...opts }; + const pending = {}; + async function get(key, resolver) { + const isPending = pending[key]; + if (!isPending) { + pending[key] = Promise.resolve(resolver()); + } + try { + return await pending[key]; + } finally { + delete pending[key]; + } + } + return async (...args) => { + const key = [opts.name, opts.getKey(...args)].join(":").replace(/:\/$/, ":index"); + const maxAge = opts.maxAge ?? 1; + const isCacheable = !opts.shouldBypassCache(...args) && maxAge >= 0; + const cache = isCacheable && await storage.getItemRaw(key); + if (!cache || cache.ttl < Date.now()) { + pending[key] = Promise.resolve(fn(...args)); + const value = await get(key, () => fn(...args)); + if (isCacheable) { + await storage.setItemRaw(key, { ttl: Date.now() + maxAge * 1e3, value, mtime: Date.now() }); + } + return value; + } + return cache.value; + }; +} + +const _getMessages = async (locale) => { + return { [locale]: await getLocaleMessagesMerged(locale, localeLoaders[locale]) }; +}; +const _getMessagesCached = cachedFunctionI18n(_getMessages, { + name: "messages", + maxAge: 60 * 60 * 24, + getKey: (locale) => locale, + shouldBypassCache: (locale) => !isLocaleCacheable(locale) +}); +const getMessages = _getMessagesCached; +const _getMergedMessages = async (locale, fallbackLocales) => { + const merged = {}; + try { + if (fallbackLocales.length > 0) { + const messages = await Promise.all(fallbackLocales.map(getMessages)); + for (const message2 of messages) { + deepCopy(message2, merged); + } + } + const message = await getMessages(locale); + deepCopy(message, merged); + return merged; + } catch (e) { + throw new Error("Failed to merge messages: " + e.message); + } +}; +const getMergedMessages = cachedFunctionI18n(_getMergedMessages, { + name: "merged-single", + maxAge: 60 * 60 * 24, + getKey: (locale, fallbackLocales) => `${locale}-[${[...new Set(fallbackLocales)].sort().join("-")}]`, + shouldBypassCache: (locale, fallbackLocales) => !isLocaleWithFallbacksCacheable(locale, fallbackLocales) +}); +const _getAllMergedMessages = async (locales) => { + const merged = {}; + try { + const messages = await Promise.all(locales.map(getMessages)); + for (const message of messages) { + deepCopy(message, merged); + } + return merged; + } catch (e) { + throw new Error("Failed to merge messages: " + e.message); + } +}; +cachedFunctionI18n(_getAllMergedMessages, { + name: "merged-all", + maxAge: 60 * 60 * 24, + getKey: (locales) => locales.join("-"), + shouldBypassCache: (locales) => !locales.every((locale) => isLocaleCacheable(locale)) +}); + +const _messagesHandler = defineEventHandler(async (event) => { + const locale = getRouterParam(event, "locale"); + if (!locale) { + throw createError$1({ status: 400, message: "Locale not specified." }); + } + const ctx = useI18nContext(event); + if (ctx.localeConfigs && locale in ctx.localeConfigs === false) { + throw createError$1({ status: 404, message: `Locale '${locale}' not found.` }); + } + const messages = await getMergedMessages(locale, ctx.localeConfigs?.[locale]?.fallbacks ?? []); + deepCopy(messages, ctx.messages); + return ctx.messages; +}); +const _cachedMessageLoader = defineCachedFunction(_messagesHandler, { + name: "i18n:messages-internal", + maxAge: 60 * 60 * 24, + getKey: (event) => [getRouterParam(event, "locale") ?? "null", getRouterParam(event, "hash") ?? "null"].join("-"), + async shouldBypassCache(event) { + const locale = getRouterParam(event, "locale"); + if (locale == null) { + return false; + } + const ctx = tryUseI18nContext(event) || await initializeI18nContext(event); + return !ctx.localeConfigs?.[locale]?.cacheable; + } +}); +const _messagesHandlerCached = defineCachedEventHandler(_cachedMessageLoader, { + name: "i18n:messages", + maxAge: 10, + swr: false, + getKey: (event) => [getRouterParam(event, "locale") ?? "null", getRouterParam(event, "hash") ?? "null"].join("-") +}); +const _cSDLJw = _messagesHandlerCached; + const _SxA8c9 = defineEventHandler(() => {}); const _lazy_0XwxzV = () => import('../routes/renderer.mjs').then(function (n) { return n.r; }); @@ -5099,6 +6157,7 @@ const _lazy_0XwxzV = () => import('../routes/renderer.mjs').then(function (n) { const handlers = [ { route: '', handler: _oStzCE, lazy: false, middleware: true, method: undefined }, { route: '/__nuxt_error', handler: _lazy_0XwxzV, lazy: true, middleware: false, method: undefined }, + { route: '/_i18n/:hash/:locale/messages.json', handler: _cSDLJw, lazy: false, middleware: false, method: undefined }, { route: '/__nuxt_island/**', handler: _SxA8c9, lazy: false, middleware: false, method: undefined }, { route: '/**', handler: _lazy_0XwxzV, lazy: true, middleware: false, method: undefined } ]; @@ -5244,45 +6303,6 @@ function useNitroApp() { } runNitroPlugins(nitroApp$1); -function defineRenderHandler(render) { - const runtimeConfig = useRuntimeConfig(); - return eventHandler(async (event) => { - const nitroApp = useNitroApp(); - const ctx = { event, render, response: void 0 }; - await nitroApp.hooks.callHook("render:before", ctx); - if (!ctx.response) { - if (event.path === `${runtimeConfig.app.baseURL}favicon.ico`) { - setResponseHeader(event, "Content-Type", "image/x-icon"); - return send( - event, - "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" - ); - } - ctx.response = await ctx.render(event); - if (!ctx.response) { - const _currentStatus = getResponseStatus(event); - setResponseStatus(event, _currentStatus === 200 ? 500 : _currentStatus); - return send( - event, - "No response returned from render handler: " + event.path - ); - } - } - await nitroApp.hooks.callHook("render:response", ctx.response, ctx); - if (ctx.response.headers) { - setResponseHeaders(event, ctx.response.headers); - } - if (ctx.response.statusCode || ctx.response.statusMessage) { - setResponseStatus( - event, - ctx.response.statusCode, - ctx.response.statusMessage - ); - } - return ctx.response.body; - }); -} - const NullObject = /* @__PURE__ */ (() => { const C = function() { }; @@ -5608,5 +6628,5 @@ trapUnhandledNodeErrors(); setupGracefulShutdown(listener, nitroApp); const nodeServer = {}; -export { $fetch as $, setCookie as A, getCookie as B, deleteCookie as C, parseQuery as D, withTrailingSlash as E, withoutTrailingSlash as F, nodeServer as G, getRouteRules as a, getResponseStatusText as b, createError$1 as c, defineRenderHandler as d, encodePath as e, getResponseStatus as f, getQuery as g, useNitroApp as h, decodePath as i, joinRelativeURL as j, hasProtocol as k, isScriptProtocol as l, joinURL as m, getContext as n, defu as o, parseURL as p, createHooks as q, executeAsync as r, sanitizeStatusCode as s, klona as t, useRuntimeConfig as u, parse as v, withQuery as w, getRequestHeader as x, destr as y, isEqual as z }; +export { $fetch$1 as $, destr as A, isEqual as B, sanitizeStatusCode as C, setCookie as D, getCookie as E, deleteCookie as F, getContext as G, baseURL as H, defu as I, createHooks as J, executeAsync as K, getRequestURL as L, createDefu as M, parsePath as N, parseQuery as O, withoutTrailingSlash as P, withTrailingSlash as Q, nodeServer as R, appRootTag as a, buildAssetsURL as b, appRootAttrs as c, appId as d, encodePath as e, defineRenderHandler as f, appTeleportTag as g, appTeleportAttrs as h, getQuery as i, createError$1 as j, appHead as k, getRouteRules as l, getResponseStatusText as m, getResponseStatus as n, useNitroApp as o, publicAssetsURL as p, klona as q, parseURL as r, decodePath as s, hasProtocol as t, useRuntimeConfig as u, isScriptProtocol as v, joinURL as w, withQuery as x, parse as y, getRequestHeader as z }; //# sourceMappingURL=nitro.mjs.map diff --git a/frontend_admin/.output/server/chunks/nitro/nitro.mjs.map b/frontend_admin/.output/server/chunks/nitro/nitro.mjs.map index 556dc3d..f3ff311 100644 --- a/frontend_admin/.output/server/chunks/nitro/nitro.mjs.map +++ b/frontend_admin/.output/server/chunks/nitro/nitro.mjs.map @@ -1 +1 @@ -{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/destr/dist/index.mjs","../../../../node_modules/ufo/dist/index.mjs","../../../../node_modules/h3/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/radix3/dist/index.mjs","../../../../node_modules/defu/dist/defu.mjs","../../../../node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/h3/dist/index.mjs","../../../../node_modules/hookable/dist/index.mjs","../../../../node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/ofetch/dist/node.mjs","../../../../node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/unstorage/dist/index.mjs","../../../../node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/klona/dist/index.mjs","../../../../node_modules/scule/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/unctx/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules-utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/cookie-es/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/nitropack/dist/runtime/internal/shutdown.mjs","../../../../node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"names":["decode","getQuery","NullObject","parse","tryDecode","serialize","createRouter","f","h","c","i","l","createError","mergeHeaders","s","nodeFetch","Headers","Headers$1","AbortController$1","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","_inlineAppConfig","createRadixRouter","nitroApp","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown","HttpsServer","HttpServer"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]} \ No newline at end of file +{"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/destr/dist/index.mjs","../../../../node_modules/ufo/dist/index.mjs","../../../../node_modules/h3/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/radix3/dist/index.mjs","../../../../node_modules/defu/dist/defu.mjs","../../../../node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/h3/dist/index.mjs","../../../../node_modules/hookable/dist/index.mjs","../../../../node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/ofetch/dist/node.mjs","../../../../node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/unstorage/dist/index.mjs","../../../../node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/klona/dist/index.mjs","../../../../node_modules/scule/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/unctx/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/context.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules-utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/@intlify/shared/dist/shared.mjs","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/messages.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/vue-i18n.js","../../../../node_modules/nitropack/dist/runtime/internal/plugin.mjs","../../../../node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.mjs","../../../../node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/utils.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/locales.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/server/context.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/browser.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/kit/routing.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/domain.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/detection.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/shared/matching.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/server/plugin.js","../../../../node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../node_modules/@nuxtjs/i18n/dist/runtime/server/utils/cache.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/server/utils/messages.js","../../../../node_modules/@nuxtjs/i18n/dist/runtime/server/routes/messages.js","../../../../node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/cookie-es/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/nitropack/dist/runtime/internal/shutdown.mjs","../../../../node_modules/nitropack/dist/presets/node/runtime/node-server.mjs"],"names":["decode","getQuery","NullObject","parse","tryDecode","serialize","createRouter","f","h","c","i","l","createError","mergeHeaders","s","nodeFetch","Headers","Headers$1","AbortController$1","$fetch","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","storage","_inlineAppConfig","createRadixRouter","_localeCodes","nitroApp","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown","HttpsServer","HttpServer"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59]} \ No newline at end of file diff --git a/frontend_admin/.output/server/chunks/routes/renderer.mjs b/frontend_admin/.output/server/chunks/routes/renderer.mjs index 86507f8..e3d8dd3 100644 --- a/frontend_admin/.output/server/chunks/routes/renderer.mjs +++ b/frontend_admin/.output/server/chunks/routes/renderer.mjs @@ -1,5 +1,5 @@ import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'vue-bundle-renderer/runtime'; -import { j as joinRelativeURL, u as useRuntimeConfig, e as encodePath, d as defineRenderHandler, g as getQuery, c as createError, a as getRouteRules, b as getResponseStatusText, f as getResponseStatus, h as useNitroApp } from '../nitro/nitro.mjs'; +import { b as buildAssetsURL, p as publicAssetsURL, a as appRootTag, c as appRootAttrs, u as useRuntimeConfig, d as appId, e as encodePath, f as defineRenderHandler, g as appTeleportTag, h as appTeleportAttrs, i as getQuery, j as createError, k as appHead, l as getRouteRules, m as getResponseStatusText, n as getResponseStatus, o as useNitroApp } from '../nitro/nitro.mjs'; import { renderToString } from 'vue/server-renderer'; import { createHead as createHead$1, propsToString, renderSSRHead } from 'unhead/server'; import { stringify, uneval } from 'devalue'; @@ -76,36 +76,6 @@ function createHead(options = {}) { const NUXT_RUNTIME_PAYLOAD_EXTRACTION = false; -const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[],"style":[],"script":[],"noscript":[]}; - -const appRootTag = "div"; - -const appRootAttrs = {"id":"__nuxt"}; - -const appTeleportTag = "div"; - -const appTeleportAttrs = {"id":"teleports"}; - -const appId = "nuxt-app"; - -function baseURL() { - - return useRuntimeConfig().app.baseURL; -} -function buildAssetsDir() { - - return useRuntimeConfig().app.buildAssetsDir; -} -function buildAssetsURL(...path) { - return joinRelativeURL(publicAssetsURL(), buildAssetsDir(), ...path); -} -function publicAssetsURL(...path) { - - const app = useRuntimeConfig().app; - const publicBase = app.cdnURL || app.baseURL; - return path.length ? joinRelativeURL(publicBase, ...path) : publicBase; -} - // @ts-expect-error private property consumed by vite-generated url helpers globalThis.__buildAssetsURL = buildAssetsURL; // @ts-expect-error private property consumed by vite-generated url helpers @@ -457,5 +427,5 @@ const renderer = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ default: handler }, Symbol.toStringTag, { value: 'Module' })); -export { baseURL as b, headSymbol as h, publicAssetsURL as p, renderer as r, useHead as u }; +export { headSymbol as h, renderer as r, useHead as u }; //# sourceMappingURL=renderer.mjs.map diff --git a/frontend_admin/.output/server/chunks/routes/renderer.mjs.map b/frontend_admin/.output/server/chunks/routes/renderer.mjs.map index d47cd0f..22ee8b9 100644 --- a/frontend_admin/.output/server/chunks/routes/renderer.mjs.map +++ b/frontend_admin/.output/server/chunks/routes/renderer.mjs.map @@ -1 +1 @@ -{"version":3,"file":"renderer.mjs","sources":["../../../../node_modules/@unhead/vue/dist/shared/vue.N9zWjxoK.mjs","../../../../node_modules/@unhead/vue/dist/shared/vue.Cr7xSEtD.mjs","../../../../node_modules/@unhead/vue/dist/server.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/build-files.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/payload.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/app.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/inline-styles.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/renderer.mjs"],"names":["renderToString","_renderToString"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]} \ No newline at end of file +{"version":3,"file":"renderer.mjs","sources":["../../../../node_modules/@unhead/vue/dist/shared/vue.N9zWjxoK.mjs","../../../../node_modules/@unhead/vue/dist/shared/vue.Cr7xSEtD.mjs","../../../../node_modules/@unhead/vue/dist/server.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/build-files.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/payload.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/app.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/inline-styles.mjs","../../../../node_modules/@nuxt/nitro-server/dist/runtime/handlers/renderer.mjs"],"names":["renderToString","_renderToString"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7]} \ No newline at end of file diff --git a/frontend_admin/.output/server/index.mjs b/frontend_admin/.output/server/index.mjs index e39bd7f..9063396 100644 --- a/frontend_admin/.output/server/index.mjs +++ b/frontend_admin/.output/server/index.mjs @@ -1,10 +1,11 @@ import process from 'node:process';globalThis._importMeta_={url:import.meta.url,env:process.env};import 'node:http'; import 'node:https'; -export { G as default } from './chunks/nitro/nitro.mjs'; +export { R as default } from './chunks/nitro/nitro.mjs'; import 'node:events'; import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; +import 'vue-router'; import 'node:url'; //# sourceMappingURL=index.mjs.map diff --git a/frontend_admin/.output/server/index.mjs.map b/frontend_admin/.output/server/index.mjs.map index 8cf57d6..efc7f99 100644 --- a/frontend_admin/.output/server/index.mjs.map +++ b/frontend_admin/.output/server/index.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index.mjs","sources":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file +{"version":3,"file":"index.mjs","sources":[],"names":[],"mappings":";;;;;;;;;"} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/node_modules/@vue/devtools-kit b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/node_modules/@vue/devtools-kit new file mode 120000 index 0000000..5295bb7 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/node_modules/@vue/devtools-kit @@ -0,0 +1 @@ +../../../devtools-kit@7.7.9 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/dist/index.js b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/dist/index.js new file mode 100644 index 0000000..77fd270 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/dist/index.js @@ -0,0 +1,2 @@ +import { addCustomCommand, addCustomTab, onDevToolsClientConnected, onDevToolsConnected, removeCustomCommand, setupDevToolsPlugin, setupDevToolsPlugin as setupDevtoolsPlugin } from "@vue/devtools-kit"; +export { addCustomCommand, addCustomTab, onDevToolsClientConnected, onDevToolsConnected, removeCustomCommand, setupDevToolsPlugin, setupDevtoolsPlugin }; diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/node_modules/@vue/devtools-kit b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/node_modules/@vue/devtools-kit new file mode 120000 index 0000000..025f921 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/node_modules/@vue/devtools-kit @@ -0,0 +1 @@ +../../../devtools-kit@8.1.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/package.json b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/package.json new file mode 100644 index 0000000..293bfb1 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-api@8.1.3/package.json @@ -0,0 +1,34 @@ +{ + "name": "@vue/devtools-api", + "type": "module", + "version": "8.1.3", + "author": "webfansplz", + "license": "MIT", + "repository": { + "directory": "packages/devtools-api", + "type": "git", + "url": "git+https://github.com/vuejs/devtools.git" + }, + "sideEffects": false, + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "unpkg": "dist/vue-devtools-api.global.js", + "jsdelivr": "dist/vue-devtools-api.global.js", + "files": [ + "dist" + ], + "dependencies": { + "@vue/devtools-kit": "^8.1.3" + }, + "scripts": { + "build": "tsdown --clean", + "prepare:type": "tsdown --dts-only", + "stub": "tsdown --watch --onSuccess 'tsdown --dts-only'" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/dist/index.cjs similarity index 100% rename from frontend_admin/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs rename to frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/dist/index.cjs diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/@vue/devtools-shared b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/@vue/devtools-shared new file mode 120000 index 0000000..a3ebf10 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/@vue/devtools-shared @@ -0,0 +1 @@ +../../../devtools-shared@7.7.9 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/hookable b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/hookable new file mode 120000 index 0000000..69e84d2 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/hookable @@ -0,0 +1 @@ +../../../hookable@5.5.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/perfect-debounce b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/perfect-debounce new file mode 120000 index 0000000..6a2bf4a --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/node_modules/perfect-debounce @@ -0,0 +1 @@ +../../../perfect-debounce@1.0.0 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-kit/package.json b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/package.json similarity index 100% rename from frontend_admin/.output/server/node_modules/@vue/devtools-kit/package.json rename to frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@7.7.9/package.json diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/dist/index.js b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/dist/index.js new file mode 100644 index 0000000..737beb9 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/dist/index.js @@ -0,0 +1,5670 @@ +import { basename, camelize, classify, deepClone, isBrowser, isNuxtApp, isUrlString, kebabize, target } from "@vue/devtools-shared"; +import { debounce } from "perfect-debounce"; +import { createHooks } from "hookable"; +import { createBirpc, createBirpcGroup } from "birpc"; +//#region \0rolldown/runtime.js +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { + key = keys[i]; + if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { + get: ((k) => from[k]).bind(null, key), + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true +}) : target, mod)); +//#endregion +//#region src/compat/index.ts +function onLegacyDevToolsPluginApiAvailable(cb) { + if (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__) { + cb(); + return; + } + Object.defineProperty(target, "__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__", { + set(value) { + if (value) cb(); + }, + configurable: true + }); +} +//#endregion +//#region src/core/component/utils/index.ts +function getComponentTypeName(options) { + if (typeof options === "function") return options.displayName || options.name || options.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ || ""; + const name = options.name || options._componentTag || options.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ || options.__name; + if (name === "index" && options.__file?.endsWith("index.vue")) return ""; + return name; +} +function getComponentFileName(options) { + const file = options.__file; + if (file) return classify(basename(file, ".vue")); +} +function getComponentName(options) { + const name = options.displayName || options.name || options._componentTag; + if (name) return name; + return getComponentFileName(options); +} +function saveComponentGussedName(instance, name) { + instance.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ = name; + return name; +} +function getAppRecord(instance) { + if (instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__) return instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__; + else if (instance.root) return instance.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__; +} +async function getComponentId(options) { + const { app, uid, instance } = options; + try { + if (instance.__VUE_DEVTOOLS_NEXT_UID__) return instance.__VUE_DEVTOOLS_NEXT_UID__; + const appRecord = await getAppRecord(app); + if (!appRecord) return null; + const isRoot = appRecord.rootInstance === instance; + return `${appRecord.id}:${isRoot ? "root" : uid}`; + } catch (e) {} +} +function isFragment(instance) { + const subTreeType = instance.subTree?.type; + const appRecord = getAppRecord(instance); + if (appRecord) return appRecord?.types?.Fragment === subTreeType; + return false; +} +function isBeingDestroyed(instance) { + return instance._isBeingDestroyed || instance.isUnmounted; +} +/** +* Get the appropriate display name for an instance. +* +* @param {Vue} instance +* @return {string} +*/ +function getInstanceName(instance) { + const name = getComponentTypeName(instance?.type || {}); + if (name) return name; + if (instance?.root === instance) return "Root"; + for (const key in instance.parent?.type?.components) if (instance.parent.type.components[key] === instance?.type) return saveComponentGussedName(instance, key); + for (const key in instance.appContext?.components) if (instance.appContext.components[key] === instance?.type) return saveComponentGussedName(instance, key); + const fileName = getComponentFileName(instance?.type || {}); + if (fileName) return fileName; + return "Anonymous Component"; +} +/** +* Returns a devtools unique id for instance. +* @param {Vue} instance +*/ +function getUniqueComponentId(instance) { + return `${instance?.appContext?.app?.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__ ?? 0}:${instance === instance?.root ? "root" : instance.uid}`; +} +function getRenderKey(value) { + if (value == null) return ""; + if (typeof value === "number") return value; + else if (typeof value === "string") return `'${value}'`; + else if (Array.isArray(value)) return "Array"; + else return "Object"; +} +function returnError(cb) { + try { + return cb(); + } catch (e) { + return e; + } +} +function getComponentInstance(appRecord, instanceId) { + instanceId = instanceId || `${appRecord.id}:root`; + return appRecord.instanceMap.get(instanceId) || appRecord.instanceMap.get(":root"); +} +function ensurePropertyExists(obj, key, skipObjCheck = false) { + return skipObjCheck ? key in obj : typeof obj === "object" && obj !== null ? key in obj : false; +} +//#endregion +//#region src/core/component/state/bounding-rect.ts +function createRect() { + const rect = { + top: 0, + bottom: 0, + left: 0, + right: 0, + get width() { + return rect.right - rect.left; + }, + get height() { + return rect.bottom - rect.top; + } + }; + return rect; +} +let range; +function getTextRect(node) { + if (!range) range = document.createRange(); + range.selectNode(node); + return range.getBoundingClientRect(); +} +function getFragmentRect(vnode) { + const rect = createRect(); + if (!vnode.children) return rect; + for (let i = 0, l = vnode.children.length; i < l; i++) { + const childVnode = vnode.children[i]; + let childRect; + if (childVnode.component) childRect = getComponentBoundingRect(childVnode.component); + else if (childVnode.el) { + const el = childVnode.el; + if (el.nodeType === 1 || el.getBoundingClientRect) childRect = el.getBoundingClientRect(); + else if (el.nodeType === 3 && el.data.trim()) childRect = getTextRect(el); + } + if (childRect) mergeRects(rect, childRect); + } + return rect; +} +function mergeRects(a, b) { + if (!a.top || b.top < a.top) a.top = b.top; + if (!a.bottom || b.bottom > a.bottom) a.bottom = b.bottom; + if (!a.left || b.left < a.left) a.left = b.left; + if (!a.right || b.right > a.right) a.right = b.right; + return a; +} +const DEFAULT_RECT = { + top: 0, + left: 0, + right: 0, + bottom: 0, + width: 0, + height: 0 +}; +function getComponentBoundingRect(instance) { + const el = instance.subTree.el; + if (typeof window === "undefined") return DEFAULT_RECT; + if (isFragment(instance)) return getFragmentRect(instance.subTree); + else if (el?.nodeType === 1) return el?.getBoundingClientRect(); + else if (instance.subTree.component) return getComponentBoundingRect(instance.subTree.component); + else return DEFAULT_RECT; +} +//#endregion +//#region src/core/component/tree/el.ts +function getRootElementsFromComponentInstance(instance) { + if (isFragment(instance)) return getFragmentRootElements(instance.subTree); + if (!instance.subTree) return []; + return [instance.subTree.el]; +} +function getFragmentRootElements(vnode) { + if (!vnode.children) return []; + const list = []; + vnode.children.forEach((childVnode) => { + if (childVnode.component) list.push(...getRootElementsFromComponentInstance(childVnode.component)); + else if (childVnode?.el) list.push(childVnode.el); + }); + return list; +} +//#endregion +//#region src/core/component-highlighter/index.ts +const CONTAINER_ELEMENT_ID = "__vue-devtools-component-inspector__"; +const CARD_ELEMENT_ID = "__vue-devtools-component-inspector__card__"; +const COMPONENT_NAME_ELEMENT_ID = "__vue-devtools-component-inspector__name__"; +const INDICATOR_ELEMENT_ID = "__vue-devtools-component-inspector__indicator__"; +const containerStyles = { + display: "block", + zIndex: 2147483640, + position: "fixed", + backgroundColor: "#42b88325", + border: "1px solid #42b88350", + borderRadius: "5px", + transition: "all 0.1s ease-in", + pointerEvents: "none" +}; +const cardStyles = { + fontFamily: "Arial, Helvetica, sans-serif", + padding: "5px 8px", + borderRadius: "4px", + textAlign: "left", + position: "absolute", + left: 0, + color: "#e9e9e9", + fontSize: "14px", + fontWeight: 600, + lineHeight: "24px", + backgroundColor: "#42b883", + boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)" +}; +const indicatorStyles = { + display: "inline-block", + fontWeight: 400, + fontStyle: "normal", + fontSize: "12px", + opacity: .7 +}; +function getContainerElement() { + return document.getElementById(CONTAINER_ELEMENT_ID); +} +function getCardElement() { + return document.getElementById(CARD_ELEMENT_ID); +} +function getIndicatorElement() { + return document.getElementById(INDICATOR_ELEMENT_ID); +} +function getNameElement() { + return document.getElementById(COMPONENT_NAME_ELEMENT_ID); +} +function getStyles(bounds) { + return { + left: `${Math.round(bounds.left * 100) / 100}px`, + top: `${Math.round(bounds.top * 100) / 100}px`, + width: `${Math.round(bounds.width * 100) / 100}px`, + height: `${Math.round(bounds.height * 100) / 100}px` + }; +} +function create(options) { + const containerEl = document.createElement("div"); + containerEl.id = options.elementId ?? CONTAINER_ELEMENT_ID; + Object.assign(containerEl.style, { + ...containerStyles, + ...getStyles(options.bounds), + ...options.style + }); + const cardEl = document.createElement("span"); + cardEl.id = CARD_ELEMENT_ID; + Object.assign(cardEl.style, { + ...cardStyles, + top: options.bounds.top < 35 ? 0 : "-35px" + }); + const nameEl = document.createElement("span"); + nameEl.id = COMPONENT_NAME_ELEMENT_ID; + nameEl.innerHTML = `<${options.name}>  `; + const indicatorEl = document.createElement("i"); + indicatorEl.id = INDICATOR_ELEMENT_ID; + indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`; + Object.assign(indicatorEl.style, indicatorStyles); + cardEl.appendChild(nameEl); + cardEl.appendChild(indicatorEl); + containerEl.appendChild(cardEl); + document.body.appendChild(containerEl); + return containerEl; +} +function update(options) { + const containerEl = getContainerElement(); + const cardEl = getCardElement(); + const nameEl = getNameElement(); + const indicatorEl = getIndicatorElement(); + if (containerEl) { + Object.assign(containerEl.style, { + ...containerStyles, + ...getStyles(options.bounds) + }); + Object.assign(cardEl.style, { top: options.bounds.top < 35 ? 0 : "-35px" }); + nameEl.innerHTML = `<${options.name}>  `; + indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`; + } +} +function highlight(instance) { + const bounds = getComponentBoundingRect(instance); + if (!bounds.width && !bounds.height) return; + const name = getInstanceName(instance); + getContainerElement() ? update({ + bounds, + name + }) : create({ + bounds, + name + }); +} +function unhighlight() { + const el = getContainerElement(); + if (el) el.style.display = "none"; +} +let inspectInstance = null; +function inspectFn(e) { + const target = e.target; + if (target) { + const instance = target.__vueParentComponent; + if (instance) { + inspectInstance = instance; + if (instance.vnode.el) { + const bounds = getComponentBoundingRect(instance); + const name = getInstanceName(instance); + getContainerElement() ? update({ + bounds, + name + }) : create({ + bounds, + name + }); + } + } + } +} +function selectComponentFn(e, cb) { + e.preventDefault(); + e.stopPropagation(); + if (inspectInstance) cb(getUniqueComponentId(inspectInstance)); +} +let inspectComponentHighLighterSelectFn = null; +function cancelInspectComponentHighLighter() { + unhighlight(); + window.removeEventListener("mouseover", inspectFn); + window.removeEventListener("click", inspectComponentHighLighterSelectFn, true); + inspectComponentHighLighterSelectFn = null; +} +function inspectComponentHighLighter() { + window.addEventListener("mouseover", inspectFn); + return new Promise((resolve) => { + function onSelect(e) { + e.preventDefault(); + e.stopPropagation(); + selectComponentFn(e, (id) => { + window.removeEventListener("click", onSelect, true); + inspectComponentHighLighterSelectFn = null; + window.removeEventListener("mouseover", inspectFn); + const el = getContainerElement(); + if (el) el.style.display = "none"; + resolve(JSON.stringify({ id })); + }); + } + inspectComponentHighLighterSelectFn = onSelect; + window.addEventListener("click", onSelect, true); + }); +} +function scrollToComponent(options) { + const instance = getComponentInstance(activeAppRecord.value, options.id); + if (instance) { + const [el] = getRootElementsFromComponentInstance(instance); + if (typeof el.scrollIntoView === "function") el.scrollIntoView({ behavior: "smooth" }); + else { + const bounds = getComponentBoundingRect(instance); + const scrollTarget = document.createElement("div"); + const styles = { + ...getStyles(bounds), + position: "absolute" + }; + Object.assign(scrollTarget.style, styles); + document.body.appendChild(scrollTarget); + scrollTarget.scrollIntoView({ behavior: "smooth" }); + setTimeout(() => { + document.body.removeChild(scrollTarget); + }, 2e3); + } + setTimeout(() => { + const bounds = getComponentBoundingRect(instance); + if (bounds.width || bounds.height) { + const name = getInstanceName(instance); + const el = getContainerElement(); + el ? update({ + ...options, + name, + bounds + }) : create({ + ...options, + name, + bounds + }); + setTimeout(() => { + if (el) el.style.display = "none"; + }, 1500); + } + }, 1200); + } +} +//#endregion +//#region src/core/component-inspector/index.ts +target.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__ ??= true; +function toggleComponentInspectorEnabled(enabled) { + target.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__ = enabled; +} +function waitForInspectorInit(cb) { + let total = 0; + const timer = setInterval(() => { + if (target.__VUE_INSPECTOR__) { + clearInterval(timer); + total += 30; + cb(); + } + if (total >= 5e3) clearInterval(timer); + }, 30); +} +function setupInspector() { + const inspector = target.__VUE_INSPECTOR__; + const _openInEditor = inspector.openInEditor; + inspector.openInEditor = async (...params) => { + inspector.disable(); + _openInEditor(...params); + }; +} +function getComponentInspector() { + return new Promise((resolve) => { + function setup() { + setupInspector(); + resolve(target.__VUE_INSPECTOR__); + } + if (!target.__VUE_INSPECTOR__) waitForInspectorInit(() => { + setup(); + }); + else setup(); + }); +} +//#endregion +//#region src/shared/stub-vue.ts +/** +* To prevent include a **HUGE** vue package in the final bundle of chrome ext / electron +* we stub the necessary vue module. +* This implementation is based on the 1c3327a0fa5983aa9078e3f7bb2330f572435425 commit +*/ +/** +* @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/constants.ts#L17-L23) +*/ +let ReactiveFlags = /* @__PURE__ */ function(ReactiveFlags) { + ReactiveFlags["SKIP"] = "__v_skip"; + ReactiveFlags["IS_REACTIVE"] = "__v_isReactive"; + ReactiveFlags["IS_READONLY"] = "__v_isReadonly"; + ReactiveFlags["IS_SHALLOW"] = "__v_isShallow"; + ReactiveFlags["RAW"] = "__v_raw"; + return ReactiveFlags; +}({}); +/** +* @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/reactive.ts#L330-L332) +*/ +function isReadonly(value) { + return !!(value && value[ReactiveFlags.IS_READONLY]); +} +/** +* @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/reactive.ts#L312-L317) +*/ +function isReactive$1(value) { + if (isReadonly(value)) return isReactive$1(value[ReactiveFlags.RAW]); + return !!(value && value[ReactiveFlags.IS_REACTIVE]); +} +function isRef$1(r) { + return !!(r && r.__v_isRef === true); +} +/** +* @from [@vue/reactivity](https://github.com/vuejs/core/blob/1c3327a0fa5983aa9078e3f7bb2330f572435425/packages/reactivity/src/reactive.ts#L372-L375) +*/ +function toRaw$1(observed) { + const raw = observed && observed[ReactiveFlags.RAW]; + return raw ? toRaw$1(raw) : observed; +} +//#endregion +//#region src/core/component/state/editor.ts +var StateEditor = class { + constructor() { + this.refEditor = new RefStateEditor(); + } + set(object, path, value, cb) { + const sections = Array.isArray(path) ? path : path.split("."); + while (sections.length > 1) { + const section = sections.shift(); + if (object instanceof Map) object = object.get(section); + else if (object instanceof Set) object = Array.from(object.values())[section]; + else object = object[section]; + if (this.refEditor.isRef(object)) object = this.refEditor.get(object); + } + const field = sections[0]; + const item = this.refEditor.get(object)[field]; + if (cb) cb(object, field, value); + else if (this.refEditor.isRef(item)) this.refEditor.set(item, value); + else object[field] = value; + } + get(object, path) { + const sections = Array.isArray(path) ? path : path.split("."); + for (let i = 0; i < sections.length; i++) { + if (object instanceof Map) object = object.get(sections[i]); + else object = object[sections[i]]; + if (this.refEditor.isRef(object)) object = this.refEditor.get(object); + if (!object) return void 0; + } + return object; + } + has(object, path, parent = false) { + if (typeof object === "undefined") return false; + const sections = Array.isArray(path) ? path.slice() : path.split("."); + const size = !parent ? 1 : 2; + while (object && sections.length > size) { + const section = sections.shift(); + object = object[section]; + if (this.refEditor.isRef(object)) object = this.refEditor.get(object); + } + return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]); + } + createDefaultSetCallback(state) { + return (object, field, value) => { + if (state.remove || state.newKey) if (Array.isArray(object)) object.splice(field, 1); + else if (toRaw$1(object) instanceof Map) object.delete(field); + else if (toRaw$1(object) instanceof Set) object.delete(Array.from(object.values())[field]); + else Reflect.deleteProperty(object, field); + if (!state.remove) { + const target = object[state.newKey || field]; + if (this.refEditor.isRef(target)) this.refEditor.set(target, value); + else if (toRaw$1(object) instanceof Map) object.set(state.newKey || field, value); + else if (toRaw$1(object) instanceof Set) object.add(value); + else object[state.newKey || field] = value; + } + }; + } +}; +var RefStateEditor = class { + set(ref, value) { + if (isRef$1(ref)) ref.value = value; + else { + if (ref instanceof Set && Array.isArray(value)) { + ref.clear(); + value.forEach((v) => ref.add(v)); + return; + } + const currentKeys = Object.keys(value); + if (ref instanceof Map) { + const previousKeysSet = new Set(ref.keys()); + currentKeys.forEach((key) => { + ref.set(key, Reflect.get(value, key)); + previousKeysSet.delete(key); + }); + previousKeysSet.forEach((key) => ref.delete(key)); + return; + } + const previousKeysSet = new Set(Object.keys(ref)); + currentKeys.forEach((key) => { + Reflect.set(ref, key, Reflect.get(value, key)); + previousKeysSet.delete(key); + }); + previousKeysSet.forEach((key) => Reflect.deleteProperty(ref, key)); + } + } + get(ref) { + return isRef$1(ref) ? ref.value : ref; + } + isRef(ref) { + return isRef$1(ref) || isReactive$1(ref); + } +}; +async function editComponentState(payload, stateEditor) { + const { path, nodeId, state, type } = payload; + const instance = getComponentInstance(activeAppRecord.value, nodeId); + if (!instance) return; + const targetPath = path.slice(); + let target; + if (Object.keys(instance.props).includes(path[0])) target = instance.props; + else if (instance.devtoolsRawSetupState && Object.keys(instance.devtoolsRawSetupState).includes(path[0])) target = instance.devtoolsRawSetupState; + else if (instance.data && Object.keys(instance.data).includes(path[0])) target = instance.data; + else target = instance.proxy; + if (target && targetPath) { + if (state.type === "object" && type === "reactive") {} + stateEditor.set(target, targetPath, state.value, stateEditor.createDefaultSetCallback(state)); + } +} +const stateEditor = new StateEditor(); +async function editState(payload) { + editComponentState(payload, stateEditor); +} +//#endregion +//#region src/core/timeline/storage.ts +const TIMELINE_LAYERS_STATE_STORAGE_ID = "__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__"; +function addTimelineLayersStateToStorage(state) { + if (!isBrowser || typeof localStorage === "undefined" || localStorage === null) return; + localStorage.setItem(TIMELINE_LAYERS_STATE_STORAGE_ID, JSON.stringify(state)); +} +function getTimelineLayersStateFromStorage() { + if (typeof window === "undefined" || !isBrowser || typeof localStorage === "undefined" || localStorage === null) return { + recordingState: false, + mouseEventEnabled: false, + keyboardEventEnabled: false, + componentEventEnabled: false, + performanceEventEnabled: false, + selected: "" + }; + const state = typeof localStorage.getItem !== "undefined" ? localStorage.getItem(TIMELINE_LAYERS_STATE_STORAGE_ID) : null; + return state ? JSON.parse(state) : { + recordingState: false, + mouseEventEnabled: false, + keyboardEventEnabled: false, + componentEventEnabled: false, + performanceEventEnabled: false, + selected: "" + }; +} +//#endregion +//#region src/ctx/timeline.ts +target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS ??= []; +const devtoolsTimelineLayers = new Proxy(target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS, { get(target, prop, receiver) { + return Reflect.get(target, prop, receiver); +} }); +function addTimelineLayer(options, descriptor) { + devtoolsState.timelineLayersState[descriptor.id] = false; + devtoolsTimelineLayers.push({ + ...options, + descriptorId: descriptor.id, + appRecord: getAppRecord(descriptor.app) + }); +} +function updateTimelineLayersState(state) { + const updatedState = { + ...devtoolsState.timelineLayersState, + ...state + }; + addTimelineLayersStateToStorage(updatedState); + updateDevToolsState({ timelineLayersState: updatedState }); +} +//#endregion +//#region src/ctx/inspector.ts +target.__VUE_DEVTOOLS_KIT_INSPECTOR__ ??= []; +const devtoolsInspector = new Proxy(target.__VUE_DEVTOOLS_KIT_INSPECTOR__, { get(target, prop, receiver) { + return Reflect.get(target, prop, receiver); +} }); +const callInspectorUpdatedHook = debounce(() => { + devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT, getActiveInspectors()); +}); +function addInspector(inspector, descriptor) { + devtoolsInspector.push({ + options: inspector, + descriptor, + treeFilterPlaceholder: inspector.treeFilterPlaceholder ?? "Search tree...", + stateFilterPlaceholder: inspector.stateFilterPlaceholder ?? "Search state...", + treeFilter: "", + selectedNodeId: "", + appRecord: getAppRecord(descriptor.app) + }); + callInspectorUpdatedHook(); +} +function getActiveInspectors() { + return devtoolsInspector.filter((inspector) => inspector.descriptor.app === activeAppRecord.value.app).filter((inspector) => inspector.descriptor.id !== "components").map((inspector) => { + const descriptor = inspector.descriptor; + const options = inspector.options; + return { + id: options.id, + label: options.label, + logo: descriptor.logo, + icon: `custom-ic-baseline-${options?.icon?.replace(/_/g, "-")}`, + packageName: descriptor.packageName, + homepage: descriptor.homepage, + pluginId: descriptor.id + }; + }); +} +function getInspectorInfo(id) { + const inspector = getInspector(id, activeAppRecord.value.app); + if (!inspector) return; + const descriptor = inspector.descriptor; + const options = inspector.options; + const timelineLayers = devtoolsTimelineLayers.filter((layer) => layer.descriptorId === descriptor.id).map((item) => ({ + id: item.id, + label: item.label, + color: item.color + })); + return { + id: options.id, + label: options.label, + logo: descriptor.logo, + packageName: descriptor.packageName, + homepage: descriptor.homepage, + timelineLayers, + treeFilterPlaceholder: inspector.treeFilterPlaceholder, + stateFilterPlaceholder: inspector.stateFilterPlaceholder + }; +} +function getInspector(id, app) { + return devtoolsInspector.find((inspector) => inspector.options.id === id && (app ? inspector.descriptor.app === app : true)); +} +function getInspectorActions(id) { + return getInspector(id)?.options.actions; +} +function getInspectorNodeActions(id) { + return getInspector(id)?.options.nodeActions; +} +//#endregion +//#region src/ctx/hook.ts +let DevToolsV6PluginAPIHookKeys = /* @__PURE__ */ function(DevToolsV6PluginAPIHookKeys) { + DevToolsV6PluginAPIHookKeys["VISIT_COMPONENT_TREE"] = "visitComponentTree"; + DevToolsV6PluginAPIHookKeys["INSPECT_COMPONENT"] = "inspectComponent"; + DevToolsV6PluginAPIHookKeys["EDIT_COMPONENT_STATE"] = "editComponentState"; + DevToolsV6PluginAPIHookKeys["GET_INSPECTOR_TREE"] = "getInspectorTree"; + DevToolsV6PluginAPIHookKeys["GET_INSPECTOR_STATE"] = "getInspectorState"; + DevToolsV6PluginAPIHookKeys["EDIT_INSPECTOR_STATE"] = "editInspectorState"; + DevToolsV6PluginAPIHookKeys["INSPECT_TIMELINE_EVENT"] = "inspectTimelineEvent"; + DevToolsV6PluginAPIHookKeys["TIMELINE_CLEARED"] = "timelineCleared"; + DevToolsV6PluginAPIHookKeys["SET_PLUGIN_SETTINGS"] = "setPluginSettings"; + return DevToolsV6PluginAPIHookKeys; +}({}); +let DevToolsContextHookKeys = /* @__PURE__ */ function(DevToolsContextHookKeys) { + DevToolsContextHookKeys["ADD_INSPECTOR"] = "addInspector"; + DevToolsContextHookKeys["SEND_INSPECTOR_TREE"] = "sendInspectorTree"; + DevToolsContextHookKeys["SEND_INSPECTOR_STATE"] = "sendInspectorState"; + DevToolsContextHookKeys["CUSTOM_INSPECTOR_SELECT_NODE"] = "customInspectorSelectNode"; + DevToolsContextHookKeys["TIMELINE_LAYER_ADDED"] = "timelineLayerAdded"; + DevToolsContextHookKeys["TIMELINE_EVENT_ADDED"] = "timelineEventAdded"; + DevToolsContextHookKeys["GET_COMPONENT_INSTANCES"] = "getComponentInstances"; + DevToolsContextHookKeys["GET_COMPONENT_BOUNDS"] = "getComponentBounds"; + DevToolsContextHookKeys["GET_COMPONENT_NAME"] = "getComponentName"; + DevToolsContextHookKeys["COMPONENT_HIGHLIGHT"] = "componentHighlight"; + DevToolsContextHookKeys["COMPONENT_UNHIGHLIGHT"] = "componentUnhighlight"; + return DevToolsContextHookKeys; +}({}); +let DevToolsMessagingHookKeys = /* @__PURE__ */ function(DevToolsMessagingHookKeys) { + DevToolsMessagingHookKeys["SEND_INSPECTOR_TREE_TO_CLIENT"] = "sendInspectorTreeToClient"; + DevToolsMessagingHookKeys["SEND_INSPECTOR_STATE_TO_CLIENT"] = "sendInspectorStateToClient"; + DevToolsMessagingHookKeys["SEND_TIMELINE_EVENT_TO_CLIENT"] = "sendTimelineEventToClient"; + DevToolsMessagingHookKeys["SEND_INSPECTOR_TO_CLIENT"] = "sendInspectorToClient"; + DevToolsMessagingHookKeys["SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT"] = "sendActiveAppUpdatedToClient"; + DevToolsMessagingHookKeys["DEVTOOLS_STATE_UPDATED"] = "devtoolsStateUpdated"; + DevToolsMessagingHookKeys["DEVTOOLS_CONNECTED_UPDATED"] = "devtoolsConnectedUpdated"; + DevToolsMessagingHookKeys["ROUTER_INFO_UPDATED"] = "routerInfoUpdated"; + return DevToolsMessagingHookKeys; +}({}); +function createDevToolsCtxHooks() { + const hooks = createHooks(); + hooks.hook(DevToolsContextHookKeys.ADD_INSPECTOR, ({ inspector, plugin }) => { + addInspector(inspector, plugin.descriptor); + }); + const debounceSendInspectorTree = debounce(async ({ inspectorId, plugin }) => { + if (!inspectorId || !plugin?.descriptor?.app || devtoolsState.highPerfModeEnabled) return; + const inspector = getInspector(inspectorId, plugin.descriptor.app); + const _payload = { + app: plugin.descriptor.app, + inspectorId, + filter: inspector?.treeFilter || "", + rootNodes: [] + }; + await new Promise((resolve) => { + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb(_payload))); + resolve(); + }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE); + }); + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb({ + inspectorId, + rootNodes: _payload.rootNodes + }))); + }, DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT); + }, 120); + hooks.hook(DevToolsContextHookKeys.SEND_INSPECTOR_TREE, debounceSendInspectorTree); + const debounceSendInspectorState = debounce(async ({ inspectorId, plugin }) => { + if (!inspectorId || !plugin?.descriptor?.app || devtoolsState.highPerfModeEnabled) return; + const inspector = getInspector(inspectorId, plugin.descriptor.app); + const _payload = { + app: plugin.descriptor.app, + inspectorId, + nodeId: inspector?.selectedNodeId || "", + state: null + }; + const ctx = { currentTab: `custom-inspector:${inspectorId}` }; + if (_payload.nodeId) await new Promise((resolve) => { + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb(_payload, ctx))); + resolve(); + }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE); + }); + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb({ + inspectorId, + nodeId: _payload.nodeId, + state: _payload.state + }))); + }, DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT); + }, 120); + hooks.hook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, debounceSendInspectorState); + hooks.hook(DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE, ({ inspectorId, nodeId, plugin }) => { + const inspector = getInspector(inspectorId, plugin.descriptor.app); + if (!inspector) return; + inspector.selectedNodeId = nodeId; + }); + hooks.hook(DevToolsContextHookKeys.TIMELINE_LAYER_ADDED, ({ options, plugin }) => { + addTimelineLayer(options, plugin.descriptor); + }); + hooks.hook(DevToolsContextHookKeys.TIMELINE_EVENT_ADDED, ({ options, plugin }) => { + if (devtoolsState.highPerfModeEnabled || !devtoolsState.timelineLayersState?.[plugin.descriptor.id] && ![ + "performance", + "component-event", + "keyboard", + "mouse" + ].includes(options.layerId)) return; + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb(options))); + }, DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT); + }); + hooks.hook(DevToolsContextHookKeys.GET_COMPONENT_INSTANCES, async ({ app }) => { + const appRecord = app.__VUE_DEVTOOLS_NEXT_APP_RECORD__; + if (!appRecord) return null; + const appId = appRecord.id.toString(); + return [...appRecord.instanceMap].filter(([key]) => key.split(":")[0] === appId).map(([, instance]) => instance); + }); + hooks.hook(DevToolsContextHookKeys.GET_COMPONENT_BOUNDS, async ({ instance }) => { + return getComponentBoundingRect(instance); + }); + hooks.hook(DevToolsContextHookKeys.GET_COMPONENT_NAME, ({ instance }) => { + return getInstanceName(instance); + }); + hooks.hook(DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, ({ uid }) => { + const instance = activeAppRecord.value.instanceMap.get(uid); + if (instance) highlight(instance); + }); + hooks.hook(DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT, () => { + unhighlight(); + }); + return hooks; +} +//#endregion +//#region src/ctx/state.ts +target.__VUE_DEVTOOLS_KIT_APP_RECORDS__ ??= []; +target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ ??= {}; +target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ ??= ""; +target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__ ??= []; +target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__ ??= []; +const STATE_KEY = "__VUE_DEVTOOLS_KIT_GLOBAL_STATE__"; +function initStateFactory() { + return { + connected: false, + clientConnected: false, + vitePluginDetected: true, + appRecords: [], + activeAppRecordId: "", + tabs: [], + commands: [], + highPerfModeEnabled: true, + devtoolsClientDetected: {}, + perfUniqueGroupId: 0, + timelineLayersState: getTimelineLayersStateFromStorage() + }; +} +target[STATE_KEY] ??= initStateFactory(); +const callStateUpdatedHook = debounce((state) => { + devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED, { state }); +}); +const callConnectedUpdatedHook = debounce((state, oldState) => { + devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, { + state, + oldState + }); +}); +const devtoolsAppRecords = new Proxy(target.__VUE_DEVTOOLS_KIT_APP_RECORDS__, { get(_target, prop, receiver) { + if (prop === "value") return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__; + return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__[prop]; +} }); +const addDevToolsAppRecord = (app) => { + target.__VUE_DEVTOOLS_KIT_APP_RECORDS__ = [...target.__VUE_DEVTOOLS_KIT_APP_RECORDS__, app]; +}; +const removeDevToolsAppRecord = (app) => { + target.__VUE_DEVTOOLS_KIT_APP_RECORDS__ = devtoolsAppRecords.value.filter((record) => record.app !== app); +}; +const activeAppRecord = new Proxy(target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__, { get(_target, prop, receiver) { + if (prop === "value") return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__; + else if (prop === "id") return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__; + return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[prop]; +} }); +function updateAllStates() { + callStateUpdatedHook({ + ...target[STATE_KEY], + appRecords: devtoolsAppRecords.value, + activeAppRecordId: activeAppRecord.id, + tabs: target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__, + commands: target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__ + }); +} +function setActiveAppRecord(app) { + target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ = app; + updateAllStates(); +} +function setActiveAppRecordId(id) { + target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ = id; + updateAllStates(); +} +const devtoolsState = new Proxy(target[STATE_KEY], { + get(target$3, property) { + if (property === "appRecords") return devtoolsAppRecords; + else if (property === "activeAppRecordId") return activeAppRecord.id; + else if (property === "tabs") return target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__; + else if (property === "commands") return target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__; + return target[STATE_KEY][property]; + }, + deleteProperty(target, property) { + delete target[property]; + return true; + }, + set(target$4, property, value) { + target$4[property] = value; + target[STATE_KEY][property] = value; + return true; + } +}); +function resetDevToolsState() { + Object.assign(target[STATE_KEY], initStateFactory()); +} +function updateDevToolsState(state) { + const oldState = { + ...target[STATE_KEY], + appRecords: devtoolsAppRecords.value, + activeAppRecordId: activeAppRecord.id + }; + if (oldState.connected !== state.connected && state.connected || oldState.clientConnected !== state.clientConnected && state.clientConnected) callConnectedUpdatedHook(target[STATE_KEY], oldState); + Object.assign(target[STATE_KEY], state); + updateAllStates(); +} +function onDevToolsConnected(fn) { + return new Promise((resolve) => { + if (devtoolsState.connected) { + fn(); + resolve(); + } + devtoolsContext.hooks.hook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, ({ state }) => { + if (state.connected) { + fn(); + resolve(); + } + }); + }); +} +const resolveIcon = (icon) => { + if (!icon) return; + if (icon.startsWith("baseline-")) return `custom-ic-${icon}`; + if (icon.startsWith("i-") || isUrlString(icon)) return icon; + return `custom-ic-baseline-${icon}`; +}; +function addCustomTab(tab) { + const tabs = target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__; + if (tabs.some((t) => t.name === tab.name)) return; + tabs.push({ + ...tab, + icon: resolveIcon(tab.icon) + }); + updateAllStates(); +} +function addCustomCommand(action) { + const commands = target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__; + if (commands.some((t) => t.id === action.id)) return; + commands.push({ + ...action, + icon: resolveIcon(action.icon), + children: action.children ? action.children.map((child) => ({ + ...child, + icon: resolveIcon(child.icon) + })) : void 0 + }); + updateAllStates(); +} +function removeCustomCommand(actionId) { + const commands = target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__; + const index = commands.findIndex((t) => t.id === actionId); + if (index === -1) return; + commands.splice(index, 1); + updateAllStates(); +} +function toggleClientConnected(state) { + updateDevToolsState({ clientConnected: state }); +} +//#endregion +//#region src/core/open-in-editor/index.ts +function setOpenInEditorBaseUrl(url) { + target.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__ = url; +} +function openInEditor(options = {}) { + const { file, host, baseUrl = window.location.origin, line = 0, column = 0 } = options; + if (file) { + if (host === "chrome-extension") { + const fileName = file.replace(/\\/g, "\\\\"); + const _baseUrl = window.VUE_DEVTOOLS_CONFIG?.openInEditorHost ?? "/"; + fetch(`${_baseUrl}__open-in-editor?file=${encodeURI(file)}`).then((response) => { + if (!response.ok) { + const msg = `Opening component ${fileName} failed`; + console.log(`%c${msg}`, "color:red"); + } + }); + } else if (devtoolsState.vitePluginDetected) { + const _baseUrl = target.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__ ?? baseUrl; + target.__VUE_INSPECTOR__.openInEditor(_baseUrl, file, line, column); + } + } +} +//#endregion +//#region src/ctx/plugin.ts +target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__ ??= []; +const devtoolsPluginBuffer = new Proxy(target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__, { get(target, prop, receiver) { + return Reflect.get(target, prop, receiver); +} }); +function addDevToolsPluginToBuffer(pluginDescriptor, setupFn) { + devtoolsPluginBuffer.push([pluginDescriptor, setupFn]); +} +//#endregion +//#region src/core/plugin/plugin-settings.ts +function _getSettings(settings) { + const _settings = {}; + Object.keys(settings).forEach((key) => { + _settings[key] = settings[key].defaultValue; + }); + return _settings; +} +function getPluginLocalKey(pluginId) { + return `__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${pluginId}__`; +} +function getPluginSettingsOptions(pluginId) { + return (devtoolsPluginBuffer.find((item) => item[0].id === pluginId && !!item[0]?.settings)?.[0] ?? null)?.settings ?? null; +} +function getPluginSettings(pluginId, fallbackValue) { + const localKey = getPluginLocalKey(pluginId); + if (localKey) { + const localSettings = localStorage.getItem(localKey); + if (localSettings) return JSON.parse(localSettings); + } + if (pluginId) return _getSettings((devtoolsPluginBuffer.find((item) => item[0].id === pluginId)?.[0] ?? null)?.settings ?? {}); + return _getSettings(fallbackValue); +} +function initPluginSettings(pluginId, settings) { + const localKey = getPluginLocalKey(pluginId); + if (!localStorage.getItem(localKey)) localStorage.setItem(localKey, JSON.stringify(_getSettings(settings))); +} +function setPluginSettings(pluginId, key, value) { + const localKey = getPluginLocalKey(pluginId); + const localSettings = localStorage.getItem(localKey); + const parsedLocalSettings = JSON.parse(localSettings || "{}"); + const updated = { + ...parsedLocalSettings, + [key]: value + }; + localStorage.setItem(localKey, JSON.stringify(updated)); + devtoolsContext.hooks.callHookWith((callbacks) => { + callbacks.forEach((cb) => cb({ + pluginId, + key, + oldValue: parsedLocalSettings[key], + newValue: value, + settings: updated + })); + }, DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS); +} +//#endregion +//#region src/types/hook.ts +let DevToolsHooks = /* @__PURE__ */ function(DevToolsHooks) { + DevToolsHooks["APP_INIT"] = "app:init"; + DevToolsHooks["APP_UNMOUNT"] = "app:unmount"; + DevToolsHooks["COMPONENT_UPDATED"] = "component:updated"; + DevToolsHooks["COMPONENT_ADDED"] = "component:added"; + DevToolsHooks["COMPONENT_REMOVED"] = "component:removed"; + DevToolsHooks["COMPONENT_EMIT"] = "component:emit"; + DevToolsHooks["PERFORMANCE_START"] = "perf:start"; + DevToolsHooks["PERFORMANCE_END"] = "perf:end"; + DevToolsHooks["ADD_ROUTE"] = "router:add-route"; + DevToolsHooks["REMOVE_ROUTE"] = "router:remove-route"; + DevToolsHooks["RENDER_TRACKED"] = "render:tracked"; + DevToolsHooks["RENDER_TRIGGERED"] = "render:triggered"; + DevToolsHooks["APP_CONNECTED"] = "app:connected"; + DevToolsHooks["SETUP_DEVTOOLS_PLUGIN"] = "devtools-plugin:setup"; + return DevToolsHooks; +}({}); +//#endregion +//#region src/hook/index.ts +const devtoolsHooks = target.__VUE_DEVTOOLS_HOOK ??= createHooks(); +const on = { + vueAppInit(fn) { + devtoolsHooks.hook(DevToolsHooks.APP_INIT, fn); + }, + vueAppUnmount(fn) { + devtoolsHooks.hook(DevToolsHooks.APP_UNMOUNT, fn); + }, + vueAppConnected(fn) { + devtoolsHooks.hook(DevToolsHooks.APP_CONNECTED, fn); + }, + componentAdded(fn) { + return devtoolsHooks.hook(DevToolsHooks.COMPONENT_ADDED, fn); + }, + componentEmit(fn) { + return devtoolsHooks.hook(DevToolsHooks.COMPONENT_EMIT, fn); + }, + componentUpdated(fn) { + return devtoolsHooks.hook(DevToolsHooks.COMPONENT_UPDATED, fn); + }, + componentRemoved(fn) { + return devtoolsHooks.hook(DevToolsHooks.COMPONENT_REMOVED, fn); + }, + setupDevtoolsPlugin(fn) { + devtoolsHooks.hook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, fn); + }, + perfStart(fn) { + return devtoolsHooks.hook(DevToolsHooks.PERFORMANCE_START, fn); + }, + perfEnd(fn) { + return devtoolsHooks.hook(DevToolsHooks.PERFORMANCE_END, fn); + } +}; +function createDevToolsHook() { + return { + id: "vue-devtools-next", + devtoolsVersion: "7.0", + enabled: false, + appRecords: [], + apps: [], + events: /* @__PURE__ */ new Map(), + on(event, fn) { + if (!this.events.has(event)) this.events.set(event, []); + this.events.get(event)?.push(fn); + return () => this.off(event, fn); + }, + once(event, fn) { + const onceFn = (...args) => { + this.off(event, onceFn); + fn(...args); + }; + this.on(event, onceFn); + return [event, onceFn]; + }, + off(event, fn) { + if (this.events.has(event)) { + const eventCallbacks = this.events.get(event); + const index = eventCallbacks.indexOf(fn); + if (index !== -1) eventCallbacks.splice(index, 1); + } + }, + emit(event, ...payload) { + if (this.events.has(event)) this.events.get(event).forEach((fn) => fn(...payload)); + } + }; +} +function subscribeDevToolsHook(hook) { + hook.on(DevToolsHooks.APP_INIT, (app, version, types) => { + if (app?._instance?.type?.devtools?.hide) return; + devtoolsHooks.callHook(DevToolsHooks.APP_INIT, app, version, types); + }); + hook.on(DevToolsHooks.APP_UNMOUNT, (app) => { + devtoolsHooks.callHook(DevToolsHooks.APP_UNMOUNT, app); + }); + hook.on(DevToolsHooks.COMPONENT_ADDED, async (app, uid, parentUid, component) => { + if (app?._instance?.type?.devtools?.hide || devtoolsState.highPerfModeEnabled) return; + if (!app || typeof uid !== "number" && !uid || !component) return; + devtoolsHooks.callHook(DevToolsHooks.COMPONENT_ADDED, app, uid, parentUid, component); + }); + hook.on(DevToolsHooks.COMPONENT_UPDATED, (app, uid, parentUid, component) => { + if (!app || typeof uid !== "number" && !uid || !component || devtoolsState.highPerfModeEnabled) return; + devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED, app, uid, parentUid, component); + }); + hook.on(DevToolsHooks.COMPONENT_REMOVED, async (app, uid, parentUid, component) => { + if (!app || typeof uid !== "number" && !uid || !component || devtoolsState.highPerfModeEnabled) return; + devtoolsHooks.callHook(DevToolsHooks.COMPONENT_REMOVED, app, uid, parentUid, component); + }); + hook.on(DevToolsHooks.COMPONENT_EMIT, async (app, instance, event, params) => { + if (!app || !instance || devtoolsState.highPerfModeEnabled) return; + devtoolsHooks.callHook(DevToolsHooks.COMPONENT_EMIT, app, instance, event, params); + }); + hook.on(DevToolsHooks.PERFORMANCE_START, (app, uid, vm, type, time) => { + if (!app || devtoolsState.highPerfModeEnabled) return; + devtoolsHooks.callHook(DevToolsHooks.PERFORMANCE_START, app, uid, vm, type, time); + }); + hook.on(DevToolsHooks.PERFORMANCE_END, (app, uid, vm, type, time) => { + if (!app || devtoolsState.highPerfModeEnabled) return; + devtoolsHooks.callHook(DevToolsHooks.PERFORMANCE_END, app, uid, vm, type, time); + }); + hook.on(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, (pluginDescriptor, setupFn, options) => { + if (options?.target === "legacy") return; + devtoolsHooks.callHook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, pluginDescriptor, setupFn); + }); +} +const hook = { + on, + setupDevToolsPlugin(pluginDescriptor, setupFn) { + return devtoolsHooks.callHook(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, pluginDescriptor, setupFn); + } +}; +//#endregion +//#region src/api/v6/index.ts +var DevToolsV6PluginAPI = class { + constructor({ plugin, ctx }) { + this.hooks = ctx.hooks; + this.plugin = plugin; + } + get on() { + return { + visitComponentTree: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE, handler); + }, + inspectComponent: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT, handler); + }, + editComponentState: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.EDIT_COMPONENT_STATE, handler); + }, + getInspectorTree: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE, handler); + }, + getInspectorState: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE, handler); + }, + editInspectorState: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE, handler); + }, + inspectTimelineEvent: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.INSPECT_TIMELINE_EVENT, handler); + }, + timelineCleared: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.TIMELINE_CLEARED, handler); + }, + setPluginSettings: (handler) => { + this.hooks.hook(DevToolsV6PluginAPIHookKeys.SET_PLUGIN_SETTINGS, handler); + } + }; + } + notifyComponentUpdate(instance) { + if (devtoolsState.highPerfModeEnabled) return; + const inspector = getActiveInspectors().find((i) => i.packageName === this.plugin.descriptor.packageName); + if (inspector?.id) { + if (instance) { + const args = [ + instance.appContext.app, + instance.uid, + instance.parent?.uid, + instance + ]; + devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED, ...args); + } else devtoolsHooks.callHook(DevToolsHooks.COMPONENT_UPDATED); + this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, { + inspectorId: inspector.id, + plugin: this.plugin + }); + } + } + addInspector(options) { + this.hooks.callHook(DevToolsContextHookKeys.ADD_INSPECTOR, { + inspector: options, + plugin: this.plugin + }); + if (this.plugin.descriptor.settings) initPluginSettings(options.id, this.plugin.descriptor.settings); + } + sendInspectorTree(inspectorId) { + if (devtoolsState.highPerfModeEnabled) return; + this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_TREE, { + inspectorId, + plugin: this.plugin + }); + } + sendInspectorState(inspectorId) { + if (devtoolsState.highPerfModeEnabled) return; + this.hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, { + inspectorId, + plugin: this.plugin + }); + } + selectInspectorNode(inspectorId, nodeId) { + this.hooks.callHook(DevToolsContextHookKeys.CUSTOM_INSPECTOR_SELECT_NODE, { + inspectorId, + nodeId, + plugin: this.plugin + }); + } + visitComponentTree(payload) { + return this.hooks.callHook(DevToolsV6PluginAPIHookKeys.VISIT_COMPONENT_TREE, payload); + } + now() { + if (devtoolsState.highPerfModeEnabled) return 0; + return Date.now(); + } + addTimelineLayer(options) { + this.hooks.callHook(DevToolsContextHookKeys.TIMELINE_LAYER_ADDED, { + options, + plugin: this.plugin + }); + } + addTimelineEvent(options) { + if (devtoolsState.highPerfModeEnabled) return; + this.hooks.callHook(DevToolsContextHookKeys.TIMELINE_EVENT_ADDED, { + options, + plugin: this.plugin + }); + } + getSettings(pluginId) { + return getPluginSettings(pluginId ?? this.plugin.descriptor.id, this.plugin.descriptor.settings); + } + getComponentInstances(app) { + return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_INSTANCES, { app }); + } + getComponentBounds(instance) { + return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_BOUNDS, { instance }); + } + getComponentName(instance) { + return this.hooks.callHook(DevToolsContextHookKeys.GET_COMPONENT_NAME, { instance }); + } + highlightElement(instance) { + const uid = instance.__VUE_DEVTOOLS_NEXT_UID__; + return this.hooks.callHook(DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, { uid }); + } + unhighlightElement() { + return this.hooks.callHook(DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT); + } +}; +//#endregion +//#region src/api/index.ts +const DevToolsPluginAPI = DevToolsV6PluginAPI; +//#endregion +//#region src/core/component/state/constants.ts +const vueBuiltins = new Set([ + "nextTick", + "defineComponent", + "defineAsyncComponent", + "defineCustomElement", + "ref", + "computed", + "reactive", + "readonly", + "watchEffect", + "watchPostEffect", + "watchSyncEffect", + "watch", + "isRef", + "unref", + "toRef", + "toRefs", + "isProxy", + "isReactive", + "isReadonly", + "shallowRef", + "triggerRef", + "customRef", + "shallowReactive", + "shallowReadonly", + "toRaw", + "markRaw", + "effectScope", + "getCurrentScope", + "onScopeDispose", + "onMounted", + "onUpdated", + "onUnmounted", + "onBeforeMount", + "onBeforeUpdate", + "onBeforeUnmount", + "onErrorCaptured", + "onRenderTracked", + "onRenderTriggered", + "onActivated", + "onDeactivated", + "onServerPrefetch", + "provide", + "inject", + "h", + "mergeProps", + "cloneVNode", + "isVNode", + "resolveComponent", + "resolveDirective", + "withDirectives", + "withModifiers" +]); +const symbolRE = /^\[native Symbol Symbol\((.*)\)\]$/; +const rawTypeRE = /^\[object (\w+)\]$/; +const specialTypeRE = /^\[native (\w+) (.*?)(<>(([\s\S])*))?\]$/; +const fnTypeRE = /^(?:function|class) (\w+)/; +const MAX_STRING_SIZE = 1e4; +const MAX_ARRAY_SIZE = 5e3; +const UNDEFINED = "__vue_devtool_undefined__"; +const INFINITY = "__vue_devtool_infinity__"; +const NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__"; +const NAN = "__vue_devtool_nan__"; +const ESC = { + "<": "<", + ">": ">", + "\"": """, + "&": "&" +}; +//#endregion +//#region src/core/component/state/is.ts +function isVueInstance(value) { + if (!ensurePropertyExists(value, "_")) return false; + if (!isPlainObject(value._)) return false; + return Object.keys(value._).includes("vnode"); +} +function isPlainObject(obj) { + return Object.prototype.toString.call(obj) === "[object Object]"; +} +function isPrimitive$1(data) { + if (data == null) return true; + const type = typeof data; + return type === "string" || type === "number" || type === "boolean"; +} +function isRef(raw) { + return !!raw.__v_isRef; +} +function isComputed(raw) { + return isRef(raw) && !!raw.effect; +} +function isReactive(raw) { + return !!raw.__v_isReactive; +} +function isReadOnly(raw) { + return !!raw.__v_isReadonly; +} +//#endregion +//#region src/core/component/state/util.ts +const tokenMap = { + [UNDEFINED]: "undefined", + [NAN]: "NaN", + [INFINITY]: "Infinity", + [NEGATIVE_INFINITY]: "-Infinity" +}; +const reversedTokenMap = Object.entries(tokenMap).reduce((acc, [key, value]) => { + acc[value] = key; + return acc; +}, {}); +function internalStateTokenToString(value) { + if (value === null) return "null"; + return typeof value === "string" && tokenMap[value] || false; +} +function replaceTokenToString(value) { + const replaceRegex = new RegExp(`"(${Object.keys(tokenMap).join("|")})"`, "g"); + return value.replace(replaceRegex, (_, g1) => tokenMap[g1]); +} +function replaceStringToToken(value) { + const literalValue = reversedTokenMap[value.trim()]; + if (literalValue) return `"${literalValue}"`; + const replaceRegex = new RegExp(`:\\s*(${Object.keys(reversedTokenMap).join("|")})`, "g"); + return value.replace(replaceRegex, (_, g1) => `:"${reversedTokenMap[g1]}"`); +} +/** +* Convert prop type constructor to string. +*/ +function getPropType(type) { + if (Array.isArray(type)) return type.map((t) => getPropType(t)).join(" or "); + if (type == null) return "null"; + const match = type.toString().match(fnTypeRE); + return typeof type === "function" ? match && match[1] || "any" : "any"; +} +/** +* Sanitize data to be posted to the other side. +* Since the message posted is sent with structured clone, +* we need to filter out any types that might cause an error. +*/ +function sanitize(data) { + if (!isPrimitive$1(data) && !Array.isArray(data) && !isPlainObject(data)) return Object.prototype.toString.call(data); + else return data; +} +function getSetupStateType(raw) { + try { + return { + ref: isRef(raw), + computed: isComputed(raw), + reactive: isReactive(raw), + readonly: isReadOnly(raw) + }; + } catch { + return { + ref: false, + computed: false, + reactive: false, + readonly: false + }; + } +} +function toRaw(value) { + if (value?.__v_raw) return value.__v_raw; + return value; +} +function escape(s) { + return s.replace(/[<>"&]/g, (s) => { + return ESC[s] || s; + }); +} +//#endregion +//#region src/core/component/state/process.ts +function mergeOptions(to, from, instance) { + if (typeof from === "function") from = from.options; + if (!from) return to; + const { mixins, extends: extendsOptions } = from; + extendsOptions && mergeOptions(to, extendsOptions, instance); + mixins && mixins.forEach((m) => mergeOptions(to, m, instance)); + for (const key of ["computed", "inject"]) if (Object.prototype.hasOwnProperty.call(from, key)) { + to[key] ??= {}; + Object.assign(to[key], from[key]); + } + return to; +} +function resolveMergedOptions(instance) { + const raw = instance?.type; + if (!raw) return {}; + const { mixins, extends: extendsOptions } = raw; + const globalMixins = instance.appContext.mixins; + if (!globalMixins.length && !mixins && !extendsOptions) return raw; + const options = {}; + globalMixins.forEach((m) => mergeOptions(options, m, instance)); + mergeOptions(options, raw, instance); + return options; +} +/** +* Process the props of an instance. +* Make sure return a plain object because window.postMessage() +* will throw an Error if the passed object contains Functions. +* +*/ +function processProps(instance) { + const props = []; + const propDefinitions = instance?.type?.props; + for (const key in instance?.props) { + const propDefinition = propDefinitions ? propDefinitions[key] : null; + const camelizeKey = camelize(key); + props.push({ + type: "props", + key: camelizeKey, + value: returnError(() => instance.props[key]), + editable: true, + meta: propDefinition ? { + type: propDefinition.type ? getPropType(propDefinition.type) : "any", + required: !!propDefinition.required, + ...propDefinition.default ? { default: propDefinition.default.toString() } : {} + } : { type: "invalid" } + }); + } + return props; +} +/** +* Process state, filtering out props and "clean" the result +* with a JSON dance. This removes functions which can cause +* errors during structured clone used by window.postMessage. +* +*/ +function processState(instance) { + const type = instance.type; + const props = type?.props; + const getters = type.vuex && type.vuex.getters; + const computedDefs = type.computed; + const data = { + ...instance.data, + ...instance.renderContext + }; + return Object.keys(data).filter((key) => !(props && key in props) && !(getters && key in getters) && !(computedDefs && key in computedDefs)).map((key) => ({ + key, + type: "data", + value: returnError(() => data[key]), + editable: true + })); +} +function getStateTypeAndName(info) { + const stateType = info.computed ? "computed" : info.ref ? "ref" : info.reactive ? "reactive" : null; + return { + stateType, + stateTypeName: stateType ? `${stateType.charAt(0).toUpperCase()}${stateType.slice(1)}` : null + }; +} +function processSetupState(instance) { + const raw = instance.devtoolsRawSetupState || {}; + return Object.keys(instance.setupState).filter((key) => !vueBuiltins.has(key) && key.split(/(?=[A-Z])/)[0] !== "use").map((key) => { + const value = returnError(() => toRaw(instance.setupState[key])); + const accessError = value instanceof Error; + const rawData = raw[key]; + let result; + let isOtherType = accessError || typeof value === "function" || ensurePropertyExists(value, "render") && typeof value.render === "function" || ensurePropertyExists(value, "__asyncLoader") && typeof value.__asyncLoader === "function" || typeof value === "object" && value && ("setup" in value || "props" in value) || /^v[A-Z]/.test(key); + if (rawData && !accessError) { + const info = getSetupStateType(rawData); + const { stateType, stateTypeName } = getStateTypeAndName(info); + const isState = info.ref || info.computed || info.reactive; + const raw = ensurePropertyExists(rawData, "effect") ? rawData.effect?.raw?.toString() || rawData.effect?.fn?.toString() : null; + if (stateType) isOtherType = false; + result = { + ...stateType ? { + stateType, + stateTypeName + } : {}, + ...raw ? { raw } : {}, + editable: isState && !info.readonly + }; + } + return { + key, + value, + type: isOtherType ? "setup (other)" : "setup", + ...result + }; + }); +} +/** +* Process the computed properties of an instance. +*/ +function processComputed(instance, mergedType) { + const type = mergedType; + const computed = []; + const defs = type.computed || {}; + for (const key in defs) { + const def = defs[key]; + const type = typeof def === "function" && def.vuex ? "vuex bindings" : "computed"; + computed.push({ + type, + key, + value: returnError(() => instance?.proxy?.[key]), + editable: typeof def.set === "function" + }); + } + return computed; +} +function processAttrs(instance) { + return Object.keys(instance.attrs).map((key) => ({ + type: "attrs", + key, + value: returnError(() => instance.attrs[key]) + })); +} +function processProvide(instance) { + return Reflect.ownKeys(instance.provides).map((key) => ({ + type: "provided", + key: key.toString(), + value: returnError(() => instance.provides[key]) + })); +} +function processInject(instance, mergedType) { + if (!mergedType?.inject) return []; + let keys = []; + let defaultValue; + if (Array.isArray(mergedType.inject)) keys = mergedType.inject.map((key) => ({ + key, + originalKey: key + })); + else keys = Reflect.ownKeys(mergedType.inject).map((key) => { + const value = mergedType.inject[key]; + let originalKey; + if (typeof value === "string" || typeof value === "symbol") originalKey = value; + else { + originalKey = value.from; + defaultValue = value.default; + } + return { + key, + originalKey + }; + }); + return keys.map(({ key, originalKey }) => ({ + type: "injected", + key: originalKey && key !== originalKey ? `${originalKey.toString()} ➞ ${key.toString()}` : key.toString(), + value: returnError(() => instance.ctx.hasOwnProperty(key) ? instance.ctx[key] : instance.provides.hasOwnProperty(originalKey) ? instance.provides[originalKey] : defaultValue) + })); +} +function processRefs(instance) { + return Object.keys(instance.refs).map((key) => ({ + type: "template refs", + key, + value: returnError(() => instance.refs[key]) + })); +} +const vnodeEvents = new Set([ + "vnode-before-mount", + "vnode-mounted", + "vnode-before-update", + "vnode-updated", + "vnode-before-unmount", + "vnode-unmounted" +]); +function processEventListeners(instance) { + const emitsDefinition = instance.type.emits; + const declaredEmits = Array.isArray(emitsDefinition) ? emitsDefinition : Object.keys(emitsDefinition ?? {}); + const keys = Object.keys(instance?.vnode?.props ?? {}); + const result = []; + for (const key of keys) { + const [prefix, ...eventNameParts] = key.split(/(?=[A-Z])/); + if (prefix === "on") { + const eventName = eventNameParts.join("-").toLowerCase(); + const isBuiltIn = vnodeEvents.has(eventName); + const isDeclared = declaredEmits.includes(eventName) || declaredEmits.includes(camelize(eventName)); + const text = isBuiltIn ? "✅ Built-in" : isDeclared ? "✅ Declared" : "⚠️ Not declared"; + result.push({ + type: "event listeners", + key: eventName, + value: { _custom: { + displayText: text, + key: text, + value: text, + tooltipText: isBuiltIn ? `The event ${escape(eventName)} is part of Vue and doesn't need to be declared by the component` : !isDeclared ? `The event ${escape(eventName)} is not declared in the emits option. It will leak into the component's attributes ($attrs).` : null + } } + }); + } + } + return result; +} +function processInstanceState(instance) { + const mergedType = resolveMergedOptions(instance); + return processProps(instance).concat(processState(instance), processSetupState(instance), processComputed(instance, mergedType), processAttrs(instance), processProvide(instance), processInject(instance, mergedType), processRefs(instance), processEventListeners(instance)); +} +//#endregion +//#region src/core/component/state/index.ts +function getInstanceState(params) { + const instance = getComponentInstance(activeAppRecord.value, params.instanceId); + return { + id: getUniqueComponentId(instance), + name: getInstanceName(instance), + file: instance?.type?.__file, + state: processInstanceState(instance), + instance + }; +} +//#endregion +//#region src/core/component/tree/filter.ts +var ComponentFilter = class { + constructor(filter) { + this.filter = filter || ""; + } + /** + * Check if an instance is qualified. + * + * @param {Vue|Vnode} instance + * @return {boolean} + */ + isQualified(instance) { + const name = getInstanceName(instance); + return classify(name).toLowerCase().includes(this.filter) || kebabize(name).toLowerCase().includes(this.filter); + } +}; +function createComponentFilter(filterText) { + return new ComponentFilter(filterText); +} +//#endregion +//#region src/core/component/tree/walker.ts +var ComponentWalker = class { + constructor(options) { + this.captureIds = /* @__PURE__ */ new Map(); + const { filterText = "", maxDepth, recursively, api } = options; + this.componentFilter = createComponentFilter(filterText); + this.maxDepth = maxDepth; + this.recursively = recursively; + this.api = api; + } + getComponentTree(instance) { + this.captureIds = /* @__PURE__ */ new Map(); + return this.findQualifiedChildren(instance, 0); + } + getComponentParents(instance) { + this.captureIds = /* @__PURE__ */ new Map(); + const parents = []; + this.captureId(instance); + let parent = instance; + while (parent = parent.parent) { + this.captureId(parent); + parents.push(parent); + } + return parents; + } + captureId(instance) { + if (!instance) return null; + const id = instance.__VUE_DEVTOOLS_NEXT_UID__ != null ? instance.__VUE_DEVTOOLS_NEXT_UID__ : getUniqueComponentId(instance); + instance.__VUE_DEVTOOLS_NEXT_UID__ = id; + if (this.captureIds.has(id)) return null; + else this.captureIds.set(id, void 0); + this.mark(instance); + return id; + } + /** + * Capture the meta information of an instance. (recursive) + * + * @param {Vue} instance + * @return {object} + */ + async capture(instance, depth) { + if (!instance) return null; + const id = this.captureId(instance); + const name = getInstanceName(instance); + const children = this.getInternalInstanceChildren(instance.subTree).filter((child) => !isBeingDestroyed(child)); + const parents = this.getComponentParents(instance) || []; + const inactive = !!instance.isDeactivated || parents.some((parent) => parent.isDeactivated); + const treeNode = { + uid: instance.uid, + id, + name, + renderKey: getRenderKey(instance.vnode ? instance.vnode.key : null), + inactive, + children: [], + hasChildren: !!children.length, + isFragment: isFragment(instance), + tags: typeof instance.type !== "function" ? [] : [{ + label: "functional", + textColor: 5592405, + backgroundColor: 15658734 + }], + autoOpen: this.recursively, + file: instance.type.__file || "" + }; + if (depth < this.maxDepth || instance.type.__isKeepAlive || parents.some((parent) => parent.type.__isKeepAlive)) treeNode.children = await Promise.all(children.map((child) => this.capture(child, depth + 1)).filter(Boolean)); + if (this.isKeepAlive(instance)) { + const cachedComponents = this.getKeepAliveCachedInstances(instance); + const childrenIds = children.map((child) => child.__VUE_DEVTOOLS_NEXT_UID__); + for (const cachedChild of cachedComponents) if (!childrenIds.includes(cachedChild.__VUE_DEVTOOLS_NEXT_UID__)) { + const node = await this.capture({ + ...cachedChild, + isDeactivated: true + }, depth + 1); + if (node) treeNode.children.push(node); + } + } + const firstElement = getRootElementsFromComponentInstance(instance)[0]; + if (firstElement?.parentElement) { + const parentInstance = instance.parent; + const parentRootElements = parentInstance ? getRootElementsFromComponentInstance(parentInstance) : []; + let el = firstElement; + const indexList = []; + do { + indexList.push(Array.from(el.parentElement.childNodes).indexOf(el)); + el = el.parentElement; + } while (el.parentElement && parentRootElements.length && !parentRootElements.includes(el)); + treeNode.domOrder = indexList.reverse(); + } else treeNode.domOrder = [-1]; + if (instance.suspense?.suspenseKey) { + treeNode.tags.push({ + label: instance.suspense.suspenseKey, + backgroundColor: 14979812, + textColor: 16777215 + }); + this.mark(instance, true); + } + this.api.visitComponentTree({ + treeNode, + componentInstance: instance, + app: instance.appContext.app, + filter: this.componentFilter.filter + }); + return treeNode; + } + /** + * Find qualified children from a single instance. + * If the instance itself is qualified, just return itself. + * This is ok because [].concat works in both cases. + * + * @param {Vue|Vnode} instance + * @return {Vue|Array} + */ + async findQualifiedChildren(instance, depth) { + if (this.componentFilter.isQualified(instance) && !instance.type.devtools?.hide) return [await this.capture(instance, depth)]; + else if (instance.subTree) { + const list = this.isKeepAlive(instance) ? this.getKeepAliveCachedInstances(instance) : this.getInternalInstanceChildren(instance.subTree); + return this.findQualifiedChildrenFromList(list, depth); + } else return []; + } + /** + * Iterate through an array of instances and flatten it into + * an array of qualified instances. This is a depth-first + * traversal - e.g. if an instance is not matched, we will + * recursively go deeper until a qualified child is found. + * + * @param {Array} instances + * @return {Array} + */ + async findQualifiedChildrenFromList(instances, depth) { + instances = instances.filter((child) => !isBeingDestroyed(child) && !child.type.devtools?.hide); + if (!this.componentFilter.filter) return Promise.all(instances.map((child) => this.capture(child, depth))); + else return Array.prototype.concat.apply([], await Promise.all(instances.map((i) => this.findQualifiedChildren(i, depth)))); + } + /** + * Get children from a component instance. + */ + getInternalInstanceChildren(subTree, suspense = null) { + const list = []; + if (subTree) { + if (subTree.component) !suspense ? list.push(subTree.component) : list.push({ + ...subTree.component, + suspense + }); + else if (subTree.suspense) { + const suspenseKey = !subTree.suspense.isInFallback ? "suspense default" : "suspense fallback"; + list.push(...this.getInternalInstanceChildren(subTree.suspense.activeBranch, { + ...subTree.suspense, + suspenseKey + })); + } else if (Array.isArray(subTree.children)) subTree.children.forEach((childSubTree) => { + if (childSubTree.component) !suspense ? list.push(childSubTree.component) : list.push({ + ...childSubTree.component, + suspense + }); + else list.push(...this.getInternalInstanceChildren(childSubTree, suspense)); + }); + } + return list.filter((child) => !isBeingDestroyed(child) && !child.type.devtools?.hide); + } + /** + * Mark an instance as captured and store it in the instance map. + * + * @param {Vue} instance + */ + mark(instance, force = false) { + const instanceMap = getAppRecord(instance).instanceMap; + if (force || !instanceMap.has(instance.__VUE_DEVTOOLS_NEXT_UID__)) { + instanceMap.set(instance.__VUE_DEVTOOLS_NEXT_UID__, instance); + activeAppRecord.value.instanceMap = instanceMap; + } + } + isKeepAlive(instance) { + return instance.type.__isKeepAlive && instance.__v_cache; + } + getKeepAliveCachedInstances(instance) { + return Array.from(instance.__v_cache.values()).map((vnode) => vnode.component).filter(Boolean); + } +}; +//#endregion +//#region src/core/timeline/perf.ts +const markEndQueue = /* @__PURE__ */ new Map(); +const PERFORMANCE_EVENT_LAYER_ID = "performance"; +async function performanceMarkStart(api, app, uid, vm, type, time) { + const appRecord = await getAppRecord(app); + if (!appRecord) return; + const componentName = getInstanceName(vm) || "Unknown Component"; + const groupId = devtoolsState.perfUniqueGroupId++; + const groupKey = `${uid}-${type}`; + appRecord.perfGroupIds.set(groupKey, { + groupId, + time + }); + await api.addTimelineEvent({ + layerId: PERFORMANCE_EVENT_LAYER_ID, + event: { + time: Date.now(), + data: { + component: componentName, + type, + measure: "start" + }, + title: componentName, + subtitle: type, + groupId + } + }); + if (markEndQueue.has(groupKey)) { + const { app, uid, instance, type, time } = markEndQueue.get(groupKey); + markEndQueue.delete(groupKey); + await performanceMarkEnd(api, app, uid, instance, type, time); + } +} +function performanceMarkEnd(api, app, uid, vm, type, time) { + const appRecord = getAppRecord(app); + if (!appRecord) return; + const componentName = getInstanceName(vm) || "Unknown Component"; + const groupKey = `${uid}-${type}`; + const groupInfo = appRecord.perfGroupIds.get(groupKey); + if (groupInfo) { + const groupId = groupInfo.groupId; + const duration = time - groupInfo.time; + api.addTimelineEvent({ + layerId: PERFORMANCE_EVENT_LAYER_ID, + event: { + time: Date.now(), + data: { + component: componentName, + type, + measure: "end", + duration: { _custom: { + type: "Duration", + value: duration, + display: `${duration} ms` + } } + }, + title: componentName, + subtitle: type, + groupId + } + }); + } else markEndQueue.set(groupKey, { + app, + uid, + instance: vm, + type, + time + }); +} +//#endregion +//#region src/core/timeline/index.ts +const COMPONENT_EVENT_LAYER_ID = "component-event"; +function setupBuiltinTimelineLayers(api) { + if (!isBrowser) return; + api.addTimelineLayer({ + id: "mouse", + label: "Mouse", + color: 10768815 + }); + [ + "mousedown", + "mouseup", + "click", + "dblclick" + ].forEach((eventType) => { + if (!devtoolsState.timelineLayersState.recordingState || !devtoolsState.timelineLayersState.mouseEventEnabled) return; + window.addEventListener(eventType, async (event) => { + await api.addTimelineEvent({ + layerId: "mouse", + event: { + time: Date.now(), + data: { + type: eventType, + x: event.clientX, + y: event.clientY + }, + title: eventType + } + }); + }, { + capture: true, + passive: true + }); + }); + api.addTimelineLayer({ + id: "keyboard", + label: "Keyboard", + color: 8475055 + }); + [ + "keyup", + "keydown", + "keypress" + ].forEach((eventType) => { + window.addEventListener(eventType, async (event) => { + if (!devtoolsState.timelineLayersState.recordingState || !devtoolsState.timelineLayersState.keyboardEventEnabled) return; + await api.addTimelineEvent({ + layerId: "keyboard", + event: { + time: Date.now(), + data: { + type: eventType, + key: event.key, + ctrlKey: event.ctrlKey, + shiftKey: event.shiftKey, + altKey: event.altKey, + metaKey: event.metaKey + }, + title: event.key + } + }); + }, { + capture: true, + passive: true + }); + }); + api.addTimelineLayer({ + id: COMPONENT_EVENT_LAYER_ID, + label: "Component events", + color: 5226637 + }); + hook.on.componentEmit(async (app, instance, event, params) => { + if (!devtoolsState.timelineLayersState.recordingState || !devtoolsState.timelineLayersState.componentEventEnabled) return; + const appRecord = await getAppRecord(app); + if (!appRecord) return; + const componentId = `${appRecord.id}:${instance.uid}`; + const componentName = getInstanceName(instance) || "Unknown Component"; + api.addTimelineEvent({ + layerId: COMPONENT_EVENT_LAYER_ID, + event: { + time: Date.now(), + data: { + component: { _custom: { + type: "component-definition", + display: componentName + } }, + event, + params + }, + title: event, + subtitle: `by ${componentName}`, + meta: { componentId } + } + }); + }); + api.addTimelineLayer({ + id: "performance", + label: PERFORMANCE_EVENT_LAYER_ID, + color: 4307050 + }); + hook.on.perfStart((app, uid, vm, type, time) => { + if (!devtoolsState.timelineLayersState.recordingState || !devtoolsState.timelineLayersState.performanceEventEnabled) return; + performanceMarkStart(api, app, uid, vm, type, time); + }); + hook.on.perfEnd((app, uid, vm, type, time) => { + if (!devtoolsState.timelineLayersState.recordingState || !devtoolsState.timelineLayersState.performanceEventEnabled) return; + performanceMarkEnd(api, app, uid, vm, type, time); + }); +} +//#endregion +//#region src/core/vm/index.ts +const MAX_$VM = 10; +const $vmQueue = []; +function exposeInstanceToWindow(componentInstance) { + if (typeof window === "undefined") return; + const win = window; + if (!componentInstance) return; + win.$vm = componentInstance; + if ($vmQueue[0] !== componentInstance) { + if ($vmQueue.length >= MAX_$VM) $vmQueue.pop(); + for (let i = $vmQueue.length; i > 0; i--) win[`$vm${i}`] = $vmQueue[i] = $vmQueue[i - 1]; + win.$vm0 = $vmQueue[0] = componentInstance; + } +} +//#endregion +//#region src/core/plugin/components.ts +const INSPECTOR_ID = "components"; +function createComponentsDevToolsPlugin(app) { + const descriptor = { + id: INSPECTOR_ID, + label: "Components", + app + }; + const setupFn = (api) => { + api.addInspector({ + id: INSPECTOR_ID, + label: "Components", + treeFilterPlaceholder: "Search components" + }); + setupBuiltinTimelineLayers(api); + api.on.getInspectorTree(async (payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + const instance = getComponentInstance(activeAppRecord.value, payload.instanceId); + if (instance) payload.rootNodes = await new ComponentWalker({ + filterText: payload.filter, + maxDepth: 100, + recursively: false, + api + }).getComponentTree(instance); + } + }); + api.on.getInspectorState(async (payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + const result = getInstanceState({ instanceId: payload.nodeId }); + const componentInstance = result.instance; + const _payload = { + componentInstance, + app: result.instance?.appContext.app, + instanceData: result + }; + devtoolsContext.hooks.callHookWith((callbacks) => { + callbacks.forEach((cb) => cb(_payload)); + }, DevToolsV6PluginAPIHookKeys.INSPECT_COMPONENT); + payload.state = result; + exposeInstanceToWindow(componentInstance); + } + }); + api.on.editInspectorState(async (payload) => { + if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { + editState(payload); + await api.sendInspectorState("components"); + } + }); + const debounceSendInspectorTree = debounce(() => { + api.sendInspectorTree(INSPECTOR_ID); + }, 120); + const debounceSendInspectorState = debounce(() => { + api.sendInspectorState(INSPECTOR_ID); + }, 120); + hook.on.componentAdded(async (app, uid, parentUid, component) => { + if (devtoolsState.highPerfModeEnabled) return; + if (app?._instance?.type?.devtools?.hide) return; + if (!app || typeof uid !== "number" && !uid || !component) return; + const id = await getComponentId({ + app, + uid, + instance: component + }); + const appRecord = await getAppRecord(app); + if (component) { + if (component.__VUE_DEVTOOLS_NEXT_UID__ == null) component.__VUE_DEVTOOLS_NEXT_UID__ = id; + if (!appRecord?.instanceMap.has(id)) { + appRecord?.instanceMap.set(id, component); + if (activeAppRecord.value.id === appRecord?.id) activeAppRecord.value.instanceMap = appRecord.instanceMap; + } + } + if (!appRecord) return; + debounceSendInspectorTree(); + }); + hook.on.componentUpdated(async (app, uid, parentUid, component) => { + if (devtoolsState.highPerfModeEnabled) return; + if (app?._instance?.type?.devtools?.hide) return; + if (!app || typeof uid !== "number" && !uid || !component) return; + const id = await getComponentId({ + app, + uid, + instance: component + }); + const appRecord = await getAppRecord(app); + if (component) { + if (component.__VUE_DEVTOOLS_NEXT_UID__ == null) component.__VUE_DEVTOOLS_NEXT_UID__ = id; + if (!appRecord?.instanceMap.has(id)) { + appRecord?.instanceMap.set(id, component); + if (activeAppRecord.value.id === appRecord?.id) activeAppRecord.value.instanceMap = appRecord.instanceMap; + } + } + if (!appRecord) return; + debounceSendInspectorTree(); + debounceSendInspectorState(); + }); + hook.on.componentRemoved(async (app, uid, parentUid, component) => { + if (devtoolsState.highPerfModeEnabled) return; + if (app?._instance?.type?.devtools?.hide) return; + if (!app || typeof uid !== "number" && !uid || !component) return; + const appRecord = await getAppRecord(app); + if (!appRecord) return; + const id = await getComponentId({ + app, + uid, + instance: component + }); + appRecord?.instanceMap.delete(id); + if (activeAppRecord.value.id === appRecord?.id) activeAppRecord.value.instanceMap = appRecord.instanceMap; + debounceSendInspectorTree(); + }); + }; + return [descriptor, setupFn]; +} +//#endregion +//#region src/core/plugin/index.ts +target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__ ??= /* @__PURE__ */ new Set(); +function setupDevToolsPlugin(pluginDescriptor, setupFn) { + return hook.setupDevToolsPlugin(pluginDescriptor, setupFn); +} +function callDevToolsPluginSetupFn(plugin, app) { + const [pluginDescriptor, setupFn] = plugin; + if (pluginDescriptor.app !== app) return; + const api = new DevToolsPluginAPI({ + plugin: { + setupFn, + descriptor: pluginDescriptor + }, + ctx: devtoolsContext + }); + if (pluginDescriptor.packageName === "vuex") api.on.editInspectorState((payload) => { + api.sendInspectorState(payload.inspectorId); + }); + setupFn(api); +} +function removeRegisteredPluginApp(app) { + target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.delete(app); +} +function registerDevToolsPlugin(app, options) { + if (target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(app)) return; + if (devtoolsState.highPerfModeEnabled && !options?.inspectingComponent) return; + target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(app); + devtoolsPluginBuffer.forEach((plugin) => { + callDevToolsPluginSetupFn(plugin, app); + }); +} +//#endregion +//#region src/ctx/router.ts +const ROUTER_KEY = "__VUE_DEVTOOLS_ROUTER__"; +const ROUTER_INFO_KEY = "__VUE_DEVTOOLS_ROUTER_INFO__"; +target[ROUTER_INFO_KEY] ??= { + currentRoute: null, + routes: [] +}; +target[ROUTER_KEY] ??= {}; +const devtoolsRouterInfo = new Proxy(target[ROUTER_INFO_KEY], { get(target$1, property) { + return target[ROUTER_INFO_KEY][property]; +} }); +const devtoolsRouter = new Proxy(target[ROUTER_KEY], { get(target$2, property) { + if (property === "value") return target[ROUTER_KEY]; +} }); +//#endregion +//#region src/core/router/index.ts +function getRoutes(router) { + const routesMap = /* @__PURE__ */ new Map(); + return (router?.getRoutes() || []).filter((i) => !routesMap.has(i.path) && routesMap.set(i.path, 1)); +} +function filterRoutes(routes) { + return routes.map((item) => { + let { path, name, children, meta } = item; + if (children?.length) children = filterRoutes(children); + return { + path, + name, + children, + meta + }; + }); +} +function filterCurrentRoute(route) { + if (route) { + const { fullPath, hash, href, path, name, matched, params, query } = route; + return { + fullPath, + hash, + href, + path, + name, + params, + query, + matched: filterRoutes(matched) + }; + } + return route; +} +function normalizeRouterInfo(appRecord, activeAppRecord) { + function init() { + const router = appRecord.app?.config.globalProperties.$router; + const currentRoute = filterCurrentRoute(router?.currentRoute.value); + const routes = filterRoutes(getRoutes(router)); + const c = console.warn; + console.warn = () => {}; + target[ROUTER_INFO_KEY] = { + currentRoute: currentRoute ? deepClone(currentRoute) : {}, + routes: deepClone(routes) + }; + target[ROUTER_KEY] = router; + console.warn = c; + } + init(); + hook.on.componentUpdated(debounce(() => { + if (activeAppRecord.value?.app !== appRecord.app) return; + init(); + if (devtoolsState.highPerfModeEnabled) return; + devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED, { state: target[ROUTER_INFO_KEY] }); + }, 200)); +} +//#endregion +//#region src/ctx/api.ts +function createDevToolsApi(hooks) { + return { + async getInspectorTree(payload) { + const _payload = { + ...payload, + app: activeAppRecord.value.app, + rootNodes: [] + }; + await new Promise((resolve) => { + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb(_payload))); + resolve(); + }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE); + }); + return _payload.rootNodes; + }, + async getInspectorState(payload) { + const _payload = { + ...payload, + app: activeAppRecord.value.app, + state: null + }; + const ctx = { currentTab: `custom-inspector:${payload.inspectorId}` }; + await new Promise((resolve) => { + hooks.callHookWith(async (callbacks) => { + await Promise.all(callbacks.map((cb) => cb(_payload, ctx))); + resolve(); + }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE); + }); + return _payload.state; + }, + editInspectorState(payload) { + const stateEditor = new StateEditor(); + const _payload = { + ...payload, + app: activeAppRecord.value.app, + set: (obj, path = payload.path, value = payload.state.value, cb) => { + stateEditor.set(obj, path, value, cb || stateEditor.createDefaultSetCallback(payload.state)); + } + }; + hooks.callHookWith((callbacks) => { + callbacks.forEach((cb) => cb(_payload)); + }, DevToolsV6PluginAPIHookKeys.EDIT_INSPECTOR_STATE); + }, + sendInspectorState(inspectorId) { + const inspector = getInspector(inspectorId); + hooks.callHook(DevToolsContextHookKeys.SEND_INSPECTOR_STATE, { + inspectorId, + plugin: { + descriptor: inspector.descriptor, + setupFn: () => ({}) + } + }); + }, + inspectComponentInspector() { + return inspectComponentHighLighter(); + }, + cancelInspectComponentInspector() { + return cancelInspectComponentHighLighter(); + }, + getComponentRenderCode(id) { + const instance = getComponentInstance(activeAppRecord.value, id); + if (instance) return !(typeof instance?.type === "function") ? instance.render.toString() : instance.type.toString(); + }, + scrollToComponent(id) { + return scrollToComponent({ id }); + }, + openInEditor, + getVueInspector: getComponentInspector, + toggleApp(id, options) { + const appRecord = devtoolsAppRecords.value.find((record) => record.id === id); + if (appRecord) { + setActiveAppRecordId(id); + setActiveAppRecord(appRecord); + normalizeRouterInfo(appRecord, activeAppRecord); + callInspectorUpdatedHook(); + registerDevToolsPlugin(appRecord.app, options); + } + }, + inspectDOM(instanceId) { + const instance = getComponentInstance(activeAppRecord.value, instanceId); + if (instance) { + const [el] = getRootElementsFromComponentInstance(instance); + if (el) target.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__ = el; + } + }, + updatePluginSettings(pluginId, key, value) { + setPluginSettings(pluginId, key, value); + }, + getPluginSettings(pluginId) { + return { + options: getPluginSettingsOptions(pluginId), + values: getPluginSettings(pluginId) + }; + } + }; +} +//#endregion +//#region src/ctx/env.ts +target.__VUE_DEVTOOLS_ENV__ ??= { vitePluginDetected: false }; +function getDevToolsEnv() { + return target.__VUE_DEVTOOLS_ENV__; +} +function setDevToolsEnv(env) { + target.__VUE_DEVTOOLS_ENV__ = { + ...target.__VUE_DEVTOOLS_ENV__, + ...env + }; +} +//#endregion +//#region src/ctx/index.ts +const hooks = createDevToolsCtxHooks(); +target.__VUE_DEVTOOLS_KIT_CONTEXT__ ??= { + hooks, + get state() { + return { + ...devtoolsState, + activeAppRecordId: activeAppRecord.id, + activeAppRecord: activeAppRecord.value, + appRecords: devtoolsAppRecords.value + }; + }, + api: createDevToolsApi(hooks) +}; +const devtoolsContext = target.__VUE_DEVTOOLS_KIT_CONTEXT__; +//#endregion +//#region ../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js +var require_speakingurl$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(root) { + "use strict"; + /** + * charMap + * @type {Object} + */ + var charMap = { + "À": "A", + "Á": "A", + "Â": "A", + "Ã": "A", + "Ä": "Ae", + "Å": "A", + "Æ": "AE", + "Ç": "C", + "È": "E", + "É": "E", + "Ê": "E", + "Ë": "E", + "Ì": "I", + "Í": "I", + "Î": "I", + "Ï": "I", + "Ð": "D", + "Ñ": "N", + "Ò": "O", + "Ó": "O", + "Ô": "O", + "Õ": "O", + "Ö": "Oe", + "Ő": "O", + "Ø": "O", + "Ù": "U", + "Ú": "U", + "Û": "U", + "Ü": "Ue", + "Ű": "U", + "Ý": "Y", + "Þ": "TH", + "ß": "ss", + "à": "a", + "á": "a", + "â": "a", + "ã": "a", + "ä": "ae", + "å": "a", + "æ": "ae", + "ç": "c", + "è": "e", + "é": "e", + "ê": "e", + "ë": "e", + "ì": "i", + "í": "i", + "î": "i", + "ï": "i", + "ð": "d", + "ñ": "n", + "ò": "o", + "ó": "o", + "ô": "o", + "õ": "o", + "ö": "oe", + "ő": "o", + "ø": "o", + "ù": "u", + "ú": "u", + "û": "u", + "ü": "ue", + "ű": "u", + "ý": "y", + "þ": "th", + "ÿ": "y", + "ẞ": "SS", + "ا": "a", + "أ": "a", + "إ": "i", + "آ": "aa", + "ؤ": "u", + "ئ": "e", + "ء": "a", + "ب": "b", + "ت": "t", + "ث": "th", + "ج": "j", + "ح": "h", + "خ": "kh", + "د": "d", + "ذ": "th", + "ر": "r", + "ز": "z", + "س": "s", + "ش": "sh", + "ص": "s", + "ض": "dh", + "ط": "t", + "ظ": "z", + "ع": "a", + "غ": "gh", + "ف": "f", + "ق": "q", + "ك": "k", + "ل": "l", + "م": "m", + "ن": "n", + "ه": "h", + "و": "w", + "ي": "y", + "ى": "a", + "ة": "h", + "ﻻ": "la", + "ﻷ": "laa", + "ﻹ": "lai", + "ﻵ": "laa", + "گ": "g", + "چ": "ch", + "پ": "p", + "ژ": "zh", + "ک": "k", + "ی": "y", + "َ": "a", + "ً": "an", + "ِ": "e", + "ٍ": "en", + "ُ": "u", + "ٌ": "on", + "ْ": "", + "٠": "0", + "١": "1", + "٢": "2", + "٣": "3", + "٤": "4", + "٥": "5", + "٦": "6", + "٧": "7", + "٨": "8", + "٩": "9", + "۰": "0", + "۱": "1", + "۲": "2", + "۳": "3", + "۴": "4", + "۵": "5", + "۶": "6", + "۷": "7", + "۸": "8", + "۹": "9", + "က": "k", + "ခ": "kh", + "ဂ": "g", + "ဃ": "ga", + "င": "ng", + "စ": "s", + "ဆ": "sa", + "ဇ": "z", + "စျ": "za", + "ည": "ny", + "ဋ": "t", + "ဌ": "ta", + "ဍ": "d", + "ဎ": "da", + "ဏ": "na", + "တ": "t", + "ထ": "ta", + "ဒ": "d", + "ဓ": "da", + "န": "n", + "ပ": "p", + "ဖ": "pa", + "ဗ": "b", + "ဘ": "ba", + "မ": "m", + "ယ": "y", + "ရ": "ya", + "လ": "l", + "ဝ": "w", + "သ": "th", + "ဟ": "h", + "ဠ": "la", + "အ": "a", + "ြ": "y", + "ျ": "ya", + "ွ": "w", + "ြွ": "yw", + "ျွ": "ywa", + "ှ": "h", + "ဧ": "e", + "၏": "-e", + "ဣ": "i", + "ဤ": "-i", + "ဉ": "u", + "ဦ": "-u", + "ဩ": "aw", + "သြော": "aw", + "ဪ": "aw", + "၀": "0", + "၁": "1", + "၂": "2", + "၃": "3", + "၄": "4", + "၅": "5", + "၆": "6", + "၇": "7", + "၈": "8", + "၉": "9", + "္": "", + "့": "", + "း": "", + "č": "c", + "ď": "d", + "ě": "e", + "ň": "n", + "ř": "r", + "š": "s", + "ť": "t", + "ů": "u", + "ž": "z", + "Č": "C", + "Ď": "D", + "Ě": "E", + "Ň": "N", + "Ř": "R", + "Š": "S", + "Ť": "T", + "Ů": "U", + "Ž": "Z", + "ހ": "h", + "ށ": "sh", + "ނ": "n", + "ރ": "r", + "ބ": "b", + "ޅ": "lh", + "ކ": "k", + "އ": "a", + "ވ": "v", + "މ": "m", + "ފ": "f", + "ދ": "dh", + "ތ": "th", + "ލ": "l", + "ގ": "g", + "ޏ": "gn", + "ސ": "s", + "ޑ": "d", + "ޒ": "z", + "ޓ": "t", + "ޔ": "y", + "ޕ": "p", + "ޖ": "j", + "ޗ": "ch", + "ޘ": "tt", + "ޙ": "hh", + "ޚ": "kh", + "ޛ": "th", + "ޜ": "z", + "ޝ": "sh", + "ޞ": "s", + "ޟ": "d", + "ޠ": "t", + "ޡ": "z", + "ޢ": "a", + "ޣ": "gh", + "ޤ": "q", + "ޥ": "w", + "ަ": "a", + "ާ": "aa", + "ި": "i", + "ީ": "ee", + "ު": "u", + "ޫ": "oo", + "ެ": "e", + "ޭ": "ey", + "ޮ": "o", + "ޯ": "oa", + "ް": "", + "ა": "a", + "ბ": "b", + "გ": "g", + "დ": "d", + "ე": "e", + "ვ": "v", + "ზ": "z", + "თ": "t", + "ი": "i", + "კ": "k", + "ლ": "l", + "მ": "m", + "ნ": "n", + "ო": "o", + "პ": "p", + "ჟ": "zh", + "რ": "r", + "ს": "s", + "ტ": "t", + "უ": "u", + "ფ": "p", + "ქ": "k", + "ღ": "gh", + "ყ": "q", + "შ": "sh", + "ჩ": "ch", + "ც": "ts", + "ძ": "dz", + "წ": "ts", + "ჭ": "ch", + "ხ": "kh", + "ჯ": "j", + "ჰ": "h", + "α": "a", + "β": "v", + "γ": "g", + "δ": "d", + "ε": "e", + "ζ": "z", + "η": "i", + "θ": "th", + "ι": "i", + "κ": "k", + "λ": "l", + "μ": "m", + "ν": "n", + "ξ": "ks", + "ο": "o", + "π": "p", + "ρ": "r", + "σ": "s", + "τ": "t", + "υ": "y", + "φ": "f", + "χ": "x", + "ψ": "ps", + "ω": "o", + "ά": "a", + "έ": "e", + "ί": "i", + "ό": "o", + "ύ": "y", + "ή": "i", + "ώ": "o", + "ς": "s", + "ϊ": "i", + "ΰ": "y", + "ϋ": "y", + "ΐ": "i", + "Α": "A", + "Β": "B", + "Γ": "G", + "Δ": "D", + "Ε": "E", + "Ζ": "Z", + "Η": "I", + "Θ": "TH", + "Ι": "I", + "Κ": "K", + "Λ": "L", + "Μ": "M", + "Ν": "N", + "Ξ": "KS", + "Ο": "O", + "Π": "P", + "Ρ": "R", + "Σ": "S", + "Τ": "T", + "Υ": "Y", + "Φ": "F", + "Χ": "X", + "Ψ": "PS", + "Ω": "O", + "Ά": "A", + "Έ": "E", + "Ί": "I", + "Ό": "O", + "Ύ": "Y", + "Ή": "I", + "Ώ": "O", + "Ϊ": "I", + "Ϋ": "Y", + "ā": "a", + "ē": "e", + "ģ": "g", + "ī": "i", + "ķ": "k", + "ļ": "l", + "ņ": "n", + "ū": "u", + "Ā": "A", + "Ē": "E", + "Ģ": "G", + "Ī": "I", + "Ķ": "k", + "Ļ": "L", + "Ņ": "N", + "Ū": "U", + "Ќ": "Kj", + "ќ": "kj", + "Љ": "Lj", + "љ": "lj", + "Њ": "Nj", + "њ": "nj", + "Тс": "Ts", + "тс": "ts", + "ą": "a", + "ć": "c", + "ę": "e", + "ł": "l", + "ń": "n", + "ś": "s", + "ź": "z", + "ż": "z", + "Ą": "A", + "Ć": "C", + "Ę": "E", + "Ł": "L", + "Ń": "N", + "Ś": "S", + "Ź": "Z", + "Ż": "Z", + "Є": "Ye", + "І": "I", + "Ї": "Yi", + "Ґ": "G", + "є": "ye", + "і": "i", + "ї": "yi", + "ґ": "g", + "ă": "a", + "Ă": "A", + "ș": "s", + "Ș": "S", + "ț": "t", + "Ț": "T", + "ţ": "t", + "Ţ": "T", + "а": "a", + "б": "b", + "в": "v", + "г": "g", + "д": "d", + "е": "e", + "ё": "yo", + "ж": "zh", + "з": "z", + "и": "i", + "й": "i", + "к": "k", + "л": "l", + "м": "m", + "н": "n", + "о": "o", + "п": "p", + "р": "r", + "с": "s", + "т": "t", + "у": "u", + "ф": "f", + "х": "kh", + "ц": "c", + "ч": "ch", + "ш": "sh", + "щ": "sh", + "ъ": "", + "ы": "y", + "ь": "", + "э": "e", + "ю": "yu", + "я": "ya", + "А": "A", + "Б": "B", + "В": "V", + "Г": "G", + "Д": "D", + "Е": "E", + "Ё": "Yo", + "Ж": "Zh", + "З": "Z", + "И": "I", + "Й": "I", + "К": "K", + "Л": "L", + "М": "M", + "Н": "N", + "О": "O", + "П": "P", + "Р": "R", + "С": "S", + "Т": "T", + "У": "U", + "Ф": "F", + "Х": "Kh", + "Ц": "C", + "Ч": "Ch", + "Ш": "Sh", + "Щ": "Sh", + "Ъ": "", + "Ы": "Y", + "Ь": "", + "Э": "E", + "Ю": "Yu", + "Я": "Ya", + "ђ": "dj", + "ј": "j", + "ћ": "c", + "џ": "dz", + "Ђ": "Dj", + "Ј": "j", + "Ћ": "C", + "Џ": "Dz", + "ľ": "l", + "ĺ": "l", + "ŕ": "r", + "Ľ": "L", + "Ĺ": "L", + "Ŕ": "R", + "ş": "s", + "Ş": "S", + "ı": "i", + "İ": "I", + "ğ": "g", + "Ğ": "G", + "ả": "a", + "Ả": "A", + "ẳ": "a", + "Ẳ": "A", + "ẩ": "a", + "Ẩ": "A", + "đ": "d", + "Đ": "D", + "ẹ": "e", + "Ẹ": "E", + "ẽ": "e", + "Ẽ": "E", + "ẻ": "e", + "Ẻ": "E", + "ế": "e", + "Ế": "E", + "ề": "e", + "Ề": "E", + "ệ": "e", + "Ệ": "E", + "ễ": "e", + "Ễ": "E", + "ể": "e", + "Ể": "E", + "ỏ": "o", + "ọ": "o", + "Ọ": "o", + "ố": "o", + "Ố": "O", + "ồ": "o", + "Ồ": "O", + "ổ": "o", + "Ổ": "O", + "ộ": "o", + "Ộ": "O", + "ỗ": "o", + "Ỗ": "O", + "ơ": "o", + "Ơ": "O", + "ớ": "o", + "Ớ": "O", + "ờ": "o", + "Ờ": "O", + "ợ": "o", + "Ợ": "O", + "ỡ": "o", + "Ỡ": "O", + "Ở": "o", + "ở": "o", + "ị": "i", + "Ị": "I", + "ĩ": "i", + "Ĩ": "I", + "ỉ": "i", + "Ỉ": "i", + "ủ": "u", + "Ủ": "U", + "ụ": "u", + "Ụ": "U", + "ũ": "u", + "Ũ": "U", + "ư": "u", + "Ư": "U", + "ứ": "u", + "Ứ": "U", + "ừ": "u", + "Ừ": "U", + "ự": "u", + "Ự": "U", + "ữ": "u", + "Ữ": "U", + "ử": "u", + "Ử": "ư", + "ỷ": "y", + "Ỷ": "y", + "ỳ": "y", + "Ỳ": "Y", + "ỵ": "y", + "Ỵ": "Y", + "ỹ": "y", + "Ỹ": "Y", + "ạ": "a", + "Ạ": "A", + "ấ": "a", + "Ấ": "A", + "ầ": "a", + "Ầ": "A", + "ậ": "a", + "Ậ": "A", + "ẫ": "a", + "Ẫ": "A", + "ắ": "a", + "Ắ": "A", + "ằ": "a", + "Ằ": "A", + "ặ": "a", + "Ặ": "A", + "ẵ": "a", + "Ẵ": "A", + "⓪": "0", + "①": "1", + "②": "2", + "③": "3", + "④": "4", + "⑤": "5", + "⑥": "6", + "⑦": "7", + "⑧": "8", + "⑨": "9", + "⑩": "10", + "⑪": "11", + "⑫": "12", + "⑬": "13", + "⑭": "14", + "⑮": "15", + "⑯": "16", + "⑰": "17", + "⑱": "18", + "⑲": "18", + "⑳": "18", + "⓵": "1", + "⓶": "2", + "⓷": "3", + "⓸": "4", + "⓹": "5", + "⓺": "6", + "⓻": "7", + "⓼": "8", + "⓽": "9", + "⓾": "10", + "⓿": "0", + "⓫": "11", + "⓬": "12", + "⓭": "13", + "⓮": "14", + "⓯": "15", + "⓰": "16", + "⓱": "17", + "⓲": "18", + "⓳": "19", + "⓴": "20", + "Ⓐ": "A", + "Ⓑ": "B", + "Ⓒ": "C", + "Ⓓ": "D", + "Ⓔ": "E", + "Ⓕ": "F", + "Ⓖ": "G", + "Ⓗ": "H", + "Ⓘ": "I", + "Ⓙ": "J", + "Ⓚ": "K", + "Ⓛ": "L", + "Ⓜ": "M", + "Ⓝ": "N", + "Ⓞ": "O", + "Ⓟ": "P", + "Ⓠ": "Q", + "Ⓡ": "R", + "Ⓢ": "S", + "Ⓣ": "T", + "Ⓤ": "U", + "Ⓥ": "V", + "Ⓦ": "W", + "Ⓧ": "X", + "Ⓨ": "Y", + "Ⓩ": "Z", + "ⓐ": "a", + "ⓑ": "b", + "ⓒ": "c", + "ⓓ": "d", + "ⓔ": "e", + "ⓕ": "f", + "ⓖ": "g", + "ⓗ": "h", + "ⓘ": "i", + "ⓙ": "j", + "ⓚ": "k", + "ⓛ": "l", + "ⓜ": "m", + "ⓝ": "n", + "ⓞ": "o", + "ⓟ": "p", + "ⓠ": "q", + "ⓡ": "r", + "ⓢ": "s", + "ⓣ": "t", + "ⓤ": "u", + "ⓦ": "v", + "ⓥ": "w", + "ⓧ": "x", + "ⓨ": "y", + "ⓩ": "z", + "“": "\"", + "”": "\"", + "‘": "'", + "’": "'", + "∂": "d", + "ƒ": "f", + "™": "(TM)", + "©": "(C)", + "œ": "oe", + "Œ": "OE", + "®": "(R)", + "†": "+", + "℠": "(SM)", + "…": "...", + "˚": "o", + "º": "o", + "ª": "a", + "•": "*", + "၊": ",", + "။": ".", + "$": "USD", + "€": "EUR", + "₢": "BRN", + "₣": "FRF", + "£": "GBP", + "₤": "ITL", + "₦": "NGN", + "₧": "ESP", + "₩": "KRW", + "₪": "ILS", + "₫": "VND", + "₭": "LAK", + "₮": "MNT", + "₯": "GRD", + "₱": "ARS", + "₲": "PYG", + "₳": "ARA", + "₴": "UAH", + "₵": "GHS", + "¢": "cent", + "¥": "CNY", + "元": "CNY", + "円": "YEN", + "﷼": "IRR", + "₠": "EWE", + "฿": "THB", + "₨": "INR", + "₹": "INR", + "₰": "PF", + "₺": "TRY", + "؋": "AFN", + "₼": "AZN", + "лв": "BGN", + "៛": "KHR", + "₡": "CRC", + "₸": "KZT", + "ден": "MKD", + "zł": "PLN", + "₽": "RUB", + "₾": "GEL" + }; + /** + * special look ahead character array + * These characters form with consonants to become 'single'/consonant combo + * @type [Array] + */ + var lookAheadCharArray = ["်", "ް"]; + /** + * diatricMap for languages where transliteration changes entirely as more diatrics are added + * @type {Object} + */ + var diatricMap = { + "ာ": "a", + "ါ": "a", + "ေ": "e", + "ဲ": "e", + "ိ": "i", + "ီ": "i", + "ို": "o", + "ု": "u", + "ူ": "u", + "ေါင်": "aung", + "ော": "aw", + "ော်": "aw", + "ေါ": "aw", + "ေါ်": "aw", + "်": "်", + "က်": "et", + "ိုက်": "aik", + "ောက်": "auk", + "င်": "in", + "ိုင်": "aing", + "ောင်": "aung", + "စ်": "it", + "ည်": "i", + "တ်": "at", + "ိတ်": "eik", + "ုတ်": "ok", + "ွတ်": "ut", + "ေတ်": "it", + "ဒ်": "d", + "ိုဒ်": "ok", + "ုဒ်": "ait", + "န်": "an", + "ာန်": "an", + "ိန်": "ein", + "ုန်": "on", + "ွန်": "un", + "ပ်": "at", + "ိပ်": "eik", + "ုပ်": "ok", + "ွပ်": "ut", + "န်ုပ်": "nub", + "မ်": "an", + "ိမ်": "ein", + "ုမ်": "on", + "ွမ်": "un", + "ယ်": "e", + "ိုလ်": "ol", + "ဉ်": "in", + "ံ": "an", + "ိံ": "ein", + "ုံ": "on", + "ައް": "ah", + "ަށް": "ah" + }; + /** + * langCharMap language specific characters translations + * @type {Object} + */ + var langCharMap = { + "en": {}, + "az": { + "ç": "c", + "ə": "e", + "ğ": "g", + "ı": "i", + "ö": "o", + "ş": "s", + "ü": "u", + "Ç": "C", + "Ə": "E", + "Ğ": "G", + "İ": "I", + "Ö": "O", + "Ş": "S", + "Ü": "U" + }, + "cs": { + "č": "c", + "ď": "d", + "ě": "e", + "ň": "n", + "ř": "r", + "š": "s", + "ť": "t", + "ů": "u", + "ž": "z", + "Č": "C", + "Ď": "D", + "Ě": "E", + "Ň": "N", + "Ř": "R", + "Š": "S", + "Ť": "T", + "Ů": "U", + "Ž": "Z" + }, + "fi": { + "ä": "a", + "Ä": "A", + "ö": "o", + "Ö": "O" + }, + "hu": { + "ä": "a", + "Ä": "A", + "ö": "o", + "Ö": "O", + "ü": "u", + "Ü": "U", + "ű": "u", + "Ű": "U" + }, + "lt": { + "ą": "a", + "č": "c", + "ę": "e", + "ė": "e", + "į": "i", + "š": "s", + "ų": "u", + "ū": "u", + "ž": "z", + "Ą": "A", + "Č": "C", + "Ę": "E", + "Ė": "E", + "Į": "I", + "Š": "S", + "Ų": "U", + "Ū": "U" + }, + "lv": { + "ā": "a", + "č": "c", + "ē": "e", + "ģ": "g", + "ī": "i", + "ķ": "k", + "ļ": "l", + "ņ": "n", + "š": "s", + "ū": "u", + "ž": "z", + "Ā": "A", + "Č": "C", + "Ē": "E", + "Ģ": "G", + "Ī": "i", + "Ķ": "k", + "Ļ": "L", + "Ņ": "N", + "Š": "S", + "Ū": "u", + "Ž": "Z" + }, + "pl": { + "ą": "a", + "ć": "c", + "ę": "e", + "ł": "l", + "ń": "n", + "ó": "o", + "ś": "s", + "ź": "z", + "ż": "z", + "Ą": "A", + "Ć": "C", + "Ę": "e", + "Ł": "L", + "Ń": "N", + "Ó": "O", + "Ś": "S", + "Ź": "Z", + "Ż": "Z" + }, + "sv": { + "ä": "a", + "Ä": "A", + "ö": "o", + "Ö": "O" + }, + "sk": { + "ä": "a", + "Ä": "A" + }, + "sr": { + "љ": "lj", + "њ": "nj", + "Љ": "Lj", + "Њ": "Nj", + "đ": "dj", + "Đ": "Dj" + }, + "tr": { + "Ü": "U", + "Ö": "O", + "ü": "u", + "ö": "o" + } + }; + /** + * symbolMap language specific symbol translations + * translations must be transliterated already + * @type {Object} + */ + var symbolMap = { + "ar": { + "∆": "delta", + "∞": "la-nihaya", + "♥": "hob", + "&": "wa", + "|": "aw", + "<": "aqal-men", + ">": "akbar-men", + "∑": "majmou", + "¤": "omla" + }, + "az": {}, + "ca": { + "∆": "delta", + "∞": "infinit", + "♥": "amor", + "&": "i", + "|": "o", + "<": "menys que", + ">": "mes que", + "∑": "suma dels", + "¤": "moneda" + }, + "cs": { + "∆": "delta", + "∞": "nekonecno", + "♥": "laska", + "&": "a", + "|": "nebo", + "<": "mensi nez", + ">": "vetsi nez", + "∑": "soucet", + "¤": "mena" + }, + "de": { + "∆": "delta", + "∞": "unendlich", + "♥": "Liebe", + "&": "und", + "|": "oder", + "<": "kleiner als", + ">": "groesser als", + "∑": "Summe von", + "¤": "Waehrung" + }, + "dv": { + "∆": "delta", + "∞": "kolunulaa", + "♥": "loabi", + "&": "aai", + "|": "noonee", + "<": "ah vure kuda", + ">": "ah vure bodu", + "∑": "jumula", + "¤": "faisaa" + }, + "en": { + "∆": "delta", + "∞": "infinity", + "♥": "love", + "&": "and", + "|": "or", + "<": "less than", + ">": "greater than", + "∑": "sum", + "¤": "currency" + }, + "es": { + "∆": "delta", + "∞": "infinito", + "♥": "amor", + "&": "y", + "|": "u", + "<": "menos que", + ">": "mas que", + "∑": "suma de los", + "¤": "moneda" + }, + "fa": { + "∆": "delta", + "∞": "bi-nahayat", + "♥": "eshgh", + "&": "va", + "|": "ya", + "<": "kamtar-az", + ">": "bishtar-az", + "∑": "majmooe", + "¤": "vahed" + }, + "fi": { + "∆": "delta", + "∞": "aarettomyys", + "♥": "rakkaus", + "&": "ja", + "|": "tai", + "<": "pienempi kuin", + ">": "suurempi kuin", + "∑": "summa", + "¤": "valuutta" + }, + "fr": { + "∆": "delta", + "∞": "infiniment", + "♥": "Amour", + "&": "et", + "|": "ou", + "<": "moins que", + ">": "superieure a", + "∑": "somme des", + "¤": "monnaie" + }, + "ge": { + "∆": "delta", + "∞": "usasruloba", + "♥": "siqvaruli", + "&": "da", + "|": "an", + "<": "naklebi", + ">": "meti", + "∑": "jami", + "¤": "valuta" + }, + "gr": {}, + "hu": { + "∆": "delta", + "∞": "vegtelen", + "♥": "szerelem", + "&": "es", + "|": "vagy", + "<": "kisebb mint", + ">": "nagyobb mint", + "∑": "szumma", + "¤": "penznem" + }, + "it": { + "∆": "delta", + "∞": "infinito", + "♥": "amore", + "&": "e", + "|": "o", + "<": "minore di", + ">": "maggiore di", + "∑": "somma", + "¤": "moneta" + }, + "lt": { + "∆": "delta", + "∞": "begalybe", + "♥": "meile", + "&": "ir", + "|": "ar", + "<": "maziau nei", + ">": "daugiau nei", + "∑": "suma", + "¤": "valiuta" + }, + "lv": { + "∆": "delta", + "∞": "bezgaliba", + "♥": "milestiba", + "&": "un", + "|": "vai", + "<": "mazak neka", + ">": "lielaks neka", + "∑": "summa", + "¤": "valuta" + }, + "my": { + "∆": "kwahkhyaet", + "∞": "asaonasme", + "♥": "akhyait", + "&": "nhin", + "|": "tho", + "<": "ngethaw", + ">": "kyithaw", + "∑": "paungld", + "¤": "ngwekye" + }, + "mk": {}, + "nl": { + "∆": "delta", + "∞": "oneindig", + "♥": "liefde", + "&": "en", + "|": "of", + "<": "kleiner dan", + ">": "groter dan", + "∑": "som", + "¤": "valuta" + }, + "pl": { + "∆": "delta", + "∞": "nieskonczonosc", + "♥": "milosc", + "&": "i", + "|": "lub", + "<": "mniejsze niz", + ">": "wieksze niz", + "∑": "suma", + "¤": "waluta" + }, + "pt": { + "∆": "delta", + "∞": "infinito", + "♥": "amor", + "&": "e", + "|": "ou", + "<": "menor que", + ">": "maior que", + "∑": "soma", + "¤": "moeda" + }, + "ro": { + "∆": "delta", + "∞": "infinit", + "♥": "dragoste", + "&": "si", + "|": "sau", + "<": "mai mic ca", + ">": "mai mare ca", + "∑": "suma", + "¤": "valuta" + }, + "ru": { + "∆": "delta", + "∞": "beskonechno", + "♥": "lubov", + "&": "i", + "|": "ili", + "<": "menshe", + ">": "bolshe", + "∑": "summa", + "¤": "valjuta" + }, + "sk": { + "∆": "delta", + "∞": "nekonecno", + "♥": "laska", + "&": "a", + "|": "alebo", + "<": "menej ako", + ">": "viac ako", + "∑": "sucet", + "¤": "mena" + }, + "sr": {}, + "tr": { + "∆": "delta", + "∞": "sonsuzluk", + "♥": "ask", + "&": "ve", + "|": "veya", + "<": "kucuktur", + ">": "buyuktur", + "∑": "toplam", + "¤": "para birimi" + }, + "uk": { + "∆": "delta", + "∞": "bezkinechnist", + "♥": "lubov", + "&": "i", + "|": "abo", + "<": "menshe", + ">": "bilshe", + "∑": "suma", + "¤": "valjuta" + }, + "vn": { + "∆": "delta", + "∞": "vo cuc", + "♥": "yeu", + "&": "va", + "|": "hoac", + "<": "nho hon", + ">": "lon hon", + "∑": "tong", + "¤": "tien te" + } + }; + var uricChars = [ + ";", + "?", + ":", + "@", + "&", + "=", + "+", + "$", + ",", + "/" + ].join(""); + var uricNoSlashChars = [ + ";", + "?", + ":", + "@", + "&", + "=", + "+", + "$", + "," + ].join(""); + var markChars = [ + ".", + "!", + "~", + "*", + "'", + "(", + ")" + ].join(""); + /** + * getSlug + * @param {string} input input string + * @param {object|string} opts config object or separator string/char + * @api public + * @return {string} sluggified string + */ + var getSlug = function getSlug(input, opts) { + var separator = "-"; + var result = ""; + var diatricString = ""; + var convertSymbols = true; + var customReplacements = {}; + var maintainCase; + var titleCase; + var truncate; + var uricFlag; + var uricNoSlashFlag; + var markFlag; + var symbol; + var langChar; + var lucky; + var i; + var ch; + var l; + var lastCharWasSymbol; + var lastCharWasDiatric; + var allowedChars = ""; + if (typeof input !== "string") return ""; + if (typeof opts === "string") separator = opts; + symbol = symbolMap.en; + langChar = langCharMap.en; + if (typeof opts === "object") { + maintainCase = opts.maintainCase || false; + customReplacements = opts.custom && typeof opts.custom === "object" ? opts.custom : customReplacements; + truncate = +opts.truncate > 1 && opts.truncate || false; + uricFlag = opts.uric || false; + uricNoSlashFlag = opts.uricNoSlash || false; + markFlag = opts.mark || false; + convertSymbols = opts.symbols === false || opts.lang === false ? false : true; + separator = opts.separator || separator; + if (uricFlag) allowedChars += uricChars; + if (uricNoSlashFlag) allowedChars += uricNoSlashChars; + if (markFlag) allowedChars += markChars; + symbol = opts.lang && symbolMap[opts.lang] && convertSymbols ? symbolMap[opts.lang] : convertSymbols ? symbolMap.en : {}; + langChar = opts.lang && langCharMap[opts.lang] ? langCharMap[opts.lang] : opts.lang === false || opts.lang === true ? {} : langCharMap.en; + if (opts.titleCase && typeof opts.titleCase.length === "number" && Array.prototype.toString.call(opts.titleCase)) { + opts.titleCase.forEach(function(v) { + customReplacements[v + ""] = v + ""; + }); + titleCase = true; + } else titleCase = !!opts.titleCase; + if (opts.custom && typeof opts.custom.length === "number" && Array.prototype.toString.call(opts.custom)) opts.custom.forEach(function(v) { + customReplacements[v + ""] = v + ""; + }); + Object.keys(customReplacements).forEach(function(v) { + var r; + if (v.length > 1) r = new RegExp("\\b" + escapeChars(v) + "\\b", "gi"); + else r = new RegExp(escapeChars(v), "gi"); + input = input.replace(r, customReplacements[v]); + }); + for (ch in customReplacements) allowedChars += ch; + } + allowedChars += separator; + allowedChars = escapeChars(allowedChars); + input = input.replace(/(^\s+|\s+$)/g, ""); + lastCharWasSymbol = false; + lastCharWasDiatric = false; + for (i = 0, l = input.length; i < l; i++) { + ch = input[i]; + if (isReplacedCustomChar(ch, customReplacements)) lastCharWasSymbol = false; + else if (langChar[ch]) { + ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? " " + langChar[ch] : langChar[ch]; + lastCharWasSymbol = false; + } else if (ch in charMap) { + if (i + 1 < l && lookAheadCharArray.indexOf(input[i + 1]) >= 0) { + diatricString += ch; + ch = ""; + } else if (lastCharWasDiatric === true) { + ch = diatricMap[diatricString] + charMap[ch]; + diatricString = ""; + } else ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? " " + charMap[ch] : charMap[ch]; + lastCharWasSymbol = false; + lastCharWasDiatric = false; + } else if (ch in diatricMap) { + diatricString += ch; + ch = ""; + if (i === l - 1) ch = diatricMap[diatricString]; + lastCharWasDiatric = true; + } else if (symbol[ch] && !(uricFlag && uricChars.indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars.indexOf(ch) !== -1)) { + ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch]; + ch += input[i + 1] !== void 0 && input[i + 1].match(/[A-Za-z0-9]/) ? separator : ""; + lastCharWasSymbol = true; + } else { + if (lastCharWasDiatric === true) { + ch = diatricMap[diatricString] + ch; + diatricString = ""; + lastCharWasDiatric = false; + } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) ch = " " + ch; + lastCharWasSymbol = false; + } + result += ch.replace(new RegExp("[^\\w\\s" + allowedChars + "_-]", "g"), separator); + } + if (titleCase) result = result.replace(/(\w)(\S*)/g, function(_, i, r) { + var j = i.toUpperCase() + (r !== null ? r : ""); + return Object.keys(customReplacements).indexOf(j.toLowerCase()) < 0 ? j : j.toLowerCase(); + }); + result = result.replace(/\s+/g, separator).replace(new RegExp("\\" + separator + "+", "g"), separator).replace(new RegExp("(^\\" + separator + "+|\\" + separator + "+$)", "g"), ""); + if (truncate && result.length > truncate) { + lucky = result.charAt(truncate) === separator; + result = result.slice(0, truncate); + if (!lucky) result = result.slice(0, result.lastIndexOf(separator)); + } + if (!maintainCase && !titleCase) result = result.toLowerCase(); + return result; + }; + /** + * createSlug curried(opts)(input) + * @param {object|string} opts config object or input string + * @return {Function} function getSlugWithConfig() + **/ + var createSlug = function createSlug(opts) { + /** + * getSlugWithConfig + * @param {string} input string + * @return {string} slug string + */ + return function getSlugWithConfig(input) { + return getSlug(input, opts); + }; + }; + /** + * escape Chars + * @param {string} input string + */ + var escapeChars = function escapeChars(input) { + return input.replace(/[-\\^$*+?.()|[\]{}\/]/g, "\\$&"); + }; + /** + * check if the char is an already converted char from custom list + * @param {char} ch character to check + * @param {object} customReplacements custom translation map + */ + var isReplacedCustomChar = function(ch, customReplacements) { + for (var c in customReplacements) if (customReplacements[c] === ch) return true; + }; + if (typeof module !== "undefined" && module.exports) { + module.exports = getSlug; + module.exports.createSlug = createSlug; + } else if (typeof define !== "undefined" && define.amd) define([], function() { + return getSlug; + }); + else try { + if (root.getSlug || root.createSlug) throw "speakingurl: globals exists /(getSlug|createSlug)/"; + else { + root.getSlug = getSlug; + root.createSlug = createSlug; + } + } catch (e) {} + })(exports); +})); +//#endregion +//#region src/core/app/index.ts +var import_speakingurl = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => { + module.exports = require_speakingurl$1(); +})))(), 1); +const appRecordInfo = target.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__ ??= { + id: 0, + appIds: /* @__PURE__ */ new Set() +}; +function getAppRecordName(app, fallbackName) { + return app?._component?.name || `App ${fallbackName}`; +} +function getAppRootInstance(app) { + if (app._instance) return app._instance; + else if (app._container?._vnode?.component) return app._container?._vnode?.component; +} +function removeAppRecordId(app) { + const id = app.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__; + if (id != null) { + appRecordInfo.appIds.delete(id); + appRecordInfo.id--; + } +} +function getAppRecordId(app, defaultId) { + if (app.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__ != null) return app.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__; + let id = defaultId ?? (appRecordInfo.id++).toString(); + if (defaultId && appRecordInfo.appIds.has(id)) { + let count = 1; + while (appRecordInfo.appIds.has(`${defaultId}_${count}`)) count++; + id = `${defaultId}_${count}`; + } + appRecordInfo.appIds.add(id); + app.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__ = id; + return id; +} +function createAppRecord(app, types) { + const rootInstance = getAppRootInstance(app); + if (rootInstance) { + appRecordInfo.id++; + const name = getAppRecordName(app, appRecordInfo.id.toString()); + const id = getAppRecordId(app, (0, import_speakingurl.default)(name)); + const [el] = getRootElementsFromComponentInstance(rootInstance); + const record = { + id, + name, + types, + instanceMap: /* @__PURE__ */ new Map(), + perfGroupIds: /* @__PURE__ */ new Map(), + rootInstance, + iframe: isBrowser && document !== el?.ownerDocument ? el?.ownerDocument?.location?.pathname : void 0 + }; + app.__VUE_DEVTOOLS_NEXT_APP_RECORD__ = record; + const rootId = `${record.id}:root`; + record.instanceMap.set(rootId, record.rootInstance); + record.rootInstance.__VUE_DEVTOOLS_NEXT_UID__ = rootId; + return record; + } else return {}; +} +//#endregion +//#region src/core/iframe/index.ts +function detectIframeApp(target, inIframe = false) { + if (inIframe) { + function sendEventToParent(cb) { + try { + const hook = window.parent.__VUE_DEVTOOLS_GLOBAL_HOOK__; + if (hook) cb(hook); + } catch (e) {} + } + const hook = { + id: "vue-devtools-next", + devtoolsVersion: "7.0", + on: (event, cb) => { + sendEventToParent((hook) => { + hook.on(event, cb); + }); + }, + once: (event, cb) => { + sendEventToParent((hook) => { + hook.once(event, cb); + }); + }, + off: (event, cb) => { + sendEventToParent((hook) => { + hook.off(event, cb); + }); + }, + emit: (event, ...payload) => { + sendEventToParent((hook) => { + hook.emit(event, ...payload); + }); + } + }; + Object.defineProperty(target, "__VUE_DEVTOOLS_GLOBAL_HOOK__", { + get() { + return hook; + }, + configurable: true + }); + } + function injectVueHookToIframe(iframe) { + if (iframe.__vdevtools__injected) return; + try { + iframe.__vdevtools__injected = true; + const inject = () => { + try { + iframe.contentWindow.__VUE_DEVTOOLS_IFRAME__ = iframe; + const script = iframe.contentDocument.createElement("script"); + script.textContent = `;(${detectIframeApp.toString()})(window, true)`; + iframe.contentDocument.documentElement.appendChild(script); + script.parentNode.removeChild(script); + } catch (e) {} + }; + inject(); + iframe.addEventListener("load", () => inject()); + } catch (e) {} + } + function injectVueHookToIframes() { + if (typeof window === "undefined") return; + const iframes = Array.from(document.querySelectorAll("iframe:not([data-vue-devtools-ignore])")); + for (const iframe of iframes) injectVueHookToIframe(iframe); + } + injectVueHookToIframes(); + let iframeAppChecks = 0; + const iframeAppCheckTimer = setInterval(() => { + injectVueHookToIframes(); + iframeAppChecks++; + if (iframeAppChecks >= 5) clearInterval(iframeAppCheckTimer); + }, 1e3); +} +//#endregion +//#region src/core/index.ts +function initDevTools() { + detectIframeApp(target); + updateDevToolsState({ vitePluginDetected: getDevToolsEnv().vitePluginDetected }); + const isDevToolsNext = target.__VUE_DEVTOOLS_GLOBAL_HOOK__?.id === "vue-devtools-next"; + if (target.__VUE_DEVTOOLS_GLOBAL_HOOK__ && isDevToolsNext) return; + const _devtoolsHook = createDevToolsHook(); + if (target.__VUE_DEVTOOLS_HOOK_REPLAY__) try { + target.__VUE_DEVTOOLS_HOOK_REPLAY__.forEach((cb) => cb(_devtoolsHook)); + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = []; + } catch (e) { + console.error("[vue-devtools] Error during hook replay", e); + } + _devtoolsHook.once("init", (Vue) => { + target.__VUE_DEVTOOLS_VUE2_APP_DETECTED__ = true; + console.log("%c[_____Vue DevTools v7 log_____]", "color: red; font-bold: 600; font-size: 16px;"); + console.log("%cVue DevTools v7 detected in your Vue2 project. v7 only supports Vue3 and will not work.", "font-bold: 500; font-size: 14px;"); + const legacyChromeUrl = "https://chromewebstore.google.com/detail/vuejs-devtools/iaajmlceplecbljialhhkmedjlpdblhp"; + const legacyFirefoxUrl = "https://addons.mozilla.org/firefox/addon/vue-js-devtools-v6-legacy"; + console.log(`%cThe legacy version of chrome extension that supports both Vue 2 and Vue 3 has been moved to %c ${legacyChromeUrl}`, "font-size: 14px;", "text-decoration: underline; cursor: pointer;font-size: 14px;"); + console.log(`%cThe legacy version of firefox extension that supports both Vue 2 and Vue 3 has been moved to %c ${legacyFirefoxUrl}`, "font-size: 14px;", "text-decoration: underline; cursor: pointer;font-size: 14px;"); + console.log("%cPlease install and enable only the legacy version for your Vue2 app.", "font-bold: 500; font-size: 14px;"); + console.log("%c[_____Vue DevTools v7 log_____]", "color: red; font-bold: 600; font-size: 16px;"); + }); + hook.on.setupDevtoolsPlugin((pluginDescriptor, setupFn) => { + addDevToolsPluginToBuffer(pluginDescriptor, setupFn); + const { app } = activeAppRecord ?? {}; + if (pluginDescriptor.settings) initPluginSettings(pluginDescriptor.id, pluginDescriptor.settings); + if (!app) return; + callDevToolsPluginSetupFn([pluginDescriptor, setupFn], app); + }); + onLegacyDevToolsPluginApiAvailable(() => { + devtoolsPluginBuffer.filter(([item]) => item.id !== "components").forEach(([pluginDescriptor, setupFn]) => { + _devtoolsHook.emit(DevToolsHooks.SETUP_DEVTOOLS_PLUGIN, pluginDescriptor, setupFn, { target: "legacy" }); + }); + }); + hook.on.vueAppInit(async (app, version, types) => { + const normalizedAppRecord = { + ...createAppRecord(app, types), + app, + version + }; + addDevToolsAppRecord(normalizedAppRecord); + if (devtoolsAppRecords.value.length === 1) { + setActiveAppRecord(normalizedAppRecord); + setActiveAppRecordId(normalizedAppRecord.id); + normalizeRouterInfo(normalizedAppRecord, activeAppRecord); + registerDevToolsPlugin(normalizedAppRecord.app); + } + setupDevToolsPlugin(...createComponentsDevToolsPlugin(normalizedAppRecord.app)); + updateDevToolsState({ connected: true }); + _devtoolsHook.apps.push(app); + }); + hook.on.vueAppUnmount(async (app) => { + const activeRecords = devtoolsAppRecords.value.filter((appRecord) => appRecord.app !== app); + if (activeRecords.length === 0) updateDevToolsState({ connected: false }); + removeDevToolsAppRecord(app); + removeAppRecordId(app); + if (activeAppRecord.value.app === app) { + setActiveAppRecord(activeRecords[0]); + devtoolsContext.hooks.callHook(DevToolsMessagingHookKeys.SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT); + } + target.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps.splice(target.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps.indexOf(app), 1); + removeRegisteredPluginApp(app); + }); + subscribeDevToolsHook(_devtoolsHook); + if (!target.__VUE_DEVTOOLS_GLOBAL_HOOK__) Object.defineProperty(target, "__VUE_DEVTOOLS_GLOBAL_HOOK__", { + get() { + return _devtoolsHook; + }, + configurable: true + }); + else if (!isNuxtApp) Object.assign(__VUE_DEVTOOLS_GLOBAL_HOOK__, _devtoolsHook); +} +function onDevToolsClientConnected(fn) { + return new Promise((resolve) => { + if (devtoolsState.connected && devtoolsState.clientConnected) { + fn(); + resolve(); + return; + } + devtoolsContext.hooks.hook(DevToolsMessagingHookKeys.DEVTOOLS_CONNECTED_UPDATED, ({ state }) => { + if (state.connected && state.clientConnected) { + fn(); + resolve(); + } + }); + }); +} +//#endregion +//#region src/core/high-perf-mode/index.ts +function toggleHighPerfMode(state) { + devtoolsState.highPerfModeEnabled = state ?? !devtoolsState.highPerfModeEnabled; + if (!state && activeAppRecord.value) registerDevToolsPlugin(activeAppRecord.value.app); +} +//#endregion +//#region src/core/component/state/reviver.ts +function reviveSet(val) { + const result = /* @__PURE__ */ new Set(); + const list = val._custom.value; + for (let i = 0; i < list.length; i++) { + const value = list[i]; + result.add(revive(value)); + } + return result; +} +function reviveMap(val) { + const result = /* @__PURE__ */ new Map(); + const list = val._custom.value; + for (let i = 0; i < list.length; i++) { + const { key, value } = list[i]; + result.set(key, revive(value)); + } + return result; +} +function revive(val) { + if (val === "__vue_devtool_undefined__") return; + else if (val === "__vue_devtool_infinity__") return Number.POSITIVE_INFINITY; + else if (val === "__vue_devtool_negative_infinity__") return Number.NEGATIVE_INFINITY; + else if (val === "__vue_devtool_nan__") return NaN; + else if (val && val._custom) { + const { _custom: custom } = val; + if (custom.type === "component") return activeAppRecord.value.instanceMap.get(custom.id); + else if (custom.type === "map") return reviveMap(val); + else if (custom.type === "set") return reviveSet(val); + else if (custom.type === "bigint") return BigInt(custom.value); + else return revive(custom.value); + } else if (symbolRE.test(val)) { + const [, string] = symbolRE.exec(val); + return Symbol.for(string); + } else if (specialTypeRE.test(val)) { + const [, type, string, , details] = specialTypeRE.exec(val); + const result = new target[type](string); + if (type === "Error" && details) result.stack = details; + return result; + } else return val; +} +function reviver(key, value) { + return revive(value); +} +//#endregion +//#region src/core/component/state/format.ts +function getInspectorStateValueType(value, raw = true) { + const type = typeof value; + if (value == null || value === "__vue_devtool_undefined__" || value === "undefined") return "null"; + else if (type === "boolean" || type === "number" || value === "__vue_devtool_infinity__" || value === "__vue_devtool_negative_infinity__" || value === "__vue_devtool_nan__") return "literal"; + else if (value?._custom) if (raw || value._custom.display != null || value._custom.displayText != null) return "custom"; + else return getInspectorStateValueType(value._custom.value); + else if (typeof value === "string") { + const typeMatch = specialTypeRE.exec(value); + if (typeMatch) { + const [, type] = typeMatch; + return `native ${type}`; + } else return "string"; + } else if (Array.isArray(value) || value?._isArray) return "array"; + else if (isPlainObject(value)) return "plain-object"; + else return "unknown"; +} +function formatInspectorStateValue(value, quotes = false, options) { + const { customClass } = options ?? {}; + let result; + const type = getInspectorStateValueType(value, false); + if (type !== "custom" && value?._custom) value = value._custom.value; + if (result = internalStateTokenToString(value)) return result; + else if (type === "custom") return value._custom.value?._custom && formatInspectorStateValue(value._custom.value, quotes, options) || value._custom.displayText || value._custom.display; + else if (type === "array") return `Array[${value.length}]`; + else if (type === "plain-object") return `Object${Object.keys(value).length ? "" : " (empty)"}`; + else if (type?.includes("native")) return escape(specialTypeRE.exec(value)?.[2]); + else if (typeof value === "string") { + const typeMatch = value.match(rawTypeRE); + if (typeMatch) value = escapeString(typeMatch[1]); + else if (quotes) value = `"${customClass?.string ? `${escapeString(value)}` : escapeString(value)}"`; + else value = customClass?.string ? `${escapeString(value)}` : escapeString(value); + } + return value; +} +function escapeString(value) { + return escape(value).replace(/ /g, " ").replace(/\n/g, "\\n"); +} +function getRaw(value) { + let customType; + const isCustom = getInspectorStateValueType(value) === "custom"; + let inherit = {}; + if (isCustom) { + const data = value; + const customValue = data._custom?.value; + const currentCustomType = data._custom?.type; + const nestedCustom = typeof customValue === "object" && customValue !== null && "_custom" in customValue ? getRaw(customValue) : { + inherit: void 0, + value: void 0, + customType: void 0 + }; + inherit = nestedCustom.inherit || data._custom?.fields || {}; + value = nestedCustom.value || customValue; + customType = nestedCustom.customType || currentCustomType; + } + if (value && value._isArray) value = value.items; + return { + value, + inherit, + customType + }; +} +function toEdit(value, customType) { + if (customType === "bigint") return value; + if (customType === "date") return value; + return replaceTokenToString(JSON.stringify(value)); +} +function toSubmit(value, customType) { + if (customType === "bigint") return BigInt(value); + if (customType === "date") return new Date(value); + return JSON.parse(replaceStringToToken(value), reviver); +} +//#endregion +//#region src/core/devtools-client/detected.ts +function updateDevToolsClientDetected(params) { + devtoolsState.devtoolsClientDetected = { + ...devtoolsState.devtoolsClientDetected, + ...params + }; + toggleHighPerfMode(!Object.values(devtoolsState.devtoolsClientDetected).some(Boolean)); +} +target.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__ ??= updateDevToolsClientDetected; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/double-indexed-kv.js +var DoubleIndexedKV = class { + constructor() { + this.keyToValue = /* @__PURE__ */ new Map(); + this.valueToKey = /* @__PURE__ */ new Map(); + } + set(key, value) { + this.keyToValue.set(key, value); + this.valueToKey.set(value, key); + } + getByKey(key) { + return this.keyToValue.get(key); + } + getByValue(value) { + return this.valueToKey.get(value); + } + clear() { + this.keyToValue.clear(); + this.valueToKey.clear(); + } +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/registry.js +var Registry = class { + constructor(generateIdentifier) { + this.generateIdentifier = generateIdentifier; + this.kv = new DoubleIndexedKV(); + } + register(value, identifier) { + if (this.kv.getByValue(value)) return; + if (!identifier) identifier = this.generateIdentifier(value); + this.kv.set(identifier, value); + } + clear() { + this.kv.clear(); + } + getIdentifier(value) { + return this.kv.getByValue(value); + } + getValue(identifier) { + return this.kv.getByKey(identifier); + } +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/class-registry.js +var ClassRegistry = class extends Registry { + constructor() { + super((c) => c.name); + this.classToAllowedProps = /* @__PURE__ */ new Map(); + } + register(value, options) { + if (typeof options === "object") { + if (options.allowProps) this.classToAllowedProps.set(value, options.allowProps); + super.register(value, options.identifier); + } else super.register(value, options); + } + getAllowedProps(value) { + return this.classToAllowedProps.get(value); + } +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/util.js +function valuesOfObj(record) { + if ("values" in Object) return Object.values(record); + const values = []; + for (const key in record) if (record.hasOwnProperty(key)) values.push(record[key]); + return values; +} +function find(record, predicate) { + const values = valuesOfObj(record); + if ("find" in values) return values.find(predicate); + const valuesNotNever = values; + for (let i = 0; i < valuesNotNever.length; i++) { + const value = valuesNotNever[i]; + if (predicate(value)) return value; + } +} +function forEach(record, run) { + Object.entries(record).forEach(([key, value]) => run(value, key)); +} +function includes(arr, value) { + return arr.indexOf(value) !== -1; +} +function findArr(record, predicate) { + for (let i = 0; i < record.length; i++) { + const value = record[i]; + if (predicate(value)) return value; + } +} +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/custom-transformer-registry.js +var CustomTransformerRegistry = class { + constructor() { + this.transfomers = {}; + } + register(transformer) { + this.transfomers[transformer.name] = transformer; + } + findApplicable(v) { + return find(this.transfomers, (transformer) => transformer.isApplicable(v)); + } + findByName(name) { + return this.transfomers[name]; + } +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/is.js +const getType$1 = (payload) => Object.prototype.toString.call(payload).slice(8, -1); +const isUndefined$1 = (payload) => typeof payload === "undefined"; +const isNull$1 = (payload) => payload === null; +const isPlainObject$2 = (payload) => { + if (typeof payload !== "object" || payload === null) return false; + if (payload === Object.prototype) return false; + if (Object.getPrototypeOf(payload) === null) return true; + return Object.getPrototypeOf(payload) === Object.prototype; +}; +const isEmptyObject = (payload) => isPlainObject$2(payload) && Object.keys(payload).length === 0; +const isArray$2 = (payload) => Array.isArray(payload); +const isString = (payload) => typeof payload === "string"; +const isNumber = (payload) => typeof payload === "number" && !isNaN(payload); +const isBoolean = (payload) => typeof payload === "boolean"; +const isRegExp = (payload) => payload instanceof RegExp; +const isMap = (payload) => payload instanceof Map; +const isSet = (payload) => payload instanceof Set; +const isSymbol = (payload) => getType$1(payload) === "Symbol"; +const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf()); +const isError = (payload) => payload instanceof Error; +const isNaNValue = (payload) => typeof payload === "number" && isNaN(payload); +const isPrimitive = (payload) => isBoolean(payload) || isNull$1(payload) || isUndefined$1(payload) || isNumber(payload) || isString(payload) || isSymbol(payload); +const isBigint = (payload) => typeof payload === "bigint"; +const isInfinite = (payload) => payload === Infinity || payload === -Infinity; +const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView); +const isURL = (payload) => payload instanceof URL; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/pathstringifier.js +const escapeKey = (key) => key.replace(/\./g, "\\."); +const stringifyPath = (path) => path.map(String).map(escapeKey).join("."); +const parsePath = (string) => { + const result = []; + let segment = ""; + for (let i = 0; i < string.length; i++) { + let char = string.charAt(i); + if (char === "\\" && string.charAt(i + 1) === ".") { + segment += "."; + i++; + continue; + } + if (char === ".") { + result.push(segment); + segment = ""; + continue; + } + segment += char; + } + const lastSegment = segment; + result.push(lastSegment); + return result; +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/transformer.js +function simpleTransformation(isApplicable, annotation, transform, untransform) { + return { + isApplicable, + annotation, + transform, + untransform + }; +} +const simpleRules = [ + simpleTransformation(isUndefined$1, "undefined", () => null, () => void 0), + simpleTransformation(isBigint, "bigint", (v) => v.toString(), (v) => { + if (typeof BigInt !== "undefined") return BigInt(v); + console.error("Please add a BigInt polyfill."); + return v; + }), + simpleTransformation(isDate, "Date", (v) => v.toISOString(), (v) => new Date(v)), + simpleTransformation(isError, "Error", (v, superJson) => { + const baseError = { + name: v.name, + message: v.message + }; + superJson.allowedErrorProps.forEach((prop) => { + baseError[prop] = v[prop]; + }); + return baseError; + }, (v, superJson) => { + const e = new Error(v.message); + e.name = v.name; + e.stack = v.stack; + superJson.allowedErrorProps.forEach((prop) => { + e[prop] = v[prop]; + }); + return e; + }), + simpleTransformation(isRegExp, "regexp", (v) => "" + v, (regex) => { + const body = regex.slice(1, regex.lastIndexOf("/")); + const flags = regex.slice(regex.lastIndexOf("/") + 1); + return new RegExp(body, flags); + }), + simpleTransformation(isSet, "set", (v) => [...v.values()], (v) => new Set(v)), + simpleTransformation(isMap, "map", (v) => [...v.entries()], (v) => new Map(v)), + simpleTransformation((v) => isNaNValue(v) || isInfinite(v), "number", (v) => { + if (isNaNValue(v)) return "NaN"; + if (v > 0) return "Infinity"; + else return "-Infinity"; + }, Number), + simpleTransformation((v) => v === 0 && 1 / v === -Infinity, "number", () => { + return "-0"; + }, Number), + simpleTransformation(isURL, "URL", (v) => v.toString(), (v) => new URL(v)) +]; +function compositeTransformation(isApplicable, annotation, transform, untransform) { + return { + isApplicable, + annotation, + transform, + untransform + }; +} +const symbolRule = compositeTransformation((s, superJson) => { + if (isSymbol(s)) return !!superJson.symbolRegistry.getIdentifier(s); + return false; +}, (s, superJson) => { + return ["symbol", superJson.symbolRegistry.getIdentifier(s)]; +}, (v) => v.description, (_, a, superJson) => { + const value = superJson.symbolRegistry.getValue(a[1]); + if (!value) throw new Error("Trying to deserialize unknown symbol"); + return value; +}); +const constructorToName = [ + Int8Array, + Uint8Array, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array, + Uint8ClampedArray +].reduce((obj, ctor) => { + obj[ctor.name] = ctor; + return obj; +}, {}); +const typedArrayRule = compositeTransformation(isTypedArray, (v) => ["typed-array", v.constructor.name], (v) => [...v], (v, a) => { + const ctor = constructorToName[a[1]]; + if (!ctor) throw new Error("Trying to deserialize unknown typed array"); + return new ctor(v); +}); +function isInstanceOfRegisteredClass(potentialClass, superJson) { + if (potentialClass?.constructor) return !!superJson.classRegistry.getIdentifier(potentialClass.constructor); + return false; +} +const classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => { + return ["class", superJson.classRegistry.getIdentifier(clazz.constructor)]; +}, (clazz, superJson) => { + const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor); + if (!allowedProps) return { ...clazz }; + const result = {}; + allowedProps.forEach((prop) => { + result[prop] = clazz[prop]; + }); + return result; +}, (v, a, superJson) => { + const clazz = superJson.classRegistry.getValue(a[1]); + if (!clazz) throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`); + return Object.assign(Object.create(clazz.prototype), v); +}); +const customRule = compositeTransformation((value, superJson) => { + return !!superJson.customTransformerRegistry.findApplicable(value); +}, (value, superJson) => { + return ["custom", superJson.customTransformerRegistry.findApplicable(value).name]; +}, (value, superJson) => { + return superJson.customTransformerRegistry.findApplicable(value).serialize(value); +}, (v, a, superJson) => { + const transformer = superJson.customTransformerRegistry.findByName(a[1]); + if (!transformer) throw new Error("Trying to deserialize unknown custom value"); + return transformer.deserialize(v); +}); +const compositeRules = [ + classRule, + symbolRule, + customRule, + typedArrayRule +]; +const transformValue = (value, superJson) => { + const applicableCompositeRule = findArr(compositeRules, (rule) => rule.isApplicable(value, superJson)); + if (applicableCompositeRule) return { + value: applicableCompositeRule.transform(value, superJson), + type: applicableCompositeRule.annotation(value, superJson) + }; + const applicableSimpleRule = findArr(simpleRules, (rule) => rule.isApplicable(value, superJson)); + if (applicableSimpleRule) return { + value: applicableSimpleRule.transform(value, superJson), + type: applicableSimpleRule.annotation + }; +}; +const simpleRulesByAnnotation = {}; +simpleRules.forEach((rule) => { + simpleRulesByAnnotation[rule.annotation] = rule; +}); +const untransformValue = (json, type, superJson) => { + if (isArray$2(type)) switch (type[0]) { + case "symbol": return symbolRule.untransform(json, type, superJson); + case "class": return classRule.untransform(json, type, superJson); + case "custom": return customRule.untransform(json, type, superJson); + case "typed-array": return typedArrayRule.untransform(json, type, superJson); + default: throw new Error("Unknown transformation: " + type); + } + else { + const transformation = simpleRulesByAnnotation[type]; + if (!transformation) throw new Error("Unknown transformation: " + type); + return transformation.untransform(json, superJson); + } +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/accessDeep.js +const getNthKey = (value, n) => { + if (n > value.size) throw new Error("index out of bounds"); + const keys = value.keys(); + while (n > 0) { + keys.next(); + n--; + } + return keys.next().value; +}; +function validatePath(path) { + if (includes(path, "__proto__")) throw new Error("__proto__ is not allowed as a property"); + if (includes(path, "prototype")) throw new Error("prototype is not allowed as a property"); + if (includes(path, "constructor")) throw new Error("constructor is not allowed as a property"); +} +const getDeep = (object, path) => { + validatePath(path); + for (let i = 0; i < path.length; i++) { + const key = path[i]; + if (isSet(object)) object = getNthKey(object, +key); + else if (isMap(object)) { + const row = +key; + const type = +path[++i] === 0 ? "key" : "value"; + const keyOfRow = getNthKey(object, row); + switch (type) { + case "key": + object = keyOfRow; + break; + case "value": + object = object.get(keyOfRow); + break; + } + } else object = object[key]; + } + return object; +}; +const setDeep = (object, path, mapper) => { + validatePath(path); + if (path.length === 0) return mapper(object); + let parent = object; + for (let i = 0; i < path.length - 1; i++) { + const key = path[i]; + if (isArray$2(parent)) { + const index = +key; + parent = parent[index]; + } else if (isPlainObject$2(parent)) parent = parent[key]; + else if (isSet(parent)) { + const row = +key; + parent = getNthKey(parent, row); + } else if (isMap(parent)) { + if (i === path.length - 2) break; + const row = +key; + const type = +path[++i] === 0 ? "key" : "value"; + const keyOfRow = getNthKey(parent, row); + switch (type) { + case "key": + parent = keyOfRow; + break; + case "value": + parent = parent.get(keyOfRow); + break; + } + } + } + const lastKey = path[path.length - 1]; + if (isArray$2(parent)) parent[+lastKey] = mapper(parent[+lastKey]); + else if (isPlainObject$2(parent)) parent[lastKey] = mapper(parent[lastKey]); + if (isSet(parent)) { + const oldValue = getNthKey(parent, +lastKey); + const newValue = mapper(oldValue); + if (oldValue !== newValue) { + parent.delete(oldValue); + parent.add(newValue); + } + } + if (isMap(parent)) { + const row = +path[path.length - 2]; + const keyToRow = getNthKey(parent, row); + switch (+lastKey === 0 ? "key" : "value") { + case "key": { + const newKey = mapper(keyToRow); + parent.set(newKey, parent.get(keyToRow)); + if (newKey !== keyToRow) parent.delete(keyToRow); + break; + } + case "value": + parent.set(keyToRow, mapper(parent.get(keyToRow))); + break; + } + } + return object; +}; +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/plainer.js +function traverse(tree, walker, origin = []) { + if (!tree) return; + if (!isArray$2(tree)) { + forEach(tree, (subtree, key) => traverse(subtree, walker, [...origin, ...parsePath(key)])); + return; + } + const [nodeValue, children] = tree; + if (children) forEach(children, (child, key) => { + traverse(child, walker, [...origin, ...parsePath(key)]); + }); + walker(nodeValue, origin); +} +function applyValueAnnotations(plain, annotations, superJson) { + traverse(annotations, (type, path) => { + plain = setDeep(plain, path, (v) => untransformValue(v, type, superJson)); + }); + return plain; +} +function applyReferentialEqualityAnnotations(plain, annotations) { + function apply(identicalPaths, path) { + const object = getDeep(plain, parsePath(path)); + identicalPaths.map(parsePath).forEach((identicalObjectPath) => { + plain = setDeep(plain, identicalObjectPath, () => object); + }); + } + if (isArray$2(annotations)) { + const [root, other] = annotations; + root.forEach((identicalPath) => { + plain = setDeep(plain, parsePath(identicalPath), () => plain); + }); + if (other) forEach(other, apply); + } else forEach(annotations, apply); + return plain; +} +const isDeep = (object, superJson) => isPlainObject$2(object) || isArray$2(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson); +function addIdentity(object, path, identities) { + const existingSet = identities.get(object); + if (existingSet) existingSet.push(path); + else identities.set(object, [path]); +} +function generateReferentialEqualityAnnotations(identitites, dedupe) { + const result = {}; + let rootEqualityPaths = void 0; + identitites.forEach((paths) => { + if (paths.length <= 1) return; + if (!dedupe) paths = paths.map((path) => path.map(String)).sort((a, b) => a.length - b.length); + const [representativePath, ...identicalPaths] = paths; + if (representativePath.length === 0) rootEqualityPaths = identicalPaths.map(stringifyPath); + else result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath); + }); + if (rootEqualityPaths) if (isEmptyObject(result)) return [rootEqualityPaths]; + else return [rootEqualityPaths, result]; + else return isEmptyObject(result) ? void 0 : result; +} +const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = /* @__PURE__ */ new Map()) => { + const primitive = isPrimitive(object); + if (!primitive) { + addIdentity(object, path, identities); + const seen = seenObjects.get(object); + if (seen) return dedupe ? { transformedValue: null } : seen; + } + if (!isDeep(object, superJson)) { + const transformed = transformValue(object, superJson); + const result = transformed ? { + transformedValue: transformed.value, + annotations: [transformed.type] + } : { transformedValue: object }; + if (!primitive) seenObjects.set(object, result); + return result; + } + if (includes(objectsInThisPath, object)) return { transformedValue: null }; + const transformationResult = transformValue(object, superJson); + const transformed = transformationResult?.value ?? object; + const transformedValue = isArray$2(transformed) ? [] : {}; + const innerAnnotations = {}; + forEach(transformed, (value, index) => { + if (index === "__proto__" || index === "constructor" || index === "prototype") throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`); + const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects); + transformedValue[index] = recursiveResult.transformedValue; + if (isArray$2(recursiveResult.annotations)) innerAnnotations[index] = recursiveResult.annotations; + else if (isPlainObject$2(recursiveResult.annotations)) forEach(recursiveResult.annotations, (tree, key) => { + innerAnnotations[escapeKey(index) + "." + key] = tree; + }); + }); + const result = isEmptyObject(innerAnnotations) ? { + transformedValue, + annotations: !!transformationResult ? [transformationResult.type] : void 0 + } : { + transformedValue, + annotations: !!transformationResult ? [transformationResult.type, innerAnnotations] : innerAnnotations + }; + if (!primitive) seenObjects.set(object, result); + return result; +}; +//#endregion +//#region ../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js +function getType(payload) { + return Object.prototype.toString.call(payload).slice(8, -1); +} +function isArray$1(payload) { + return getType(payload) === "Array"; +} +function isPlainObject$1(payload) { + if (getType(payload) !== "Object") return false; + const prototype = Object.getPrototypeOf(payload); + return !!prototype && prototype.constructor === Object && prototype === Object.prototype; +} +function isNull(payload) { + return getType(payload) === "Null"; +} +function isOneOf(a, b, c, d, e) { + return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value); +} +function isUndefined(payload) { + return getType(payload) === "Undefined"; +} +isOneOf(isNull, isUndefined); +//#endregion +//#region ../../node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.js +function assignProp(carry, key, newVal, originalObject, includeNonenumerable) { + const propType = {}.propertyIsEnumerable.call(originalObject, key) ? "enumerable" : "nonenumerable"; + if (propType === "enumerable") carry[key] = newVal; + if (includeNonenumerable && propType === "nonenumerable") Object.defineProperty(carry, key, { + value: newVal, + enumerable: false, + writable: true, + configurable: true + }); +} +function copy(target, options = {}) { + if (isArray$1(target)) return target.map((item) => copy(item, options)); + if (!isPlainObject$1(target)) return target; + const props = Object.getOwnPropertyNames(target); + const symbols = Object.getOwnPropertySymbols(target); + return [...props, ...symbols].reduce((carry, key) => { + if (isArray$1(options.props) && !options.props.includes(key)) return carry; + const val = target[key]; + assignProp(carry, key, copy(val, options), target, options.nonenumerable); + return carry; + }, {}); +} +//#endregion +//#region ../../node_modules/.pnpm/superjson@2.2.2/node_modules/superjson/dist/index.js +var SuperJSON = class { + /** + * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`. + */ + constructor({ dedupe = false } = {}) { + this.classRegistry = new ClassRegistry(); + this.symbolRegistry = new Registry((s) => s.description ?? ""); + this.customTransformerRegistry = new CustomTransformerRegistry(); + this.allowedErrorProps = []; + this.dedupe = dedupe; + } + serialize(object) { + const identities = /* @__PURE__ */ new Map(); + const output = walker(object, identities, this, this.dedupe); + const res = { json: output.transformedValue }; + if (output.annotations) res.meta = { + ...res.meta, + values: output.annotations + }; + const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe); + if (equalityAnnotations) res.meta = { + ...res.meta, + referentialEqualities: equalityAnnotations + }; + return res; + } + deserialize(payload) { + const { json, meta } = payload; + let result = copy(json); + if (meta?.values) result = applyValueAnnotations(result, meta.values, this); + if (meta?.referentialEqualities) result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities); + return result; + } + stringify(object) { + return JSON.stringify(this.serialize(object)); + } + parse(string) { + return this.deserialize(JSON.parse(string)); + } + registerClass(v, options) { + this.classRegistry.register(v, options); + } + registerSymbol(v, identifier) { + this.symbolRegistry.register(v, identifier); + } + registerCustom(transformer, name) { + this.customTransformerRegistry.register({ + name, + ...transformer + }); + } + allowErrorProps(...props) { + this.allowedErrorProps.push(...props); + } +}; +SuperJSON.defaultInstance = new SuperJSON(); +SuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance); +SuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance); +SuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance); +SuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance); +SuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance); +SuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance); +SuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance); +SuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance); +SuperJSON.serialize; +SuperJSON.deserialize; +SuperJSON.stringify; +SuperJSON.parse; +SuperJSON.registerClass; +SuperJSON.registerCustom; +SuperJSON.registerSymbol; +SuperJSON.allowErrorProps; +//#endregion +//#region src/messaging/presets/broadcast-channel/context.ts +const __DEVTOOLS_KIT_BROADCAST_MESSAGING_EVENT_KEY = "__devtools-kit-broadcast-messaging-event-key__"; +//#endregion +//#region src/messaging/presets/broadcast-channel/index.ts +const BROADCAST_CHANNEL_NAME = "__devtools-kit:broadcast-channel__"; +function createBroadcastChannel() { + const channel = new BroadcastChannel(BROADCAST_CHANNEL_NAME); + return { + post: (data) => { + channel.postMessage(SuperJSON.stringify({ + event: __DEVTOOLS_KIT_BROADCAST_MESSAGING_EVENT_KEY, + data + })); + }, + on: (handler) => { + channel.onmessage = (event) => { + const parsed = SuperJSON.parse(event.data); + if (parsed.event === "__devtools-kit-broadcast-messaging-event-key__") handler(parsed.data); + }; + } + }; +} +//#endregion +//#region src/messaging/presets/electron/context.ts +const __ELECTRON_CLIENT_CONTEXT__ = "electron:client-context"; +const __ELECTRON_RPOXY_CONTEXT__ = "electron:proxy-context"; +const __ELECTRON_SERVER_CONTEXT__ = "electron:server-context"; +const __DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__ = { + CLIENT_TO_PROXY: "client->proxy", + PROXY_TO_CLIENT: "proxy->client", + PROXY_TO_SERVER: "proxy->server", + SERVER_TO_PROXY: "server->proxy" +}; +function getElectronClientContext() { + return target[__ELECTRON_CLIENT_CONTEXT__]; +} +function setElectronClientContext(context) { + target[__ELECTRON_CLIENT_CONTEXT__] = context; +} +function getElectronProxyContext() { + return target[__ELECTRON_RPOXY_CONTEXT__]; +} +function setElectronProxyContext(context) { + target[__ELECTRON_RPOXY_CONTEXT__] = context; +} +function getElectronServerContext() { + return target[__ELECTRON_SERVER_CONTEXT__]; +} +function setElectronServerContext(context) { + target[__ELECTRON_SERVER_CONTEXT__] = context; +} +//#endregion +//#region src/messaging/presets/electron/client.ts +function createElectronClientChannel() { + const socket = getElectronClientContext(); + return { + post: (data) => { + socket.emit(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.CLIENT_TO_PROXY, SuperJSON.stringify(data)); + }, + on: (handler) => { + socket.on(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.PROXY_TO_CLIENT, (e) => { + handler(SuperJSON.parse(e)); + }); + } + }; +} +//#endregion +//#region src/messaging/presets/electron/proxy.ts +function createElectronProxyChannel() { + const socket = getElectronProxyContext(); + return { + post: (data) => {}, + on: (handler) => { + socket.on(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.SERVER_TO_PROXY, (data) => { + socket.broadcast.emit(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.PROXY_TO_CLIENT, data); + }); + socket.on(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.CLIENT_TO_PROXY, (data) => { + socket.broadcast.emit(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.PROXY_TO_SERVER, data); + }); + } + }; +} +//#endregion +//#region src/messaging/presets/electron/server.ts +function createElectronServerChannel() { + const socket = getElectronServerContext(); + return { + post: (data) => { + socket.emit(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.SERVER_TO_PROXY, SuperJSON.stringify(data)); + }, + on: (handler) => { + socket.on(__DEVTOOLS_KIT_ELECTRON_MESSAGING_EVENT_KEY__.PROXY_TO_SERVER, (data) => { + handler(SuperJSON.parse(data)); + }); + } + }; +} +//#endregion +//#region src/messaging/presets/extension/context.ts +const __EXTENSION_CLIENT_CONTEXT__ = "electron:client-context"; +const __DEVTOOLS_KIT_EXTENSION_MESSAGING_EVENT_KEY__ = { + CLIENT_TO_PROXY: "client->proxy", + PROXY_TO_CLIENT: "proxy->client", + PROXY_TO_SERVER: "proxy->server", + SERVER_TO_PROXY: "server->proxy" +}; +function getExtensionClientContext() { + return target[__EXTENSION_CLIENT_CONTEXT__]; +} +function setExtensionClientContext(context) { + target[__EXTENSION_CLIENT_CONTEXT__] = context; +} +//#endregion +//#region src/messaging/presets/extension/client.ts +function createExtensionClientChannel() { + let disconnected = false; + let port = null; + let reconnectTimer = null; + let onMessageHandler = null; + function connect() { + try { + clearTimeout(reconnectTimer); + port = chrome.runtime.connect({ name: `${chrome.devtools.inspectedWindow.tabId}` }); + setExtensionClientContext(port); + disconnected = false; + port?.onMessage.addListener(onMessageHandler); + port.onDisconnect.addListener(() => { + disconnected = true; + port?.onMessage.removeListener(onMessageHandler); + reconnectTimer = setTimeout(connect, 1e3); + }); + } catch (e) { + disconnected = true; + } + } + connect(); + return { + post: (data) => { + if (disconnected) return; + port?.postMessage(SuperJSON.stringify(data)); + }, + on: (handler) => { + onMessageHandler = (data) => { + if (disconnected) return; + handler(SuperJSON.parse(data)); + }; + port?.onMessage.addListener(onMessageHandler); + } + }; +} +//#endregion +//#region src/messaging/presets/extension/proxy.ts +function createExtensionProxyChannel() { + const port = chrome.runtime.connect({ name: "content-script" }); + function sendMessageToUserApp(payload) { + window.postMessage({ + source: __DEVTOOLS_KIT_EXTENSION_MESSAGING_EVENT_KEY__.PROXY_TO_SERVER, + payload + }, "*"); + } + function sendMessageToDevToolsClient(e) { + if (e.data && e.data.source === __DEVTOOLS_KIT_EXTENSION_MESSAGING_EVENT_KEY__.SERVER_TO_PROXY) try { + port.postMessage(e.data.payload); + } catch (e) {} + } + port.onMessage.addListener(sendMessageToUserApp); + window.addEventListener("message", sendMessageToDevToolsClient); + port.onDisconnect.addListener(() => { + window.removeEventListener("message", sendMessageToDevToolsClient); + sendMessageToUserApp(SuperJSON.stringify({ event: "shutdown" })); + }); + sendMessageToUserApp(SuperJSON.stringify({ event: "init" })); + return { + post: (data) => {}, + on: (handler) => {} + }; +} +//#endregion +//#region src/messaging/presets/extension/server.ts +function createExtensionServerChannel() { + return { + post: (data) => { + window.postMessage({ + source: __DEVTOOLS_KIT_EXTENSION_MESSAGING_EVENT_KEY__.SERVER_TO_PROXY, + payload: SuperJSON.stringify(data) + }, "*"); + }, + on: (handler) => { + const listener = (event) => { + if (event.data.source === __DEVTOOLS_KIT_EXTENSION_MESSAGING_EVENT_KEY__.PROXY_TO_SERVER && event.data.payload) handler(SuperJSON.parse(event.data.payload)); + }; + window.addEventListener("message", listener); + return () => { + window.removeEventListener("message", listener); + }; + } + }; +} +//#endregion +//#region src/messaging/presets/iframe/context.ts +const __DEVTOOLS_KIT_IFRAME_MESSAGING_EVENT_KEY = "__devtools-kit-iframe-messaging-event-key__"; +const __IFRAME_SERVER_CONTEXT__ = "iframe:server-context"; +function getIframeServerContext() { + return target[__IFRAME_SERVER_CONTEXT__]; +} +function setIframeServerContext(context) { + target[__IFRAME_SERVER_CONTEXT__] = context; +} +//#endregion +//#region src/messaging/presets/iframe/client.ts +function createIframeClientChannel() { + if (!isBrowser) return { + post: (data) => {}, + on: (handler) => {} + }; + return { + post: (data) => window.parent.postMessage(SuperJSON.stringify({ + event: __DEVTOOLS_KIT_IFRAME_MESSAGING_EVENT_KEY, + data + }), "*"), + on: (handler) => window.addEventListener("message", (event) => { + try { + const parsed = SuperJSON.parse(event.data); + if (event.source === window.parent && parsed.event === "__devtools-kit-iframe-messaging-event-key__") handler(parsed.data); + } catch (e) {} + }) + }; +} +//#endregion +//#region src/messaging/presets/iframe/server.ts +function createIframeServerChannel() { + if (!isBrowser) return { + post: (data) => {}, + on: (handler) => {} + }; + return { + post: (data) => { + getIframeServerContext()?.contentWindow?.postMessage(SuperJSON.stringify({ + event: __DEVTOOLS_KIT_IFRAME_MESSAGING_EVENT_KEY, + data + }), "*"); + }, + on: (handler) => { + window.addEventListener("message", (event) => { + const iframe = getIframeServerContext(); + try { + const parsed = SuperJSON.parse(event.data); + if (event.source === iframe?.contentWindow && parsed.event === "__devtools-kit-iframe-messaging-event-key__") handler(parsed.data); + } catch (e) {} + }); + } + }; +} +//#endregion +//#region src/messaging/presets/vite/context.ts +const __DEVTOOLS_KIT_VITE_MESSAGING_EVENT_KEY = "__devtools-kit-vite-messaging-event-key__"; +const __VITE_CLIENT_CONTEXT__ = "vite:client-context"; +const __VITE_SERVER_CONTEXT__ = "vite:server-context"; +function getViteClientContext() { + return target[__VITE_CLIENT_CONTEXT__]; +} +function setViteClientContext(context) { + target[__VITE_CLIENT_CONTEXT__] = context; +} +function getViteServerContext() { + return target[__VITE_SERVER_CONTEXT__]; +} +function setViteServerContext(context) { + target[__VITE_SERVER_CONTEXT__] = context; +} +//#endregion +//#region src/messaging/presets/vite/client.ts +function createViteClientChannel() { + const client = getViteClientContext(); + return { + post: (data) => { + client?.send(__DEVTOOLS_KIT_VITE_MESSAGING_EVENT_KEY, SuperJSON.stringify(data)); + }, + on: (handler) => { + client?.on(__DEVTOOLS_KIT_VITE_MESSAGING_EVENT_KEY, (event) => { + handler(SuperJSON.parse(event)); + }); + } + }; +} +//#endregion +//#region src/messaging/presets/vite/server.ts +function createViteServerChannel() { + const viteServer = getViteServerContext(); + const ws = viteServer.hot ?? viteServer.ws; + return { + post: (data) => ws?.send(__DEVTOOLS_KIT_VITE_MESSAGING_EVENT_KEY, SuperJSON.stringify(data)), + on: (handler) => ws?.on(__DEVTOOLS_KIT_VITE_MESSAGING_EVENT_KEY, (event) => { + handler(SuperJSON.parse(event)); + }) + }; +} +//#endregion +//#region src/messaging/index.ts +target.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__ ??= []; +target.__VUE_DEVTOOLS_KIT_RPC_CLIENT__ ??= null; +target.__VUE_DEVTOOLS_KIT_RPC_SERVER__ ??= null; +target.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__ ??= null; +target.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__ ??= null; +target.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__ ??= null; +function setRpcClientToGlobal(rpc) { + target.__VUE_DEVTOOLS_KIT_RPC_CLIENT__ = rpc; +} +function setRpcServerToGlobal(rpc) { + target.__VUE_DEVTOOLS_KIT_RPC_SERVER__ = rpc; +} +function getRpcClient() { + return target.__VUE_DEVTOOLS_KIT_RPC_CLIENT__; +} +function getRpcServer() { + return target.__VUE_DEVTOOLS_KIT_RPC_SERVER__; +} +function setViteRpcClientToGlobal(rpc) { + target.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__ = rpc; +} +function setViteRpcServerToGlobal(rpc) { + target.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__ = rpc; +} +function getViteRpcClient() { + return target.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__; +} +function getViteRpcServer() { + return target.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__; +} +function getChannel(preset, host = "client") { + const channel = { + iframe: { + client: createIframeClientChannel, + server: createIframeServerChannel + }[host], + electron: { + client: createElectronClientChannel, + proxy: createElectronProxyChannel, + server: createElectronServerChannel + }[host], + vite: { + client: createViteClientChannel, + server: createViteServerChannel + }[host], + broadcast: { + client: createBroadcastChannel, + server: createBroadcastChannel + }[host], + extension: { + client: createExtensionClientChannel, + proxy: createExtensionProxyChannel, + server: createExtensionServerChannel + }[host] + }[preset]; + return channel(); +} +function createRpcClient(functions, options = {}) { + const { channel: _channel, options: _options, preset } = options; + const channel = preset ? getChannel(preset) : _channel; + const rpc = createBirpc(functions, { + ..._options, + ...channel, + timeout: -1 + }); + if (preset === "vite") { + setViteRpcClientToGlobal(rpc); + return; + } + setRpcClientToGlobal(rpc); + return rpc; +} +function createRpcServer(functions, options = {}) { + const { channel: _channel, options: _options, preset } = options; + const channel = preset ? getChannel(preset, "server") : _channel; + const rpcServer = getRpcServer(); + if (!rpcServer) { + const group = createBirpcGroup(functions, [channel], { + ..._options, + timeout: -1 + }); + if (preset === "vite") { + setViteRpcServerToGlobal(group); + return; + } + setRpcServerToGlobal(group); + } else rpcServer.updateChannels((channels) => { + channels.push(channel); + }); +} +function createRpcProxy(options = {}) { + const { channel: _channel, options: _options, preset } = options; + const channel = preset ? getChannel(preset, "proxy") : _channel; + return createBirpc({}, { + ..._options, + ...channel, + timeout: -1 + }); +} +//#endregion +//#region src/core/component/state/custom.ts +function getFunctionDetails(func) { + let string = ""; + let matches = null; + try { + string = Function.prototype.toString.call(func); + matches = String.prototype.match.call(string, /\([\s\S]*?\)/); + } catch (e) {} + const match = matches && matches[0]; + const args = typeof match === "string" ? match : "(?)"; + return { _custom: { + type: "function", + displayText: `function ${escape(typeof func.name === "string" ? func.name : "")}${args}`, + tooltipText: string.trim() ? `
${escape(string)}
` : null + } }; +} +function getBigIntDetails(val) { + const stringifiedBigInt = BigInt.prototype.toString.call(val); + return { _custom: { + type: "bigint", + displayText: `BigInt(${stringifiedBigInt})`, + value: stringifiedBigInt + } }; +} +function getDateDetails(val) { + const date = new Date(val.getTime()); + date.setMinutes(date.getMinutes() - date.getTimezoneOffset()); + return { _custom: { + type: "date", + displayText: Date.prototype.toString.call(val), + value: date.toISOString().slice(0, -1) + } }; +} +function getMapDetails(val) { + return { _custom: { + type: "map", + displayText: "Map", + value: Object.fromEntries(val), + readOnly: true, + fields: { abstract: true } + } }; +} +function getSetDetails(val) { + const list = Array.from(val); + return { _custom: { + type: "set", + displayText: `Set[${list.length}]`, + value: list, + readOnly: true + } }; +} +function getCaughtGetters(store) { + const getters = {}; + const origGetters = store.getters || {}; + const keys = Object.keys(origGetters); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + Object.defineProperty(getters, key, { + enumerable: true, + get: () => { + try { + return origGetters[key]; + } catch (e) { + return e; + } + } + }); + } + return getters; +} +function reduceStateList(list) { + if (!list.length) return void 0; + return list.reduce((map, item) => { + const key = item.type || "data"; + const obj = map[key] = map[key] || {}; + obj[item.key] = item.value; + return map; + }, {}); +} +function namedNodeMapToObject(map) { + const result = {}; + const l = map.length; + for (let i = 0; i < l; i++) { + const node = map.item(i); + result[node.name] = node.value; + } + return result; +} +function getStoreDetails(store) { + return { _custom: { + type: "store", + displayText: "Store", + value: { + state: store.state, + getters: getCaughtGetters(store) + }, + fields: { abstract: true } + } }; +} +function getInstanceDetails(instance) { + if (instance._) instance = instance._; + const state = processInstanceState(instance); + return { _custom: { + type: "component", + id: instance.__VUE_DEVTOOLS_NEXT_UID__, + displayText: getInstanceName(instance), + tooltipText: "Component instance", + value: reduceStateList(state), + fields: { abstract: true } + } }; +} +function getComponentDefinitionDetails(definition) { + let display = getComponentName(definition); + if (display) { + if (definition.name && definition.__file) display += ` (${definition.__file})`; + } else display = "Unknown Component"; + return { _custom: { + type: "component-definition", + displayText: display, + tooltipText: "Component definition", + ...definition.__file ? { file: definition.__file } : {} + } }; +} +function getHTMLElementDetails(value) { + try { + return { _custom: { + type: "HTMLElement", + displayText: `<${value.tagName.toLowerCase()}>`, + value: namedNodeMapToObject(value.attributes) + } }; + } catch (e) { + return { _custom: { + type: "HTMLElement", + displayText: `${String(value)}` + } }; + } +} +/** +* - ObjectRefImpl, toRef({ foo: 'foo' }, 'foo'), `_value` is the actual value, (since 3.5.0) +* - GetterRefImpl, toRef(() => state.foo), `_value` is the actual value, (since 3.5.0) +* - RefImpl, ref('foo') / computed(() => 'foo'), `_value` is the actual value +*/ +function tryGetRefValue(ref) { + if (ensurePropertyExists(ref, "_value", true)) return ref._value; + if (ensurePropertyExists(ref, "value", true)) return ref.value; +} +function getObjectDetails(object) { + const info = getSetupStateType(object); + if (info.ref || info.computed || info.reactive) { + const stateTypeName = info.computed ? "Computed" : info.ref ? "Ref" : info.reactive ? "Reactive" : null; + const value = toRaw(info.reactive ? object : tryGetRefValue(object)); + const raw = ensurePropertyExists(object, "effect") ? object.effect?.raw?.toString() || object.effect?.fn?.toString() : null; + return { _custom: { + type: stateTypeName?.toLowerCase(), + stateTypeName, + value, + ...raw ? { tooltipText: `
${escape(raw)}
` } : {} + } }; + } + if (ensurePropertyExists(object, "__asyncLoader") && typeof object.__asyncLoader === "function") return { _custom: { + type: "component-definition", + display: "Async component definition" + } }; +} +//#endregion +//#region src/core/component/state/replacer.ts +function stringifyReplacer(key, _value, depth, seenInstance) { + if (key === "compilerOptions") return; + const val = this[key]; + const type = typeof val; + if (Array.isArray(val)) { + const l = val.length; + if (l > 5e3) return { + _isArray: true, + length: l, + items: val.slice(0, MAX_ARRAY_SIZE) + }; + return val; + } else if (typeof val === "string") if (val.length > 1e4) return `${val.substring(0, MAX_STRING_SIZE)}... (${val.length} total length)`; + else return val; + else if (type === "undefined") return UNDEFINED; + else if (val === Number.POSITIVE_INFINITY) return INFINITY; + else if (val === Number.NEGATIVE_INFINITY) return NEGATIVE_INFINITY; + else if (typeof val === "function") return getFunctionDetails(val); + else if (type === "symbol") return `[native Symbol ${Symbol.prototype.toString.call(val)}]`; + else if (typeof val === "bigint") return getBigIntDetails(val); + else if (val !== null && typeof val === "object") { + const proto = Object.prototype.toString.call(val); + if (proto === "[object Map]") return getMapDetails(val); + else if (proto === "[object Set]") return getSetDetails(val); + else if (proto === "[object RegExp]") return `[native RegExp ${RegExp.prototype.toString.call(val)}]`; + else if (proto === "[object Date]") return getDateDetails(val); + else if (proto === "[object Error]") return `[native Error ${val.message}<>${val.stack}]`; + else if (ensurePropertyExists(val, "state", true) && ensurePropertyExists(val, "_vm", true)) return getStoreDetails(val); + else if (isVueInstance(val)) { + const componentVal = getInstanceDetails(val); + const parentInstanceDepth = seenInstance?.get(val); + if (parentInstanceDepth && parentInstanceDepth < depth) return `[[CircularRef]] <${componentVal._custom.displayText}>`; + seenInstance?.set(val, depth); + return componentVal; + } else if (ensurePropertyExists(val, "render", true) && typeof val.render === "function") return getComponentDefinitionDetails(val); + else if (val.constructor && val.constructor.name === "VNode") return `[native VNode <${val.tag}>]`; + else if (typeof HTMLElement !== "undefined" && val instanceof HTMLElement) return getHTMLElementDetails(val); + else if (val.constructor?.name === "Store" && "_wrappedGetters" in val) return "[object Store]"; + const customDetails = getObjectDetails(val); + if (customDetails != null) return customDetails; + } else if (Number.isNaN(val)) return NAN; + return sanitize(val); +} +//#endregion +//#region src/shared/transfer.ts +const MAX_SERIALIZED_SIZE = 2 * 1024 * 1024; +function isObject(_data, proto) { + return proto === "[object Object]"; +} +function isArray(_data, proto) { + return proto === "[object Array]"; +} +function isVueReactiveLinkNode(node) { + const constructorName = node?.constructor?.name; + return constructorName === "Dep" && "activeLink" in node || constructorName === "Link" && "dep" in node; +} +/** +* This function is used to serialize object with handling circular references. +* +* ```ts +* const obj = { a: 1, b: { c: 2 }, d: obj } +* const result = stringifyCircularAutoChunks(obj) // call `encode` inside +* console.log(result) // [{"a":1,"b":2,"d":0},1,{"c":4},2] +* ``` +* +* Each object is stored in a list and the index is used to reference the object. +* With seen map, we can check if the object is already stored in the list to avoid circular references. +* +* Note: here we have a special case for Vue instance. +* We check if a vue instance includes itself in its properties and skip it +* by using `seenVueInstance` and `depth` to avoid infinite loop. +*/ +function encode(data, replacer, list, seen, depth = 0, seenVueInstance = /* @__PURE__ */ new Map()) { + let stored; + let key; + let value; + let i; + let l; + const seenIndex = seen.get(data); + if (seenIndex != null) return seenIndex; + const index = list.length; + const proto = Object.prototype.toString.call(data); + if (isObject(data, proto)) { + if (isVueReactiveLinkNode(data)) return index; + stored = {}; + seen.set(data, index); + list.push(stored); + const keys = Object.keys(data); + for (i = 0, l = keys.length; i < l; i++) { + key = keys[i]; + if (key === "compilerOptions") return index; + value = data[key]; + const isVm = value != null && isObject(value, Object.prototype.toString.call(data)) && isVueInstance(value); + try { + if (replacer) value = replacer.call(data, key, value, depth, seenVueInstance); + } catch (e) { + value = e; + } + stored[key] = encode(value, replacer, list, seen, depth + 1, seenVueInstance); + if (isVm) seenVueInstance.delete(value); + } + } else if (isArray(data, proto)) { + stored = []; + seen.set(data, index); + list.push(stored); + for (i = 0, l = data.length; i < l; i++) { + try { + value = data[i]; + if (replacer) value = replacer.call(data, i, value, depth, seenVueInstance); + } catch (e) { + value = e; + } + stored[i] = encode(value, replacer, list, seen, depth + 1, seenVueInstance); + } + } else list.push(data); + return index; +} +function decode(list, reviver = null) { + let i = list.length; + let j, k, data, key, value, proto; + while (i--) { + data = list[i]; + proto = Object.prototype.toString.call(data); + if (proto === "[object Object]") { + const keys = Object.keys(data); + for (j = 0, k = keys.length; j < k; j++) { + key = keys[j]; + value = list[data[key]]; + if (reviver) value = reviver.call(data, key, value); + data[key] = value; + } + } else if (proto === "[object Array]") for (j = 0, k = data.length; j < k; j++) { + value = list[data[j]]; + if (reviver) value = reviver.call(data, j, value); + data[j] = value; + } + } +} +function stringifyCircularAutoChunks(data, replacer = null, space = null) { + let result; + try { + result = arguments.length === 1 ? JSON.stringify(data) : JSON.stringify(data, (k, v) => replacer?.(k, v)?.call(this), space); + } catch (e) { + result = stringifyStrictCircularAutoChunks(data, replacer, space); + } + if (result.length > MAX_SERIALIZED_SIZE) { + const chunkCount = Math.ceil(result.length / MAX_SERIALIZED_SIZE); + const chunks = []; + for (let i = 0; i < chunkCount; i++) chunks.push(result.slice(i * MAX_SERIALIZED_SIZE, (i + 1) * MAX_SERIALIZED_SIZE)); + return chunks; + } + return result; +} +function stringifyStrictCircularAutoChunks(data, replacer = null, space = null) { + const list = []; + encode(data, replacer, list, /* @__PURE__ */ new Map()); + return space ? ` ${JSON.stringify(list, null, space)}` : ` ${JSON.stringify(list)}`; +} +function parseCircularAutoChunks(data, reviver = null) { + if (Array.isArray(data)) data = data.join(""); + if (!/^\s/.test(data)) return arguments.length === 1 ? JSON.parse(data) : JSON.parse(data, reviver); + else { + const list = JSON.parse(data); + decode(list, reviver); + return list[0]; + } +} +//#endregion +//#region src/shared/util.ts +function stringify(data) { + return stringifyCircularAutoChunks(data, stringifyReplacer); +} +function parse(data, revive = false) { + if (data == void 0) return {}; + return revive ? parseCircularAutoChunks(data, reviver) : parseCircularAutoChunks(data); +} +//#endregion +//#region src/index.ts +const devtools = { + hook, + init: () => { + initDevTools(); + }, + get ctx() { + return devtoolsContext; + }, + get api() { + return devtoolsContext.api; + } +}; +//#endregion +export { DevToolsContextHookKeys, DevToolsMessagingHookKeys, DevToolsV6PluginAPIHookKeys, INFINITY, NAN, NEGATIVE_INFINITY, ROUTER_INFO_KEY, ROUTER_KEY, UNDEFINED, activeAppRecord, addCustomCommand, addCustomTab, addDevToolsAppRecord, addDevToolsPluginToBuffer, addInspector, callConnectedUpdatedHook, callDevToolsPluginSetupFn, callInspectorUpdatedHook, callStateUpdatedHook, createComponentsDevToolsPlugin, createDevToolsApi, createDevToolsCtxHooks, createRpcClient, createRpcProxy, createRpcServer, devtools, devtoolsAppRecords, devtoolsContext, devtoolsInspector, devtoolsPluginBuffer, devtoolsRouter, devtoolsRouterInfo, devtoolsState, escape, formatInspectorStateValue, getActiveInspectors, getDevToolsEnv, getExtensionClientContext, getInspector, getInspectorActions, getInspectorInfo, getInspectorNodeActions, getInspectorStateValueType, getRaw, getRpcClient, getRpcServer, getViteRpcClient, getViteRpcServer, initDevTools, isPlainObject, onDevToolsClientConnected, onDevToolsConnected, parse, registerDevToolsPlugin, removeCustomCommand, removeDevToolsAppRecord, removeRegisteredPluginApp, resetDevToolsState, setActiveAppRecord, setActiveAppRecordId, setDevToolsEnv, setElectronClientContext, setElectronProxyContext, setElectronServerContext, setExtensionClientContext, setIframeServerContext, setOpenInEditorBaseUrl, setRpcServerToGlobal, setViteClientContext, setViteRpcClientToGlobal, setViteRpcServerToGlobal, setViteServerContext, setupDevToolsPlugin, stringify, toEdit, toSubmit, toggleClientConnected, toggleComponentInspectorEnabled, toggleHighPerfMode, updateDevToolsClientDetected, updateDevToolsState, updateTimelineLayersState }; diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/@vue/devtools-shared b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/@vue/devtools-shared new file mode 120000 index 0000000..3b3876e --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/@vue/devtools-shared @@ -0,0 +1 @@ +../../../devtools-shared@8.1.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/hookable b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/hookable new file mode 120000 index 0000000..69e84d2 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/hookable @@ -0,0 +1 @@ +../../../hookable@5.5.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/perfect-debounce b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/perfect-debounce new file mode 120000 index 0000000..6e722f5 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/node_modules/perfect-debounce @@ -0,0 +1 @@ +../../../perfect-debounce@2.1.0 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/package.json b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/package.json new file mode 100644 index 0000000..63840ca --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-kit@8.1.3/package.json @@ -0,0 +1,43 @@ +{ + "name": "@vue/devtools-kit", + "type": "module", + "version": "8.1.3", + "author": "webfansplz", + "license": "MIT", + "repository": { + "directory": "packages/devtools-kit", + "type": "git", + "url": "git+https://github.com/vuejs/devtools.git" + }, + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "types": "./types.d.ts", + "files": [ + "**.d.ts", + "dist" + ], + "dependencies": { + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "perfect-debounce": "^2.0.0", + "@vue/devtools-shared": "^8.1.3" + }, + "devDependencies": { + "@types/speakingurl": "^13.0.6", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2", + "vue": "^3.5.22", + "vue-router": "^4.6.0" + }, + "scripts": { + "build": "tsdown --clean", + "prepare:type": "tsdown --dts-only", + "stub": "tsdown --watch --onSuccess 'tsdown --dts-only'" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@7.7.9/dist/index.cjs similarity index 100% rename from frontend_admin/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs rename to frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@7.7.9/dist/index.cjs diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-shared/package.json b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@7.7.9/package.json similarity index 100% rename from frontend_admin/.output/server/node_modules/@vue/devtools-shared/package.json rename to frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@7.7.9/package.json diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/dist/index.js b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/dist/index.js new file mode 100644 index 0000000..2fde5c3 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/dist/index.js @@ -0,0 +1,239 @@ +//#region \0rolldown/runtime.js +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { + key = keys[i]; + if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { + get: ((k) => from[k]).bind(null, key), + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true +}) : target, mod)); +//#endregion +//#region src/constants.ts +const VIEW_MODE_STORAGE_KEY = "__vue-devtools-view-mode__"; +const VITE_PLUGIN_DETECTED_STORAGE_KEY = "__vue-devtools-vite-plugin-detected__"; +const VITE_PLUGIN_CLIENT_URL_STORAGE_KEY = "__vue-devtools-vite-plugin-client-url__"; +const BROADCAST_CHANNEL_NAME = "__vue-devtools-broadcast-channel__"; +//#endregion +//#region src/env.ts +const isBrowser = typeof navigator !== "undefined"; +const target = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : {}; +const isInChromePanel = typeof target.chrome !== "undefined" && !!target.chrome.devtools; +const isInIframe = isBrowser && target.self !== target.top; +const isInElectron = typeof navigator !== "undefined" && navigator.userAgent?.toLowerCase().includes("electron"); +const isNuxtApp = typeof window !== "undefined" && !!window.__NUXT__; +const isInSeparateWindow = !isInIframe && !isInChromePanel && !isInElectron; +//#endregion +//#region src/general.ts +var import_rfdc = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => { + module.exports = rfdc; + function copyBuffer(cur) { + if (cur instanceof Buffer) return Buffer.from(cur); + return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length); + } + function rfdc(opts) { + opts = opts || {}; + if (opts.circles) return rfdcCircles(opts); + const constructorHandlers = /* @__PURE__ */ new Map(); + constructorHandlers.set(Date, (o) => new Date(o)); + constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn))); + constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn))); + if (opts.constructorHandlers) for (const handler of opts.constructorHandlers) constructorHandlers.set(handler[0], handler[1]); + let handler = null; + return opts.proto ? cloneProto : clone; + function cloneArray(a, fn) { + const keys = Object.keys(a); + const a2 = new Array(keys.length); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + const cur = a[k]; + if (typeof cur !== "object" || cur === null) a2[k] = cur; + else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn); + else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur); + else a2[k] = fn(cur); + } + return a2; + } + function clone(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, clone); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone); + const o2 = {}; + for (const k in o) { + if (Object.hasOwnProperty.call(o, k) === false) continue; + const cur = o[k]; + if (typeof cur !== "object" || cur === null) o2[k] = cur; + else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone); + else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur); + else o2[k] = clone(cur); + } + return o2; + } + function cloneProto(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, cloneProto); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto); + const o2 = {}; + for (const k in o) { + const cur = o[k]; + if (typeof cur !== "object" || cur === null) o2[k] = cur; + else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto); + else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur); + else o2[k] = cloneProto(cur); + } + return o2; + } + } + function rfdcCircles(opts) { + const refs = []; + const refsNew = []; + const constructorHandlers = /* @__PURE__ */ new Map(); + constructorHandlers.set(Date, (o) => new Date(o)); + constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn))); + constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn))); + if (opts.constructorHandlers) for (const handler of opts.constructorHandlers) constructorHandlers.set(handler[0], handler[1]); + let handler = null; + return opts.proto ? cloneProto : clone; + function cloneArray(a, fn) { + const keys = Object.keys(a); + const a2 = new Array(keys.length); + for (let i = 0; i < keys.length; i++) { + const k = keys[i]; + const cur = a[k]; + if (typeof cur !== "object" || cur === null) a2[k] = cur; + else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn); + else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur); + else { + const index = refs.indexOf(cur); + if (index !== -1) a2[k] = refsNew[index]; + else a2[k] = fn(cur); + } + } + return a2; + } + function clone(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, clone); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone); + const o2 = {}; + refs.push(o); + refsNew.push(o2); + for (const k in o) { + if (Object.hasOwnProperty.call(o, k) === false) continue; + const cur = o[k]; + if (typeof cur !== "object" || cur === null) o2[k] = cur; + else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone); + else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur); + else { + const i = refs.indexOf(cur); + if (i !== -1) o2[k] = refsNew[i]; + else o2[k] = clone(cur); + } + } + refs.pop(); + refsNew.pop(); + return o2; + } + function cloneProto(o) { + if (typeof o !== "object" || o === null) return o; + if (Array.isArray(o)) return cloneArray(o, cloneProto); + if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto); + const o2 = {}; + refs.push(o); + refsNew.push(o2); + for (const k in o) { + const cur = o[k]; + if (typeof cur !== "object" || cur === null) o2[k] = cur; + else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto); + else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur); + else { + const i = refs.indexOf(cur); + if (i !== -1) o2[k] = refsNew[i]; + else o2[k] = cloneProto(cur); + } + } + refs.pop(); + refsNew.pop(); + return o2; + } + } +})))(), 1); +function NOOP() {} +const isNumeric = (str) => `${+str}` === str; +const isMacOS = () => navigator?.platform ? navigator?.platform.toLowerCase().includes("mac") : /Macintosh/.test(navigator.userAgent); +const classifyRE = /(?:^|[-_/])(\w)/g; +const camelizeRE = /-(\w)/g; +const kebabizeRE = /([a-z0-9])([A-Z])/g; +function toUpper(_, c) { + return c ? c.toUpperCase() : ""; +} +function classify(str) { + return str && `${str}`.replace(classifyRE, toUpper); +} +function camelize(str) { + return str && str.replace(camelizeRE, toUpper); +} +function kebabize(str) { + return str && str.replace(kebabizeRE, (_, lowerCaseCharacter, upperCaseLetter) => { + return `${lowerCaseCharacter}-${upperCaseLetter}`; + }).toLowerCase(); +} +function basename(filename, ext) { + let normalizedFilename = filename.replace(/^[a-z]:/i, "").replace(/\\/g, "/"); + if (normalizedFilename.endsWith(`index${ext}`)) normalizedFilename = normalizedFilename.replace(`/index${ext}`, ext); + const lastSlashIndex = normalizedFilename.lastIndexOf("/"); + const baseNameWithExt = normalizedFilename.substring(lastSlashIndex + 1); + if (ext) { + const extIndex = baseNameWithExt.lastIndexOf(ext); + return baseNameWithExt.substring(0, extIndex); + } + return ""; +} +function sortByKey(state) { + return state && state.slice().sort((a, b) => { + if (a.key < b.key) return -1; + if (a.key > b.key) return 1; + return 0; + }); +} +const HTTP_URL_RE = /^https?:\/\//; +/** +* Check a string is start with `/` or a valid http url +*/ +function isUrlString(str) { + return str.startsWith("/") || HTTP_URL_RE.test(str); +} +/** +* @copyright [rfdc](https://github.com/davidmarkclements/rfdc) +* @description A really fast deep clone alternative +*/ +const deepClone = (0, import_rfdc.default)({ circles: true }); +function randomStr() { + return Math.random().toString(36).slice(2); +} +function isObject(value) { + return typeof value === "object" && !Array.isArray(value) && value !== null; +} +function isArray(value) { + return Array.isArray(value); +} +function isSet(value) { + return value instanceof Set; +} +function isMap(value) { + return value instanceof Map; +} +//#endregion +export { BROADCAST_CHANNEL_NAME, NOOP, VIEW_MODE_STORAGE_KEY, VITE_PLUGIN_CLIENT_URL_STORAGE_KEY, VITE_PLUGIN_DETECTED_STORAGE_KEY, basename, camelize, classify, deepClone, isArray, isBrowser, isInChromePanel, isInElectron, isInIframe, isInSeparateWindow, isMacOS, isMap, isNumeric, isNuxtApp, isObject, isSet, isUrlString, kebabize, randomStr, sortByKey, target }; diff --git a/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/package.json b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/package.json new file mode 100644 index 0000000..6684cf1 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/@vue/devtools-shared@8.1.3/package.json @@ -0,0 +1,32 @@ +{ + "name": "@vue/devtools-shared", + "type": "module", + "version": "8.1.3", + "author": "webfansplz", + "license": "MIT", + "repository": { + "directory": "packages/shared", + "type": "git", + "url": "git+https://github.com/vuejs/devtools.git" + }, + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.js", + "files": [ + "dist" + ], + "devDependencies": { + "@types/node": "^24.7.2", + "rfdc": "^1.4.1" + }, + "scripts": { + "build": "tsdown", + "prepare:type": "tsdown --dts-only", + "stub": "tsdown --watch --onSuccess 'tsdown --dts-only'" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs b/frontend_admin/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs new file mode 100644 index 0000000..6695406 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.mjs @@ -0,0 +1,290 @@ +function flatHooks(configHooks, hooks = {}, parentName) { + for (const key in configHooks) { + const subHook = configHooks[key]; + const name = parentName ? `${parentName}:${key}` : key; + if (typeof subHook === "object" && subHook !== null) { + flatHooks(subHook, hooks, name); + } else if (typeof subHook === "function") { + hooks[name] = subHook; + } + } + return hooks; +} +function mergeHooks(...hooks) { + const finalHooks = {}; + for (const hook of hooks) { + const flatenHook = flatHooks(hook); + for (const key in flatenHook) { + if (finalHooks[key]) { + finalHooks[key].push(flatenHook[key]); + } else { + finalHooks[key] = [flatenHook[key]]; + } + } + } + for (const key in finalHooks) { + if (finalHooks[key].length > 1) { + const array = finalHooks[key]; + finalHooks[key] = (...arguments_) => serial(array, (function_) => function_(...arguments_)); + } else { + finalHooks[key] = finalHooks[key][0]; + } + } + return finalHooks; +} +function serial(tasks, function_) { + return tasks.reduce( + (promise, task) => promise.then(() => function_(task)), + Promise.resolve() + ); +} +const defaultTask = { run: (function_) => function_() }; +const _createTask = () => defaultTask; +const createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask; +function serialTaskCaller(hooks, args) { + const name = args.shift(); + const task = createTask(name); + return hooks.reduce( + (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))), + Promise.resolve() + ); +} +function parallelTaskCaller(hooks, args) { + const name = args.shift(); + const task = createTask(name); + return Promise.all(hooks.map((hook) => task.run(() => hook(...args)))); +} +function serialCaller(hooks, arguments_) { + return hooks.reduce( + (promise, hookFunction) => promise.then(() => hookFunction(...arguments_ || [])), + Promise.resolve() + ); +} +function parallelCaller(hooks, args) { + return Promise.all(hooks.map((hook) => hook(...args || []))); +} +function callEachWith(callbacks, arg0) { + for (const callback of [...callbacks]) { + callback(arg0); + } +} + +class Hookable { + 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(name, function_, options = {}) { + if (!name || typeof function_ !== "function") { + return () => { + }; + } + const originalName = name; + let dep; + while (this._deprecatedHooks[name]) { + dep = this._deprecatedHooks[name]; + name = dep.to; + } + if (dep && !options.allowDeprecated) { + let message = dep.message; + if (!message) { + message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : ""); + } + if (!this._deprecatedMessages) { + this._deprecatedMessages = /* @__PURE__ */ new Set(); + } + if (!this._deprecatedMessages.has(message)) { + console.warn(message); + this._deprecatedMessages.add(message); + } + } + if (!function_.name) { + try { + Object.defineProperty(function_, "name", { + get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb", + configurable: true + }); + } catch { + } + } + this._hooks[name] = this._hooks[name] || []; + this._hooks[name].push(function_); + return () => { + if (function_) { + this.removeHook(name, function_); + function_ = void 0; + } + }; + } + hookOnce(name, function_) { + let _unreg; + let _function = (...arguments_) => { + if (typeof _unreg === "function") { + _unreg(); + } + _unreg = void 0; + _function = void 0; + return function_(...arguments_); + }; + _unreg = this.hook(name, _function); + return _unreg; + } + removeHook(name, function_) { + if (this._hooks[name]) { + const index = this._hooks[name].indexOf(function_); + if (index !== -1) { + this._hooks[name].splice(index, 1); + } + if (this._hooks[name].length === 0) { + delete this._hooks[name]; + } + } + } + deprecateHook(name, deprecated) { + this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated; + const _hooks = this._hooks[name] || []; + delete this._hooks[name]; + for (const hook of _hooks) { + this.hook(name, hook); + } + } + deprecateHooks(deprecatedHooks) { + Object.assign(this._deprecatedHooks, deprecatedHooks); + for (const name in deprecatedHooks) { + this.deprecateHook(name, deprecatedHooks[name]); + } + } + addHooks(configHooks) { + const hooks = flatHooks(configHooks); + const removeFns = Object.keys(hooks).map( + (key) => this.hook(key, hooks[key]) + ); + return () => { + for (const unreg of removeFns.splice(0, removeFns.length)) { + unreg(); + } + }; + } + removeHooks(configHooks) { + const hooks = flatHooks(configHooks); + for (const key in hooks) { + this.removeHook(key, hooks[key]); + } + } + removeAllHooks() { + for (const key in this._hooks) { + delete this._hooks[key]; + } + } + callHook(name, ...arguments_) { + arguments_.unshift(name); + return this.callHookWith(serialTaskCaller, name, ...arguments_); + } + callHookParallel(name, ...arguments_) { + arguments_.unshift(name); + return this.callHookWith(parallelTaskCaller, name, ...arguments_); + } + callHookWith(caller, name, ...arguments_) { + const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0; + if (this._before) { + callEachWith(this._before, event); + } + const result = caller( + name in this._hooks ? [...this._hooks[name]] : [], + arguments_ + ); + if (result instanceof Promise) { + return result.finally(() => { + if (this._after && event) { + callEachWith(this._after, event); + } + }); + } + if (this._after && event) { + callEachWith(this._after, event); + } + return result; + } + beforeEach(function_) { + this._before = this._before || []; + this._before.push(function_); + return () => { + if (this._before !== void 0) { + const index = this._before.indexOf(function_); + if (index !== -1) { + this._before.splice(index, 1); + } + } + }; + } + afterEach(function_) { + this._after = this._after || []; + this._after.push(function_); + return () => { + if (this._after !== void 0) { + const index = this._after.indexOf(function_); + if (index !== -1) { + this._after.splice(index, 1); + } + } + }; + } +} +function createHooks() { + return new Hookable(); +} + +const isBrowser = typeof window !== "undefined"; +function createDebugger(hooks, _options = {}) { + const options = { + inspect: isBrowser, + group: isBrowser, + filter: () => true, + ..._options + }; + const _filter = options.filter; + const filter = typeof _filter === "string" ? (name) => name.startsWith(_filter) : _filter; + const _tag = options.tag ? `[${options.tag}] ` : ""; + const logPrefix = (event) => _tag + event.name + "".padEnd(event._id, "\0"); + const _idCtr = {}; + const unsubscribeBefore = hooks.beforeEach((event) => { + if (filter !== void 0 && !filter(event.name)) { + return; + } + _idCtr[event.name] = _idCtr[event.name] || 0; + event._id = _idCtr[event.name]++; + console.time(logPrefix(event)); + }); + const unsubscribeAfter = hooks.afterEach((event) => { + if (filter !== void 0 && !filter(event.name)) { + return; + } + if (options.group) { + console.groupCollapsed(event.name); + } + if (options.inspect) { + console.timeLog(logPrefix(event), event.args); + } else { + console.timeEnd(logPrefix(event)); + } + if (options.group) { + console.groupEnd(); + } + _idCtr[event.name]--; + }); + return { + /** Stop debugging and remove listeners */ + close: () => { + unsubscribeBefore(); + unsubscribeAfter(); + } + }; +} + +export { Hookable, createDebugger, createHooks, flatHooks, mergeHooks, parallelCaller, serial, serialCaller }; diff --git a/frontend_admin/.output/server/node_modules/perfect-debounce/dist/index.cjs b/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/dist/index.cjs similarity index 100% rename from frontend_admin/.output/server/node_modules/perfect-debounce/dist/index.cjs rename to frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/dist/index.cjs diff --git a/frontend_admin/.output/server/node_modules/perfect-debounce/package.json b/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/package.json similarity index 100% rename from frontend_admin/.output/server/node_modules/perfect-debounce/package.json rename to frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/package.json diff --git a/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs b/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs new file mode 100644 index 0000000..a2401a3 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs @@ -0,0 +1,89 @@ +//#region src/index.ts +const DEBOUNCE_DEFAULTS = { trailing: true }; +/** +Debounce functions +@param fn - Promise-returning/async function to debounce. +@param wait - Milliseconds to wait before calling `fn`. Default value is 25ms +@returns A function that delays calling `fn` until after `wait` milliseconds have elapsed since the last time it was called. +@example +``` +import { debounce } from 'perfect-debounce'; +const expensiveCall = async input => input; +const debouncedFn = debounce(expensiveCall, 200); +for (const number of [1, 2, 3]) { +console.log(await debouncedFn(number)); +} +//=> 1 +//=> 2 +//=> 3 +``` +*/ +function debounce(fn, wait = 25, options = {}) { + options = { + ...DEBOUNCE_DEFAULTS, + ...options + }; + if (!Number.isFinite(wait)) throw new TypeError("Expected `wait` to be a finite number"); + let leadingValue; + let timeout; + let resolveList = []; + let currentPromise; + let trailingArgs; + const applyFn = (_this, args) => { + currentPromise = _applyPromised(fn, _this, args); + currentPromise.finally(() => { + currentPromise = null; + if (options.trailing && trailingArgs && !timeout) { + const promise = applyFn(_this, trailingArgs); + trailingArgs = null; + return promise; + } + }); + return currentPromise; + }; + const debounced = function(...args) { + if (options.trailing) trailingArgs = args; + if (currentPromise) return currentPromise; + return new Promise((resolve) => { + const shouldCallNow = !timeout && options.leading; + clearTimeout(timeout); + timeout = setTimeout(() => { + timeout = null; + const promise = options.leading ? leadingValue : applyFn(this, args); + trailingArgs = null; + for (const _resolve of resolveList) _resolve(promise); + resolveList = []; + }, wait); + if (shouldCallNow) { + leadingValue = applyFn(this, args); + resolve(leadingValue); + } else resolveList.push(resolve); + }); + }; + const _clearTimeout = (timer) => { + if (timer) { + clearTimeout(timer); + timeout = null; + } + }; + debounced.isPending = () => !!timeout; + debounced.cancel = () => { + _clearTimeout(timeout); + resolveList = []; + trailingArgs = null; + }; + debounced.flush = () => { + _clearTimeout(timeout); + if (!trailingArgs || currentPromise) return; + const args = trailingArgs; + trailingArgs = null; + return applyFn(this, args); + }; + return debounced; +} +async function _applyPromised(fn, _this, args) { + return await fn.apply(_this, args); +} + +//#endregion +export { debounce }; \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json b/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json new file mode 100644 index 0000000..ae80ffa --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json @@ -0,0 +1,41 @@ +{ + "name": "perfect-debounce", + "version": "2.1.0", + "description": "", + "repository": "unjs/perfect-debounce", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": "./dist/index.mjs" + }, + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "files": [ + "dist" + ], + "scripts": { + "build": "obuild", + "dev": "vitest dev", + "lint": "eslint . && prettier --check src test", + "lint:fix": "eslint . --fix && prettier -w src test", + "release": "pnpm test && pnpm build && changelogen --release --push && npm publish", + "test": "vitest run --coverage" + }, + "devDependencies": { + "@types/node": "^25.0.10", + "@vitest/coverage-v8": "^4.0.17", + "automd": "^0.4.2", + "changelogen": "^0.6.2", + "eslint": "^9.39.2", + "eslint-config-unjs": "^0.6.2", + "in-range": "^3.0.0", + "obuild": "^0.4.18", + "prettier": "^3.8.1", + "time-span": "^5.1.0", + "typescript": "^5.9.3", + "vitest": "^4.0.17" + }, + "packageManager": "pnpm@10.28.1" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs b/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/dist/devtools-EWN81iOl.mjs similarity index 100% rename from frontend_admin/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs rename to frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/dist/devtools-EWN81iOl.mjs diff --git a/frontend_admin/.output/server/node_modules/vue-router/dist/vue-router.mjs b/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/dist/vue-router.mjs similarity index 100% rename from frontend_admin/.output/server/node_modules/vue-router/dist/vue-router.mjs rename to frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/dist/vue-router.mjs diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/node_modules/@vue/devtools-api b/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/node_modules/@vue/devtools-api new file mode 120000 index 0000000..f39a93d --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/node_modules/@vue/devtools-api @@ -0,0 +1 @@ +../../../@vue/devtools-api@6.6.4 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/vue-router/package.json b/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/package.json similarity index 100% rename from frontend_admin/.output/server/node_modules/vue-router/package.json rename to frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/package.json diff --git a/frontend_admin/.output/server/node_modules/vue-router/vue-router.node.mjs b/frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/vue-router.node.mjs similarity index 100% rename from frontend_admin/.output/server/node_modules/vue-router/vue-router.node.mjs rename to frontend_admin/.output/server/node_modules/.nitro/vue-router@4.6.4/vue-router.node.mjs diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/devtools-DCoWQoU_.js b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/devtools-DCoWQoU_.js new file mode 100644 index 0000000..60c60a2 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/devtools-DCoWQoU_.js @@ -0,0 +1,1034 @@ +/*! +* vue-router v5.1.0 +* (c) 2026 Eduardo San Martin Morote +* @license MIT +*/ +import { f as assign, g as isRouteComponent, h as isESModule, l as createRouterError, m as isArray, r as matchedRouteKey, y as isBrowser } from "./useApi-s_02lHjl.js"; +import { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from "vue"; +import { setupDevtoolsPlugin } from "@vue/devtools-api"; +//#region src/warning.ts +function warn$1(msg) { + const args = Array.from(arguments).slice(1); + console.warn.apply(console, ["[Vue Router warn]: " + msg].concat(args)); +} +//#endregion +//#region src/encoding.ts +/** +* Encoding Rules (␣ = Space) +* - Path: ␣ " < > # ? { } +* - Query: ␣ " < > # & = +* - Hash: ␣ " < > ` +* +* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2) +* defines some extra characters to be encoded. Most browsers do not encode them +* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to +* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`) +* plus `-._~`. This extra safety should be applied to query by patching the +* string returned by encodeURIComponent encodeURI also encodes `[\]^`. `\` +* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\` +* into a `/` if directly typed in. The _backtick_ (`````) should also be +* encoded everywhere because some browsers like FF encode it when directly +* written while others don't. Safari and IE don't encode ``"<>{}``` in hash. +*/ +const HASH_RE = /#/g; +const AMPERSAND_RE = /&/g; +const SLASH_RE = /\//g; +const EQUAL_RE = /=/g; +const IM_RE = /\?/g; +const PLUS_RE = /\+/g; +/** +* NOTE: It's not clear to me if we should encode the + symbol in queries, it +* seems to be less flexible than not doing so and I can't find out the legacy +* systems requiring this for regular requests like text/html. In the standard, +* the encoding of the plus character is only mentioned for +* application/x-www-form-urlencoded +* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo +* leave the plus character as is in queries. To be more flexible, we allow the +* plus character on the query, but it can also be manually encoded by the user. +* +* Resources: +* - https://url.spec.whatwg.org/#urlencoded-parsing +* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20 +*/ +const ENC_BRACKET_OPEN_RE = /%5B/g; +const ENC_BRACKET_CLOSE_RE = /%5D/g; +const ENC_CARET_RE = /%5E/g; +const ENC_BACKTICK_RE = /%60/g; +const ENC_CURLY_OPEN_RE = /%7B/g; +const ENC_PIPE_RE = /%7C/g; +const ENC_CURLY_CLOSE_RE = /%7D/g; +const ENC_SPACE_RE = /%20/g; +/** +* Encode characters that need to be encoded on the path, search and hash +* sections of the URL. +* +* @internal +* @param text - string to encode +* @returns encoded string +*/ +function commonEncode(text) { + return text == null ? "" : encodeURI("" + text).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]"); +} +/** +* Encode characters that need to be encoded on the hash section of the URL. +* +* @param text - string to encode +* @returns encoded string +*/ +function encodeHash(text) { + return commonEncode(text).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); +} +/** +* Encode characters that need to be encoded query values on the query +* section of the URL. +* +* @param text - string to encode +* @returns encoded string +*/ +function encodeQueryValue(text) { + return commonEncode(text).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^"); +} +/** +* Like `encodeQueryValue` but also encodes the `=` character. +* +* @param text - string to encode +*/ +function encodeQueryKey(text) { + return encodeQueryValue(text).replace(EQUAL_RE, "%3D"); +} +/** +* Encode characters that need to be encoded on the path section of the URL. +* +* @param text - string to encode +* @returns encoded string +*/ +function encodePath(text) { + return commonEncode(text).replace(HASH_RE, "%23").replace(IM_RE, "%3F"); +} +/** +* Encode characters that need to be encoded on the path section of the URL as a +* param. This function encodes everything {@link encodePath} does plus the +* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty +* string instead. +* +* @param text - string to encode +* @returns encoded string +*/ +function encodeParam(text) { + return encodePath(text).replace(SLASH_RE, "%2F"); +} +function decode(text) { + if (text == null) return null; + try { + return decodeURIComponent("" + text); + } catch { + process.env.NODE_ENV !== "production" && warn$1(`Error decoding "${text}". Using original value`); + } + return "" + text; +} +//#endregion +//#region src/location.ts +const TRAILING_SLASH_RE = /\/$/; +const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, ""); +/** +* Transforms a URI into a normalized history location +* +* @param parseQuery +* @param location - URI to normalize +* @param currentLocation - current absolute location. Allows resolving relative +* paths. Must start with `/`. Defaults to `/` +* @returns a normalized history location +*/ +function parseURL(parseQuery, location, currentLocation = "/") { + let path, query = {}, searchString = "", hash = ""; + const hashPos = location.indexOf("#"); + let searchPos = location.indexOf("?"); + searchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos; + if (searchPos >= 0) { + path = location.slice(0, searchPos); + searchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length); + query = parseQuery(searchString.slice(1)); + } + if (hashPos >= 0) { + path = path || location.slice(0, hashPos); + hash = location.slice(hashPos, location.length); + } + path = resolveRelativePath(path != null ? path : location, currentLocation); + return { + fullPath: path + searchString + hash, + path, + query, + hash: decode(hash) + }; +} +function NEW_stringifyURL(stringifyQuery, path, query, hash = "") { + const searchText = stringifyQuery(query); + return path + (searchText && "?") + searchText + encodeHash(hash); +} +/** +* Stringifies a URL object +* +* @param stringifyQuery +* @param location +*/ +function stringifyURL(stringifyQuery, location) { + const query = location.query ? stringifyQuery(location.query) : ""; + return location.path + (query && "?") + query + (location.hash || ""); +} +/** +* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way. +* +* @param pathname - location.pathname +* @param base - base to strip off +*/ +function stripBase(pathname, base) { + if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname; + return pathname.slice(base.length) || "/"; +} +/** +* Checks if two RouteLocation are equal. This means that both locations are +* pointing towards the same {@link RouteRecord} and that all `params`, `query` +* parameters and `hash` are the same +* +* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it. +* @param a - first {@link RouteLocation} +* @param b - second {@link RouteLocation} +*/ +function isSameRouteLocation(stringifyQuery, a, b) { + const aLastIndex = a.matched.length - 1; + const bLastIndex = b.matched.length - 1; + return aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash; +} +/** +* Check if two `RouteRecords` are equal. Takes into account aliases: they are +* considered equal to the `RouteRecord` they are aliasing. +* +* @param a - first {@link RouteRecord} +* @param b - second {@link RouteRecord} +*/ +function isSameRouteRecord(a, b) { + return (a.aliasOf || a) === (b.aliasOf || b); +} +function isSameRouteLocationParams(a, b) { + if (Object.keys(a).length !== Object.keys(b).length) return false; + for (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false; + return true; +} +function isSameRouteLocationParamsValue(a, b) { + return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf()); +} +/** +* Check if two arrays are the same or if an array with one single entry is the +* same as another primitive value. Used to check query and parameters +* +* @param a - array of values +* @param b - array of values or a single value +*/ +function isEquivalentArray(a, b) { + return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b; +} +/** +* Resolves a relative path that starts with `.`. +* +* @param to - path location we are resolving +* @param from - currentLocation.path, should start with `/` +*/ +function resolveRelativePath(to, from) { + if (to.startsWith("/")) return to; + if (process.env.NODE_ENV !== "production" && !from.startsWith("/")) { + warn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve "${to}" from "${from}". It should look like "/${from}".`); + return to; + } + if (!to) return from; + const fromSegments = from.split("/"); + const toSegments = to.split("/"); + const lastToSegment = toSegments[toSegments.length - 1]; + if (lastToSegment === ".." || lastToSegment === ".") toSegments.push(""); + let position = fromSegments.length - 1; + let toPosition; + let segment; + for (toPosition = 0; toPosition < toSegments.length; toPosition++) { + segment = toSegments[toPosition]; + if (segment === ".") continue; + if (segment === "..") { + if (position > 1) position--; + } else break; + } + return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition).join("/"); +} +/** +* Initial route location where the router is. Can be used in navigation guards +* to differentiate the initial navigation. +* +* @example +* ```js +* import { START_LOCATION } from 'vue-router' +* +* router.beforeEach((to, from) => { +* if (from === START_LOCATION) { +* // initial navigation +* } +* }) +* ``` +*/ +const START_LOCATION_NORMALIZED = { + path: "/", + name: void 0, + params: {}, + query: {}, + hash: "", + fullPath: "/", + matched: [], + meta: {}, + redirectedFrom: void 0 +}; +//#endregion +//#region src/history/common.ts +/** +* Normalizes a base by removing any trailing slash and reading the base tag if +* present. +* +* @param base - base to normalize +*/ +function normalizeBase(base) { + if (!base) if (isBrowser) { + const baseEl = document.querySelector("base"); + base = baseEl && baseEl.getAttribute("href") || "/"; + base = base.replace(/^\w+:\/\/[^/]+/, ""); + } else base = "/"; + if (base[0] !== "/" && base[0] !== "#") base = "/" + base; + return removeTrailingSlash(base); +} +const BEFORE_HASH_RE = /^[^#]+#/; +function createHref(base, location) { + return base.replace(BEFORE_HASH_RE, "#") + location; +} +//#endregion +//#region src/scrollBehavior.ts +function getElementPosition(el, offset) { + const docRect = document.documentElement.getBoundingClientRect(); + const elRect = el.getBoundingClientRect(); + return { + behavior: offset.behavior, + left: elRect.left - docRect.left - (offset.left || 0), + top: elRect.top - docRect.top - (offset.top || 0) + }; +} +const computeScrollPosition = () => ({ + left: window.scrollX, + top: window.scrollY +}); +function scrollToPosition(position) { + let scrollToOptions; + if ("el" in position) { + const positionEl = position.el; + const isIdSelector = typeof positionEl === "string" && positionEl.startsWith("#"); + /** + * `id`s can accept pretty much any characters, including CSS combinators + * like `>` or `~`. It's still possible to retrieve elements using + * `document.getElementById('~')` but it needs to be escaped when using + * `document.querySelector('#\\~')` for it to be valid. The only + * requirements for `id`s are them to be unique on the page and to not be + * empty (`id=""`). Because of that, when passing an id selector, it should + * be properly escaped for it to work with `querySelector`. We could check + * for the id selector to be simple (no CSS combinators `+ >~`) but that + * would make things inconsistent since they are valid characters for an + * `id` but would need to be escaped when using `querySelector`, breaking + * their usage and ending up in no selector returned. Selectors need to be + * escaped: + * + * - `#1-thing` becomes `#\31 -thing` + * - `#with~symbols` becomes `#with\\~symbols` + * + * - More information about the topic can be found at + * https://mathiasbynens.be/notes/html5-id-class. + * - Practical example: https://mathiasbynens.be/demo/html5-id + */ + if (process.env.NODE_ENV !== "production" && typeof position.el === "string") { + if (!isIdSelector || !document.getElementById(position.el.slice(1))) try { + const foundEl = document.querySelector(position.el); + if (isIdSelector && foundEl) { + warn$1(`The selector "${position.el}" should be passed as "el: document.querySelector('${position.el}')" because it starts with "#".`); + return; + } + } catch { + warn$1(`The selector "${position.el}" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`); + return; + } + } + const el = typeof positionEl === "string" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl; + if (!el) { + process.env.NODE_ENV !== "production" && warn$1(`Couldn't find element using selector "${position.el}" returned by scrollBehavior.`); + return; + } + scrollToOptions = getElementPosition(el, position); + } else scrollToOptions = position; + if ("scrollBehavior" in document.documentElement.style) window.scrollTo(scrollToOptions); + else window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY); +} +function getScrollKey(path, delta) { + return (history.state ? history.state.position - delta : -1) + path; +} +const scrollPositions = /* @__PURE__ */ new Map(); +function saveScrollPosition(key, scrollPosition) { + scrollPositions.set(key, scrollPosition); +} +function getSavedScrollPosition(key) { + const scroll = scrollPositions.get(key); + scrollPositions.delete(key); + return scroll; +} +/** +* ScrollBehavior instance used by the router to compute and restore the scroll +* position when navigating. +*/ +//#endregion +//#region src/types/typeGuards.ts +function isRouteLocation(route) { + return typeof route === "string" || route && typeof route === "object"; +} +function isRouteName(name) { + return typeof name === "string" || typeof name === "symbol"; +} +//#endregion +//#region src/query.ts +/** +* Transforms a queryString into a {@link LocationQuery} object. Accept both, a +* version with the leading `?` and without Should work as URLSearchParams + +* @internal +* +* @param search - search string to parse +* @returns a query object +*/ +function parseQuery(search) { + const query = {}; + if (search === "" || search === "?") return query; + const searchParams = (search[0] === "?" ? search.slice(1) : search).split("&"); + for (let i = 0; i < searchParams.length; ++i) { + const searchParam = searchParams[i].replace(PLUS_RE, " "); + const eqPos = searchParam.indexOf("="); + const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos)); + const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1)); + if (key in query) { + let currentValue = query[key]; + if (!isArray(currentValue)) currentValue = query[key] = [currentValue]; + currentValue.push(value); + } else query[key] = value; + } + return query; +} +/** +* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it +* doesn't prepend a `?` +* +* @internal +* +* @param query - query object to stringify +* @returns string version of the query without the leading `?` +*/ +function stringifyQuery(query) { + let search = ""; + for (let key in query) { + const value = query[key]; + key = encodeQueryKey(key); + if (value == null) { + if (value !== void 0) search += (search.length ? "&" : "") + key; + continue; + } + (isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => { + if (value !== void 0) { + search += (search.length ? "&" : "") + key; + if (value != null) search += "=" + value; + } + }); + } + return search; +} +/** +* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting +* numbers into strings, removing keys with an undefined value and replacing +* undefined with null in arrays +* +* @param query - query object to normalize +* @returns a normalized query object +*/ +function normalizeQuery(query) { + const normalizedQuery = {}; + for (const key in query) { + const value = query[key]; + if (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : "" + v) : value == null ? value : "" + value; + } + return normalizedQuery; +} +//#endregion +//#region src/utils/callbacks.ts +/** +* Create a list of callbacks that can be reset. Used to create before and after navigation guards list +*/ +function useCallbacks() { + let handlers = []; + function add(handler) { + handlers.push(handler); + return () => { + const i = handlers.indexOf(handler); + if (i > -1) handlers.splice(i, 1); + }; + } + function reset() { + handlers = []; + } + return { + add, + list: () => handlers.slice(), + reset + }; +} +//#endregion +//#region src/navigationGuards.ts +function registerGuard(activeRecordRef, name, guard) { + const record = activeRecordRef.value; + if (!record) { + if (process.env.NODE_ENV !== "production") warn$1(`No active route record was found when calling \`${name === "updateGuards" ? "onBeforeRouteUpdate" : "onBeforeRouteLeave"}()\`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?`); + return; + } + let currentRecord = record; + const removeFromList = () => { + currentRecord[name].delete(guard); + }; + onUnmounted(removeFromList); + onDeactivated(removeFromList); + onActivated(() => { + const newRecord = activeRecordRef.value; + if (process.env.NODE_ENV !== "production" && !newRecord) warn$1("No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router. Please report it."); + if (newRecord) currentRecord = newRecord; + currentRecord[name].add(guard); + }); + currentRecord[name].add(guard); +} +/** +* Add a navigation guard that triggers whenever the component for the current +* location is about to be left. Similar to {@link beforeRouteLeave} but can be +* used in any component. The guard is removed when the component is unmounted. +* +* @param leaveGuard - {@link NavigationGuard} +*/ +function onBeforeRouteLeave(leaveGuard) { + if (process.env.NODE_ENV !== "production" && !getCurrentInstance()) { + warn$1("getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function"); + return; + } + registerGuard(inject(matchedRouteKey, {}), "leaveGuards", leaveGuard); +} +/** +* Add a navigation guard that triggers whenever the current location is about +* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any +* component. The guard is removed when the component is unmounted. +* +* @param updateGuard - {@link NavigationGuard} +*/ +function onBeforeRouteUpdate(updateGuard) { + if (process.env.NODE_ENV !== "production" && !getCurrentInstance()) { + warn$1("getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function"); + return; + } + registerGuard(inject(matchedRouteKey, {}), "updateGuards", updateGuard); +} +function guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) { + const enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []); + return () => new Promise((resolve, reject) => { + const next = (valid) => { + if (valid === false) reject(createRouterError(4, { + from, + to + })); + else if (valid instanceof Error) reject(valid); + else if (isRouteLocation(valid)) reject(createRouterError(2, { + from: to, + to: valid + })); + else { + if (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === "function") enterCallbackArray.push(valid); + resolve(); + } + }; + const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== "production" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next)); + let guardCall = Promise.resolve(guardReturn); + if (guard.length < 3) guardCall = guardCall.then(next); + if (process.env.NODE_ENV !== "production" && guard.length > 2) { + const message = `The "next" callback was never called inside of ${guard.name ? "\"" + guard.name + "\"" : ""}:\n${guard.toString()}\n. If you are returning a value instead of calling "next", make sure to remove the "next" parameter from your function.`; + if (typeof guardReturn === "object" && "then" in guardReturn) guardCall = guardCall.then((resolvedValue) => { + if (!next._called) { + warn$1(message); + return Promise.reject(/* @__PURE__ */ new Error("Invalid navigation guard")); + } + return resolvedValue; + }); + else if (guardReturn !== void 0) { + if (!next._called) { + warn$1(message); + reject(/* @__PURE__ */ new Error("Invalid navigation guard")); + return; + } + } + } + guardCall.catch((err) => reject(err)); + }); +} +/** +* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is +* false (production builds), this branch is dead code and is stripped from the +* bundle. +* +* @internal +*/ +function withDeprecationWarning(next) { + let warned = false; + return function() { + if (!warned) { + warned = true; + warn$1("The `next()` callback in navigation guards is deprecated. Return the value instead of calling `next(value)`."); + } + return next.apply(this, arguments); + }; +} +function canOnlyBeCalledOnce(next, to, from) { + let called = 0; + return function() { + if (called++ === 1) warn$1(`The "next" callback was called more than once in one navigation guard when going from "${from.fullPath}" to "${to.fullPath}". It should be called exactly one time in each navigation guard. This will fail in production.`); + next._called = true; + if (called === 1) next.apply(null, arguments); + }; +} +function extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) { + const guards = []; + for (const record of matched) { + if (process.env.NODE_ENV !== "production" && !record.components && record.children && !record.children.length) warn$1(`Record with path "${record.path}" is either missing a "component(s)" or "children" property.`); + for (const name in record.components) { + let rawComponent = record.components[name]; + if (process.env.NODE_ENV !== "production") { + if (!rawComponent || typeof rawComponent !== "object" && typeof rawComponent !== "function") { + warn$1(`Component "${name}" in record with path "${record.path}" is not a valid component. Received "${String(rawComponent)}".`); + throw new Error("Invalid route component"); + } else if ("then" in rawComponent) { + warn$1(`Component "${name}" in record with path "${record.path}" is a Promise instead of a function that returns a Promise. Did you write "import('./MyPage.vue')" instead of "() => import('./MyPage.vue')" ? This will break in production if not fixed.`); + const promise = rawComponent; + rawComponent = () => promise; + } else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) { + rawComponent.__warnedDefineAsync = true; + warn$1(`Component "${name}" in record with path "${record.path}" is defined using "defineAsyncComponent()". Write "() => import('./MyPage.vue')" instead of "defineAsyncComponent(() => import('./MyPage.vue'))".`); + } + } + if (guardType !== "beforeRouteEnter" && !record.instances[name]) continue; + if (isRouteComponent(rawComponent)) { + const guard = (rawComponent.__vccOpts || rawComponent)[guardType]; + guard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext)); + } else { + let componentPromise = rawComponent(); + if (process.env.NODE_ENV !== "production" && !("catch" in componentPromise)) { + warn$1(`Component "${name}" in record with path "${record.path}" is a function that does not return a Promise. If you were passing a functional component, make sure to add a "displayName" to the component. This will break in production if not fixed.`); + componentPromise = Promise.resolve(componentPromise); + } + guards.push(() => componentPromise.then((resolved) => { + if (!resolved) throw new Error(`Couldn't resolve component "${name}" at "${record.path}"`); + const resolvedComponent = isESModule(resolved) ? resolved.default : resolved; + record.mods[name] = resolved; + record.components[name] = resolvedComponent; + const guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType]; + return guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)(); + })); + } + } + } + return guards; +} +/** +* Ensures a route is loaded, so it can be passed as o prop to ``. +* +* @param route - resolved route to load +*/ +function loadRouteLocation(route) { + return route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error("Cannot load a route that redirects.")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => { + const rawComponent = record.components[name]; + if (typeof rawComponent === "function" && !("displayName" in rawComponent)) promises.push(rawComponent().then((resolved) => { + if (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component "${name}" at "${record.path}". Ensure you passed a function that returns a promise.`)); + const resolvedComponent = isESModule(resolved) ? resolved.default : resolved; + record.mods[name] = resolved; + record.components[name] = resolvedComponent; + })); + return promises; + }, [])))).then(() => route); +} +/** +* Split the leaving, updating, and entering records. +* @internal +* +* @param to - Location we are navigating to +* @param from - Location we are navigating from +*/ +function extractChangingRecords(to, from) { + const leavingRecords = []; + const updatingRecords = []; + const enteringRecords = []; + const len = Math.max(from.matched.length, to.matched.length); + for (let i = 0; i < len; i++) { + const recordFrom = from.matched[i]; + if (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom); + else leavingRecords.push(recordFrom); + const recordTo = to.matched[i]; + if (recordTo) { + if (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo); + } + } + return [ + leavingRecords, + updatingRecords, + enteringRecords + ]; +} +//#endregion +//#region src/devtools.ts +/** +* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances). +* +* @param routeLocation - routeLocation to format +* @param tooltip - optional tooltip +* @returns a copy of the routeLocation +*/ +function formatRouteLocation(routeLocation, tooltip) { + const copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [ + "instances", + "children", + "aliasOf" + ])) }); + return { _custom: { + type: null, + readOnly: true, + display: routeLocation.fullPath, + tooltip, + value: copy + } }; +} +function formatDisplay(display) { + return { _custom: { display } }; +} +let routerId = 0; +function addDevtools(app, router, matcher) { + if (router.__hasDevtools) return; + router.__hasDevtools = true; + const id = routerId++; + setupDevtoolsPlugin({ + id: "org.vuejs.router" + (id ? "." + id : ""), + label: "Vue Router", + packageName: "vue-router", + homepage: "https://router.vuejs.org", + logo: "https://router.vuejs.org/logo.png", + componentStateTypes: ["Routing"], + app + }, (api) => { + api.on.inspectComponent((payload) => { + if (payload.instanceData) payload.instanceData.state.push({ + type: "Routing", + key: "$route", + editable: false, + value: formatRouteLocation(router.currentRoute.value, "Current Route") + }); + }); + api.on.visitComponentTree(({ treeNode: node, componentInstance }) => { + if (componentInstance.__vrv_devtools) { + const info = componentInstance.__vrv_devtools; + node.tags.push({ + label: (info.name ? `${info.name.toString()}: ` : "") + info.path, + textColor: 0, + tooltip: "This component is rendered by <router-view>", + backgroundColor: PINK_500 + }); + } + if (isArray(componentInstance.__vrl_devtools)) { + componentInstance.__devtoolsApi = api; + componentInstance.__vrl_devtools.forEach((devtoolsData) => { + let label = devtoolsData.route.path; + let backgroundColor = ORANGE_400; + let tooltip = ""; + let textColor = 0; + if (devtoolsData.error) { + label = devtoolsData.error; + backgroundColor = RED_100; + textColor = RED_700; + } else if (devtoolsData.isExactActive) { + backgroundColor = LIME_500; + tooltip = "This is exactly active"; + } else if (devtoolsData.isActive) { + backgroundColor = BLUE_600; + tooltip = "This link is active"; + } + node.tags.push({ + label, + textColor, + tooltip, + backgroundColor + }); + }); + } + }); + watch(router.currentRoute, () => { + refreshRoutesView(); + api.notifyComponentUpdate(); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); + const navigationsLayerId = "router:navigations:" + id; + api.addTimelineLayer({ + id: navigationsLayerId, + label: `Router${id ? " " + id : ""} Navigations`, + color: 4237508 + }); + router.onError((error, to) => { + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: "Error during Navigation", + subtitle: to.fullPath, + logType: "error", + time: api.now(), + data: { error }, + groupId: to.meta.__navigationId + } + }); + }); + let navigationId = 0; + router.beforeEach((to, from) => { + const data = { + guard: formatDisplay("beforeEach"), + from: formatRouteLocation(from, "Current Location during this navigation"), + to: formatRouteLocation(to, "Target location") + }; + Object.defineProperty(to.meta, "__navigationId", { value: navigationId++ }); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + time: api.now(), + title: "Start of navigation", + subtitle: to.fullPath, + data, + groupId: to.meta.__navigationId + } + }); + }); + router.afterEach((to, from, failure) => { + const data = { guard: formatDisplay("afterEach") }; + if (failure) { + data.failure = { _custom: { + type: Error, + readOnly: true, + display: failure ? failure.message : "", + tooltip: "Navigation Failure", + value: failure + } }; + data.status = formatDisplay("❌"); + } else data.status = formatDisplay("✅"); + data.from = formatRouteLocation(from, "Current Location during this navigation"); + data.to = formatRouteLocation(to, "Target location"); + api.addTimelineEvent({ + layerId: navigationsLayerId, + event: { + title: "End of navigation", + subtitle: to.fullPath, + time: api.now(), + data, + logType: failure ? "warning" : "default", + groupId: to.meta.__navigationId + } + }); + }); + /** + * Inspector of Existing routes + */ + const routerInspectorId = "router-inspector:" + id; + api.addInspector({ + id: routerInspectorId, + label: "Routes" + (id ? " " + id : ""), + icon: "book", + treeFilterPlaceholder: "Search routes" + }); + function refreshRoutesView() { + if (!activeRoutesPayload) return; + const payload = activeRoutesPayload; + let routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components); + routes.forEach(resetMatchStateOnRouteRecord); + if (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase())); + routes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value)); + payload.rootNodes = routes.map(formatRouteRecordForInspector); + } + let activeRoutesPayload; + api.on.getInspectorTree((payload) => { + activeRoutesPayload = payload; + if (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView(); + }); + /** + * Display information about the currently selected route record + */ + api.on.getInspectorState((payload) => { + if (payload.app === app && payload.inspectorId === routerInspectorId) { + const route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId); + if (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) }; + } + }); + api.sendInspectorTree(routerInspectorId); + api.sendInspectorState(routerInspectorId); + }); +} +function modifierForKey(key) { + if (key.optional) return key.repeatable ? "*" : "?"; + else return key.repeatable ? "+" : ""; +} +function formatRouteRecordMatcherForStateInspector(route) { + const { record } = route; + const fields = [{ + editable: false, + key: "path", + value: record.path + }]; + if (record.name != null) fields.push({ + editable: false, + key: "name", + value: record.name + }); + fields.push({ + editable: false, + key: "regexp", + value: route.re + }); + if (route.keys.length) fields.push({ + editable: false, + key: "keys", + value: { _custom: { + type: null, + readOnly: true, + display: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(" "), + tooltip: "Param keys", + value: route.keys + } } + }); + if (record.redirect != null) fields.push({ + editable: false, + key: "redirect", + value: record.redirect + }); + if (route.alias.length) fields.push({ + editable: false, + key: "aliases", + value: route.alias.map((alias) => alias.record.path) + }); + if (Object.keys(route.record.meta).length) fields.push({ + editable: false, + key: "meta", + value: route.record.meta + }); + fields.push({ + key: "score", + editable: false, + value: { _custom: { + type: null, + readOnly: true, + display: route.score.map((score) => score.join(", ")).join(" | "), + tooltip: "Score used to sort routes", + value: route.score + } } + }); + return fields; +} +/** +* Extracted from tailwind palette +*/ +const PINK_500 = 15485081; +const BLUE_600 = 2450411; +const LIME_500 = 8702998; +const CYAN_400 = 2282478; +const ORANGE_400 = 16486972; +const DARK = 6710886; +const RED_100 = 16704226; +const RED_700 = 12131356; +function formatRouteRecordForInspector(route) { + const tags = []; + const { record } = route; + if (record.name != null) tags.push({ + label: String(record.name), + textColor: 0, + backgroundColor: CYAN_400 + }); + if (record.aliasOf) tags.push({ + label: "alias", + textColor: 0, + backgroundColor: ORANGE_400 + }); + if (route.__vd_match) tags.push({ + label: "matches", + textColor: 0, + backgroundColor: PINK_500 + }); + if (route.__vd_exactActive) tags.push({ + label: "exact", + textColor: 0, + backgroundColor: LIME_500 + }); + if (route.__vd_active) tags.push({ + label: "active", + textColor: 0, + backgroundColor: BLUE_600 + }); + if (record.redirect) tags.push({ + label: typeof record.redirect === "string" ? `redirect: ${record.redirect}` : "redirects", + textColor: 16777215, + backgroundColor: DARK + }); + let id = record.__vd_id; + if (id == null) { + id = String(routeRecordId++); + record.__vd_id = id; + } + return { + id, + label: record.path, + tags, + children: route.children.map(formatRouteRecordForInspector) + }; +} +let routeRecordId = 0; +const EXTRACT_REGEXP_RE = /^\/(.*)\/([a-z]*)$/; +function markRouteRecordActive(route, currentRoute) { + const isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record); + route.__vd_exactActive = route.__vd_active = isExactActive; + if (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record)); + route.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute)); +} +function resetMatchStateOnRouteRecord(route) { + route.__vd_match = false; + route.children.forEach(resetMatchStateOnRouteRecord); +} +function isRouteMatching(route, filter) { + const found = String(route.re).match(EXTRACT_REGEXP_RE); + route.__vd_match = false; + if (!found || found.length < 3) return false; + if (new RegExp(found[1].replace(/\$$/, ""), found[2]).test(filter)) { + route.children.forEach((child) => isRouteMatching(child, filter)); + if (route.record.path !== "/" || filter === "/") { + route.__vd_match = route.re.test(filter); + return true; + } + return false; + } + const path = route.record.path.toLowerCase(); + const decodedPath = decode(path); + if (!filter.startsWith("/") && (decodedPath.includes(filter) || path.includes(filter))) return true; + if (decodedPath.startsWith(filter) || path.startsWith(filter)) return true; + if (route.record.name && String(route.record.name).includes(filter)) return true; + return route.children.some((child) => isRouteMatching(child, filter)); +} +function omit(obj, keys) { + const ret = {}; + for (const key in obj) if (!keys.includes(key)) ret[key] = obj[key]; + return ret; +} +//#endregion +export { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, warn$1 as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y }; diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/useApi-s_02lHjl.js b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/useApi-s_02lHjl.js new file mode 100644 index 0000000..2242aab --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/useApi-s_02lHjl.js @@ -0,0 +1,181 @@ +/*! +* vue-router v5.1.0 +* (c) 2026 Eduardo San Martin Morote +* @license MIT +*/ +import { inject } from "vue"; +//#region src/utils/env.ts +const isBrowser = typeof document !== "undefined"; +//#endregion +//#region src/utils/index.ts +/** +* Identity function that returns the value as is. +* +* @param v - the value to return +* +* @internal +*/ +const identityFn = (v) => v; +/** +* Allows differentiating lazy components from functional components and vue-class-component +* @internal +* +* @param component +*/ +function isRouteComponent(component) { + return typeof component === "object" || "displayName" in component || "props" in component || "__vccOpts" in component; +} +function isESModule(obj) { + return obj.__esModule || obj[Symbol.toStringTag] === "Module" || obj.default && isRouteComponent(obj.default); +} +const assign = Object.assign; +function applyToParams(fn, params) { + const newParams = {}; + for (const key in params) { + const value = params[key]; + newParams[key] = isArray(value) ? value.map(fn) : fn(value); + } + return newParams; +} +const noop = () => {}; +/** +* Typesafe alternative to Array.isArray +* https://github.com/microsoft/TypeScript/pull/48228 +* +* @internal +*/ +const isArray = Array.isArray; +function mergeOptions(defaults, partialOptions) { + const options = {}; + for (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key]; + return options; +} +//#endregion +//#region src/errors.ts +const NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== "production" ? "navigation failure" : ""); +/** +* Enumeration with all possible types for navigation failures. Can be passed to +* {@link isNavigationFailure} to check for specific failures. +*/ +let NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType) { + /** + * An aborted navigation is a navigation that failed because a navigation + * guard returned `false` or called `next(false)` + */ + NavigationFailureType[NavigationFailureType["aborted"] = 4] = "aborted"; + /** + * A cancelled navigation is a navigation that failed because a more recent + * navigation finished started (not necessarily finished). + */ + NavigationFailureType[NavigationFailureType["cancelled"] = 8] = "cancelled"; + /** + * A duplicated navigation is a navigation that failed because it was + * initiated while already being at the exact same location. + */ + NavigationFailureType[NavigationFailureType["duplicated"] = 16] = "duplicated"; + return NavigationFailureType; +}({}); +const ErrorTypeMessages = { + [1]({ location, currentLocation }) { + return `No match for\n ${JSON.stringify(location)}${currentLocation ? "\nwhile being at\n" + JSON.stringify(currentLocation) : ""}`; + }, + [2]({ from, to }) { + return `Redirected from "${from.fullPath}" to "${stringifyRoute(to)}" via a navigation guard.`; + }, + [4]({ from, to }) { + return `Navigation aborted from "${from.fullPath}" to "${to.fullPath}" via a navigation guard.`; + }, + [8]({ from, to }) { + return `Navigation cancelled from "${from.fullPath}" to "${to.fullPath}" with a new navigation.`; + }, + [16]({ from, to: _to }) { + return `Avoided redundant navigation to current location: "${from.fullPath}".`; + } +}; +/** +* Creates a typed NavigationFailure object. +* @internal +* @param type - NavigationFailureType +* @param params - { from, to } +*/ +function createRouterError(type, params) { + if (process.env.NODE_ENV !== "production" || false) return assign(new Error(ErrorTypeMessages[type](params)), { + type, + [NavigationFailureSymbol]: true + }, params); + else return assign(/* @__PURE__ */ new Error(), { + type, + [NavigationFailureSymbol]: true + }, params); +} +function isNavigationFailure(error, type) { + return error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type)); +} +const propertiesToLog = [ + "params", + "query", + "hash" +]; +function stringifyRoute(to) { + if (typeof to === "string") return to; + if (to.path != null) return to.path; + const location = {}; + for (const key of propertiesToLog) if (key in to) location[key] = to[key]; + return JSON.stringify(location, null, 2); +} +//#endregion +//#region src/injectionSymbols.ts +/** +* RouteRecord being rendered by the closest ancestor Router View. Used for +* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View +* Location Matched +* +* @internal +*/ +const matchedRouteKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location matched" : ""); +/** +* Allows overriding the router view depth to control which component in +* `matched` is rendered. rvd stands for Router View Depth +* +* @internal +*/ +const viewDepthKey = Symbol(process.env.NODE_ENV !== "production" ? "router view depth" : ""); +/** +* Allows overriding the router instance returned by `useRouter` in tests. r +* stands for router +* +* @internal +*/ +const routerKey = Symbol(process.env.NODE_ENV !== "production" ? "router" : ""); +/** +* Allows overriding the current route returned by `useRoute` in tests. rl +* stands for route location +* +* @internal +*/ +const routeLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "route location" : ""); +/** +* Allows overriding the current route used by router-view. Internally this is +* used when the `route` prop is passed. +* +* @internal +*/ +const routerViewLocationKey = Symbol(process.env.NODE_ENV !== "production" ? "router view location" : ""); +//#endregion +//#region src/useApi.ts +/** +* Returns the router instance. Equivalent to using `$router` inside +* templates. +*/ +function useRouter() { + return inject(routerKey); +} +/** +* Returns the current route location. Equivalent to using `$route` inside +* templates. +*/ +function useRoute(_name) { + return inject(routeLocationKey); +} +//#endregion +export { mergeOptions as _, routerKey as a, NavigationFailureType as c, applyToParams as d, assign as f, isRouteComponent as g, isESModule as h, routeLocationKey as i, createRouterError as l, isArray as m, useRouter as n, routerViewLocationKey as o, identityFn as p, matchedRouteKey as r, viewDepthKey as s, useRoute as t, isNavigationFailure as u, noop as v, isBrowser as y }; diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/vue-router.js b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/vue-router.js new file mode 100644 index 0000000..4694067 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/dist/vue-router.js @@ -0,0 +1,1499 @@ +/*! +* vue-router v5.1.0 +* (c) 2026 Eduardo San Martin Morote +* @license MIT +*/ +import { _ as mergeOptions, a as routerKey, c as NavigationFailureType, d as applyToParams, f as assign, i as routeLocationKey, l as createRouterError, m as isArray, n as useRouter, o as routerViewLocationKey, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as isNavigationFailure, v as noop, y as isBrowser } from "./useApi-s_02lHjl.js"; +import { C as isSameRouteLocation, E as parseURL, F as warn$1, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from "./devtools-DCoWQoU_.js"; +import { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from "vue"; +//#region src/history/html5.ts +let createBaseLocation = () => location.protocol + "//" + location.host; +/** +* Creates a normalized history location from a window.location object +* @param base - The base path +* @param location - The window.location object +*/ +function createCurrentLocation(base, location) { + const { pathname, search, hash } = location; + const hashPos = base.indexOf("#"); + if (hashPos > -1) { + let slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1; + let pathFromHash = hash.slice(slicePos); + if (pathFromHash[0] !== "/") pathFromHash = "/" + pathFromHash; + return stripBase(pathFromHash, ""); + } + return stripBase(pathname, base) + search + hash; +} +function useHistoryListeners(base, historyState, currentLocation, replace) { + let listeners = []; + let teardowns = []; + let pauseState = null; + const popStateHandler = ({ state }) => { + const to = createCurrentLocation(base, location); + const from = currentLocation.value; + const fromState = historyState.value; + let delta = 0; + if (state) { + currentLocation.value = to; + historyState.value = state; + if (pauseState && pauseState === from) { + pauseState = null; + return; + } + delta = fromState ? state.position - fromState.position : 0; + } else replace(to); + listeners.forEach((listener) => { + listener(currentLocation.value, from, { + delta, + type: "pop", + direction: delta ? delta > 0 ? "forward" : "back" : "" + }); + }); + }; + function pauseListeners() { + pauseState = currentLocation.value; + } + function listen(callback) { + listeners.push(callback); + const teardown = () => { + const index = listeners.indexOf(callback); + if (index > -1) listeners.splice(index, 1); + }; + teardowns.push(teardown); + return teardown; + } + function beforeUnloadListener() { + if (document.visibilityState === "hidden") { + const { history } = window; + if (!history.state) return; + history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), ""); + } + } + function destroy() { + for (const teardown of teardowns) teardown(); + teardowns = []; + window.removeEventListener("popstate", popStateHandler); + window.removeEventListener("pagehide", beforeUnloadListener); + document.removeEventListener("visibilitychange", beforeUnloadListener); + } + window.addEventListener("popstate", popStateHandler); + window.addEventListener("pagehide", beforeUnloadListener); + document.addEventListener("visibilitychange", beforeUnloadListener); + return { + pauseListeners, + listen, + destroy + }; +} +/** +* Creates a state object +*/ +function buildState(back, current, forward, replaced = false, computeScroll = false) { + return { + back, + current, + forward, + replaced, + position: window.history.length, + scroll: computeScroll ? computeScrollPosition() : null + }; +} +function useHistoryStateNavigation(base) { + const { history, location } = window; + const currentLocation = { value: createCurrentLocation(base, location) }; + const historyState = { value: history.state }; + if (!historyState.value) changeLocation(currentLocation.value, { + back: null, + current: currentLocation.value, + forward: null, + position: history.length - 1, + replaced: true, + scroll: null + }, true); + function changeLocation(to, state, replace) { + /** + * if a base tag is provided, and we are on a normal domain, we have to + * respect the provided `base` attribute because pushState() will use it and + * potentially erase anything before the `#` like at + * https://github.com/vuejs/router/issues/685 where a base of + * `/folder/#` but a base of `/` would erase the `/folder/` section. If + * there is no host, the `` tag makes no sense and if there isn't a + * base tag we can just use everything after the `#`. + */ + const hashIndex = base.indexOf("#"); + const url = hashIndex > -1 ? (location.host && document.querySelector("base") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to; + try { + history[replace ? "replaceState" : "pushState"](state, "", url); + historyState.value = state; + } catch (err) { + if (process.env.NODE_ENV !== "production") warn$1("Error with push/replace State", err); + else console.error(err); + location[replace ? "replace" : "assign"](url); + } + } + function replace(to, data) { + changeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true); + currentLocation.value = to; + } + function push(to, data) { + const currentState = assign({}, historyState.value, history.state, { + forward: to, + scroll: computeScrollPosition() + }); + if (process.env.NODE_ENV !== "production" && !history.state) warn$1("history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\n\nhistory.replaceState(history.state, '', url)\n\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state"); + changeLocation(currentState.current, currentState, true); + changeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false); + currentLocation.value = to; + } + return { + location: currentLocation, + state: historyState, + push, + replace + }; +} +/** +* Creates an HTML5 history. Most common history for single page applications. +* +* @param base - +*/ +function createWebHistory(base) { + base = normalizeBase(base); + const historyNavigation = useHistoryStateNavigation(base); + const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace); + function go(delta, triggerListeners = true) { + if (!triggerListeners) historyListeners.pauseListeners(); + history.go(delta); + } + const routerHistory = assign({ + location: "", + base, + go, + createHref: createHref.bind(null, base) + }, historyNavigation, historyListeners); + Object.defineProperty(routerHistory, "location", { + enumerable: true, + get: () => historyNavigation.location.value + }); + Object.defineProperty(routerHistory, "state", { + enumerable: true, + get: () => historyNavigation.state.value + }); + return routerHistory; +} +//#endregion +//#region src/history/hash.ts +/** +* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to +* handle any URL is not possible. +* +* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag +* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState() +* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything +* after the `#`). +* +* @example +* ```js +* // at https://example.com/folder +* createWebHashHistory() // gives a url of `https://example.com/folder#` +* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#` +* // if the `#` is provided in the base, it won't be added by `createWebHashHistory` +* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/` +* // you should avoid doing this because it changes the original url and breaks copying urls +* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#` +* +* // at file:///usr/etc/folder/index.html +* // for locations with no `host`, the base is ignored +* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#` +* ``` +*/ +function createWebHashHistory(base) { + base = location.host ? base || location.pathname + location.search : ""; + if (!base.includes("#")) base += "#"; + if (process.env.NODE_ENV !== "production" && !base.endsWith("#/") && !base.endsWith("#")) warn$1(`A hash base must end with a "#":\n"${base}" should be "${base.replace(/#.*$/, "#")}".`); + return createWebHistory(base); +} +//#endregion +//#region src/history/memory.ts +/** +* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere. +* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`. +* +* @param base - Base applied to all urls, defaults to '/' +* @returns a history object that can be passed to the router constructor +*/ +function createMemoryHistory(base = "") { + let listeners = []; + let queue = [["", {}]]; + let position = 0; + base = normalizeBase(base); + function setLocation(location, state = {}) { + position++; + if (position !== queue.length) queue.splice(position); + queue.push([location, state]); + } + function triggerListeners(to, from, { direction, delta }) { + const info = { + direction, + delta, + type: "pop" + }; + for (const callback of listeners) callback(to, from, info); + } + const routerHistory = { + location: "", + state: {}, + base, + createHref: createHref.bind(null, base), + replace(to, state) { + queue.splice(position--, 1); + setLocation(to, state); + }, + push(to, state) { + setLocation(to, state); + }, + listen(callback) { + listeners.push(callback); + return () => { + const index = listeners.indexOf(callback); + if (index > -1) listeners.splice(index, 1); + }; + }, + destroy() { + listeners = []; + queue = [["", {}]]; + position = 0; + }, + go(delta, shouldTrigger = true) { + const from = this.location; + const direction = delta < 0 ? "back" : "forward"; + position = Math.max(0, Math.min(position + delta, queue.length - 1)); + if (shouldTrigger) triggerListeners(this.location, from, { + direction, + delta + }); + } + }; + Object.defineProperty(routerHistory, "location", { + enumerable: true, + get: () => queue[position][0] + }); + Object.defineProperty(routerHistory, "state", { + enumerable: true, + get: () => queue[position][1] + }); + return routerHistory; +} +//#endregion +//#region src/matcher/pathTokenizer.ts +const ROOT_TOKEN = { + type: 0, + value: "" +}; +const VALID_PARAM_RE = /[a-zA-Z0-9_]/; +function tokenizePath(path) { + if (!path) return [[]]; + if (path === "/") return [[ROOT_TOKEN]]; + if (!path.startsWith("/")) throw new Error(process.env.NODE_ENV !== "production" ? `Route paths should start with a "/": "${path}" should be "/${path}".` : `Invalid path "${path}"`); + function crash(message) { + throw new Error(`ERR (${state})/"${buffer}": ${message}`); + } + let state = 0; + let previousState = state; + const tokens = []; + let segment; + function finalizeSegment() { + if (segment) tokens.push(segment); + segment = []; + } + let i = 0; + let char; + let buffer = ""; + let customRe = ""; + function consumeBuffer() { + if (!buffer) return; + if (state === 0) segment.push({ + type: 0, + value: buffer + }); + else if (state === 1 || state === 2 || state === 3) { + if (segment.length > 1 && (char === "*" || char === "+")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`); + segment.push({ + type: 1, + value: buffer, + regexp: customRe, + repeatable: char === "*" || char === "+", + optional: char === "*" || char === "?" + }); + } else crash("Invalid state to consume buffer"); + buffer = ""; + } + function addCharToBuffer() { + buffer += char; + } + while (i < path.length) { + char = path[i++]; + switch (state) { + case 0: + if (char === "\\") { + previousState = state; + state = 4; + } else if (char === "/") { + if (buffer) consumeBuffer(); + finalizeSegment(); + } else if (char === ":") { + consumeBuffer(); + state = 1; + } else addCharToBuffer(); + break; + case 4: + addCharToBuffer(); + state = previousState; + break; + case 1: + if (char === "(") state = 2; + else if (VALID_PARAM_RE.test(char)) addCharToBuffer(); + else { + consumeBuffer(); + state = 0; + if (char !== "*" && char !== "?" && char !== "+") i--; + } + break; + case 2: + if (char === ")") if (customRe[customRe.length - 1] == "\\") customRe = customRe.slice(0, -1) + char; + else state = 3; + else customRe += char; + break; + case 3: + consumeBuffer(); + state = 0; + if (char !== "*" && char !== "?" && char !== "+") i--; + customRe = ""; + break; + default: + crash("Unknown state"); + break; + } + } + if (state === 2) crash(`Unfinished custom RegExp for param "${buffer}"`); + consumeBuffer(); + finalizeSegment(); + return tokens; +} +//#endregion +//#region src/matcher/pathParserRanker.ts +const BASE_PARAM_PATTERN = "[^/]+?"; +const BASE_PATH_PARSER_OPTIONS = { + sensitive: false, + strict: false, + start: true, + end: true +}; +const REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g; +/** +* Creates a path parser from an array of Segments (a segment is an array of Tokens) +* +* @param segments - array of segments returned by tokenizePath +* @param extraOptions - optional options for the regexp +* @returns a PathParser +*/ +function tokensToParser(segments, extraOptions) { + const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions); + const score = []; + let pattern = options.start ? "^" : ""; + const keys = []; + for (const segment of segments) { + const segmentScores = segment.length ? [] : [90]; + if (options.strict && !segment.length) pattern += "/"; + for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) { + const token = segment[tokenIndex]; + let subSegmentScore = 40 + (options.sensitive ? .25 : 0); + if (token.type === 0) { + if (!tokenIndex) pattern += "/"; + pattern += token.value.replace(REGEX_CHARS_RE, "\\$&"); + subSegmentScore += 40; + } else if (token.type === 1) { + const { value, repeatable, optional, regexp } = token; + keys.push({ + name: value, + repeatable, + optional + }); + const re = regexp ? regexp : BASE_PARAM_PATTERN; + if (re !== BASE_PARAM_PATTERN) { + subSegmentScore += 10; + try { + new RegExp(`(${re})`); + } catch (err) { + throw new Error(`Invalid custom RegExp for param "${value}" (${re}): ` + err.message); + } + } + let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`; + if (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : "/" + subPattern; + if (optional) subPattern += "?"; + pattern += subPattern; + subSegmentScore += 20; + if (optional) subSegmentScore += -8; + if (repeatable) subSegmentScore += -20; + if (re === ".*") subSegmentScore += -50; + } + segmentScores.push(subSegmentScore); + } + score.push(segmentScores); + } + if (options.strict && options.end) { + const i = score.length - 1; + score[i][score[i].length - 1] += .7000000000000001; + } + if (!options.strict) pattern += "/?"; + if (options.end) pattern += "$"; + else if (options.strict && !pattern.endsWith("/")) pattern += "(?:/|$)"; + const re = new RegExp(pattern, options.sensitive ? "" : "i"); + function parse(path) { + const match = path.match(re); + const params = {}; + if (!match) return null; + for (let i = 1; i < match.length; i++) { + const value = match[i] || ""; + const key = keys[i - 1]; + params[key.name] = value && key.repeatable ? value.split("/") : value; + } + return params; + } + function stringify(params) { + let path = ""; + let avoidDuplicatedSlash = false; + for (const segment of segments) { + if (!avoidDuplicatedSlash || !path.endsWith("/")) path += "/"; + avoidDuplicatedSlash = false; + for (const token of segment) if (token.type === 0) path += token.value; + else if (token.type === 1) { + const { value, repeatable, optional } = token; + const param = value in params ? params[value] : ""; + if (isArray(param) && !repeatable) throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`); + const text = isArray(param) ? param.join("/") : param; + if (!text) if (optional) { + if (segment.length < 2) if (path.endsWith("/")) path = path.slice(0, -1); + else avoidDuplicatedSlash = true; + } else throw new Error(`Missing required param "${value}"`); + path += text; + } + } + return path || "/"; + } + return { + re, + score, + keys, + parse, + stringify + }; +} +/** +* Compares an array of numbers as used in PathParser.score and returns a +* number. This function can be used to `sort` an array +* +* @param a - first array of numbers +* @param b - second array of numbers +* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b +* should be sorted first +*/ +function compareScoreArray(a, b) { + let i = 0; + while (i < a.length && i < b.length) { + const diff = b[i] - a[i]; + if (diff) return diff; + i++; + } + if (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1; + else if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1; + return 0; +} +/** +* Compare function that can be used with `sort` to sort an array of PathParser +* +* @param a - first PathParser +* @param b - second PathParser +* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b +*/ +function comparePathParserScore(a, b) { + let i = 0; + const aScore = a.score; + const bScore = b.score; + while (i < aScore.length && i < bScore.length) { + const comp = compareScoreArray(aScore[i], bScore[i]); + if (comp) return comp; + i++; + } + if (Math.abs(bScore.length - aScore.length) === 1) { + if (isLastScoreNegative(aScore)) return 1; + if (isLastScoreNegative(bScore)) return -1; + } + return bScore.length - aScore.length; +} +/** +* This allows detecting splats at the end of a path: /home/:id(.*)* +* +* @param score - score to check +* @returns true if the last entry is negative +*/ +function isLastScoreNegative(score) { + const last = score[score.length - 1]; + return score.length > 0 && last[last.length - 1] < 0; +} +const PATH_PARSER_OPTIONS_DEFAULTS = { + strict: false, + end: true, + sensitive: false +}; +//#endregion +//#region src/matcher/pathMatcher.ts +function createRouteRecordMatcher(record, parent, options) { + const parser = tokensToParser(tokenizePath(record.path), options); + if (process.env.NODE_ENV !== "production") { + const existingKeys = /* @__PURE__ */ new Set(); + for (const key of parser.keys) { + if (existingKeys.has(key.name)) warn$1(`Found duplicated params with name "${key.name}" for path "${record.path}". Only the last one will be available on "$route.params".`); + existingKeys.add(key.name); + } + } + const matcher = assign(parser, { + record, + parent, + children: [], + alias: [] + }); + if (parent) { + if (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher); + } + return matcher; +} +//#endregion +//#region src/matcher/index.ts +/** +* Creates a Router Matcher. +* +* @internal +* @param routes - array of initial routes +* @param globalOptions - global route options +*/ +function createRouterMatcher(routes, globalOptions) { + const matchers = []; + const matcherMap = /* @__PURE__ */ new Map(); + globalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions); + function getRecordMatcher(name) { + return matcherMap.get(name); + } + function addRoute(record, parent, originalRecord) { + const isRootAdd = !originalRecord; + const mainNormalizedRecord = normalizeRouteRecord(record); + if (process.env.NODE_ENV !== "production") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent); + mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record; + const options = mergeOptions(globalOptions, record); + const normalizedRecords = [mainNormalizedRecord]; + if ("alias" in record) { + const aliases = typeof record.alias === "string" ? [record.alias] : record.alias; + for (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, { + components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components, + path: alias, + aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord + }))); + } + let matcher; + let originalMatcher; + for (const normalizedRecord of normalizedRecords) { + const { path } = normalizedRecord; + if (parent && path[0] !== "/") { + const parentPath = parent.record.path; + const connectingSlash = parentPath[parentPath.length - 1] === "/" ? "" : "/"; + normalizedRecord.path = parent.record.path + (path && connectingSlash + path); + } + if (process.env.NODE_ENV !== "production" && normalizedRecord.path === "*") throw new Error("Catch all routes (\"*\") must now be defined using a param with a custom regexp.\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes."); + matcher = createRouteRecordMatcher(normalizedRecord, parent, options); + if (process.env.NODE_ENV !== "production" && parent && path[0] === "/") checkMissingParamsInAbsolutePath(matcher, parent); + if (originalRecord) { + originalRecord.alias.push(matcher); + if (process.env.NODE_ENV !== "production") checkSameParams(originalRecord, matcher); + } else { + originalMatcher = originalMatcher || matcher; + if (originalMatcher !== matcher) originalMatcher.alias.push(matcher); + if (isRootAdd && record.name && !isAliasRecord(matcher)) { + if (process.env.NODE_ENV !== "production") checkSameNameAsAncestor(record, parent); + removeRoute(record.name); + } + } + if (isMatchable(matcher)) insertMatcher(matcher); + if (mainNormalizedRecord.children) { + const children = mainNormalizedRecord.children; + for (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]); + } + originalRecord = originalRecord || matcher; + } + return originalMatcher ? () => { + removeRoute(originalMatcher); + } : noop; + } + function removeRoute(matcherRef) { + if (isRouteName(matcherRef)) { + const matcher = matcherMap.get(matcherRef); + if (matcher) { + matcherMap.delete(matcherRef); + matchers.splice(matchers.indexOf(matcher), 1); + matcher.children.forEach(removeRoute); + matcher.alias.forEach(removeRoute); + } + } else { + const index = matchers.indexOf(matcherRef); + if (index > -1) { + matchers.splice(index, 1); + if (matcherRef.record.name) matcherMap.delete(matcherRef.record.name); + matcherRef.children.forEach(removeRoute); + matcherRef.alias.forEach(removeRoute); + } + } + } + function getRoutes() { + return matchers; + } + function insertMatcher(matcher) { + const index = findInsertionIndex(matcher, matchers); + matchers.splice(index, 0, matcher); + if (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher); + } + function resolve(location, currentLocation) { + let matcher; + let params = {}; + let path; + let name; + if ("name" in location && location.name) { + matcher = matcherMap.get(location.name); + if (!matcher) throw createRouterError(1, { location }); + if (process.env.NODE_ENV !== "production") { + const invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName)); + if (invalidParams.length) { + const isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params); + warn$1(`Discarded invalid param(s) "${invalidParams.join("\", \"")}" when navigating.` + (isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \`params\` object: \`redirect: { name: '...', params: {} }\`.` : "") + ` See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`); + } + } + name = matcher.record.name; + params = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name))); + path = matcher.stringify(params); + } else if (location.path != null) { + path = location.path; + if (process.env.NODE_ENV !== "production" && !path.startsWith("/")) warn$1(`The Matcher cannot resolve relative paths but received "${path}". Unless you directly called \`matcher.resolve("${path}")\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`); + matcher = matchers.find((m) => m.re.test(path)); + if (matcher) { + params = matcher.parse(path); + name = matcher.record.name; + matcher.keys.forEach((key) => { + if (key.optional && !params[key.name]) delete params[key.name]; + }); + } + } else { + matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path)); + if (!matcher) throw createRouterError(1, { + location, + currentLocation + }); + name = matcher.record.name; + params = assign({}, currentLocation.params, location.params); + path = matcher.stringify(params); + } + const matched = []; + let parentMatcher = matcher; + while (parentMatcher) { + matched.unshift(parentMatcher.record); + parentMatcher = parentMatcher.parent; + } + return { + name, + path, + params, + matched, + meta: mergeMetaFields(matched) + }; + } + routes.forEach((route) => addRoute(route)); + function clearRoutes() { + matchers.length = 0; + matcherMap.clear(); + } + return { + addRoute, + resolve, + removeRoute, + clearRoutes, + getRoutes, + getRecordMatcher + }; +} +/** +* Picks an object param to contain only specified keys. +* +* @param params - params object to pick from +* @param keys - keys to pick +*/ +function pickParams(params, keys) { + const newParams = {}; + for (const key of keys) if (key in params) newParams[key] = params[key]; + return newParams; +} +/** +* Normalizes a RouteRecordRaw. Creates a copy +* +* @param record +* @returns the normalized version +*/ +function normalizeRouteRecord(record) { + const normalized = { + path: record.path, + redirect: record.redirect, + name: record.name, + meta: record.meta || {}, + aliasOf: record.aliasOf, + beforeEnter: record.beforeEnter, + props: normalizeRecordProps(record), + children: record.children || [], + instances: {}, + leaveGuards: /* @__PURE__ */ new Set(), + updateGuards: /* @__PURE__ */ new Set(), + enterCallbacks: {}, + components: "components" in record ? record.components || null : record.component && { default: record.component } + }; + Object.defineProperty(normalized, "mods", { value: {} }); + return normalized; +} +/** +* Normalize the optional `props` in a record to always be an object similar to +* components. Also accept a boolean for components. +* @param record +*/ +function normalizeRecordProps(record) { + const propsObject = {}; + const props = record.props || false; + if ("component" in record) propsObject.default = props; + else for (const name in record.components) propsObject[name] = typeof props === "object" ? props[name] : props; + return propsObject; +} +/** +* Checks if a record or any of its parent is an alias +* @param record +*/ +function isAliasRecord(record) { + while (record) { + if (record.record.aliasOf) return true; + record = record.parent; + } + return false; +} +/** +* Merge meta fields of an array of records +* +* @param matched - array of matched records +*/ +function mergeMetaFields(matched) { + return matched.reduce((meta, record) => assign(meta, record.meta), {}); +} +function isSameParam(a, b) { + return a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable; +} +/** +* Check if a path and its alias have the same required params +* +* @param a - original record +* @param b - alias record +*/ +function checkSameParams(a, b) { + for (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); + for (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias "${b.record.path}" and the original record: "${a.record.path}" must have the exact same param named "${key.name}"`); +} +/** +* A route with a name and a child with an empty path without a name should warn when adding the route +* +* @param mainNormalizedRecord - RouteRecordNormalized +* @param parent - RouteRecordMatcher +*/ +function checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) { + if (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) warn$1(`The route named "${String(parent.record.name)}" has a child without a name, an empty path, and no children. This is probably a mistake: using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to silence the warning.`); +} +function checkSameNameAsAncestor(record, parent) { + for (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named "${String(record.name)}" has been added as a ${parent === ancestor ? "child" : "descendant"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`); +} +function checkMissingParamsInAbsolutePath(record, parent) { + for (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path "${record.record.path}" must have the exact same param named "${key.name}" as its parent "${parent.record.path}".`); +} +/** +* Performs a binary search to find the correct insertion index for a new matcher. +* +* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships, +* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes. +* +* @param matcher - new matcher to be inserted +* @param matchers - existing matchers +*/ +function findInsertionIndex(matcher, matchers) { + let lower = 0; + let upper = matchers.length; + while (lower !== upper) { + const mid = lower + upper >> 1; + if (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid; + else lower = mid + 1; + } + const insertionAncestor = getInsertionAncestor(matcher); + if (insertionAncestor) { + upper = matchers.lastIndexOf(insertionAncestor, upper - 1); + if (process.env.NODE_ENV !== "production" && upper < 0) warn$1(`Finding ancestor route "${insertionAncestor.record.path}" failed for "${matcher.record.path}"`); + } + return upper; +} +function getInsertionAncestor(matcher) { + let ancestor = matcher; + while (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor; +} +/** +* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without +* a component, or name, or redirect, are just used to group other routes. +* @param matcher +* @param matcher.record record of the matcher +* @returns +*/ +function isMatchable({ record }) { + return !!(record.name || record.components && Object.keys(record.components).length || record.redirect); +} +//#endregion +//#region src/RouterLink.ts +/** +* Returns the internal behavior of a {@link RouterLink} without the rendering part. +* +* @param props - a `to` location and an optional `replace` flag +*/ +function useLink(props) { + const router = inject(routerKey); + const currentRoute = inject(routeLocationKey); + let hasPrevious = false; + let previousTo = null; + const route = computed(() => { + const to = unref(props.to); + if (process.env.NODE_ENV !== "production" && (!hasPrevious || to !== previousTo)) { + if (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop "to" in useLink()\n- to:`, to, `\n- previous to:`, previousTo, `\n- props:`, props); + else warn$1(`Invalid value for prop "to" in useLink()\n- to:`, to, `\n- props:`, props); + previousTo = to; + hasPrevious = true; + } + return router.resolve(to); + }); + const activeRecordIndex = computed(() => { + const { matched } = route.value; + const { length } = matched; + const routeMatched = matched[length - 1]; + const currentMatched = currentRoute.matched; + if (!routeMatched || !currentMatched.length) return -1; + const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched)); + if (index > -1) return index; + const parentRecordPath = getOriginalPath(matched[length - 2]); + return length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index; + }); + const isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params)); + const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params)); + function navigate(e = {}) { + if (guardEvent(e)) { + const p = router[unref(props.replace) ? "replace" : "push"](unref(props.to)).catch(noop); + if (props.viewTransition && typeof document !== "undefined" && "startViewTransition" in document) document.startViewTransition(() => p); + return p; + } + return Promise.resolve(); + } + if ((process.env.NODE_ENV !== "production" || __VUE_PROD_DEVTOOLS__) && isBrowser) { + const instance = getCurrentInstance(); + if (instance) { + const linkContextDevtools = { + route: route.value, + isActive: isActive.value, + isExactActive: isExactActive.value, + error: null + }; + instance.__vrl_devtools = instance.__vrl_devtools || []; + instance.__vrl_devtools.push(linkContextDevtools); + watchEffect(() => { + linkContextDevtools.route = route.value; + linkContextDevtools.isActive = isActive.value; + linkContextDevtools.isExactActive = isExactActive.value; + linkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : "Invalid \"to\" value"; + }, { flush: "post" }); + } + } + /** + * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this + */ + return { + route, + href: computed(() => route.value.href), + isActive, + isExactActive, + navigate + }; +} +function preferSingleVNode(vnodes) { + return vnodes.length === 1 ? vnodes[0] : vnodes; +} +/** +* Component to render a link that triggers a navigation on click. +*/ +const RouterLink = /* @__PURE__ */ defineComponent({ + name: "RouterLink", + compatConfig: { MODE: 3 }, + props: { + to: { + type: [String, Object], + required: true + }, + replace: Boolean, + activeClass: String, + exactActiveClass: String, + custom: Boolean, + ariaCurrentValue: { + type: String, + default: "page" + }, + viewTransition: Boolean + }, + useLink, + setup(props, { slots }) { + const link = reactive(useLink(props)); + const { options } = inject(routerKey); + const elClass = computed(() => ({ + [getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive, + [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive + })); + return () => { + const children = slots.default && preferSingleVNode(slots.default(link)); + return props.custom ? children : h("a", { + "aria-current": link.isExactActive ? props.ariaCurrentValue : null, + href: link.href, + onClick: link.navigate, + class: elClass.value + }, children); + }; + } +}); +function guardEvent(e) { + if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return; + if (e.defaultPrevented) return; + if (e.button !== void 0 && e.button !== 0) return; + if (e.currentTarget && e.currentTarget.getAttribute) { + const target = e.currentTarget.getAttribute("target"); + if (/\b_blank\b/i.test(target)) return; + } + if (e.preventDefault) e.preventDefault(); + return true; +} +function includesParams(outer, inner) { + for (const key in inner) { + const innerValue = inner[key]; + const outerValue = outer[key]; + if (typeof innerValue === "string") { + if (innerValue !== outerValue) return false; + } else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false; + } + return true; +} +/** +* Get the original path value of a record by following its aliasOf +* @param record +*/ +function getOriginalPath(record) { + return record ? record.aliasOf ? record.aliasOf.path : record.path : ""; +} +/** +* Utility class to get the active class based on defaults. +* @param propClass +* @param globalClass +* @param defaultClass +*/ +const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass; +//#endregion +//#region src/RouterView.ts +const RouterViewImpl = /* @__PURE__ */ defineComponent({ + name: "RouterView", + inheritAttrs: false, + props: { + name: { + type: String, + default: "default" + }, + route: Object + }, + compatConfig: { MODE: 3 }, + setup(props, { attrs, slots }) { + process.env.NODE_ENV !== "production" && warnDeprecatedUsage(); + const injectedRoute = inject(routerViewLocationKey); + const routeToDisplay = computed(() => props.route || injectedRoute.value); + const injectedDepth = inject(viewDepthKey, 0); + const depth = computed(() => { + let initialDepth = unref(injectedDepth); + const { matched } = routeToDisplay.value; + let matchedRoute; + while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++; + return initialDepth; + }); + const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]); + provide(viewDepthKey, computed(() => depth.value + 1)); + provide(matchedRouteKey, matchedRouteRef); + provide(routerViewLocationKey, routeToDisplay); + const viewRef = ref(); + watch(() => [ + viewRef.value, + matchedRouteRef.value, + props.name + ], ([instance, to, name], [oldInstance, from, _oldName]) => { + if (to) { + to.instances[name] = instance; + if (from && from !== to && instance && instance === oldInstance) { + if (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards; + if (!to.updateGuards.size) to.updateGuards = from.updateGuards; + } + } + if (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance)); + }, { flush: "post" }); + return () => { + const route = routeToDisplay.value; + const currentName = props.name; + const matchedRoute = matchedRouteRef.value; + const ViewComponent = matchedRoute && matchedRoute.components[currentName]; + if (!ViewComponent) return normalizeSlot(slots.default, { + Component: ViewComponent, + route + }); + const routePropsOption = matchedRoute.props[currentName]; + const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === "function" ? routePropsOption(route) : routePropsOption : null; + const onVnodeUnmounted = (vnode) => { + if (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null; + }; + const component = h(ViewComponent, assign({}, routeProps, attrs, { + onVnodeUnmounted, + ref: viewRef + })); + if ((process.env.NODE_ENV !== "production" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) { + const info = { + depth: depth.value, + name: matchedRoute.name, + path: matchedRoute.path, + meta: matchedRoute.meta + }; + (isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => { + instance.__vrv_devtools = info; + }); + } + return normalizeSlot(slots.default, { + Component: component, + route + }) || component; + }; + } +}); +function normalizeSlot(slot, data) { + if (!slot) return null; + const slotContent = slot(data); + return slotContent.length === 1 ? slotContent[0] : slotContent; +} +/** +* Component to display the current route the user is at. +*/ +const RouterView = RouterViewImpl; +function warnDeprecatedUsage() { + const instance = getCurrentInstance(); + const parentName = instance.parent && instance.parent.type.name; + const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type; + if (parentName && (parentName === "KeepAlive" || parentName.includes("Transition")) && typeof parentSubTreeType === "object" && parentSubTreeType.name === "RouterView") { + const comp = parentName === "KeepAlive" ? "keep-alive" : "transition"; + warn$1(` can no longer be used directly inside <${comp}>.\nUse slot props instead:\n\n\n <${comp}>\n \n \n`); + } +} +//#endregion +//#region src/router.ts +/** +* Creates a Router instance that can be used by a Vue app. +* +* @param options - {@link RouterOptions} +*/ +function createRouter(options) { + const matcher = createRouterMatcher(options.routes, options); + const parseQuery$1 = options.parseQuery || parseQuery; + const stringifyQuery$1 = options.stringifyQuery || stringifyQuery; + const routerHistory = options.history; + if (process.env.NODE_ENV !== "production" && !routerHistory) throw new Error("Provide the \"history\" option when calling \"createRouter()\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history"); + const beforeGuards = useCallbacks(); + const beforeResolveGuards = useCallbacks(); + const afterGuards = useCallbacks(); + const currentRoute = shallowRef(START_LOCATION_NORMALIZED); + let pendingLocation = START_LOCATION_NORMALIZED; + if (isBrowser && options.scrollBehavior && "scrollRestoration" in history) history.scrollRestoration = "manual"; + const normalizeParams = applyToParams.bind(null, (paramValue) => "" + paramValue); + const encodeParams = applyToParams.bind(null, encodeParam); + const decodeParams = applyToParams.bind(null, decode); + function addRoute(parentOrRoute, route) { + let parent; + let record; + if (isRouteName(parentOrRoute)) { + parent = matcher.getRecordMatcher(parentOrRoute); + if (process.env.NODE_ENV !== "production" && !parent) warn$1(`Parent route "${String(parentOrRoute)}" not found when adding child route`, route); + record = route; + } else record = parentOrRoute; + return matcher.addRoute(record, parent); + } + function removeRoute(name) { + const recordMatcher = matcher.getRecordMatcher(name); + if (recordMatcher) matcher.removeRoute(recordMatcher); + else if (process.env.NODE_ENV !== "production") warn$1(`Cannot remove non-existent route "${String(name)}"`); + } + function getRoutes() { + return matcher.getRoutes().map((routeMatcher) => routeMatcher.record); + } + function hasRoute(name) { + return !!matcher.getRecordMatcher(name); + } + function resolve(rawLocation, currentLocation) { + currentLocation = assign({}, currentLocation || currentRoute.value); + if (typeof rawLocation === "string") { + const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path); + const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation); + const href = routerHistory.createHref(locationNormalized.fullPath); + if (process.env.NODE_ENV !== "production") { + if (href.startsWith("//")) warn$1(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); + else if (!matchedRoute.matched.length) warn$1(`No match found for location with path "${rawLocation}"`); + } + return assign(locationNormalized, matchedRoute, { + params: decodeParams(matchedRoute.params), + redirectedFrom: void 0, + href + }); + } + if (process.env.NODE_ENV !== "production" && !isRouteLocation(rawLocation)) { + warn$1(`router.resolve() was passed an invalid location. This will fail in production.\n- Location:`, rawLocation); + return resolve({}); + } + let matcherLocation; + if (rawLocation.path != null) { + if (process.env.NODE_ENV !== "production" && "params" in rawLocation && !("name" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path "${rawLocation.path}" was passed with params but they will be ignored. Use a named route alongside params instead.`); + matcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path }); + } else { + const targetParams = assign({}, rawLocation.params); + for (const key in targetParams) if (targetParams[key] == null) delete targetParams[key]; + matcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) }); + currentLocation.params = encodeParams(currentLocation.params); + } + const matchedRoute = matcher.resolve(matcherLocation, currentLocation); + const hash = rawLocation.hash || ""; + if (process.env.NODE_ENV !== "production" && hash && !hash.startsWith("#")) warn$1(`A \`hash\` should always start with the character "#". Replace "${hash}" with "#${hash}".`); + matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params)); + const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, { + hash: encodeHash(hash), + path: matchedRoute.path + })); + const href = routerHistory.createHref(fullPath); + if (process.env.NODE_ENV !== "production") { + if (href.startsWith("//")) warn$1(`Location "${rawLocation}" resolved to "${href}". A resolved location cannot start with multiple slashes.`); + else if (!matchedRoute.matched.length) warn$1(`No match found for location with path "${rawLocation.path != null ? rawLocation.path : rawLocation}"`); + } + return assign({ + fullPath, + hash, + query: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {} + }, matchedRoute, { + redirectedFrom: void 0, + href + }); + } + function locationAsObject(to) { + return typeof to === "string" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to); + } + function checkCanceledNavigation(to, from) { + if (pendingLocation !== to) return createRouterError(8, { + from, + to + }); + } + function push(to) { + return pushWithRedirect(to); + } + function replace(to) { + return push(assign(locationAsObject(to), { replace: true })); + } + function handleRedirectRecord(to, from) { + const lastMatched = to.matched[to.matched.length - 1]; + if (lastMatched && lastMatched.redirect) { + const { redirect } = lastMatched; + let newTargetLocation = typeof redirect === "function" ? redirect(to, from) : redirect; + if (typeof newTargetLocation === "string") { + newTargetLocation = newTargetLocation.includes("?") || newTargetLocation.includes("#") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation }; + newTargetLocation.params = {}; + } + if (process.env.NODE_ENV !== "production" && newTargetLocation.path == null && !("name" in newTargetLocation)) { + warn$1(`Invalid redirect found:\n${JSON.stringify(newTargetLocation, null, 2)}\n when navigating to "${to.fullPath}". A redirect must contain a name or path. This will break in production.`); + throw new Error("Invalid redirect"); + } + return assign({ + query: to.query, + hash: to.hash, + params: newTargetLocation.path != null ? {} : to.params + }, newTargetLocation); + } + } + function pushWithRedirect(to, redirectedFrom) { + const targetLocation = pendingLocation = resolve(to); + const from = currentRoute.value; + const data = to.state; + const force = to.force; + const replace = to.replace === true; + const shouldRedirect = handleRedirectRecord(targetLocation, from); + if (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), { + state: typeof shouldRedirect === "object" ? assign({}, data, shouldRedirect.state) : data, + force, + replace + }), redirectedFrom || targetLocation); + const toLocation = targetLocation; + toLocation.redirectedFrom = redirectedFrom; + let failure; + if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) { + failure = createRouterError(16, { + to: toLocation, + from + }); + handleScroll(from, from, true, false); + } + return (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => { + if (failure) { + if (isNavigationFailure(failure, 2)) { + if (process.env.NODE_ENV !== "production" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) { + warn$1(`Detected a possibly infinite redirection in a navigation guard when going from "${from.fullPath}" to "${toLocation.fullPath}". Aborting to avoid a Stack Overflow.\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`); + return Promise.reject(/* @__PURE__ */ new Error("Infinite redirect in navigation guard")); + } + return pushWithRedirect(assign({ replace }, locationAsObject(failure.to), { + state: typeof failure.to === "object" ? assign({}, data, failure.to.state) : data, + force + }), redirectedFrom || toLocation); + } + } else failure = finalizeNavigation(toLocation, from, true, replace, data); + triggerAfterEach(toLocation, from, failure); + return failure; + }); + } + /** + * Helper to reject and skip all navigation guards if a new navigation happened + * @param to + * @param from + */ + function checkCanceledNavigationAndReject(to, from) { + const error = checkCanceledNavigation(to, from); + return error ? Promise.reject(error) : Promise.resolve(); + } + function runWithContext(fn) { + const app = installedApps.values().next().value; + return app && typeof app.runWithContext === "function" ? app.runWithContext(fn) : fn(); + } + function navigate(to, from) { + let guards; + const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from); + guards = extractComponentsGuards(leavingRecords.reverse(), "beforeRouteLeave", to, from); + for (const record of leavingRecords) record.leaveGuards.forEach((guard) => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards).then(() => { + guards = []; + for (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from)); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = extractComponentsGuards(updatingRecords, "beforeRouteUpdate", to, from); + for (const record of updatingRecords) record.updateGuards.forEach((guard) => { + guards.push(guardToPromiseFn(guard, to, from)); + }); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = []; + for (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from)); + else guards.push(guardToPromiseFn(record.beforeEnter, to, from)); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + to.matched.forEach((record) => record.enterCallbacks = {}); + guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from, runWithContext); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).then(() => { + guards = []; + for (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from)); + guards.push(canceledNavigationCheck); + return runGuardQueue(guards); + }).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err)); + } + function triggerAfterEach(to, from, failure) { + afterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure))); + } + /** + * - Cleans up any navigation guards + * - Changes the url if necessary + * - Calls the scrollBehavior + */ + function finalizeNavigation(toLocation, from, isPush, replace, data) { + const error = checkCanceledNavigation(toLocation, from); + if (error) return error; + const isFirstNavigation = from === START_LOCATION_NORMALIZED; + const state = !isBrowser ? {} : history.state; + if (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data)); + else routerHistory.push(toLocation.fullPath, data); + currentRoute.value = toLocation; + handleScroll(toLocation, from, isPush, isFirstNavigation); + markAsReady(); + } + let removeHistoryListener; + function setupListeners() { + if (removeHistoryListener) return; + removeHistoryListener = routerHistory.listen((to, _from, info) => { + if (!router.listening) return; + const toLocation = resolve(to); + const shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value); + if (shouldRedirect) { + pushWithRedirect(assign(shouldRedirect, { + replace: true, + force: true + }), toLocation).catch(noop); + return; + } + pendingLocation = toLocation; + const from = currentRoute.value; + if (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition()); + navigate(toLocation, from).catch((error) => { + if (isNavigationFailure(error, 12)) return error; + if (isNavigationFailure(error, 2)) { + pushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => { + if (isNavigationFailure(failure, 20) && !info.delta && info.type === "pop") routerHistory.go(-1, false); + }).catch(noop); + return Promise.reject(); + } + if (info.delta) routerHistory.go(-info.delta, false); + return triggerError(error, toLocation, from); + }).then((failure) => { + failure = failure || finalizeNavigation(toLocation, from, false); + if (failure) { + if (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false); + else if (info.type === "pop" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false); + } + triggerAfterEach(toLocation, from, failure); + }).catch(noop); + }); + } + let readyHandlers = useCallbacks(); + let errorListeners = useCallbacks(); + let ready; + /** + * Trigger errorListeners added via onError and throws the error as well + * + * @param error - error to throw + * @param to - location we were navigating to when the error happened + * @param from - location we were navigating from when the error happened + * @returns the error as a rejected promise + */ + function triggerError(error, to, from) { + markAsReady(error); + const list = errorListeners.list(); + if (list.length) list.forEach((handler) => handler(error, to, from)); + else { + if (process.env.NODE_ENV !== "production") warn$1("uncaught error during route navigation:"); + console.error(error); + } + return Promise.reject(error); + } + function isReady() { + if (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve(); + return new Promise((resolve, reject) => { + readyHandlers.add([resolve, reject]); + }); + } + function markAsReady(err) { + if (!ready) { + ready = !err; + setupListeners(); + readyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve()); + readyHandlers.reset(); + } + return err; + } + function handleScroll(to, from, isPush, isFirstNavigation) { + const { scrollBehavior } = options; + if (!isBrowser || !scrollBehavior) return Promise.resolve(); + const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null; + return nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from)); + } + const go = (delta) => routerHistory.go(delta); + let started; + const installedApps = /* @__PURE__ */ new Set(); + const router = { + currentRoute, + listening: true, + addRoute, + removeRoute, + clearRoutes: matcher.clearRoutes, + hasRoute, + getRoutes, + resolve, + options, + push, + replace, + go, + back: () => go(-1), + forward: () => go(1), + beforeEach: beforeGuards.add, + beforeResolve: beforeResolveGuards.add, + afterEach: afterGuards.add, + onError: errorListeners.add, + isReady, + install(app) { + app.component("RouterLink", RouterLink); + app.component("RouterView", RouterView); + app.config.globalProperties.$router = router; + Object.defineProperty(app.config.globalProperties, "$route", { + enumerable: true, + get: () => unref(currentRoute) + }); + if (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) { + started = true; + push(routerHistory.location).catch((err) => { + if (process.env.NODE_ENV !== "production") warn$1("Unexpected error when starting the router:", err); + }); + } + const reactiveRoute = {}; + for (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, { + get: () => currentRoute.value[key], + enumerable: true + }); + app.provide(routerKey, router); + app.provide(routeLocationKey, shallowReactive(reactiveRoute)); + app.provide(routerViewLocationKey, currentRoute); + const unmountApp = app.unmount; + installedApps.add(app); + app.unmount = function() { + installedApps.delete(app); + if (installedApps.size < 1) { + pendingLocation = START_LOCATION_NORMALIZED; + removeHistoryListener && removeHistoryListener(); + removeHistoryListener = null; + currentRoute.value = START_LOCATION_NORMALIZED; + started = false; + ready = false; + } + unmountApp(); + }; + if ((process.env.NODE_ENV !== "production" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher); + } + }; + function runGuardQueue(guards) { + return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve()); + } + return router; +} +//#endregion +export { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey }; diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/node_modules/@vue/devtools-api b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/node_modules/@vue/devtools-api new file mode 120000 index 0000000..7c04228 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/node_modules/@vue/devtools-api @@ -0,0 +1 @@ +../../../@vue/devtools-api@8.1.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/package.json b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/package.json new file mode 100644 index 0000000..1b3970b --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/package.json @@ -0,0 +1,226 @@ +{ + "name": "vue-router", + "version": "5.1.0", + "homepage": "https://router.vuejs.org", + "bugs": { + "url": "https://github.com/vuejs/router/issues" + }, + "license": "MIT", + "author": { + "name": "Eduardo San Martin Morote", + "email": "posva13@gmail.com" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/vuejs/router.git" + }, + "funding": "https://github.com/sponsors/posva", + "files": [ + "dist", + "index.cjs", + "README.md", + "route.schema.json", + "vue-router-auto-resolver.d.mts", + "vue-router-auto-routes.d.mts", + "vue-router-auto.d.ts", + "vue-router.node.mjs", + "vetur/attributes.json", + "vetur/tags.json" + ], + "type": "module", + "sideEffects": false, + "main": "index.cjs", + "module": "dist/vue-router.js", + "types": "dist/vue-router.d.ts", + "typesVersions": { + "*": { + "vite": [ + "./dist/unplugin/vite.d.mts" + ], + "unplugin": [ + "./dist/unplugin/index.d.mts" + ], + "unplugin/*": [ + "./dist/unplugin/*.d.mts" + ], + "volar/*": [ + "./dist/volar/*.d.cts" + ] + } + }, + "unpkg": "dist/vue-router.global.js", + "jsdelivr": "dist/vue-router.global.js", + "exports": { + ".": { + "types": "./dist/vue-router.d.ts", + "node": { + "import": { + "production": "./vue-router.node.mjs", + "development": "./vue-router.node.mjs", + "default": "./vue-router.node.mjs" + }, + "require": { + "production": "./dist/vue-router.prod.cjs", + "development": "./dist/vue-router.cjs", + "default": "./dist/vue-router.prod.cjs" + } + }, + "import": "./dist/vue-router.js", + "require": "./index.cjs" + }, + "./vetur/*": "./vetur/*", + "./package.json": "./package.json", + "./experimental": { + "types": "./dist/experimental/index.d.ts", + "import": "./dist/experimental/index.js" + }, + "./experimental/pinia-colada": { + "types": "./dist/experimental/pinia-colada.d.ts", + "import": "./dist/experimental/pinia-colada.js" + }, + "./auto-resolver": { + "types": "./vue-router-auto-resolver.d.mts" + }, + "./auto-routes": { + "types": "./vue-router-auto-routes.d.mts" + }, + "./auto": { + "types": "./vue-router-auto.d.ts", + "node": { + "import": { + "production": "./vue-router.node.mjs", + "development": "./vue-router.node.mjs", + "default": "./vue-router.node.mjs" + }, + "require": { + "production": "./dist/vue-router.prod.cjs", + "development": "./dist/vue-router.cjs", + "default": "./dist/vue-router.prod.cjs" + } + }, + "import": "./dist/vue-router.js", + "require": "./index.cjs" + }, + "./vite": { + "types": "./dist/unplugin/vite.d.mts", + "import": "./dist/unplugin/vite.mjs", + "require": "./dist/unplugin/vite.cjs" + }, + "./unplugin": { + "types": "./dist/unplugin/index.d.mts", + "import": "./dist/unplugin/index.mjs", + "require": "./dist/unplugin/index.cjs" + }, + "./unplugin/*": "./dist/unplugin/*", + "./volar/sfc-route-blocks": { + "types": "./dist/volar/sfc-route-blocks.d.cts", + "default": "./dist/volar/sfc-route-blocks.cjs" + }, + "./volar/sfc-typed-router": { + "types": "./dist/volar/sfc-typed-router.d.cts", + "default": "./dist/volar/sfc-typed-router.cjs" + }, + "./dist/*": "./dist/*" + }, + "dependencies": { + "@babel/generator": "^8.0.0-rc.4", + "@vue-macros/common": "^3.1.1", + "@vue/devtools-api": "^8.1.2", + "ast-walker-scope": "^0.9.0", + "chokidar": "^5.0.0", + "json5": "^2.2.3", + "local-pkg": "^1.1.2", + "magic-string": "^0.30.21", + "mlly": "^1.8.2", + "muggle-string": "^0.4.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "scule": "^1.3.0", + "tinyglobby": "^0.2.16", + "unplugin": "^3.0.0", + "unplugin-utils": "^0.3.1", + "yaml": "^2.9.0" + }, + "devDependencies": { + "@babel/types": "^8.0.0-rc.4", + "@pinia/colada": "^1.3.1", + "@playwright/test": "^1.59.1", + "@rollup/plugin-commonjs": "^28.0.9", + "@rollup/plugin-node-resolve": "^16.0.3", + "@rollup/plugin-replace": "^6.0.3", + "@rollup/plugin-terser": "^0.4.4", + "@standard-schema/spec": "^1.1.0", + "@types/babel__generator": "^7.27.0", + "@types/nightwatch": "^2.3.32", + "@types/picomatch": "^4.0.2", + "@typescript/native-preview": "7.0.0-dev.20260106.1", + "@vitejs/plugin-vue": "^6.0.6", + "@vue/compiler-sfc": "^3.5.34", + "@vue/language-core": "^3.2.1", + "@vue/server-renderer": "^3.5.34", + "@vue/test-utils": "^2.4.10", + "browserstack-local": "^1.5.13", + "chromedriver": "^148.0.3", + "connect-history-api-fallback": "^2.0.0", + "dotenv": "^17.4.2", + "faked-promise": "^2.2.2", + "geckodriver": "^6.1.0", + "happy-dom": "^20.9.0", + "nightwatch": "^3.15.0", + "nightwatch-helpers": "^1.2.0", + "pinia": "^3.0.4", + "rimraf": "^6.1.3", + "rollup": "^4.57.1", + "rollup-plugin-typescript2": "^0.36.0", + "tsdown": "^0.22.0", + "tsup": "^8.5.1", + "valibot": "^1.4.1", + "vite": "^8.0.13", + "vue": "^3.5.34", + "zod": "^4.4.3" + }, + "peerDependencies": { + "@pinia/colada": ">=0.21.2", + "@vue/compiler-sfc": "^3.5.34", + "pinia": "^3.0.4", + "vite": "^7.0.0 || ^8.0.0", + "vue": "^3.5.34" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "pinia": { + "optional": true + }, + "@pinia/colada": { + "optional": true + }, + "vite": { + "optional": true + } + }, + "vetur": { + "tags": "vetur/tags.json", + "attributes": "vetur/attributes.json" + }, + "scripts": { + "dev": "vitest --ui", + "build": "tsdown", + "build:old": "rimraf dist && rollup -c rollup.config.mjs", + "build:playground": "vue-tsc --noEmit && vite build --config playground/vite.config.ts", + "build:e2e": "vue-tsc --noEmit && vite build --config e2e/vite.config.mjs", + "build:size": "pnpm run build && rollup -c size-checks/rollup.config.mjs", + "dev:e2e": "vite --config e2e/vite.config.mjs", + "test:types": "tsc --build tsconfig.json ./test-dts/tsconfig.experimental.json", + "test:unit": "vitest --coverage run", + "test": "pnpm run build && pnpm run '/^(unit|test:types)$/' && pnpm run '/^test:(e2e|e2e:hmr)$/'", + "test:e2e": "pnpm run test:e2e:headless", + "test:e2e:hmr": "pnpm exec playwright test", + "test:e2e:headless": "node e2e/runner.mjs --env chrome-headless", + "test:e2e:native": "node e2e/runner.mjs --env chrome", + "test:e2e:ci": "node e2e/runner.mjs --env chrome-headless --retries 2", + "test:e2e:bs": "node e2e/runner.mjs --local -e android5 --tag browserstack", + "test:e2e:bs-test": "node e2e/runner.mjs --local --env browserstack.local_chrome --tag browserstack" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/vue-router.node.mjs b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/vue-router.node.mjs new file mode 100644 index 0000000..b7abbbb --- /dev/null +++ b/frontend_admin/.output/server/node_modules/.nitro/vue-router@5.1.0/vue-router.node.mjs @@ -0,0 +1,2 @@ +global.__VUE_PROD_DEVTOOLS__ = false +export * from './dist/vue-router.js' diff --git a/frontend_admin/.output/server/node_modules/@intlify/core-base/dist/core-base.mjs b/frontend_admin/.output/server/node_modules/@intlify/core-base/dist/core-base.mjs new file mode 100644 index 0000000..ddea7b7 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/core-base/dist/core-base.mjs @@ -0,0 +1,1901 @@ +/*! + * core-base v11.4.2 + * (c) 2026 kazuya kawaguchi + * Released under the MIT License. + */ +import { getGlobalThis, isObject, hasOwn, isNumber, create, isString, isBoolean, warn, format as format$1, isFunction, isPromise, isArray, isPlainObject, assign, isRegExp, warnOnce, isDate, isEmptyObject, join, toDisplayString, sanitizeTranslatedHtml, escapeHtml, inBrowser, mark, measure, generateCodeFrame, generateFormatCacheKey } from '@intlify/shared'; +import { detectHtmlTag, defaultOnError, baseCompile as baseCompile$1, COMPILE_ERROR_CODES_EXTEND_POINT, createCompileError } from '@intlify/message-compiler'; +export { CompileErrorCodes, createCompileError } from '@intlify/message-compiler'; + +/** + * This is only called in esm-bundler builds. + * istanbul-ignore-next + */ +function initFeatureFlags() { + if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') { + getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false; + } + if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') { + getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false; + } +} + +function isMessageAST(val) { + return (isObject(val) && + resolveType(val) === 0 && + (hasOwn(val, 'b') || hasOwn(val, 'body'))); +} +const PROPS_BODY = ['b', 'body']; +function resolveBody(node) { + return resolveProps(node, PROPS_BODY); +} +const PROPS_CASES = ['c', 'cases']; +function resolveCases(node) { + return resolveProps(node, PROPS_CASES, []); +} +const PROPS_STATIC = ['s', 'static']; +function resolveStatic(node) { + return resolveProps(node, PROPS_STATIC); +} +const PROPS_ITEMS = ['i', 'items']; +function resolveItems(node) { + return resolveProps(node, PROPS_ITEMS, []); +} +const PROPS_TYPE = ['t', 'type']; +function resolveType(node) { + return resolveProps(node, PROPS_TYPE); +} +const PROPS_VALUE = ['v', 'value']; +function resolveValue$1(node, type) { + const resolved = resolveProps(node, PROPS_VALUE); + if (resolved != null) { + return resolved; + } + else { + throw createUnhandleNodeError(type); + } +} +const PROPS_MODIFIER = ['m', 'modifier']; +function resolveLinkedModifier(node) { + return resolveProps(node, PROPS_MODIFIER); +} +const PROPS_KEY = ['k', 'key']; +function resolveLinkedKey(node) { + const resolved = resolveProps(node, PROPS_KEY); + if (resolved) { + return resolved; + } + else { + throw createUnhandleNodeError(6 /* NodeTypes.Linked */); + } +} +function resolveProps(node, props, defaultValue) { + for (let i = 0; i < props.length; i++) { + const prop = props[i]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + if (hasOwn(node, prop) && node[prop] != null) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return node[prop]; + } + } + return defaultValue; +} +const AST_NODE_PROPS_KEYS = [ + ...PROPS_BODY, + ...PROPS_CASES, + ...PROPS_STATIC, + ...PROPS_ITEMS, + ...PROPS_KEY, + ...PROPS_MODIFIER, + ...PROPS_VALUE, + ...PROPS_TYPE +]; +function createUnhandleNodeError(type) { + return new Error(`unhandled node type: ${type}`); +} + +function format(ast) { + const msg = (ctx) => formatParts(ctx, ast); + return msg; +} +function formatParts(ctx, ast) { + const body = resolveBody(ast); + if (body == null) { + throw createUnhandleNodeError(0 /* NodeTypes.Resource */); + } + const type = resolveType(body); + if (type === 1 /* NodeTypes.Plural */) { + const plural = body; + const cases = resolveCases(plural); + return ctx.plural(cases.reduce((messages, c) => [ + ...messages, + formatMessageParts(ctx, c) + ], [])); + } + else { + return formatMessageParts(ctx, body); + } +} +function formatMessageParts(ctx, node) { + const static_ = resolveStatic(node); + if (static_ != null) { + return ctx.type === 'text' + ? static_ + : ctx.normalize([static_]); + } + else { + const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []); + return ctx.normalize(messages); + } +} +function formatMessagePart(ctx, node) { + const type = resolveType(node); + switch (type) { + case 3 /* NodeTypes.Text */: { + return resolveValue$1(node, type); + } + case 9 /* NodeTypes.Literal */: { + return resolveValue$1(node, type); + } + case 4 /* NodeTypes.Named */: { + const named = node; + if (hasOwn(named, 'k') && named.k) { + return ctx.interpolate(ctx.named(named.k)); + } + if (hasOwn(named, 'key') && named.key) { + return ctx.interpolate(ctx.named(named.key)); + } + throw createUnhandleNodeError(type); + } + case 5 /* NodeTypes.List */: { + const list = node; + if (hasOwn(list, 'i') && isNumber(list.i)) { + return ctx.interpolate(ctx.list(list.i)); + } + if (hasOwn(list, 'index') && isNumber(list.index)) { + return ctx.interpolate(ctx.list(list.index)); + } + throw createUnhandleNodeError(type); + } + case 6 /* NodeTypes.Linked */: { + const linked = node; + const modifier = resolveLinkedModifier(linked); + const key = resolveLinkedKey(linked); + return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type); + } + case 7 /* NodeTypes.LinkedKey */: { + return resolveValue$1(node, type); + } + case 8 /* NodeTypes.LinkedModifier */: { + return resolveValue$1(node, type); + } + default: + throw new Error(`unhandled node on format message part: ${type}`); + } +} + +const WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`; +function checkHtmlMessage(source, warnHtmlMessage) { + if (warnHtmlMessage && detectHtmlTag(source)) { + warn(format$1(WARN_MESSAGE, { source })); + } +} +const defaultOnCacheKey = (message) => message; +let compileCache = create(); +function clearCompileCache() { + compileCache = create(); +} +function baseCompile(message, options = {}) { + // error detecting on compile + let detectError = false; + const onError = options.onError || defaultOnError; + options.onError = (err) => { + detectError = true; + onError(err); + }; + // compile with mesasge-compiler + return { ...baseCompile$1(message, options), detectError }; +} +/* #__NO_SIDE_EFFECTS__ */ +function compile(message, context) { + if ((!__INTLIFY_DROP_MESSAGE_COMPILER__) && + isString(message)) { + // check HTML message + const warnHtmlMessage = isBoolean(context.warnHtmlMessage) + ? context.warnHtmlMessage + : true; + (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage); + // check caches + const onCacheKey = context.onCacheKey || defaultOnCacheKey; + const cacheKey = onCacheKey(message); + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + // compile with JIT mode + const { ast, detectError } = baseCompile(message, { + ...context, + location: (process.env.NODE_ENV !== 'production'), + jit: true + }); + // compose message function from AST + const msg = format(ast); + // if occurred compile error, don't cache + return !detectError + ? (compileCache[cacheKey] = msg) + : msg; + } + else { + if ((process.env.NODE_ENV !== 'production') && !isMessageAST(message)) { + warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`); + return (() => message); + } + // AST case (passed from bundler) + const cacheKey = message.cacheKey; + if (cacheKey) { + const cached = compileCache[cacheKey]; + if (cached) { + return cached; + } + // compose message function from message (AST) + return (compileCache[cacheKey] = + format(message)); + } + else { + return format(message); + } + } +} + +let devtools = null; +function setDevToolsHook(hook) { + devtools = hook; +} +function getDevToolsHook() { + return devtools; +} +function initI18nDevTools(i18n, version, meta) { + // TODO: queue if devtools is undefined + devtools && + devtools.emit('i18n:init', { + timestamp: Date.now(), + i18n, + version, + meta + }); +} +const translateDevTools = +/* #__PURE__*/ createDevToolsHook('function:translate'); +function createDevToolsHook(hook) { + return (payloads) => devtools && devtools.emit(hook, payloads); +} + +const CoreErrorCodes = { + INVALID_ARGUMENT: COMPILE_ERROR_CODES_EXTEND_POINT, // 17 + INVALID_DATE_ARGUMENT: 18, + INVALID_ISO_DATE_ARGUMENT: 19, + NOT_SUPPORT_NON_STRING_MESSAGE: 20, + NOT_SUPPORT_LOCALE_PROMISE_VALUE: 21, + NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: 22, + NOT_SUPPORT_LOCALE_TYPE: 23 +}; +const CORE_ERROR_CODES_EXTEND_POINT = 24; +function createCoreError(code) { + return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined); +} +/** @internal */ +const errorMessages = { + [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments', + [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' + + 'Make sure your Date represents a valid date.', + [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string', + [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message', + [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value', + [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function', + [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type' +}; + +/** @internal */ +function getLocale(context, options) { + return options.locale != null + ? resolveLocale(options.locale) + : resolveLocale(context.locale); +} +let _resolveLocale; +/** @internal */ +function resolveLocale(locale) { + if (isString(locale)) { + return locale; + } + else { + if (isFunction(locale)) { + if (locale.resolvedOnce && _resolveLocale != null) { + return _resolveLocale; + } + else if (locale.constructor.name === 'Function') { + const resolve = locale(); + if (isPromise(resolve)) { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE); + } + return (_resolveLocale = resolve); + } + else { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION); + } + } + else { + throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE); + } + } +} +/** + * Fallback with simple implemenation + * + * @remarks + * A fallback locale function implemented with a simple fallback algorithm. + * + * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify. + * + * @param ctx - A {@link CoreContext | context} + * @param fallback - A {@link FallbackLocale | fallback locale} + * @param start - A starting {@link Locale | locale} + * + * @returns Fallback locales + * + * @VueI18nGeneral + */ +function fallbackWithSimple(ctx, fallback, start) { + // prettier-ignore + return [...new Set([ + start, + ...(isArray(fallback) + ? fallback + : isObject(fallback) + ? Object.keys(fallback) + : isString(fallback) + ? [fallback] + : [start]) + ])]; +} +/** + * Fallback with locale chain + * + * @remarks + * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default. + * + * @param ctx - A {@link CoreContext | context} + * @param fallback - A {@link FallbackLocale | fallback locale} + * @param start - A starting {@link Locale | locale} + * + * @returns Fallback locales + * + * @VueI18nSee [Fallbacking](../guide/essentials/fallback) + * + * @VueI18nGeneral + */ +function fallbackWithLocaleChain(ctx, fallback, start) { + const startLocale = isString(start) ? start : DEFAULT_LOCALE; + const context = ctx; + if (!context.__localeChainCache) { + context.__localeChainCache = new Map(); + } + let chain = context.__localeChainCache.get(startLocale); + if (!chain) { + chain = []; + // first block defined by start + let block = [start]; + // while any intervening block found + while (isArray(block)) { + block = appendBlockToChain(chain, block, fallback); + } + // prettier-ignore + // last block defined by default + const defaults = isArray(fallback) || !isPlainObject(fallback) + ? fallback + : fallback['default'] + ? fallback['default'] + : null; + // convert defaults to array + block = isString(defaults) ? [defaults] : defaults; + if (isArray(block)) { + appendBlockToChain(chain, block, false); + } + context.__localeChainCache.set(startLocale, chain); + } + return chain; +} +function appendBlockToChain(chain, block, blocks) { + let follow = true; + for (let i = 0; i < block.length && isBoolean(follow); i++) { + const locale = block[i]; + if (isString(locale)) { + follow = appendLocaleToChain(chain, block[i], blocks); + } + } + return follow; +} +function appendLocaleToChain(chain, locale, blocks) { + let follow; + const tokens = locale.split('-'); + do { + const target = tokens.join('-'); + follow = appendItemToChain(chain, target, blocks); + tokens.splice(-1, 1); + } while (tokens.length && follow === true); + return follow; +} +function appendItemToChain(chain, target, blocks) { + let follow = false; + if (!chain.includes(target)) { + follow = true; + if (target) { + follow = target[target.length - 1] !== '!'; + const locale = target.replace(/!/g, ''); + chain.push(locale); + if ((isArray(blocks) || isPlainObject(blocks)) && + blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any + ) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + follow = blocks[locale]; + } + } + } + return follow; +} + +const pathStateMachine = []; +pathStateMachine[0 /* States.BEFORE_PATH */] = { + ["w" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */], + ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */] +}; +pathStateMachine[1 /* States.IN_PATH */] = { + ["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */], + ["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */] +}; +pathStateMachine[2 /* States.BEFORE_IDENT */] = { + ["w" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */], + ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */] +}; +pathStateMachine[3 /* States.IN_IDENT */] = { + ["i" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["0" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */], + ["w" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */], + ["." /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */] +}; +pathStateMachine[4 /* States.IN_SUB_PATH */] = { + ["'" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */], + ["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */], + ["[" /* PathCharTypes.LEFT_BRACKET */]: [ + 4 /* States.IN_SUB_PATH */, + 2 /* Actions.INC_SUB_PATH_DEPTH */ + ], + ["]" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */], + ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */, + ["l" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */] +}; +pathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = { + ["'" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */], + ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */, + ["l" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */] +}; +pathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = { + ["\"" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */], + ["o" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */, + ["l" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */] +}; +/** + * Check if an expression is a literal value. + */ +const literalValueRE = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; +function isLiteral(exp) { + return literalValueRE.test(exp); +} +/** + * Strip quotes from a string + */ +function stripQuotes(str) { + const a = str.charCodeAt(0); + const b = str.charCodeAt(str.length - 1); + return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str; +} +/** + * Determine the type of a character in a keypath. + */ +function getPathCharType(ch) { + if (ch === undefined || ch === null) { + return "o" /* PathCharTypes.END_OF_FAIL */; + } + const code = ch.charCodeAt(0); + switch (code) { + case 0x5b: // [ + case 0x5d: // ] + case 0x2e: // . + case 0x22: // " + case 0x27: // ' + return ch; + case 0x5f: // _ + case 0x24: // $ + case 0x2d: // - + return "i" /* PathCharTypes.IDENT */; + case 0x09: // Tab (HT) + case 0x0a: // Newline (LF) + case 0x0d: // Return (CR) + case 0xa0: // No-break space (NBSP) + case 0xfeff: // Byte Order Mark (BOM) + case 0x2028: // Line Separator (LS) + case 0x2029: // Paragraph Separator (PS) + return "w" /* PathCharTypes.WORKSPACE */; + } + return "i" /* PathCharTypes.IDENT */; +} +/** + * Format a subPath, return its plain form if it is + * a literal string or number. Otherwise prepend the + * dynamic indicator (*). + */ +function formatSubPath(path) { + const trimmed = path.trim(); + // invalid leading 0 + if (path.charAt(0) === '0' && isNaN(parseInt(path))) { + return false; + } + return isLiteral(trimmed) + ? stripQuotes(trimmed) + : "*" /* PathCharTypes.ASTARISK */ + trimmed; +} +/** + * Parse a string path into an array of segments + */ +function parse(path) { + const keys = []; + let index = -1; + let mode = 0 /* States.BEFORE_PATH */; + let subPathDepth = 0; + let c; + let key; // eslint-disable-line + let newChar; + let type; + let transition; + let action; + let typeMap; + const actions = []; + actions[0 /* Actions.APPEND */] = () => { + if (key === undefined) { + key = newChar; + } + else { + key += newChar; + } + }; + actions[1 /* Actions.PUSH */] = () => { + if (key !== undefined) { + keys.push(key); + key = undefined; + } + }; + actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => { + actions[0 /* Actions.APPEND */](); + subPathDepth++; + }; + actions[3 /* Actions.PUSH_SUB_PATH */] = () => { + if (subPathDepth > 0) { + subPathDepth--; + mode = 4 /* States.IN_SUB_PATH */; + actions[0 /* Actions.APPEND */](); + } + else { + subPathDepth = 0; + if (key === undefined) { + return false; + } + key = formatSubPath(key); + if (key === false) { + return false; + } + else { + actions[1 /* Actions.PUSH */](); + } + } + }; + function maybeUnescapeQuote() { + const nextChar = path[index + 1]; + if ((mode === 5 /* States.IN_SINGLE_QUOTE */ && + nextChar === "'" /* PathCharTypes.SINGLE_QUOTE */) || + (mode === 6 /* States.IN_DOUBLE_QUOTE */ && + nextChar === "\"" /* PathCharTypes.DOUBLE_QUOTE */)) { + index++; + newChar = '\\' + nextChar; + actions[0 /* Actions.APPEND */](); + return true; + } + } + while (mode !== null) { + index++; + c = path[index]; + if (c === '\\' && maybeUnescapeQuote()) { + continue; + } + type = getPathCharType(c); + typeMap = pathStateMachine[mode]; + transition = typeMap[type] || typeMap["l" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */; + // check parse error + if (transition === 8 /* States.ERROR */) { + return; + } + mode = transition[0]; + if (transition[1] !== undefined) { + action = actions[transition[1]]; + if (action) { + newChar = c; + if (action() === false) { + return; + } + } + } + // check parse finish + if (mode === 7 /* States.AFTER_PATH */) { + return keys; + } + } +} +// path token cache +const cache = new Map(); +/** + * key-value message resolver + * + * @remarks + * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved + * + * @param obj - A target object to be resolved with path + * @param path - A {@link Path | path} to resolve the value of message + * + * @returns A resolved {@link PathValue | path value} + * + * @VueI18nGeneral + */ +function resolveWithKeyValue(obj, path) { + return isObject(obj) ? obj[path] : null; +} +/** + * message resolver + * + * @remarks + * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default. + * + * @param obj - A target object to be resolved with path + * @param path - A {@link Path | path} to resolve the value of message + * + * @returns A resolved {@link PathValue | path value} + * + * @VueI18nGeneral + */ +function resolveValue(obj, path) { + // check object + if (!isObject(obj)) { + return null; + } + // parse path + let hit = cache.get(path); + if (!hit) { + hit = parse(path); + if (hit) { + cache.set(path, hit); + } + } + // check hit + if (!hit) { + return null; + } + // resolve path value + const len = hit.length; + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- for generic object + let last = obj; + let i = 0; + while (i < len) { + const key = hit[i]; + /** + * NOTE: + * if `key` is intlify message format AST node key and `last` is intlify message format AST, skip it. + * because the AST node is not a key-value structure. + */ + if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) { + return null; + } + if (!isObject(last)) { + return null; + } + if (!hasOwn(last, key)) { + return null; + } + const val = last[key]; + if (val === undefined) { + return null; + } + if (isFunction(last)) { + return null; + } + last = val; + i++; + } + return last; +} + +const CoreWarnCodes = { + NOT_FOUND_KEY: 1, + FALLBACK_TO_TRANSLATE: 2, + CANNOT_FORMAT_NUMBER: 3, + FALLBACK_TO_NUMBER_FORMAT: 4, + CANNOT_FORMAT_DATE: 5, + FALLBACK_TO_DATE_FORMAT: 6, + EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: 7, + INVALID_NUMBER_ARGUMENT: 8, + INVALID_DATE_ARGUMENT: 9 +}; +const CORE_WARN_CODES_EXTEND_POINT = 10; +/** @internal */ +const warnMessages = { + [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`, + [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`, + [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`, + [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`, + [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`, + [CoreWarnCodes.INVALID_NUMBER_ARGUMENT]: `Invalid argument for number formatting: expected a number but received '{value}'.`, + [CoreWarnCodes.INVALID_DATE_ARGUMENT]: `Invalid argument for datetime formatting: expected a Date, number, or ISO string but received '{value}'.` +}; +function getWarnMessage(code, ...args) { + return format$1(warnMessages[code], ...args); +} + +/* eslint-disable @typescript-eslint/no-explicit-any */ +/** + * Intlify core-base version + * @internal + */ +const VERSION = '11.4.2'; +const NOT_REOSLVED = -1; +const DEFAULT_LOCALE = 'en-US'; +const MISSING_RESOLVE_VALUE = ''; +const capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`; +function getDefaultLinkedModifiers() { + return { + upper: (val, type) => { + // prettier-ignore + return type === 'text' && isString(val) + ? val.toUpperCase() + : type === 'vnode' && isObject(val) && '__v_isVNode' in val + ? val.children.toUpperCase() + : val; + }, + lower: (val, type) => { + // prettier-ignore + return type === 'text' && isString(val) + ? val.toLowerCase() + : type === 'vnode' && isObject(val) && '__v_isVNode' in val + ? val.children.toLowerCase() + : val; + }, + capitalize: (val, type) => { + // prettier-ignore + return (type === 'text' && isString(val) + ? capitalize(val) + : type === 'vnode' && isObject(val) && '__v_isVNode' in val + ? capitalize(val.children) + : val); + } + }; +} +let _compiler; +function registerMessageCompiler(compiler) { + _compiler = compiler; +} +let _resolver; +/** + * Register the message resolver + * + * @param resolver - A {@link MessageResolver} function + * + * @VueI18nGeneral + */ +function registerMessageResolver(resolver) { + _resolver = resolver; +} +let _fallbacker; +/** + * Register the locale fallbacker + * + * @param fallbacker - A {@link LocaleFallbacker} function + * + * @VueI18nGeneral + */ +function registerLocaleFallbacker(fallbacker) { + _fallbacker = fallbacker; +} +// Additional Meta for Intlify DevTools +let _additionalMeta = null; +/* #__NO_SIDE_EFFECTS__ */ +const setAdditionalMeta = (meta) => { + _additionalMeta = meta; +}; +/* #__NO_SIDE_EFFECTS__ */ +const getAdditionalMeta = () => _additionalMeta; +let _fallbackContext = null; +const setFallbackContext = (context) => { + _fallbackContext = context; +}; +const getFallbackContext = () => _fallbackContext; +// ID for CoreContext +let _cid = 0; +function createCoreContext(options = {}) { + // setup options + const onWarn = isFunction(options.onWarn) ? options.onWarn : warn; + const version = isString(options.version) ? options.version : VERSION; + const locale = isString(options.locale) || isFunction(options.locale) + ? options.locale + : DEFAULT_LOCALE; + const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale; + const fallbackLocale = isArray(options.fallbackLocale) || + isPlainObject(options.fallbackLocale) || + isString(options.fallbackLocale) || + options.fallbackLocale === false + ? options.fallbackLocale + : _locale; + const messages = isPlainObject(options.messages) + ? options.messages + : createResources(_locale); + const datetimeFormats = isPlainObject(options.datetimeFormats) + ? options.datetimeFormats + : createResources(_locale) + ; + const numberFormats = isPlainObject(options.numberFormats) + ? options.numberFormats + : createResources(_locale) + ; + const modifiers = assign(create(), options.modifiers, getDefaultLinkedModifiers()); + const pluralRules = options.pluralRules || create(); + const missing = isFunction(options.missing) ? options.missing : null; + const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn) + ? options.missingWarn + : true; + const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn) + ? options.fallbackWarn + : true; + const fallbackFormat = !!options.fallbackFormat; + const unresolving = !!options.unresolving; + const postTranslation = isFunction(options.postTranslation) + ? options.postTranslation + : null; + const processor = isPlainObject(options.processor) ? options.processor : null; + const warnHtmlMessage = isBoolean(options.warnHtmlMessage) + ? options.warnHtmlMessage + : true; + const escapeParameter = !!options.escapeParameter; + const messageCompiler = isFunction(options.messageCompiler) + ? options.messageCompiler + : _compiler; + if ((process.env.NODE_ENV !== 'production') && + !false && + !false && + isFunction(options.messageCompiler)) { + warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER)); + } + const messageResolver = isFunction(options.messageResolver) + ? options.messageResolver + : _resolver || resolveWithKeyValue; + const localeFallbacker = isFunction(options.localeFallbacker) + ? options.localeFallbacker + : _fallbacker || fallbackWithSimple; + const fallbackContext = isObject(options.fallbackContext) + ? options.fallbackContext + : undefined; + // setup internal options + const internalOptions = options; + const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters) + ? internalOptions.__datetimeFormatters + : new Map() + ; + const __numberFormatters = isObject(internalOptions.__numberFormatters) + ? internalOptions.__numberFormatters + : new Map() + ; + const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {}; + _cid++; + const context = { + version, + cid: _cid, + locale, + fallbackLocale, + messages, + modifiers, + pluralRules, + missing, + missingWarn, + fallbackWarn, + fallbackFormat, + unresolving, + postTranslation, + processor, + warnHtmlMessage, + escapeParameter, + messageCompiler, + messageResolver, + localeFallbacker, + fallbackContext, + onWarn, + __meta + }; + { + context.datetimeFormats = datetimeFormats; + context.numberFormats = numberFormats; + context.__datetimeFormatters = __datetimeFormatters; + context.__numberFormatters = __numberFormatters; + } + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production')) { + context.__v_emitter = + internalOptions.__v_emitter != null + ? internalOptions.__v_emitter + : undefined; + } + // NOTE: experimental !! + if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) { + initI18nDevTools(context, version, __meta); + } + return context; +} +const createResources = (locale) => ({ [locale]: create() }); +/** @internal */ +function isTranslateFallbackWarn(fallback, key) { + return fallback instanceof RegExp ? fallback.test(key) : fallback; +} +/** @internal */ +function isTranslateMissingWarn(missing, key) { + return missing instanceof RegExp ? missing.test(key) : missing; +} +/** @internal */ +function handleMissing(context, key, locale, missingWarn, type) { + const { missing, onWarn } = context; + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production')) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit('missing', { + locale, + key, + type, + groupId: `${type}:${key}` + }); + } + } + if (missing !== null) { + const ret = missing(context, locale, key, type); + return isString(ret) ? ret : key; + } + else { + if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) { + onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale })); + } + return key; + } +} +/** @internal */ +function updateFallbackLocale(ctx, locale, fallback) { + const context = ctx; + context.__localeChainCache = new Map(); + ctx.localeFallbacker(ctx, fallback, locale); +} +/** @internal */ +function isAlmostSameLocale(locale, compareLocale) { + if (locale === compareLocale) + return false; + return locale.split('-')[0] === compareLocale.split('-')[0]; +} +/** @internal */ +function isImplicitFallback(targetLocale, locales) { + const index = locales.indexOf(targetLocale); + if (index === -1) { + return false; + } + for (let i = index + 1; i < locales.length; i++) { + if (isAlmostSameLocale(targetLocale, locales[i])) { + return true; + } + } + return false; +} +/* eslint-enable @typescript-eslint/no-explicit-any */ + +const intlDefined = typeof Intl !== 'undefined'; +const Availabilities = { + dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined', + numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined' +}; + +// implementation of `datetime` function +function datetime(context, ...args) { + const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __datetimeFormatters } = context; + if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) { + onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE)); + return MISSING_RESOLVE_VALUE; + } + if (!isString(args[0]) && !isDate(args[0]) && !isNumber(args[0])) { + if ((process.env.NODE_ENV !== 'production')) { + onWarn(getWarnMessage(CoreWarnCodes.INVALID_DATE_ARGUMENT, { + value: String(args[0]) + })); + } + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseDateTimeArgs(...args); + const missingWarn = isBoolean(options.missingWarn) + ? options.missingWarn + : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) + ? options.fallbackWarn + : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, locale); + if (!isString(key) || key === '') { + return new Intl.DateTimeFormat(locale.replace(/!/g, ''), overrides).format(value); + } + // resolve format + let datetimeFormat = {}; + let targetLocale; + let format = null; + let from = locale; + let to = null; + const type = 'datetime format'; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if ((process.env.NODE_ENV !== 'production') && + locale !== targetLocale && + isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, { + key, + target: targetLocale + })); + } + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit('fallback', { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + datetimeFormat = + datetimeFormats[targetLocale] || {}; + format = datetimeFormat[key]; + if (isPlainObject(format)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any + from = to; + } + // checking format and target locale + if (!isPlainObject(format) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __datetimeFormatters.get(id); + if (!formatter) { + formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides)); + __datetimeFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); +} +/** @internal */ +const DATETIME_FORMAT_OPTIONS_KEYS = [ + 'localeMatcher', + 'weekday', + 'era', + 'year', + 'month', + 'day', + 'hour', + 'minute', + 'second', + 'timeZoneName', + 'formatMatcher', + 'hour12', + 'timeZone', + 'dateStyle', + 'timeStyle', + 'calendar', + 'dayPeriod', + 'numberingSystem', + 'hourCycle', + 'fractionalSecondDigits' +]; +/** @internal */ +function parseDateTimeArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = create(); + let overrides = create(); + let value; + if (isString(arg1)) { + // Only allow ISO strings - other date formats are often supported, + // but may cause different results in different browsers. + const matches = arg1.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/); + if (!matches) { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + // Some browsers can not parse the iso datetime separated by space, + // this is a compromise solution by replace the 'T'/' ' with 'T' + const dateTime = matches[3] + ? matches[3].trim().startsWith('T') + ? `${matches[1].trim()}${matches[3].trim()}` + : `${matches[1].trim()}T${matches[3].trim()}` + : matches[1].trim(); + value = new Date(dateTime); + try { + // This will fail if the date is not valid + value.toISOString(); + } + catch { + throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT); + } + } + else if (isDate(arg1)) { + if (isNaN(arg1.getTime())) { + throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT); + } + value = arg1; + } + else if (isNumber(arg1)) { + value = arg1; + } + else { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + if (isString(arg2)) { + options.key = arg2; + } + else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach(key => { + if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } + else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } + else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || '', value, options, overrides]; +} +/** @internal */ +function clearDateTimeFormat(ctx, locale, format) { + const context = ctx; + for (const key in format) { + const id = `${locale}__${key}`; + if (!context.__datetimeFormatters.has(id)) { + continue; + } + context.__datetimeFormatters.delete(id); + } +} + +// implementation of `number` function +function number(context, ...args) { + const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context; + const { __numberFormatters } = context; + if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) { + onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER)); + return MISSING_RESOLVE_VALUE; + } + if (!isNumber(args[0])) { + if ((process.env.NODE_ENV !== 'production')) { + onWarn(getWarnMessage(CoreWarnCodes.INVALID_NUMBER_ARGUMENT, { + value: String(args[0]) + })); + } + return MISSING_RESOLVE_VALUE; + } + const [key, value, options, overrides] = parseNumberArgs(...args); + const missingWarn = isBoolean(options.missingWarn) + ? options.missingWarn + : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) + ? options.fallbackWarn + : context.fallbackWarn; + const part = !!options.part; + const locale = getLocale(context, options); + const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any + fallbackLocale, locale); + if (!isString(key) || key === '') { + return new Intl.NumberFormat(locale.replace(/!/g, ''), overrides).format(value); + } + // resolve format + let numberFormat = {}; + let targetLocale; + let format = null; + let from = locale; + let to = null; + const type = 'number format'; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if ((process.env.NODE_ENV !== 'production') && + locale !== targetLocale && + isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, { + key, + target: targetLocale + })); + } + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) { + const emitter = context.__v_emitter; + if (emitter) { + emitter.emit('fallback', { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + numberFormat = + numberFormats[targetLocale] || {}; + format = numberFormat[key]; + if (isPlainObject(format)) + break; + handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any + from = to; + } + // checking format and target locale + if (!isPlainObject(format) || !isString(targetLocale)) { + return unresolving ? NOT_REOSLVED : key; + } + let id = `${targetLocale}__${key}`; + if (!isEmptyObject(overrides)) { + id = `${id}__${JSON.stringify(overrides)}`; + } + let formatter = __numberFormatters.get(id); + if (!formatter) { + formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides)); + __numberFormatters.set(id, formatter); + } + return !part ? formatter.format(value) : formatter.formatToParts(value); +} +/** @internal */ +const NUMBER_FORMAT_OPTIONS_KEYS = [ + 'localeMatcher', + 'style', + 'currency', + 'currencyDisplay', + 'currencySign', + 'useGrouping', + 'minimumIntegerDigits', + 'minimumFractionDigits', + 'maximumFractionDigits', + 'minimumSignificantDigits', + 'maximumSignificantDigits', + 'compactDisplay', + 'notation', + 'signDisplay', + 'unit', + 'unitDisplay', + 'roundingMode', + 'roundingPriority', + 'roundingIncrement', + 'trailingZeroDisplay' +]; +/** @internal */ +function parseNumberArgs(...args) { + const [arg1, arg2, arg3, arg4] = args; + const options = create(); + let overrides = create(); + if (!isNumber(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + const value = arg1; + if (isString(arg2)) { + options.key = arg2; + } + else if (isPlainObject(arg2)) { + Object.keys(arg2).forEach(key => { + if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) { + overrides[key] = arg2[key]; + } + else { + options[key] = arg2[key]; + } + }); + } + if (isString(arg3)) { + options.locale = arg3; + } + else if (isPlainObject(arg3)) { + overrides = arg3; + } + if (isPlainObject(arg4)) { + overrides = arg4; + } + return [options.key || '', value, options, overrides]; +} +/** @internal */ +function clearNumberFormat(ctx, locale, format) { + const context = ctx; + for (const key in format) { + const id = `${locale}__${key}`; + if (!context.__numberFormatters.has(id)) { + continue; + } + context.__numberFormatters.delete(id); + } +} + +const DEFAULT_MODIFIER = (str) => str; +const DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line +const DEFAULT_MESSAGE_DATA_TYPE = 'text'; +const DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values); +const DEFAULT_INTERPOLATE = toDisplayString; +function pluralDefault(choice, choicesLength) { + choice = Math.abs(choice); + // singular (0) | plural (1) + if (choicesLength === 2) { + // prettier-ignore + return choice === 1 + ? 0 + : 1; + } + // zero (0) | singular (1) | plural (2) + return Math.min(choice, 2); +} +function getPluralIndex(options) { + // prettier-ignore + const index = isNumber(options.pluralIndex) + ? options.pluralIndex + : -1; + return isNumber(options.named?.count) + ? options.named.count + : isNumber(options.named?.n) + ? options.named.n + : index; +} +function createMessageContext(options = {}) { + const locale = options.locale; + const pluralIndex = getPluralIndex(options); + const pluralRule = isString(locale) && isFunction(options.pluralRules?.[locale]) + ? options.pluralRules[locale] + : pluralDefault; + const orgPluralRule = pluralRule === pluralDefault ? undefined : pluralDefault; + const plural = (messages) => messages[pluralRule(pluralIndex, messages.length, orgPluralRule)]; + const _list = options.list || []; + const list = (index) => _list[index]; + const _named = options.named || create(); // eslint-disable-line @typescript-eslint/no-explicit-any + // normalize named + if (isNumber(options.pluralIndex)) { + _named.count ||= options.pluralIndex; + _named.n ||= options.pluralIndex; + } + const named = (key) => _named[key]; + function message(key, useLinked) { + // prettier-ignore + const msg = isFunction(options.messages) + ? options.messages(key, !!useLinked) + : isObject(options.messages) + ? options.messages[key] + : false; + return !msg + ? options.parent + ? options.parent.message(key) // resolve from parent messages + : DEFAULT_MESSAGE + : msg; + } + const _modifier = (name) => options.modifiers + ? options.modifiers[name] + : DEFAULT_MODIFIER; + const normalize = isFunction(options.processor?.normalize) + ? options.processor.normalize + : DEFAULT_NORMALIZE; + const interpolate = isFunction(options.processor?.interpolate) + ? options.processor.interpolate + : DEFAULT_INTERPOLATE; + const type = isString(options.processor?.type) + ? options.processor.type + : DEFAULT_MESSAGE_DATA_TYPE; + const linked = (key, ...args) => { + const [arg1, arg2] = args; + let type = 'text'; + let modifier = ''; + if (args.length === 1) { + if (isObject(arg1)) { + modifier = arg1.modifier || modifier; + type = arg1.type || type; + } + else if (isString(arg1)) { + modifier = arg1 || modifier; + } + } + else if (args.length === 2) { + if (isString(arg1)) { + modifier = arg1 || modifier; + } + if (isString(arg2)) { + type = arg2 || type; + } + } + const ret = message(key, true)(ctx); + // If the linked message is not resolved (empty string), fall back to the key itself + const resolved = ret === '' || ret === undefined ? key : ret; + const msg = + // The message in vnode resolved with linked are returned as an array by processor.nomalize + type === 'vnode' && isArray(resolved) && modifier + ? resolved[0] + : resolved; + return modifier ? _modifier(modifier)(msg, type) : msg; + }; + const ctx = { + ["list" /* HelperNameMap.LIST */]: list, + ["named" /* HelperNameMap.NAMED */]: named, + ["plural" /* HelperNameMap.PLURAL */]: plural, + ["linked" /* HelperNameMap.LINKED */]: linked, + ["message" /* HelperNameMap.MESSAGE */]: message, + ["type" /* HelperNameMap.TYPE */]: type, + ["interpolate" /* HelperNameMap.INTERPOLATE */]: interpolate, + ["normalize" /* HelperNameMap.NORMALIZE */]: normalize, + ["values" /* HelperNameMap.VALUES */]: assign(create(), _list, _named) + }; + return ctx; +} + +const NOOP_MESSAGE_FUNCTION = () => ''; +const isMessageFunction = (val) => isFunction(val); +// implementation of `translate` function +function translate(context, ...args) { + const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context; + const [key, options] = parseTranslateArgs(...args); + const missingWarn = isBoolean(options.missingWarn) + ? options.missingWarn + : context.missingWarn; + const fallbackWarn = isBoolean(options.fallbackWarn) + ? options.fallbackWarn + : context.fallbackWarn; + const escapeParameter = isBoolean(options.escapeParameter) + ? options.escapeParameter + : context.escapeParameter; + const resolvedMessage = !!options.resolvedMessage; + // prettier-ignore + const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option + ? !isBoolean(options.default) + ? options.default + : (!messageCompiler ? () => key : key) + : fallbackFormat // default by `fallbackFormat` option + ? (!messageCompiler ? () => key : key) + : null; + const enableDefaultMsg = fallbackFormat || + (defaultMsgOrKey != null && + (isString(defaultMsgOrKey) || isFunction(defaultMsgOrKey))); + const locale = getLocale(context, options); + // escape params + escapeParameter && escapeParams(options); + // resolve message format + // eslint-disable-next-line prefer-const + let [formatScope, targetLocale, message] = !resolvedMessage + ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) + : [ + key, + locale, + messages[locale] || create() + ]; + // NOTE: + // Fix to work around `ssrTransfrom` bug in Vite. + // https://github.com/vitejs/vite/issues/4306 + // To get around this, use temporary variables. + // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243 + let format = formatScope; + // if you use default message, set it as message format! + let cacheBaseKey = key; + if (!resolvedMessage && + !(isString(format) || + isMessageAST(format) || + isMessageFunction(format))) { + if (enableDefaultMsg) { + format = defaultMsgOrKey; + cacheBaseKey = format; + } + } + // checking message format and target locale + if (!resolvedMessage && + (!(isString(format) || + isMessageAST(format) || + isMessageFunction(format)) || + !isString(targetLocale))) { + return unresolving ? NOT_REOSLVED : key; + } + // TODO: refactor + if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) { + warn(`The message format compilation is not supported in this build. ` + + `Because message compiler isn't included. ` + + `You need to pre-compilation all message format. ` + + `So translate function return '${key}'.`); + return key; + } + // setup compile error detecting + let occurred = false; + const onError = () => { + occurred = true; + }; + // compile message format + const msg = !isMessageFunction(format) + ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) + : format; + // if occurred compile error, return the message format + if (occurred) { + return format; + } + // evaluate message with context + const ctxOptions = getMessageContextOptions(context, targetLocale, message, options); + const msgContext = createMessageContext(ctxOptions); + const messaged = evaluateMessage(context, msg, msgContext); + // if use post translation option, proceed it with handler + let ret = postTranslation + ? postTranslation(messaged, key) + : messaged; + // apply HTML sanitization for security + if (escapeParameter && isString(ret)) { + ret = sanitizeTranslatedHtml(ret); + } + // NOTE: experimental !! + if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) { + // prettier-ignore + const payloads = { + timestamp: Date.now(), + key: isString(key) + ? key + : isMessageFunction(format) + ? format.key + : '', + locale: targetLocale || (isMessageFunction(format) + ? format.locale + : ''), + format: isString(format) + ? format + : isMessageFunction(format) + ? format.source + : '', + message: ret + }; + payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {}); + translateDevTools(payloads); + } + return ret; +} +function escapeParams(options) { + if (isArray(options.list)) { + options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item); + } + else if (isObject(options.named)) { + Object.keys(options.named).forEach(key => { + if (isString(options.named[key])) { + options.named[key] = escapeHtml(options.named[key]); + } + }); + } +} +function resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) { + const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context; + const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any + let message = create(); + let targetLocale; + let format = null; + let from = locale; + let to = null; + const type = 'translate'; + for (let i = 0; i < locales.length; i++) { + targetLocale = to = locales[i]; + if ((process.env.NODE_ENV !== 'production') && + locale !== targetLocale && + !isAlmostSameLocale(locale, targetLocale) && + isTranslateFallbackWarn(fallbackWarn, key)) { + onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, { + key, + target: targetLocale + })); + } + const emitter = (process.env.NODE_ENV !== 'production') + ? context.__v_emitter + : undefined; + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) { + if (emitter) { + emitter.emit('fallback', { + type, + key, + from, + to, + groupId: `${type}:${key}` + }); + } + } + message = + messages[targetLocale] || create(); + // for vue-devtools timeline event + let start = null; + let startTag; + let endTag; + if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) { + start = window.performance.now(); + startTag = 'intlify-message-resolve-start'; + endTag = 'intlify-message-resolve-end'; + mark && mark(startTag); + } + if ((format = resolveValue(message, key)) === null) { + // if null, resolve with object key path + format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any + } + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) { + const end = window.performance.now(); + if (emitter && start && format) { + emitter.emit('message-resolve', { + type: 'message-resolve', + key, + message: format, + time: end - start, + groupId: `${type}:${key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure('intlify message resolve', startTag, endTag); + } + } + if (isString(format) || isMessageAST(format) || isMessageFunction(format)) { + break; + } + if (!isImplicitFallback(targetLocale, locales)) { + const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any + key, targetLocale, missingWarn, type); + if (missingRet !== key) { + format = missingRet; + } + } + from = to; + } + return [format, targetLocale, message]; +} +function compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) { + const { messageCompiler, warnHtmlMessage } = context; + if (isMessageFunction(format)) { + const msg = format; + msg.locale = msg.locale || targetLocale; + msg.key = msg.key || key; + return msg; + } + if (messageCompiler == null) { + const msg = (() => format); + msg.locale = targetLocale; + msg.key = key; + return msg; + } + // for vue-devtools timeline event + const emitter = (process.env.NODE_ENV !== 'production') + ? context.__v_emitter + : undefined; + let start = null; + let startTag; + let endTag; + if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) { + start = window.performance.now(); + startTag = 'intlify-message-compilation-start'; + endTag = 'intlify-message-compilation-end'; + mark && mark(startTag); + } + const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError)); + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) { + const end = window.performance.now(); + if (emitter && start) { + emitter.emit('message-compilation', { + type: 'message-compilation', + message: format, + time: end - start, + groupId: `${'translate'}:${key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure('intlify message compilation', startTag, endTag); + } + } + msg.locale = targetLocale; + msg.key = key; + msg.source = format; + return msg; +} +function evaluateMessage(context, msg, msgCtx) { + // for vue-devtools timeline event + const emitter = (process.env.NODE_ENV !== 'production') + ? context.__v_emitter + : undefined; + let start = null; + let startTag; + let endTag; + if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) { + start = window.performance.now(); + startTag = 'intlify-message-evaluation-start'; + endTag = 'intlify-message-evaluation-end'; + mark && mark(startTag); + } + const messaged = msg(msgCtx); + // for vue-devtools timeline event + if ((process.env.NODE_ENV !== 'production') && inBrowser && emitter) { + const end = window.performance.now(); + if (emitter && start) { + emitter.emit('message-evaluation', { + type: 'message-evaluation', + value: messaged, + time: end - start, + groupId: `${'translate'}:${msg.key}` + }); + } + if (startTag && endTag && mark && measure) { + mark(endTag); + measure('intlify message evaluation', startTag, endTag); + } + } + return messaged; +} +/** @internal */ +function parseTranslateArgs(...args) { + const [arg1, arg2, arg3] = args; + const options = create(); + if (!isString(arg1) && + !isNumber(arg1) && + !isMessageFunction(arg1) && + !isMessageAST(arg1)) { + throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT); + } + // prettier-ignore + const key = isNumber(arg1) + ? String(arg1) + : isMessageFunction(arg1) + ? arg1 + : arg1; + if (isNumber(arg2)) { + options.plural = arg2; + } + else if (isString(arg2)) { + options.default = arg2; + } + else if (isPlainObject(arg2) && !isEmptyObject(arg2)) { + options.named = arg2; + } + else if (isArray(arg2)) { + options.list = arg2; + } + if (isNumber(arg3)) { + options.plural = arg3; + } + else if (isString(arg3)) { + options.default = arg3; + } + else if (isPlainObject(arg3)) { + assign(options, arg3); + } + return [key, options]; +} +function getCompileContext(context, locale, key, source, warnHtmlMessage, onError) { + return { + locale, + key, + warnHtmlMessage, + onError: (err) => { + onError && onError(err); + if ((process.env.NODE_ENV !== 'production')) { + const _source = getSourceForCodeFrame(source); + const codeFrame = err.location && + _source && + generateCodeFrame(_source, err.location.start.offset, err.location.end.offset); + const emitter = context.__v_emitter; + if (emitter && _source) { + emitter.emit('compile-error', { + message: _source, + error: err.message, + start: err.location && err.location.start.offset, + end: err.location && err.location.end.offset, + groupId: `${'translate'}:${key}` + }); + } + const message = `Message compilation error: ${err.message}`; + throw new SyntaxError(codeFrame ? `${message}\n${codeFrame}` : message); + } + throw err; + }, + onCacheKey: (source) => generateFormatCacheKey(locale, key, source) + }; +} +function getSourceForCodeFrame(source) { + if (isString(source)) { + return source; + } + else { + if (source.loc && source.loc.source) { + return source.loc.source; + } + } +} +function getMessageContextOptions(context, locale, message, options) { + const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context; + const resolveMessage = (key, useLinked) => { + let val = resolveValue(message, key); + // fallback + if (val == null && (fallbackContext || useLinked)) { + const [format, , message] = resolveMessageFormat(fallbackContext || context, // NOTE: if has fallbackContext, fallback to root, else if use linked, fallback to local context + key, locale, fallbackLocale, fallbackWarn, missingWarn); + val = format ?? resolveValue(message, key); + } + if (isString(val) || isMessageAST(val)) { + let occurred = false; + const onError = () => { + occurred = true; + }; + const msg = compileMessageFormat(context, key, locale, val, key, onError); + return !occurred + ? msg + : NOOP_MESSAGE_FUNCTION; + } + else if (isMessageFunction(val)) { + return val; + } + else { + // TODO: should be implemented warning message + return NOOP_MESSAGE_FUNCTION; + } + }; + const ctxOptions = { + locale, + modifiers, + pluralRules, + messages: resolveMessage + }; + if (context.processor) { + ctxOptions.processor = context.processor; + } + if (options.list) { + ctxOptions.list = options.list; + } + if (options.named) { + ctxOptions.named = options.named; + } + if (isNumber(options.plural)) { + ctxOptions.pluralIndex = options.plural; + } + return ctxOptions; +} + +{ + initFeatureFlags(); +} + +export { AST_NODE_PROPS_KEYS, CORE_ERROR_CODES_EXTEND_POINT, CORE_WARN_CODES_EXTEND_POINT, CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isAlmostSameLocale, isImplicitFallback, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale }; diff --git a/frontend_admin/.output/server/node_modules/@intlify/core-base/package.json b/frontend_admin/.output/server/node_modules/@intlify/core-base/package.json new file mode 100644 index 0000000..f2fd0d7 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/core-base/package.json @@ -0,0 +1,78 @@ +{ + "name": "@intlify/core-base", + "version": "11.4.2", + "description": "@intlify/core-base", + "keywords": [ + "core", + "fundamental", + "i18n", + "internationalization", + "intlify" + ], + "license": "MIT", + "author": { + "name": "kazuya kawaguchi", + "email": "kawakazu80@gmail.com" + }, + "homepage": "https://github.com/intlify/vue-i18n/tree/master/packages/core-base#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/intlify/vue-i18n.git", + "directory": "packages/core" + }, + "bugs": { + "url": "https://github.com/intlify/vue-i18n/issues" + }, + "files": [ + "index.js", + "dist" + ], + "main": "index.js", + "module": "dist/core-base.mjs", + "unpkg": "dist/core-base.global.js", + "jsdelivr": "dist/core-base.global.js", + "types": "dist/core-base.d.ts", + "dependencies": { + "@intlify/devtools-types": "11.4.2", + "@intlify/message-compiler": "11.4.2", + "@intlify/shared": "11.4.2" + }, + "engines": { + "node": ">= 16" + }, + "buildOptions": { + "name": "IntlifyCoreBase", + "formats": [ + "mjs", + "browser", + "cjs", + "global" + ] + }, + "exports": { + ".": { + "types": "./dist/core-base.d.ts", + "import": "./dist/core-base.mjs", + "browser": "./dist/core-base.esm-browser.js", + "node": { + "import": { + "production": "./dist/core-base.prod.cjs", + "development": "./dist/core-base.mjs", + "default": "./dist/core-base.prod.cjs" + }, + "require": { + "production": "./dist/core-base.prod.cjs", + "development": "./dist/core-base.cjs", + "default": "./dist/core-base.prod.cjs" + } + } + }, + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "funding": "https://github.com/sponsors/kazupon", + "publishConfig": { + "access": "public" + }, + "sideEffects": false +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@intlify/core/dist/core.mjs b/frontend_admin/.output/server/node_modules/@intlify/core/dist/core.mjs new file mode 100644 index 0000000..64c71b7 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/core/dist/core.mjs @@ -0,0 +1,31 @@ +/*! + * core v11.4.2 + * (c) 2026 kazuya kawaguchi + * Released under the MIT License. + */ +import { registerMessageCompiler, compile, registerMessageResolver, resolveValue, registerLocaleFallbacker, fallbackWithLocaleChain } from '@intlify/core-base'; +export * from '@intlify/core-base'; +import { getGlobalThis } from '@intlify/shared'; + +/** + * This is only called in esm-bundler builds. + * istanbul-ignore-next + */ +function initFeatureFlags() { + if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') { + getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false; + } + if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') { + getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false; + } +} + +{ + initFeatureFlags(); +} +// register message compiler at @intlify/core +registerMessageCompiler(compile); +// register message resolver at @intlify/core +registerMessageResolver(resolveValue); +// register fallback locale at @intlify/core +registerLocaleFallbacker(fallbackWithLocaleChain); diff --git a/frontend_admin/.output/server/node_modules/@intlify/core/package.json b/frontend_admin/.output/server/node_modules/@intlify/core/package.json new file mode 100644 index 0000000..95e1586 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/core/package.json @@ -0,0 +1,82 @@ +{ + "name": "@intlify/core", + "version": "11.4.2", + "description": "@intlify/core", + "keywords": [ + "core", + "fundamental", + "i18n", + "internationalization", + "intlify" + ], + "license": "MIT", + "author": { + "name": "kazuya kawaguchi", + "email": "kawakazu80@gmail.com" + }, + "homepage": "https://github.com/intlify/vue-i18n/tree/master/packages/core#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/intlify/vue-i18n.git", + "directory": "packages/core" + }, + "bugs": { + "url": "https://github.com/intlify/vue-i18n/issues" + }, + "files": [ + "index.js", + "dist" + ], + "main": "index.js", + "module": "dist/core.mjs", + "unpkg": "dist/core.global.js", + "jsdelivr": "dist/core.global.js", + "types": "dist/core.d.ts", + "dependencies": { + "@intlify/core-base": "11.4.2", + "@intlify/shared": "11.4.2" + }, + "engines": { + "node": ">= 16" + }, + "buildOptions": { + "name": "IntlifyCore", + "formats": [ + "mjs", + "mjs-node", + "mjs-runtime", + "mjs-node-runtime", + "browser", + "browser-runtime", + "cjs", + "global", + "global-runtime" + ] + }, + "exports": { + ".": { + "types": "./dist/core.d.ts", + "import": "./dist/core.mjs", + "browser": "./dist/core.esm-browser.js", + "node": { + "import": { + "production": "./dist/core.prod.node.mjs", + "development": "./dist/core.node.mjs", + "default": "./dist/core.prod.node.mjs" + }, + "require": { + "production": "./dist/core.prod.cjs", + "development": "./dist/core.cjs", + "default": "./dist/core.prod.cjs" + } + } + }, + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "funding": "https://github.com/sponsors/kazupon", + "publishConfig": { + "access": "public" + }, + "sideEffects": true +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@intlify/h3/dist/index.mjs b/frontend_admin/.output/server/node_modules/@intlify/h3/dist/index.mjs new file mode 100644 index 0000000..688eea5 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/h3/dist/index.mjs @@ -0,0 +1,65 @@ +import { createCoreContext, parseTranslateArgs, translate, NOT_REOSLVED } from '@intlify/core'; +import { getHeaderLocale } from '@intlify/utils/h3'; +export * from '@intlify/utils/h3'; + +/** + * @author kazuya kawaguchi (a.k.a. kazupon) + * @license MIT + */ +function defineI18nMiddleware(options) { + const i18n = createCoreContext(options); + const orgLocale = i18n.locale; + let staticLocaleDetector = null; + if (typeof orgLocale === "string") { + console.warn( + `defineI18nMiddleware 'locale' option is static ${orgLocale} locale! you should specify dynamic locale detector function.` + ); + staticLocaleDetector = () => orgLocale; + } + const getLocaleDetector = (event, i18n2) => { + return typeof orgLocale === "function" ? orgLocale.bind(null, event, i18n2) : staticLocaleDetector == null ? detectLocaleFromAcceptLanguageHeader.bind(null, event) : staticLocaleDetector.bind(null, event, i18n2); + }; + return { + onRequest(event) { + event.context._i18nLocale = getLocaleDetector(event, i18n); + i18n.locale = event.context._i18nLocale; + event.context.i18n = i18n; + }, + onAfterResponse(event) { + i18n.locale = orgLocale; + delete event.context.i18n; + } + }; +} +const detectLocaleFromAcceptLanguageHeader = (event) => getHeaderLocale(event).toString(); +async function useTranslation(event) { + if (event.context.i18n == null) { + throw new Error( + "middleware not initialized, please setup `onRequest` and `onAfterResponse` options of `createApp` with the middleware obtained with `defineI18nMiddleware`" + ); + } + const localeDetector = event.context._i18nLocale; + let locale; + if (localeDetector.constructor.name === "AsyncFunction") { + locale = await localeDetector(event); + event.context.i18n.locale = locale; + } + function translate$1(key, ...args) { + const [_, options] = parseTranslateArgs(key, ...args); + const [arg2] = args; + const result = Reflect.apply(translate, null, [ + event.context.i18n, + key, + arg2, + { + // bind to request locale + locale, + ...options + } + ]); + return NOT_REOSLVED === result ? key : result; + } + return translate$1; +} + +export { defineI18nMiddleware, detectLocaleFromAcceptLanguageHeader, useTranslation }; diff --git a/frontend_admin/.output/server/node_modules/@intlify/h3/package.json b/frontend_admin/.output/server/node_modules/@intlify/h3/package.json new file mode 100644 index 0000000..95f7227 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/h3/package.json @@ -0,0 +1,122 @@ +{ + "name": "@intlify/h3", + "description": "Internationalization middleware & utilities for h3", + "version": "0.7.4", + "author": { + "name": "kazuya kawaguchi", + "email": "kawakazu80@gmail.com" + }, + "license": "MIT", + "funding": "https://github.com/sponsors/kazupon", + "bugs": { + "url": "https://github.com/intlify/h3/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/intlify/h3.git" + }, + "keywords": [ + "i18n", + "h3", + "internationalization", + "intlify", + "utilities", + "middleware" + ], + "homepage": "https://github.com/intlify/h3#readme", + "publishConfig": { + "access": "public" + }, + "engines": { + "node": ">= 20" + }, + "type": "module", + "sideEffects": false, + "files": [ + "dist" + ], + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "types": "dist/index.d.ts", + "dependencies": { + "@intlify/core": "^11.1.12", + "@intlify/utils": "^0.13.0" + }, + "devDependencies": { + "@eslint/compat": "^1.4.1", + "@eslint/markdown": "^7.5.0", + "@kazupon/eslint-config": "^0.38.0", + "@kazupon/prettier-config": "^0.1.1", + "@types/node": "^24.9.2", + "@types/supertest": "^6.0.3", + "@typescript/native-preview": "7.0.0-dev.20251025.1", + "@vitest/coverage-v8": "^4.0.6", + "@vitest/eslint-plugin": "^1.4.0", + "bumpp": "^10.3.1", + "eslint": "^9.39.0", + "eslint-config-prettier": "^10.1.8", + "eslint-import-resolver-typescript": "^4.4.4", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsdoc": "^61.1.11", + "eslint-plugin-jsonc": "^2.21.0", + "eslint-plugin-markdown-preferences": "^0.36.2", + "eslint-plugin-module-interop": "^0.3.1", + "eslint-plugin-promise": "^7.2.1", + "eslint-plugin-regexp": "^2.10.0", + "eslint-plugin-unicorn": "^62.0.0", + "eslint-plugin-unused-imports": "^4.3.0", + "eslint-plugin-yml": "^1.19.0", + "gh-changelogen": "^0.2.8", + "h3": "^1.15.4", + "knip": "^5.66.4", + "lint-staged": "^16.2.6", + "prettier": "^3.6.2", + "supertest": "^7.1.4", + "typescript": "^5.9.3", + "typescript-eslint": "^8.46.2", + "unbuild": "^3.6.1", + "vitest": "^4.0.6" + }, + "prettier": "@kazupon/prettier-config", + "lint-staged": { + "*.ts?(x)": [ + "prettier --parser=typescript --write", + "eslint --fix" + ], + "*.{js,mjs,cjs}": [ + "prettier --write", + "eslint --fix" + ], + "*.{json,jsonc,json5,md,yml,yaml}": [ + "prettier --write" + ] + }, + "scripts": { + "build": "unbuild", + "changelog": "gh-changelogen --repo=intlify/h3", + "dev:eslint": "pnpx @eslint/config-inspector --config eslint.config.ts", + "fix": "pnpm run --color \"/^fix:/\"", + "fix:eslint": "eslint . --fix", + "fix:knip": "knip --fix --no-exit-code", + "fix:prettier": "prettier . --write --experimental-cli", + "lint": "pnpm run --color \"/^lint:/\"", + "lint:eslint": "eslint . --cache", + "lint:knip": "knip", + "lint:prettier": "prettier . --check --experimental-cli", + "lint:typecheck": "tsgo --noEmit --diagnostics", + "play:basic": "pnpx tsx ./playground/basic/index.ts", + "release": "bumpp --commit \"release: v%s\" --push --tag", + "test": "pnpm run test:unit", + "test:coverage": "pnpm test --reporter verbose --coverage", + "test:unit": "vitest run --typecheck" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@intlify/message-compiler/dist/message-compiler.mjs b/frontend_admin/.output/server/node_modules/@intlify/message-compiler/dist/message-compiler.mjs new file mode 100644 index 0000000..ece52da --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/message-compiler/dist/message-compiler.mjs @@ -0,0 +1,1552 @@ +/*! + * message-compiler v11.4.2 + * (c) 2026 kazuya kawaguchi + * Released under the MIT License. + */ +import { format, assign, join, isString } from '@intlify/shared'; + +const LOCATION_STUB = { + start: { line: 1, column: 1, offset: 0 }, + end: { line: 1, column: 1, offset: 0 } +}; +function createPosition(line, column, offset) { + return { line, column, offset }; +} +function createLocation(start, end, source) { + const loc = { start, end }; + if (source != null) { + loc.source = source; + } + return loc; +} + +const CompileErrorCodes = { + // tokenizer error codes + EXPECTED_TOKEN: 1, + INVALID_TOKEN_IN_PLACEHOLDER: 2, + UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3, + UNKNOWN_ESCAPE_SEQUENCE: 4, + INVALID_UNICODE_ESCAPE_SEQUENCE: 5, + UNBALANCED_CLOSING_BRACE: 6, + UNTERMINATED_CLOSING_BRACE: 7, + EMPTY_PLACEHOLDER: 8, + NOT_ALLOW_NEST_PLACEHOLDER: 9, + INVALID_LINKED_FORMAT: 10, + // parser error codes + MUST_HAVE_MESSAGES_IN_PLURAL: 11, + UNEXPECTED_EMPTY_LINKED_MODIFIER: 12, + UNEXPECTED_EMPTY_LINKED_KEY: 13, + UNEXPECTED_LEXICAL_ANALYSIS: 14, + // generator error codes + UNHANDLED_CODEGEN_NODE_TYPE: 15, + // minifier error codes + UNHANDLED_MINIFIER_NODE_TYPE: 16 +}; +// Special value for higher-order compilers to pick up the last code +// to avoid collision of error codes. +// This should always be kept as the last item. +const COMPILE_ERROR_CODES_EXTEND_POINT = 17; +/** @internal */ +const errorMessages = { + // tokenizer error messages + [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`, + [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`, + [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`, + [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\{0}`, + [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`, + [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`, + [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`, + [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`, + [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`, + [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`, + // parser error messages + [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`, + [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`, + [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`, + // generator error messages + [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`, + // minimizer error messages + [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'` +}; +function createCompileError(code, loc, options = {}) { + const { domain, messages, args } = options; + const msg = (process.env.NODE_ENV !== 'production') + ? format((messages || errorMessages)[code] || '', ...(args || [])) + : code; + const error = new SyntaxError(String(msg)); + error.code = code; + if (loc) { + error.location = loc; + } + error.domain = domain; + return error; +} +/** @internal */ +function defaultOnError(error) { + throw error; +} + +// eslint-disable-next-line no-useless-escape +const RE_HTML_TAG = /<\/?[\w\s="/.':;#-\/]+>/; +const detectHtmlTag = (source) => RE_HTML_TAG.test(source); + +const CHAR_SP = ' '; +const CHAR_CR = '\r'; +const CHAR_LF = '\n'; +const CHAR_LS = String.fromCharCode(0x2028); +const CHAR_PS = String.fromCharCode(0x2029); +function createScanner(str) { + const _buf = str; + let _index = 0; + let _line = 1; + let _column = 1; + let _peekOffset = 0; + const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF; + const isLF = (index) => _buf[index] === CHAR_LF; + const isPS = (index) => _buf[index] === CHAR_PS; + const isLS = (index) => _buf[index] === CHAR_LS; + const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index); + const index = () => _index; + const line = () => _line; + const column = () => _column; + const peekOffset = () => _peekOffset; + const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset]; + const currentChar = () => charAt(_index); + const currentPeek = () => charAt(_index + _peekOffset); + function next() { + _peekOffset = 0; + if (isLineEnd(_index)) { + _line++; + _column = 0; + } + if (isCRLF(_index)) { + _index++; + } + _index++; + _column++; + return _buf[_index]; + } + function peek() { + if (isCRLF(_index + _peekOffset)) { + _peekOffset++; + } + _peekOffset++; + return _buf[_index + _peekOffset]; + } + function reset() { + _index = 0; + _line = 1; + _column = 1; + _peekOffset = 0; + } + function resetPeek(offset = 0) { + _peekOffset = offset; + } + function skipToPeek() { + const target = _index + _peekOffset; + while (target !== _index) { + next(); + } + _peekOffset = 0; + } + return { + index, + line, + column, + peekOffset, + charAt, + currentChar, + currentPeek, + next, + peek, + reset, + resetPeek, + skipToPeek + }; +} + +const EOF = undefined; +const DOT = '.'; +const LITERAL_DELIMITER = "'"; +const ERROR_DOMAIN$3 = 'tokenizer'; +function createTokenizer(source, options = {}) { + const location = options.location !== false; + const _scnr = createScanner(source); + const currentOffset = () => _scnr.index(); + const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index()); + const _initLoc = currentPosition(); + const _initOffset = currentOffset(); + const _context = { + currentType: 13 /* TokenTypes.EOF */, + offset: _initOffset, + startLoc: _initLoc, + endLoc: _initLoc, + lastType: 13 /* TokenTypes.EOF */, + lastOffset: _initOffset, + lastStartLoc: _initLoc, + lastEndLoc: _initLoc, + braceNest: 0, + inLinked: false, + text: '' + }; + const context = () => _context; + const { onError } = options; + function emitError(code, pos, offset, ...args) { + const ctx = context(); + pos.column += offset; + pos.offset += offset; + if (onError) { + const loc = location ? createLocation(ctx.startLoc, pos) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$3, + args + }); + onError(err); + } + } + function getToken(context, type, value) { + context.endLoc = currentPosition(); + context.currentType = type; + const token = { type }; + if (location) { + token.loc = createLocation(context.startLoc, context.endLoc); + } + if (value != null) { + token.value = value; + } + return token; + } + const getEndToken = (context) => getToken(context, 13 /* TokenTypes.EOF */); + function eat(scnr, ch) { + if (scnr.currentChar() === ch) { + scnr.next(); + return ch; + } + else { + emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch); + return ''; + } + } + function peekSpaces(scnr) { + let buf = ''; + while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) { + buf += scnr.currentPeek(); + scnr.peek(); + } + return buf; + } + function skipSpaces(scnr) { + const buf = peekSpaces(scnr); + scnr.skipToPeek(); + return buf; + } + function isIdentifierStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return ((cc >= 97 && cc <= 122) || // a-z + (cc >= 65 && cc <= 90) || // A-Z + cc === 95 // _ + ); + } + function isNumberStart(ch) { + if (ch === EOF) { + return false; + } + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; // 0-9 + } + function isNamedIdentifierStart(scnr, context) { + const { currentType } = context; + if (currentType !== 2 /* TokenTypes.BraceLeft */) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isListIdentifierStart(scnr, context) { + const { currentType } = context; + if (currentType !== 2 /* TokenTypes.BraceLeft */) { + return false; + } + peekSpaces(scnr); + const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek(); + const ret = isNumberStart(ch); + scnr.resetPeek(); + return ret; + } + function isLiteralStart(scnr, context) { + const { currentType } = context; + if (currentType !== 2 /* TokenTypes.BraceLeft */) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === LITERAL_DELIMITER; + scnr.resetPeek(); + return ret; + } + function isLinkedDotStart(scnr, context) { + const { currentType } = context; + if (currentType !== 7 /* TokenTypes.LinkedAlias */) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === "." /* TokenChars.LinkedDot */; + scnr.resetPeek(); + return ret; + } + function isLinkedModifierStart(scnr, context) { + const { currentType } = context; + if (currentType !== 8 /* TokenTypes.LinkedDot */) { + return false; + } + peekSpaces(scnr); + const ret = isIdentifierStart(scnr.currentPeek()); + scnr.resetPeek(); + return ret; + } + function isLinkedDelimiterStart(scnr, context) { + const { currentType } = context; + if (!(currentType === 7 /* TokenTypes.LinkedAlias */ || + currentType === 11 /* TokenTypes.LinkedModifier */)) { + return false; + } + peekSpaces(scnr); + const ret = scnr.currentPeek() === ":" /* TokenChars.LinkedDelimiter */; + scnr.resetPeek(); + return ret; + } + function isLinkedReferStart(scnr, context) { + const { currentType } = context; + if (currentType !== 9 /* TokenTypes.LinkedDelimiter */) { + return false; + } + const fn = () => { + const ch = scnr.currentPeek(); + if (ch === "{" /* TokenChars.BraceLeft */) { + return isIdentifierStart(scnr.peek()); + } + else if (ch === "@" /* TokenChars.LinkedAlias */ || + ch === "|" /* TokenChars.Pipe */ || + ch === ":" /* TokenChars.LinkedDelimiter */ || + ch === "." /* TokenChars.LinkedDot */ || + ch === CHAR_SP || + !ch) { + return false; + } + else if (ch === CHAR_LF) { + scnr.peek(); + return fn(); + } + else { + // other characters + return isTextStart(scnr, false); + } + }; + const ret = fn(); + scnr.resetPeek(); + return ret; + } + function isPluralStart(scnr) { + peekSpaces(scnr); + const ret = scnr.currentPeek() === "|" /* TokenChars.Pipe */; + scnr.resetPeek(); + return ret; + } + function isTextStart(scnr, reset = true) { + const fn = (hasSpace = false, prev = '') => { + const ch = scnr.currentPeek(); + if (ch === "{" /* TokenChars.BraceLeft */) { + return hasSpace; + } + else if (ch === "@" /* TokenChars.LinkedAlias */ || !ch) { + return hasSpace; + } + else if (ch === "|" /* TokenChars.Pipe */) { + return !(prev === CHAR_SP || prev === CHAR_LF); + } + else if (ch === CHAR_SP) { + scnr.peek(); + return fn(true, CHAR_SP); + } + else if (ch === CHAR_LF) { + scnr.peek(); + return fn(true, CHAR_LF); + } + else { + return true; + } + }; + const ret = fn(); + reset && scnr.resetPeek(); + return ret; + } + function takeChar(scnr, fn) { + const ch = scnr.currentChar(); + if (ch === EOF) { + return EOF; + } + if (fn(ch)) { + scnr.next(); + return ch; + } + return null; + } + function isIdentifier(ch) { + const cc = ch.charCodeAt(0); + return ((cc >= 97 && cc <= 122) || // a-z + (cc >= 65 && cc <= 90) || // A-Z + (cc >= 48 && cc <= 57) || // 0-9 + cc === 95 || // _ + cc === 36 // $ + ); + } + function takeIdentifierChar(scnr) { + return takeChar(scnr, isIdentifier); + } + function isNamedIdentifier(ch) { + const cc = ch.charCodeAt(0); + return ((cc >= 97 && cc <= 122) || // a-z + (cc >= 65 && cc <= 90) || // A-Z + (cc >= 48 && cc <= 57) || // 0-9 + cc === 95 || // _ + cc === 36 || // $ + cc === 45 // - + ); + } + function takeNamedIdentifierChar(scnr) { + return takeChar(scnr, isNamedIdentifier); + } + function isDigit(ch) { + const cc = ch.charCodeAt(0); + return cc >= 48 && cc <= 57; // 0-9 + } + function takeDigit(scnr) { + return takeChar(scnr, isDigit); + } + function isHexDigit(ch) { + const cc = ch.charCodeAt(0); + return ((cc >= 48 && cc <= 57) || // 0-9 + (cc >= 65 && cc <= 70) || // A-F + (cc >= 97 && cc <= 102)); // a-f + } + function takeHexDigit(scnr) { + return takeChar(scnr, isHexDigit); + } + function getDigits(scnr) { + let ch = ''; + let num = ''; + while ((ch = takeDigit(scnr))) { + num += ch; + } + return num; + } + function readText(scnr) { + let buf = ''; + while (true) { + const ch = scnr.currentChar(); + if (ch === '\\') { + const nextCh = scnr.peek(); + if (nextCh === "{" /* TokenChars.BraceLeft */ || + nextCh === "}" /* TokenChars.BraceRight */ || + nextCh === "@" /* TokenChars.LinkedAlias */ || + nextCh === "|" /* TokenChars.Pipe */ || + nextCh === '\\') { + buf += ch + nextCh; + scnr.next(); + scnr.next(); + } + else { + scnr.resetPeek(); + buf += ch; + scnr.next(); + } + } + else if (ch === "{" /* TokenChars.BraceLeft */ || + ch === "}" /* TokenChars.BraceRight */ || + ch === "@" /* TokenChars.LinkedAlias */ || + ch === "|" /* TokenChars.Pipe */ || + !ch) { + break; + } + else if (ch === CHAR_SP || ch === CHAR_LF) { + if (isTextStart(scnr)) { + buf += ch; + scnr.next(); + } + else if (isPluralStart(scnr)) { + break; + } + else { + buf += ch; + scnr.next(); + } + } + else { + buf += ch; + scnr.next(); + } + } + return buf; + } + function readNamedIdentifier(scnr) { + skipSpaces(scnr); + let ch = ''; + let name = ''; + while ((ch = takeNamedIdentifierChar(scnr))) { + name += ch; + } + // Check if takeNamedIdentifierChar stoped because of invalid characters + const currentChar = scnr.currentChar(); + if (currentChar && + currentChar !== '}' && + currentChar !== EOF && + currentChar !== CHAR_SP && + currentChar !== CHAR_LF && + currentChar !== '\u3000') { + const invalidPart = readInvalidIdentifier(scnr); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, name + invalidPart); + return name + invalidPart; + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return name; + } + function readListIdentifier(scnr) { + skipSpaces(scnr); + let value = ''; + if (scnr.currentChar() === '-') { + scnr.next(); + value += `-${getDigits(scnr)}`; + } + else { + value += getDigits(scnr); + } + if (scnr.currentChar() === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + return value; + } + function isLiteral(ch) { + return ch !== LITERAL_DELIMITER && ch !== CHAR_LF; + } + function readLiteral(scnr) { + skipSpaces(scnr); + // eslint-disable-next-line no-useless-escape + eat(scnr, `\'`); + let ch = ''; + let literal = ''; + while ((ch = takeChar(scnr, isLiteral))) { + if (ch === '\\') { + literal += readEscapeSequence(scnr); + } + else { + literal += ch; + } + } + const current = scnr.currentChar(); + if (current === CHAR_LF || current === EOF) { + emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0); + // TODO: Is it correct really? + if (current === CHAR_LF) { + scnr.next(); + // eslint-disable-next-line no-useless-escape + eat(scnr, `\'`); + } + return literal; + } + // eslint-disable-next-line no-useless-escape + eat(scnr, `\'`); + return literal; + } + function readEscapeSequence(scnr) { + const ch = scnr.currentChar(); + switch (ch) { + case '\\': + case `\'`: // eslint-disable-line no-useless-escape + scnr.next(); + return `\\${ch}`; + case 'u': + return readUnicodeEscapeSequence(scnr, ch, 4); + case 'U': + return readUnicodeEscapeSequence(scnr, ch, 6); + default: + emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch); + return ''; + } + } + function readUnicodeEscapeSequence(scnr, unicode, digits) { + eat(scnr, unicode); + let sequence = ''; + for (let i = 0; i < digits; i++) { + const ch = takeHexDigit(scnr); + if (!ch) { + emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\${unicode}${sequence}${scnr.currentChar()}`); + break; + } + sequence += ch; + } + return `\\${unicode}${sequence}`; + } + function isInvalidIdentifier(ch) { + return (ch !== "{" /* TokenChars.BraceLeft */ && + ch !== "}" /* TokenChars.BraceRight */ && + ch !== CHAR_SP && + ch !== CHAR_LF); + } + function readInvalidIdentifier(scnr) { + skipSpaces(scnr); + let ch = ''; + let identifiers = ''; + while ((ch = takeChar(scnr, isInvalidIdentifier))) { + identifiers += ch; + } + return identifiers; + } + function readLinkedModifier(scnr) { + let ch = ''; + let name = ''; + while ((ch = takeIdentifierChar(scnr))) { + name += ch; + } + return name; + } + function readLinkedRefer(scnr) { + const fn = (buf) => { + const ch = scnr.currentChar(); + if (ch === "{" /* TokenChars.BraceLeft */ || + ch === "@" /* TokenChars.LinkedAlias */ || + ch === "|" /* TokenChars.Pipe */ || + ch === "(" /* TokenChars.ParenLeft */ || + ch === ")" /* TokenChars.ParenRight */ || + !ch) { + return buf; + } + else if (ch === CHAR_SP) { + return buf; + } + else if (ch === CHAR_LF || ch === DOT) { + buf += ch; + scnr.next(); + return fn(buf); + } + else { + buf += ch; + scnr.next(); + return fn(buf); + } + }; + return fn(''); + } + function readPlural(scnr) { + skipSpaces(scnr); + const plural = eat(scnr, "|" /* TokenChars.Pipe */); + skipSpaces(scnr); + return plural; + } + // TODO: We need refactoring of token parsing ... + function readTokenInPlaceholder(scnr, context) { + let token = null; + const ch = scnr.currentChar(); + switch (ch) { + case "{" /* TokenChars.BraceLeft */: + if (context.braceNest >= 1) { + emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken(context, 2 /* TokenTypes.BraceLeft */, "{" /* TokenChars.BraceLeft */); + skipSpaces(scnr); + context.braceNest++; + return token; + case "}" /* TokenChars.BraceRight */: + if (context.braceNest > 0 && + context.currentType === 2 /* TokenTypes.BraceLeft */) { + emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0); + } + scnr.next(); + token = getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */); + context.braceNest--; + context.braceNest > 0 && skipSpaces(scnr); + if (context.inLinked && context.braceNest === 0) { + context.inLinked = false; + } + return token; + case "@" /* TokenChars.LinkedAlias */: + if (context.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = readTokenInLinked(scnr, context) || getEndToken(context); + context.braceNest = 0; + return token; + default: { + let validNamedIdentifier = true; + let validListIdentifier = true; + let validLiteral = true; + if (isPluralStart(scnr)) { + if (context.braceNest > 0) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + } + token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr)); + // reset + context.braceNest = 0; + context.inLinked = false; + return token; + } + if (context.braceNest > 0 && + (context.currentType === 4 /* TokenTypes.Named */ || + context.currentType === 5 /* TokenTypes.List */ || + context.currentType === 6 /* TokenTypes.Literal */)) { + emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0); + context.braceNest = 0; + return readToken(scnr, context); + } + if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) { + token = getToken(context, 4 /* TokenTypes.Named */, readNamedIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if ((validListIdentifier = isListIdentifierStart(scnr, context))) { + token = getToken(context, 5 /* TokenTypes.List */, readListIdentifier(scnr)); + skipSpaces(scnr); + return token; + } + if ((validLiteral = isLiteralStart(scnr, context))) { + token = getToken(context, 6 /* TokenTypes.Literal */, readLiteral(scnr)); + skipSpaces(scnr); + return token; + } + if (!validNamedIdentifier && !validListIdentifier && !validLiteral) { + // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ... + token = getToken(context, 12 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr)); + emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value); + skipSpaces(scnr); + return token; + } + break; + } + } + return token; + } + // TODO: We need refactoring of token parsing ... + function readTokenInLinked(scnr, context) { + const { currentType } = context; + let token = null; + const ch = scnr.currentChar(); + if ((currentType === 7 /* TokenTypes.LinkedAlias */ || + currentType === 8 /* TokenTypes.LinkedDot */ || + currentType === 11 /* TokenTypes.LinkedModifier */ || + currentType === 9 /* TokenTypes.LinkedDelimiter */) && + (ch === CHAR_LF || ch === CHAR_SP)) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + switch (ch) { + case "@" /* TokenChars.LinkedAlias */: + scnr.next(); + token = getToken(context, 7 /* TokenTypes.LinkedAlias */, "@" /* TokenChars.LinkedAlias */); + context.inLinked = true; + return token; + case "." /* TokenChars.LinkedDot */: + skipSpaces(scnr); + scnr.next(); + return getToken(context, 8 /* TokenTypes.LinkedDot */, "." /* TokenChars.LinkedDot */); + case ":" /* TokenChars.LinkedDelimiter */: + skipSpaces(scnr); + scnr.next(); + return getToken(context, 9 /* TokenTypes.LinkedDelimiter */, ":" /* TokenChars.LinkedDelimiter */); + default: + if (isPluralStart(scnr)) { + token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr)); + // reset + context.braceNest = 0; + context.inLinked = false; + return token; + } + if (isLinkedDotStart(scnr, context) || + isLinkedDelimiterStart(scnr, context)) { + skipSpaces(scnr); + return readTokenInLinked(scnr, context); + } + if (isLinkedModifierStart(scnr, context)) { + skipSpaces(scnr); + return getToken(context, 11 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr)); + } + if (isLinkedReferStart(scnr, context)) { + skipSpaces(scnr); + if (ch === "{" /* TokenChars.BraceLeft */) { + // scan the placeholder + return readTokenInPlaceholder(scnr, context) || token; + } + else { + return getToken(context, 10 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr)); + } + } + if (currentType === 7 /* TokenTypes.LinkedAlias */) { + emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0); + } + context.braceNest = 0; + context.inLinked = false; + return readToken(scnr, context); + } + } + // TODO: We need refactoring of token parsing ... + function readToken(scnr, context) { + let token = { type: 13 /* TokenTypes.EOF */ }; + if (context.braceNest > 0) { + return readTokenInPlaceholder(scnr, context) || getEndToken(context); + } + if (context.inLinked) { + return readTokenInLinked(scnr, context) || getEndToken(context); + } + const ch = scnr.currentChar(); + switch (ch) { + case "{" /* TokenChars.BraceLeft */: + return readTokenInPlaceholder(scnr, context) || getEndToken(context); + case "}" /* TokenChars.BraceRight */: + emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0); + scnr.next(); + return getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */); + case "@" /* TokenChars.LinkedAlias */: + return readTokenInLinked(scnr, context) || getEndToken(context); + default: { + if (isPluralStart(scnr)) { + token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr)); + // reset + context.braceNest = 0; + context.inLinked = false; + return token; + } + if (isTextStart(scnr)) { + return getToken(context, 0 /* TokenTypes.Text */, readText(scnr)); + } + break; + } + } + return token; + } + function nextToken() { + const { currentType, offset, startLoc, endLoc } = _context; + _context.lastType = currentType; + _context.lastOffset = offset; + _context.lastStartLoc = startLoc; + _context.lastEndLoc = endLoc; + _context.offset = currentOffset(); + _context.startLoc = currentPosition(); + if (_scnr.currentChar() === EOF) { + return getToken(_context, 13 /* TokenTypes.EOF */); + } + return readToken(_scnr, _context); + } + return { + nextToken, + currentOffset, + currentPosition, + context + }; +} + +const ERROR_DOMAIN$2 = 'parser'; +// Backslash backslash, backslash quote, uHHHH, UHHHHHH. +const KNOWN_ESCAPES = /(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g; +// Text context escape sequences: \\, \@, \{, \}, \| +const TEXT_ESCAPES = /\\([\\@{}|])/g; +function fromTextEscapeSequence(_match, char) { + return char; +} +function fromEscapeSequence(match, codePoint4, codePoint6) { + switch (match) { + case `\\\\`: + return `\\`; + // eslint-disable-next-line no-useless-escape + case `\\\'`: + // eslint-disable-next-line no-useless-escape + return `\'`; + default: { + const codePoint = parseInt(codePoint4 || codePoint6, 16); + if (codePoint <= 0xd7ff || codePoint >= 0xe000) { + return String.fromCodePoint(codePoint); + } + // invalid ... + // Replace them with U+FFFD REPLACEMENT CHARACTER. + return '�'; + } + } +} +function createParser(options = {}) { + const location = options.location !== false; + const { onError } = options; + function emitError(tokenzer, code, start, offset, ...args) { + const end = tokenzer.currentPosition(); + end.offset += offset; + end.column += offset; + if (onError) { + const loc = location ? createLocation(start, end) : null; + const err = createCompileError(code, loc, { + domain: ERROR_DOMAIN$2, + args + }); + onError(err); + } + } + function startNode(type, offset, loc) { + const node = { type }; + if (location) { + node.start = offset; + node.end = offset; + node.loc = { start: loc, end: loc }; + } + return node; + } + function endNode(node, offset, pos, type) { + if (location) { + node.end = offset; + if (node.loc) { + node.loc.end = pos; + } + } + } + function parseText(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc); + node.value = value.replace(TEXT_ESCAPES, fromTextEscapeSequence); + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseList(tokenizer, index) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc + const node = startNode(5 /* NodeTypes.List */, offset, loc); + node.index = parseInt(index, 10); + tokenizer.nextToken(); // skip brach right + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseNamed(tokenizer, key) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc + const node = startNode(4 /* NodeTypes.Named */, offset, loc); + node.key = key; + tokenizer.nextToken(); // skip brach right + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLiteral(tokenizer, value) { + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc + const node = startNode(9 /* NodeTypes.Literal */, offset, loc); + node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence); + tokenizer.nextToken(); // skip brach right + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinkedModifier(tokenizer) { + const token = tokenizer.nextToken(); + const context = tokenizer.context(); + const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc + const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc); + if (token.type !== 11 /* TokenTypes.LinkedModifier */) { + // empty modifier + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0); + node.value = ''; + endNode(node, offset, loc); + return { + nextConsumeToken: token, + node + }; + } + // check token + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.value = token.value || ''; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node + }; + } + function parseLinkedKey(tokenizer, value) { + const context = tokenizer.context(); + const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc); + node.value = value; + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseLinked(tokenizer) { + const context = tokenizer.context(); + const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc); + let token = tokenizer.nextToken(); + if (token.type === 8 /* TokenTypes.LinkedDot */) { + const parsed = parseLinkedModifier(tokenizer); + linkedNode.modifier = parsed.node; + token = parsed.nextConsumeToken || tokenizer.nextToken(); + } + // asset check token + if (token.type !== 9 /* TokenTypes.LinkedDelimiter */) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + token = tokenizer.nextToken(); + // skip brace left + if (token.type === 2 /* TokenTypes.BraceLeft */) { + token = tokenizer.nextToken(); + } + switch (token.type) { + case 10 /* TokenTypes.LinkedKey */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLinkedKey(tokenizer, token.value || ''); + break; + case 4 /* TokenTypes.Named */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseNamed(tokenizer, token.value || ''); + break; + case 5 /* TokenTypes.List */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseList(tokenizer, token.value || ''); + break; + case 6 /* TokenTypes.Literal */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + linkedNode.key = parseLiteral(tokenizer, token.value || ''); + break; + default: { + // empty key + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0); + const nextContext = tokenizer.context(); + const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc); + emptyLinkedKeyNode.value = ''; + endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc); + linkedNode.key = emptyLinkedKeyNode; + endNode(linkedNode, nextContext.offset, nextContext.startLoc); + return { + nextConsumeToken: token, + node: linkedNode + }; + } + } + endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition()); + return { + node: linkedNode + }; + } + function parseMessage(tokenizer) { + const context = tokenizer.context(); + const startOffset = context.currentType === 1 /* TokenTypes.Pipe */ + ? tokenizer.currentOffset() + : context.offset; + const startLoc = context.currentType === 1 /* TokenTypes.Pipe */ + ? context.endLoc + : context.startLoc; + const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc); + node.items = []; + let nextToken = null; + do { + const token = nextToken || tokenizer.nextToken(); + nextToken = null; + switch (token.type) { + case 0 /* TokenTypes.Text */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseText(tokenizer, token.value || '')); + break; + case 5 /* TokenTypes.List */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseList(tokenizer, token.value || '')); + break; + case 4 /* TokenTypes.Named */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseNamed(tokenizer, token.value || '')); + break; + case 6 /* TokenTypes.Literal */: + if (token.value == null) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token)); + } + node.items.push(parseLiteral(tokenizer, token.value || '')); + break; + case 7 /* TokenTypes.LinkedAlias */: { + const parsed = parseLinked(tokenizer); + node.items.push(parsed.node); + nextToken = parsed.nextConsumeToken || null; + break; + } + } + } while (context.currentType !== 13 /* TokenTypes.EOF */ && + context.currentType !== 1 /* TokenTypes.Pipe */); + // adjust message node loc + const endOffset = context.currentType === 1 /* TokenTypes.Pipe */ + ? context.lastOffset + : tokenizer.currentOffset(); + const endLoc = context.currentType === 1 /* TokenTypes.Pipe */ + ? context.lastEndLoc + : tokenizer.currentPosition(); + endNode(node, endOffset, endLoc); + return node; + } + function parsePlural(tokenizer, offset, loc, msgNode) { + const context = tokenizer.context(); + let hasEmptyMessage = msgNode.items.length === 0; + const node = startNode(1 /* NodeTypes.Plural */, offset, loc); + node.cases = []; + node.cases.push(msgNode); + do { + const msg = parseMessage(tokenizer); + if (!hasEmptyMessage) { + hasEmptyMessage = msg.items.length === 0; + } + node.cases.push(msg); + } while (context.currentType !== 13 /* TokenTypes.EOF */); + if (hasEmptyMessage) { + emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + function parseResource(tokenizer) { + const context = tokenizer.context(); + const { offset, startLoc } = context; + const msgNode = parseMessage(tokenizer); + if (context.currentType === 13 /* TokenTypes.EOF */) { + return msgNode; + } + else { + return parsePlural(tokenizer, offset, startLoc, msgNode); + } + } + function parse(source) { + const tokenizer = createTokenizer(source, assign({}, options)); + const context = tokenizer.context(); + const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc); + if (location && node.loc) { + node.loc.source = source; + } + node.body = parseResource(tokenizer); + if (options.onCacheKey) { + node.cacheKey = options.onCacheKey(source); + } + // assert whether achieved to EOF + if (context.currentType !== 13 /* TokenTypes.EOF */) { + emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || ''); + } + endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition()); + return node; + } + return { parse }; +} +function getTokenCaption(token) { + if (token.type === 13 /* TokenTypes.EOF */) { + return 'EOF'; + } + const name = (token.value || '').replace(/\r?\n/gu, '\\n'); + return name.length > 10 ? name.slice(0, 9) + '…' : name; +} + +function createTransformer(ast, options = {} // eslint-disable-line +) { + const _context = { + ast, + helpers: new Set() + }; + const context = () => _context; + const helper = (name) => { + _context.helpers.add(name); + return name; + }; + return { context, helper }; +} +function traverseNodes(nodes, transformer) { + for (let i = 0; i < nodes.length; i++) { + traverseNode(nodes[i], transformer); + } +} +function traverseNode(node, transformer) { + // TODO: if we need pre-hook of transform, should be implemented to here + switch (node.type) { + case 1 /* NodeTypes.Plural */: + traverseNodes(node.cases, transformer); + transformer.helper("plural" /* HelperNameMap.PLURAL */); + break; + case 2 /* NodeTypes.Message */: + traverseNodes(node.items, transformer); + break; + case 6 /* NodeTypes.Linked */: { + const linked = node; + traverseNode(linked.key, transformer); + transformer.helper("linked" /* HelperNameMap.LINKED */); + transformer.helper("type" /* HelperNameMap.TYPE */); + break; + } + case 5 /* NodeTypes.List */: + transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */); + transformer.helper("list" /* HelperNameMap.LIST */); + break; + case 4 /* NodeTypes.Named */: + transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */); + transformer.helper("named" /* HelperNameMap.NAMED */); + break; + } + // TODO: if we need post-hook of transform, should be implemented to here +} +// transform AST +function transform(ast, options = {} // eslint-disable-line +) { + const transformer = createTransformer(ast); + transformer.helper("normalize" /* HelperNameMap.NORMALIZE */); + // traverse + ast.body && traverseNode(ast.body, transformer); + // set meta information + const context = transformer.context(); + ast.helpers = Array.from(context.helpers); +} + +function optimize(ast) { + const body = ast.body; + if (body.type === 2 /* NodeTypes.Message */) { + optimizeMessageNode(body); + } + else { + body.cases.forEach(c => optimizeMessageNode(c)); + } + return ast; +} +function optimizeMessageNode(message) { + if (message.items.length === 1) { + const item = message.items[0]; + if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) { + message.static = item.value; + delete item.value; // optimization for size + } + } + else { + const values = []; + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) { + break; + } + if (item.value == null) { + break; + } + values.push(item.value); + } + if (values.length === message.items.length) { + message.static = join(values); + for (let i = 0; i < message.items.length; i++) { + const item = message.items[i]; + if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) { + delete item.value; // optimization for size + } + } + } + } +} + +const ERROR_DOMAIN$1 = 'minifier'; +/* eslint-disable @typescript-eslint/no-explicit-any */ +function minify(node) { + node.t = node.type; + switch (node.type) { + case 0 /* NodeTypes.Resource */: { + const resource = node; + minify(resource.body); + resource.b = resource.body; + delete resource.body; + break; + } + case 1 /* NodeTypes.Plural */: { + const plural = node; + const cases = plural.cases; + for (let i = 0; i < cases.length; i++) { + minify(cases[i]); + } + plural.c = cases; + delete plural.cases; + break; + } + case 2 /* NodeTypes.Message */: { + const message = node; + const items = message.items; + for (let i = 0; i < items.length; i++) { + minify(items[i]); + } + message.i = items; + delete message.items; + if (message.static) { + message.s = message.static; + delete message.static; + } + break; + } + case 3 /* NodeTypes.Text */: + case 9 /* NodeTypes.Literal */: + case 8 /* NodeTypes.LinkedModifier */: + case 7 /* NodeTypes.LinkedKey */: { + const valueNode = node; + if (valueNode.value) { + valueNode.v = valueNode.value; + delete valueNode.value; + } + break; + } + case 6 /* NodeTypes.Linked */: { + const linked = node; + minify(linked.key); + linked.k = linked.key; + delete linked.key; + if (linked.modifier) { + minify(linked.modifier); + linked.m = linked.modifier; + delete linked.modifier; + } + break; + } + case 5 /* NodeTypes.List */: { + const list = node; + list.i = list.index; + delete list.index; + break; + } + case 4 /* NodeTypes.Named */: { + const named = node; + named.k = named.key; + delete named.key; + break; + } + default: + if ((process.env.NODE_ENV !== 'production')) { + throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, { + domain: ERROR_DOMAIN$1, + args: [node.type] + }); + } + } + delete node.type; +} +/* eslint-enable @typescript-eslint/no-explicit-any */ + +// eslint-disable-next-line @typescript-eslint/triple-slash-reference +/// +const ERROR_DOMAIN = 'parser'; +function createCodeGenerator(ast, options) { + const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options; + const location = options.location !== false; + const _context = { + filename, + code: '', + column: 1, + line: 1, + offset: 0, + map: undefined, + breakLineCode, + needIndent: _needIndent, + indentLevel: 0 + }; + if (location && ast.loc) { + _context.source = ast.loc.source; + } + const context = () => _context; + function push(code, node) { + _context.code += code; + } + function _newline(n, withBreakLine = true) { + const _breakLineCode = withBreakLine ? breakLineCode : ''; + push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode); + } + function indent(withNewLine = true) { + const level = ++_context.indentLevel; + withNewLine && _newline(level); + } + function deindent(withNewLine = true) { + const level = --_context.indentLevel; + withNewLine && _newline(level); + } + function newline() { + _newline(_context.indentLevel); + } + const helper = (key) => `_${key}`; + const needIndent = () => _context.needIndent; + return { + context, + push, + indent, + deindent, + newline, + helper, + needIndent + }; +} +function generateLinkedNode(generator, node) { + const { helper } = generator; + generator.push(`${helper("linked" /* HelperNameMap.LINKED */)}(`); + generateNode(generator, node.key); + if (node.modifier) { + generator.push(`, `); + generateNode(generator, node.modifier); + generator.push(`, _type`); + } + else { + generator.push(`, undefined, _type`); + } + generator.push(`)`); +} +function generateMessageNode(generator, node) { + const { helper, needIndent } = generator; + generator.push(`${helper("normalize" /* HelperNameMap.NORMALIZE */)}([`); + generator.indent(needIndent()); + const length = node.items.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.items[i]); + if (i === length - 1) { + break; + } + generator.push(', '); + } + generator.deindent(needIndent()); + generator.push('])'); +} +function generatePluralNode(generator, node) { + const { helper, needIndent } = generator; + if (node.cases.length > 1) { + generator.push(`${helper("plural" /* HelperNameMap.PLURAL */)}([`); + generator.indent(needIndent()); + const length = node.cases.length; + for (let i = 0; i < length; i++) { + generateNode(generator, node.cases[i]); + if (i === length - 1) { + break; + } + generator.push(', '); + } + generator.deindent(needIndent()); + generator.push(`])`); + } +} +function generateResource(generator, node) { + if (node.body) { + generateNode(generator, node.body); + } + else { + generator.push('null'); + } +} +function generateNode(generator, node) { + const { helper } = generator; + switch (node.type) { + case 0 /* NodeTypes.Resource */: + generateResource(generator, node); + break; + case 1 /* NodeTypes.Plural */: + generatePluralNode(generator, node); + break; + case 2 /* NodeTypes.Message */: + generateMessageNode(generator, node); + break; + case 6 /* NodeTypes.Linked */: + generateLinkedNode(generator, node); + break; + case 8 /* NodeTypes.LinkedModifier */: + generator.push(JSON.stringify(node.value), node); + break; + case 7 /* NodeTypes.LinkedKey */: + generator.push(JSON.stringify(node.value), node); + break; + case 5 /* NodeTypes.List */: + generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("list" /* HelperNameMap.LIST */)}(${node.index}))`, node); + break; + case 4 /* NodeTypes.Named */: + generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("named" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node); + break; + case 9 /* NodeTypes.Literal */: + generator.push(JSON.stringify(node.value), node); + break; + case 3 /* NodeTypes.Text */: + generator.push(JSON.stringify(node.value), node); + break; + default: + if ((process.env.NODE_ENV !== 'production')) { + throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, { + domain: ERROR_DOMAIN, + args: [node.type] + }); + } + } +} +// generate code from AST +const generate = (ast, options = {}) => { + const mode = isString(options.mode) ? options.mode : 'normal'; + const filename = isString(options.filename) + ? options.filename + : 'message.intl'; + const sourceMap = !!options.sourceMap; + // prettier-ignore + const breakLineCode = options.breakLineCode != null + ? options.breakLineCode + : mode === 'arrow' + ? ';' + : '\n'; + const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow'; + const helpers = ast.helpers || []; + const generator = createCodeGenerator(ast, { + mode, + filename, + sourceMap, + breakLineCode, + needIndent + }); + generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`); + generator.indent(needIndent); + if (helpers.length > 0) { + generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`); + generator.newline(); + } + generator.push(`return `); + generateNode(generator, ast); + generator.deindent(needIndent); + generator.push(`}`); + delete ast.helpers; + const { code, map } = generator.context(); + return { + ast, + code, + map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any + }; +}; + +function baseCompile(source, options = {}) { + const assignedOptions = assign({}, options); + const jit = !!assignedOptions.jit; + const enalbeMinify = !!assignedOptions.minify; + const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize; + // parse source codes + const parser = createParser(assignedOptions); + const ast = parser.parse(source); + if (!jit) { + // transform ASTs + transform(ast, assignedOptions); + // generate javascript codes + return generate(ast, assignedOptions); + } + else { + // optimize ASTs + enambeOptimize && optimize(ast); + // minimize ASTs + enalbeMinify && minify(ast); + // In JIT mode, no ast transform, no code generation. + return { ast, code: '' }; + } +} + +export { COMPILE_ERROR_CODES_EXTEND_POINT, CompileErrorCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages }; diff --git a/frontend_admin/.output/server/node_modules/@intlify/message-compiler/package.json b/frontend_admin/.output/server/node_modules/@intlify/message-compiler/package.json new file mode 100644 index 0000000..d658c83 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/message-compiler/package.json @@ -0,0 +1,79 @@ +{ + "name": "@intlify/message-compiler", + "version": "11.4.2", + "description": "@intlify/message-compiler", + "keywords": [ + "compiler", + "i18n", + "internationalization", + "intlify", + "message-format" + ], + "license": "MIT", + "author": { + "name": "kazuya kawaguchi", + "email": "kawakazu80@gmail.com" + }, + "homepage": "https://github.com/intlify/vue-i18n/tree/master/packages/message-compiler#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/intlify/vue-i18n.git", + "directory": "packages/message-compiler" + }, + "bugs": { + "url": "https://github.com/intlify/vue-i18n/issues" + }, + "files": [ + "index.js", + "dist" + ], + "main": "index.js", + "module": "dist/message-compiler.mjs", + "unpkg": "dist/message-compiler.global.js", + "jsdelivr": "dist/message-compiler.global.js", + "types": "dist/message-compiler.d.ts", + "dependencies": { + "source-map-js": "^1.0.2", + "@intlify/shared": "11.4.2" + }, + "engines": { + "node": ">= 16" + }, + "buildOptions": { + "name": "IntlifyMessageCompiler", + "formats": [ + "mjs", + "mjs-node", + "browser", + "cjs", + "global" + ], + "enableFullBundleForEsmBrowser": true + }, + "exports": { + ".": { + "types": "./dist/message-compiler.d.ts", + "import": "./dist/message-compiler.mjs", + "browser": "./dist/message-compiler.esm-browser.js", + "node": { + "import": { + "production": "./dist/message-compiler.node.mjs", + "development": "./dist/message-compiler.node.mjs", + "default": "./dist/message-compiler.node.mjs" + }, + "require": { + "production": "./dist/message-compiler.prod.cjs", + "development": "./dist/message-compiler.cjs", + "default": "./dist/message-compiler.prod.cjs" + } + } + }, + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "funding": "https://github.com/sponsors/kazupon", + "publishConfig": { + "access": "public" + }, + "sideEffects": false +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@intlify/shared/dist/shared.mjs b/frontend_admin/.output/server/node_modules/@intlify/shared/dist/shared.mjs new file mode 100644 index 0000000..847bf3e --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/shared/dist/shared.mjs @@ -0,0 +1,281 @@ +/*! + * shared v11.4.2 + * (c) 2026 kazuya kawaguchi + * Released under the MIT License. + */ +function warn(msg, err) { + if (typeof console !== 'undefined') { + console.warn(`[intlify] ` + msg); + /* istanbul ignore if */ + if (err) { + console.warn(err.stack); + } + } +} +const hasWarned = {}; +function warnOnce(msg) { + if (!hasWarned[msg]) { + hasWarned[msg] = true; + warn(msg); + } +} + +/** + * Original Utilities + * written by kazuya kawaguchi + */ +const inBrowser = typeof window !== 'undefined'; +let mark; +let measure; +if ((process.env.NODE_ENV !== 'production')) { + const perf = inBrowser && window.performance; + if (perf && + perf.mark && + perf.measure && + perf.clearMarks && + // @ts-ignore browser compat + perf.clearMeasures) { + mark = (tag) => { + perf.mark(tag); + }; + measure = (name, startTag, endTag) => { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + }; + } +} +const RE_ARGS = /\{([0-9a-zA-Z]+)\}/g; +/* eslint-disable */ +function format(message, ...args) { + if (args.length === 1 && isObject(args[0])) { + args = args[0]; + } + if (!args || !args.hasOwnProperty) { + args = {}; + } + return message.replace(RE_ARGS, (match, identifier) => { + return args.hasOwnProperty(identifier) ? args[identifier] : ''; + }); +} +const makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name); +const generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source }); +const friendlyJSONstringify = (json) => JSON.stringify(json) + .replace(/\u2028/g, '\\u2028') + .replace(/\u2029/g, '\\u2029') + .replace(/\u0027/g, '\\u0027'); +const isNumber = (val) => typeof val === 'number' && isFinite(val); +const isDate = (val) => toTypeString(val) === '[object Date]'; +const isRegExp = (val) => toTypeString(val) === '[object RegExp]'; +const isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0; +const assign = Object.assign; +const _create = Object.create; +const create = (obj = null) => _create(obj); +let _globalThis; +const getGlobalThis = () => { + // prettier-ignore + return (_globalThis || + (_globalThis = + typeof globalThis !== 'undefined' + ? globalThis + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : typeof global !== 'undefined' + ? global + : create())); +}; +function escapeHtml(rawText) { + return rawText + .replace(/&/g, '&') // escape `&` first to avoid double escaping + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(/\//g, '/') // escape `/` to prevent closing tags or JavaScript URLs + .replace(/=/g, '='); // escape `=` to prevent attribute injection +} +function escapeAttributeValue(value) { + return value + .replace(/&(?![a-zA-Z0-9#]{2,6};)/g, '&') // escape unescaped `&` + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(//g, '>'); +} +function sanitizeTranslatedHtml(html) { + // Escape dangerous characters in attribute values + // Process attributes with double quotes + html = html.replace(/(\w+)\s*=\s*"([^"]*)"/g, (_, attrName, attrValue) => `${attrName}="${escapeAttributeValue(attrValue)}"`); + // Process attributes with single quotes + html = html.replace(/(\w+)\s*=\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`); + // Detect and neutralize event handler attributes + const eventHandlerPattern = /\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi; + if (eventHandlerPattern.test(html)) { + if ((process.env.NODE_ENV !== 'production')) { + warn('Potentially dangerous event handlers detected in translation. ' + + 'Consider removing onclick, onerror, etc. from your translation messages.'); + } + // Neutralize event handler attributes by escaping 'on' + html = html.replace(/(\s+)(on)(\w+\s*=)/gi, '$1on$3'); + } + // Disable javascript: URLs in various contexts + const javascriptUrlPattern = [ + // In href, src, action, formaction attributes + /(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi, + // In style attributes within url() + /(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi + ]; + javascriptUrlPattern.forEach(pattern => { + html = html.replace(pattern, '$1javascript:'); + }); + return html; +} +const hasOwnProperty = Object.prototype.hasOwnProperty; +function hasOwn(obj, key) { + return hasOwnProperty.call(obj, key); +} +/* eslint-enable */ +/** + * Useful Utilities By Evan you + * Modified by kazuya kawaguchi + * MIT License + * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts + * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts + */ +const isArray = Array.isArray; +const isFunction = (val) => typeof val === 'function'; +const isString = (val) => typeof val === 'string'; +const isBoolean = (val) => typeof val === 'boolean'; +const isSymbol = (val) => typeof val === 'symbol'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const isObject = (val) => val !== null && typeof val === 'object'; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const isPromise = (val) => { + return isObject(val) && isFunction(val.then) && isFunction(val.catch); +}; +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +const isPlainObject = (val) => toTypeString(val) === '[object Object]'; +// for converting list and named values to displayed strings. +const toDisplayString = (val) => { + return val == null + ? '' + : isArray(val) || (isPlainObject(val) && val.toString === objectToString) + ? JSON.stringify(val, null, 2) + : String(val); +}; +function join(items, separator = '') { + return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), ''); +} +const RANGE = 2; +function generateCodeFrame(source, start = 0, end = source.length) { + const lines = source.split(/\r?\n/); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + 1; + if (count >= start) { + for (let j = i - RANGE; j <= i + RANGE || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`); + const lineLength = lines[j].length; + if (j === i) { + // push underline + const pad = start - (count - lineLength) + 1; + const length = Math.max(1, end > count ? lineLength - pad : end - start); + res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length)); + } + else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + '^'.repeat(length)); + } + count += lineLength + 1; + } + } + break; + } + } + return res.join('\n'); +} + +/** + * Event emitter, forked from the below: + * - original repository url: https://github.com/developit/mitt + * - code url: https://github.com/developit/mitt/blob/master/src/index.ts + * - author: Jason Miller (https://github.com/developit) + * - license: MIT + */ +/** + * Create a event emitter + * + * @returns An event emitter + */ +function createEmitter() { + const events = new Map(); + const emitter = { + events, + on(event, handler) { + const handlers = events.get(event); + const added = handlers && handlers.push(handler); + if (!added) { + events.set(event, [handler]); + } + }, + off(event, handler) { + const handlers = events.get(event); + if (handlers) { + handlers.splice(handlers.indexOf(handler) >>> 0, 1); + } + }, + emit(event, payload) { + (events.get(event) || []) + .slice() + .map(handler => handler(payload)); + (events.get('*') || []) + .slice() + .map(handler => handler(event, payload)); + } + }; + return emitter; +} + +const isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val); +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function deepCopy(src, des) { + // src and des should both be objects, and none of them can be a array + if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) { + throw new Error('Invalid value'); + } + const stack = [{ src, des }]; + while (stack.length) { + const { src, des } = stack.pop(); + // using `Object.keys` which skips prototype properties + Object.keys(src).forEach(key => { + if (key === '__proto__') { + return; + } + // if src[key] is an object/array, set des[key] + // to empty object/array to prevent setting by reference + if (isObject(src[key]) && !isObject(des[key])) { + des[key] = Array.isArray(src[key]) ? [] : create(); + } + if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) { + // replace with src[key] when: + // src[key] or des[key] is not an object, or + // src[key] or des[key] is an array + des[key] = src[key]; + } + else { + // src[key] and des[key] are both objects, merge them + stack.push({ src: src[key], des: des[key] }); + } + }); + } +} + +export { assign, create, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, sanitizeTranslatedHtml, toDisplayString, toTypeString, warn, warnOnce }; diff --git a/frontend_admin/.output/server/node_modules/@intlify/shared/package.json b/frontend_admin/.output/server/node_modules/@intlify/shared/package.json new file mode 100644 index 0000000..1a75738 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/shared/package.json @@ -0,0 +1,69 @@ +{ + "name": "@intlify/shared", + "version": "11.4.2", + "description": "@intlify/shared", + "keywords": [ + "i18n", + "internationalization", + "intlify", + "utitlity" + ], + "license": "MIT", + "author": { + "name": "kazuya kawaguchi", + "email": "kawakazu80@gmail.com" + }, + "homepage": "https://github.com/intlify/vue-i18n/tree/master/packages/shared#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/intlify/vue-i18n.git", + "directory": "packages/shared" + }, + "bugs": { + "url": "https://github.com/intlify/vue-i18n/issues" + }, + "files": [ + "index.js", + "dist" + ], + "main": "index.js", + "module": "dist/shared.mjs", + "types": "dist/shared.d.ts", + "engines": { + "node": ">= 16" + }, + "buildOptions": { + "name": "IntlifyShared", + "formats": [ + "mjs", + "browser", + "cjs" + ] + }, + "exports": { + ".": { + "types": "./dist/shared.d.ts", + "import": "./dist/shared.mjs", + "browser": "./dist/shared.esm-browser.js", + "node": { + "import": { + "production": "./dist/shared.prod.cjs", + "development": "./dist/shared.mjs", + "default": "./dist/shared.prod.cjs" + }, + "require": { + "production": "./dist/shared.prod.cjs", + "development": "./dist/shared.cjs", + "default": "./dist/shared.prod.cjs" + } + } + }, + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "funding": "https://github.com/sponsors/kazupon", + "publishConfig": { + "access": "public" + }, + "sideEffects": false +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@intlify/utils/dist/h3.mjs b/frontend_admin/.output/server/node_modules/@intlify/utils/dist/h3.mjs new file mode 100644 index 0000000..f254377 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/utils/dist/h3.mjs @@ -0,0 +1,89 @@ +import { g as getHeaderLanguagesWithGetter, A as ACCEPT_LANGUAGE_HEADER, p as parseDefaultHeader, m as mapToLocaleFromLanguageTag, a as getLocaleWithGetter, D as DEFAULT_LANG_TAG, b as DEFAULT_COOKIE_NAME, v as validateLocale, d as getPathLocale$1, e as pathLanguageParser, f as getQueryLocale$1 } from './shared/utils.9f8159f5.mjs'; +import { setCookie, getRequestURL, getCookie, getHeaders } from 'h3'; + +function getHeaderLanguages(event, { + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + const getter = () => { + const headers = getHeaders(event); + return headers[name]; + }; + return getHeaderLanguagesWithGetter(getter, { name, parser }); +} +function getHeaderLanguage(event, { + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + return getHeaderLanguages(event, { name, parser })[0] || ""; +} +function getHeaderLocales(event, { + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + return mapToLocaleFromLanguageTag(getHeaderLanguages, event, { name, parser }); +} +function tryHeaderLocales(event, { + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + try { + return getHeaderLocales(event, { name, parser }); + } catch { + return null; + } +} +function getHeaderLocale(event, { + lang = DEFAULT_LANG_TAG, + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + return getLocaleWithGetter(() => getHeaderLanguages(event, { name, parser })[0] || lang); +} +function tryHeaderLocale(event, { + lang = DEFAULT_LANG_TAG, + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + try { + return getHeaderLocale(event, { lang, name, parser }); + } catch { + return null; + } +} +function getCookieLocale(event, { lang = DEFAULT_LANG_TAG, name = DEFAULT_COOKIE_NAME } = {}) { + return getLocaleWithGetter(() => getCookie(event, name) || lang); +} +function tryCookieLocale(event, { lang = DEFAULT_LANG_TAG, name = DEFAULT_COOKIE_NAME } = {}) { + try { + return getCookieLocale(event, { lang, name }); + } catch { + return null; + } +} +function setCookieLocale(event, locale, options = { name: DEFAULT_COOKIE_NAME }) { + validateLocale(locale); + setCookie(event, options.name, locale.toString(), options); +} +function getPathLocale(event, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) { + return getPathLocale$1(getRequestURL(event), { lang, parser }); +} +function tryPathLocale(event, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) { + try { + return getPathLocale(event, { lang, parser }); + } catch { + return null; + } +} +function getQueryLocale(event, { lang = DEFAULT_LANG_TAG, name = "locale" } = {}) { + return getQueryLocale$1(getRequestURL(event), { lang, name }); +} +function tryQueryLocale(event, { lang = DEFAULT_LANG_TAG, name = "locale" } = {}) { + try { + return getQueryLocale(event, { lang, name }); + } catch { + return null; + } +} + +export { getCookieLocale, getHeaderLanguage, getHeaderLanguages, getHeaderLocale, getHeaderLocales, getPathLocale, getQueryLocale, setCookieLocale, tryCookieLocale, tryHeaderLocale, tryHeaderLocales, tryPathLocale, tryQueryLocale }; diff --git a/frontend_admin/.output/server/node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs b/frontend_admin/.output/server/node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs new file mode 100644 index 0000000..9e06ee7 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/utils/dist/shared/utils.9f8159f5.mjs @@ -0,0 +1,108 @@ +const objectToString = Object.prototype.toString; +const toTypeString = (value) => objectToString.call(value); +function isURL(val) { + return toTypeString(val) === "[object URL]"; +} +function isURLSearchParams(val) { + return toTypeString(val) === "[object URLSearchParams]"; +} +function isLocale(val) { + return toTypeString(val) === "[object Intl.Locale]"; +} +function toLocale(val) { + return isLocale(val) ? val : new Intl.Locale(val); +} +function validateLangTag(lang) { + try { + Intl.getCanonicalLocales(lang); + return true; + } catch { + return false; + } +} +function parseAcceptLanguage(value) { + return value.split(",").map((tag) => tag.split(";")[0]).filter( + (tag) => !(tag === "*" || tag === "") + ); +} +function normalizeLanguageName(langName) { + const [lang] = langName.split("."); + return lang.replace(/_/g, "-"); +} +function createPathIndexLanguageParser(index = 0) { + return (path) => { + const rawPath = typeof path === "string" ? path : path.pathname; + const normalizedPath = rawPath.split("?")[0]; + const parts = normalizedPath.split("/"); + if (parts[0] === "") { + parts.shift(); + } + return parts.length > index ? parts[index] || "" : ""; + }; +} +let pathLanguageParser = /* @__PURE__ */ createPathIndexLanguageParser(); +function registerPathLanguageParser(parser) { + pathLanguageParser = parser; +} + +const DEFAULT_LANG_TAG = "en-US"; +const DEFAULT_COOKIE_NAME = "i18n_locale"; +const ACCEPT_LANGUAGE_HEADER = "accept-language"; + +function parseDefaultHeader(input) { + return [input]; +} +function getHeaderLanguagesWithGetter(getter, { + name = ACCEPT_LANGUAGE_HEADER, + parser = parseDefaultHeader +} = {}) { + const langString = getter(); + return langString ? name === ACCEPT_LANGUAGE_HEADER ? parser === parseDefaultHeader ? parseAcceptLanguage(langString) : parser(langString) : parser(langString) : []; +} +function getLocaleWithGetter(getter) { + return toLocale(getter()); +} +function validateLocale(locale) { + if (!(isLocale(locale) || typeof locale === "string" && validateLangTag(locale))) { + throw new SyntaxError(`locale is invalid: ${locale.toString()}`); + } +} +function mapToLocaleFromLanguageTag(getter, ...args) { + return Reflect.apply(getter, null, args).map( + (lang) => getLocaleWithGetter(() => lang) + ); +} +function getExistCookies(name, getter) { + let setCookies = getter(); + if (!Array.isArray(setCookies)) { + setCookies = [setCookies]; + } + setCookies = setCookies.filter( + (cookieValue) => cookieValue && !cookieValue.startsWith(name + "=") + ); + return setCookies; +} +function getPathLanguage(path, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) { + return (parser || pathLanguageParser)(path) || lang; +} +function getPathLocale(path, { lang = DEFAULT_LANG_TAG, parser = pathLanguageParser } = {}) { + return new Intl.Locale(getPathLanguage(path, { lang, parser })); +} +function getURLSearchParams(input) { + if (isURLSearchParams(input)) { + return input; + } else if (isURL(input)) { + return input.searchParams; + } else { + return new URLSearchParams(input); + } +} +function getQueryLanguage(query, { lang = DEFAULT_LANG_TAG, name = "lang" } = {}) { + const queryParams = getURLSearchParams(query); + return queryParams.get(name) || lang; +} +function getQueryLocale(query, { lang = DEFAULT_LANG_TAG, name = "locale" } = {}) { + return new Intl.Locale(getQueryLanguage(query, { lang, name })); +} + +export { ACCEPT_LANGUAGE_HEADER as A, DEFAULT_LANG_TAG as D, getLocaleWithGetter as a, DEFAULT_COOKIE_NAME as b, getExistCookies as c, getPathLocale as d, pathLanguageParser as e, getQueryLocale as f, getHeaderLanguagesWithGetter as g, createPathIndexLanguageParser as h, isLocale as i, parseAcceptLanguage as j, validateLangTag as k, mapToLocaleFromLanguageTag as m, normalizeLanguageName as n, parseDefaultHeader as p, registerPathLanguageParser as r, validateLocale as v }; diff --git a/frontend_admin/.output/server/node_modules/@intlify/utils/package.json b/frontend_admin/.output/server/node_modules/@intlify/utils/package.json new file mode 100644 index 0000000..0b7b1da --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@intlify/utils/package.json @@ -0,0 +1,129 @@ +{ + "name": "@intlify/utils", + "version": "0.13.0", + "description": "Collection of i18n utilities", + "keywords": [ + "i18n", + "internationalization", + "intlify", + "utilities" + ], + "author": { + "name": "kazuya kawaguchi", + "email": "kawakazu80@gmail.com" + }, + "license": "MIT", + "funding": "https://github.com/sponsors/kazupon", + "bugs": { + "url": "https://github.com/intlify/utils/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/intlify/utils.git" + }, + "homepage": "https://github.com/intlify/utils#readme", + "publishConfig": { + "access": "public" + }, + "engines": { + "node": ">= 18" + }, + "type": "module", + "sideEffects": false, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "browser": "./dist/index.mjs", + "default": "./dist/index.mjs" + }, + "./h3": { + "types": "./dist/h3.d.ts", + "import": "./dist/h3.mjs", + "require": "./dist/h3.cjs", + "default": "./dist/h3.mjs" + }, + "./hono": { + "types": "./dist/hono.d.ts", + "import": "./dist/hono.mjs", + "require": "./dist/hono.cjs", + "default": "./dist/hono.mjs" + }, + "./node": { + "types": "./dist/node.d.ts", + "import": "./dist/node.mjs", + "require": "./dist/node.cjs", + "default": "./dist/node.mjs" + }, + "./dist/*": "./dist/*", + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "scripts": { + "prepare": "git config --local core.hooksPath .githooks", + "changelog": "gh-changelogen --repo=intlify/utils", + "release": "bumpp --commit \"release: v%s\" --all --push --tag", + "version": "npx tsx scripts/bump-deno.ts", + "fix": "run-p lint format", + "lint": "deno lint", + "format": "deno fmt", + "build": "unbuild && bun run ./scripts/deno.ts", + "test": "npm run test:typecheck && npm run test:unit", + "test:unit": "NODE_OPTIONS=--experimental-vm-modules vitest run ./src", + "test:typecheck": "vitest --typecheck --config ./vitest.type.config.ts --run", + "test:coverage": "npm test -- --reporter verbose --coverage", + "test:e2e": "run-s test:e2e:*", + "test:e2e:browser": "cd playground/browser && node --test", + "test:e2e:node": "cd playground/node && node --test", + "test:e2e:deno": "cd playground/deno && deno task test", + "test:e2e:bun": "cd playground/bun && npm run test", + "setup": "run-s setup:*", + "setup:browser": "cd playground/browser && bun install", + "setup:node": "cd playground/node && bun install", + "setup:deno": "cd playground/deno && deno cache --reload ./main.ts", + "setup:bun": "cd playground/bun && bun install", + "play:browser": "cd playground/browser && npm run dev", + "play:node": "cd playground/node && npm run dev", + "play:deno": "cd playground/deno && deno run --allow-net main.ts", + "play:bun": "cd playground/bun && npm run dev" + }, + "lint-staged": { + "*.{js,ts,jsx,tsx,json,jsonc}": [ + "deno fmt" + ], + "*.{js,ts,jsx,tsx}": [ + "deno lint" + ] + }, + "devDependencies": { + "@cloudflare/workers-types": "^4.20231016.0", + "@types/node": "^20.11.24", + "@types/semver": "^7.5.8", + "@types/supertest": "^2.0.12", + "@vitest/coverage-v8": "^1.3.0", + "bumpp": "^9.2.0", + "bun-types": "latest", + "cookie-es": "^1.0.0", + "gh-changelogen": "^0.2.8", + "h3": "^1.8.1", + "hono": "^3.8.1", + "jsonc-parser": "^3.2.1", + "lint-staged": "^15.0.0", + "miniflare": "^3.20231016.0", + "npm-run-all2": "^6.0.0", + "pkg-types": "^1.0.2", + "playwright": "^1.38.1", + "semver": "^7.6.0", + "supertest": "^6.3.3", + "typescript": "^5.4.1-rc", + "unbuild": "^2.0.0", + "vitest": "^1.3.0", + "vitest-environment-miniflare": "^2.14.1" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-api b/frontend_admin/.output/server/node_modules/@vue/devtools-api index ef42cb1..53ba609 120000 --- a/frontend_admin/.output/server/node_modules/@vue/devtools-api +++ b/frontend_admin/.output/server/node_modules/@vue/devtools-api @@ -1 +1 @@ -../.nitro/@vue/devtools-api@7.7.9 \ No newline at end of file +../.nitro/@vue/devtools-api@8.1.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-kit b/frontend_admin/.output/server/node_modules/@vue/devtools-kit new file mode 120000 index 0000000..4616348 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@vue/devtools-kit @@ -0,0 +1 @@ +../.nitro/@vue/devtools-kit@8.1.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable b/frontend_admin/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable deleted file mode 120000 index 781c1c9..0000000 --- a/frontend_admin/.output/server/node_modules/@vue/devtools-kit/node_modules/hookable +++ /dev/null @@ -1 +0,0 @@ -../../../.nitro/hookable@5.5.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/@vue/devtools-shared b/frontend_admin/.output/server/node_modules/@vue/devtools-shared new file mode 120000 index 0000000..32bd946 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/@vue/devtools-shared @@ -0,0 +1 @@ +../.nitro/@vue/devtools-shared@8.1.3 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/birpc/dist/index.mjs b/frontend_admin/.output/server/node_modules/birpc/dist/index.mjs new file mode 100644 index 0000000..ac903b5 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/birpc/dist/index.mjs @@ -0,0 +1,291 @@ +const TYPE_REQUEST = "q"; +const TYPE_RESPONSE = "s"; +const DEFAULT_TIMEOUT = 6e4; +function defaultSerialize(i) { + return i; +} +const defaultDeserialize = defaultSerialize; +const { clearTimeout, setTimeout } = globalThis; +const random = Math.random.bind(Math); +function createBirpc($functions, options) { + const { + post, + on, + off = () => { + }, + eventNames = [], + serialize = defaultSerialize, + deserialize = defaultDeserialize, + resolver, + bind = "rpc", + timeout = DEFAULT_TIMEOUT + } = options; + let $closed = false; + const _rpcPromiseMap = /* @__PURE__ */ new Map(); + let _promiseInit; + let rpc; + async function _call(method, args, event, optional) { + if ($closed) + throw new Error(`[birpc] rpc is closed, cannot call "${method}"`); + const req = { m: method, a: args, t: TYPE_REQUEST }; + if (optional) + req.o = true; + const send = async (_req) => post(serialize(_req)); + if (event) { + await send(req); + return; + } + if (_promiseInit) { + try { + await _promiseInit; + } finally { + _promiseInit = void 0; + } + } + let { promise, resolve, reject } = createPromiseWithResolvers(); + const id = nanoid(); + req.i = id; + let timeoutId; + async function handler(newReq = req) { + if (timeout >= 0) { + timeoutId = setTimeout(() => { + try { + const handleResult = options.onTimeoutError?.call(rpc, method, args); + if (handleResult !== true) + throw new Error(`[birpc] timeout on calling "${method}"`); + } catch (e) { + reject(e); + } + _rpcPromiseMap.delete(id); + }, timeout); + if (typeof timeoutId === "object") + timeoutId = timeoutId.unref?.(); + } + _rpcPromiseMap.set(id, { resolve, reject, timeoutId, method }); + await send(newReq); + return promise; + } + try { + if (options.onRequest) + await options.onRequest.call(rpc, req, handler, resolve); + else + await handler(); + } catch (e) { + if (options.onGeneralError?.call(rpc, e) !== true) + throw e; + return; + } finally { + clearTimeout(timeoutId); + _rpcPromiseMap.delete(id); + } + return promise; + } + const $call = (method, ...args) => _call(method, args, false); + const $callOptional = (method, ...args) => _call(method, args, false, true); + const $callEvent = (method, ...args) => _call(method, args, true); + const $callRaw = (options2) => _call(options2.method, options2.args, options2.event, options2.optional); + const builtinMethods = { + $call, + $callOptional, + $callEvent, + $callRaw, + $rejectPendingCalls, + get $closed() { + return $closed; + }, + get $meta() { + return options.meta; + }, + $close, + $functions + }; + rpc = new Proxy({}, { + get(_, method) { + if (Object.prototype.hasOwnProperty.call(builtinMethods, method)) + return builtinMethods[method]; + if (method === "then" && !eventNames.includes("then") && !("then" in $functions)) + return void 0; + const sendEvent = (...args) => _call(method, args, true); + if (eventNames.includes(method)) { + sendEvent.asEvent = sendEvent; + return sendEvent; + } + const sendCall = (...args) => _call(method, args, false); + sendCall.asEvent = sendEvent; + return sendCall; + } + }); + function $close(customError) { + $closed = true; + _rpcPromiseMap.forEach(({ reject, method }) => { + const error = new Error(`[birpc] rpc is closed, cannot call "${method}"`); + if (customError) { + customError.cause ??= error; + return reject(customError); + } + reject(error); + }); + _rpcPromiseMap.clear(); + off(onMessage); + } + function $rejectPendingCalls(handler) { + const entries = Array.from(_rpcPromiseMap.values()); + const handlerResults = entries.map(({ method, reject }) => { + if (!handler) { + return reject(new Error(`[birpc]: rejected pending call "${method}".`)); + } + return handler({ method, reject }); + }); + _rpcPromiseMap.clear(); + return handlerResults; + } + async function onMessage(data, ...extra) { + let msg; + try { + msg = deserialize(data); + } catch (e) { + if (options.onGeneralError?.call(rpc, e) !== true) + throw e; + return; + } + if (msg.t === TYPE_REQUEST) { + const { m: method, a: args, o: optional } = msg; + let result, error; + let fn = await (resolver ? resolver.call(rpc, method, $functions[method]) : $functions[method]); + if (optional) + fn ||= () => void 0; + if (!fn) { + error = new Error(`[birpc] function "${method}" not found`); + } else { + try { + result = await fn.apply(bind === "rpc" ? rpc : $functions, args); + } catch (e) { + error = e; + } + } + if (msg.i) { + if (error && options.onError) + options.onError.call(rpc, error, method, args); + if (error && options.onFunctionError) { + if (options.onFunctionError.call(rpc, error, method, args) === true) + return; + } + if (!error) { + try { + await post(serialize({ t: TYPE_RESPONSE, i: msg.i, r: result }), ...extra); + return; + } catch (e) { + error = e; + if (options.onGeneralError?.call(rpc, e, method, args) !== true) + throw e; + } + } + try { + await post(serialize({ t: TYPE_RESPONSE, i: msg.i, e: error }), ...extra); + } catch (e) { + if (options.onGeneralError?.call(rpc, e, method, args) !== true) + throw e; + } + } + } else { + const { i: ack, r: result, e: error } = msg; + const promise = _rpcPromiseMap.get(ack); + if (promise) { + clearTimeout(promise.timeoutId); + if (error) + promise.reject(error); + else + promise.resolve(result); + } + _rpcPromiseMap.delete(ack); + } + } + _promiseInit = on(onMessage); + return rpc; +} +const cacheMap = /* @__PURE__ */ new WeakMap(); +function cachedMap(items, fn) { + return items.map((i) => { + let r = cacheMap.get(i); + if (!r) { + r = fn(i); + cacheMap.set(i, r); + } + return r; + }); +} +function createBirpcGroup(functions, channels, options = {}) { + const getChannels = () => typeof channels === "function" ? channels() : channels; + const getClients = (channels2 = getChannels()) => cachedMap(channels2, (s) => createBirpc(functions, { ...options, ...s })); + function _boardcast(method, args, event, optional) { + const clients = getClients(); + return Promise.all(clients.map((c) => c.$callRaw({ method, args, event, optional }))); + } + function $call(method, ...args) { + return _boardcast(method, args, false); + } + function $callOptional(method, ...args) { + return _boardcast(method, args, false, true); + } + function $callEvent(method, ...args) { + return _boardcast(method, args, true); + } + const broadcastBuiltin = { + $call, + $callOptional, + $callEvent + }; + const broadcastProxy = new Proxy({}, { + get(_, method) { + if (Object.prototype.hasOwnProperty.call(broadcastBuiltin, method)) + return broadcastBuiltin[method]; + const client = getClients(); + const callbacks = client.map((c) => c[method]); + const sendCall = (...args) => { + return Promise.all(callbacks.map((i) => i(...args))); + }; + sendCall.asEvent = async (...args) => { + await Promise.all(callbacks.map((i) => i.asEvent(...args))); + }; + return sendCall; + } + }); + function updateChannels(fn) { + const channels2 = getChannels(); + fn?.(channels2); + return getClients(channels2); + } + getClients(); + return { + get clients() { + return getClients(); + }, + functions, + updateChannels, + broadcast: broadcastProxy, + /** + * @deprecated use `broadcast` + */ + // @ts-expect-error deprecated + boardcast: broadcastProxy + }; +} +function createPromiseWithResolvers() { + let resolve; + let reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + return { promise, resolve, reject }; +} +const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; +function nanoid(size = 21) { + let id = ""; + let i = size; + while (i--) + id += urlAlphabet[random() * 64 | 0]; + return id; +} + +export { DEFAULT_TIMEOUT, cachedMap, createBirpc, createBirpcGroup }; diff --git a/frontend_admin/.output/server/node_modules/cookie-es/dist/index.mjs b/frontend_admin/.output/server/node_modules/cookie-es/dist/index.mjs new file mode 100644 index 0000000..3bfd0f2 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/cookie-es/dist/index.mjs @@ -0,0 +1,268 @@ +const NullObject = /* @__PURE__ */ (() => { + const C = function() { + }; + C.prototype = /* @__PURE__ */ Object.create(null); + return C; +})(); +function parse(str, options) { + if (typeof str !== "string") { + throw new TypeError("argument str must be a string"); + } + const obj = new NullObject(); + const opt = options || {}; + const dec = opt.decode || decode; + let index = 0; + while (index < str.length) { + const eqIdx = str.indexOf("=", index); + if (eqIdx === -1) { + break; + } + let endIdx = str.indexOf(";", index); + if (endIdx === -1) { + endIdx = str.length; + } else if (endIdx < eqIdx) { + index = str.lastIndexOf(";", eqIdx - 1) + 1; + continue; + } + const key = str.slice(index, eqIdx).trim(); + if (opt?.filter && !opt?.filter(key)) { + index = endIdx + 1; + continue; + } + if (void 0 === obj[key]) { + let val = str.slice(eqIdx + 1, endIdx).trim(); + if (val.codePointAt(0) === 34) { + val = val.slice(1, -1); + } + obj[key] = tryDecode(val, dec); + } + index = endIdx + 1; + } + return obj; +} +function decode(str) { + return str.includes("%") ? decodeURIComponent(str) : str; +} +function tryDecode(str, decode2) { + try { + return decode2(str); + } catch { + return str; + } +} + +const fieldContentRegExp = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; +function serialize(name, value, options) { + const opt = options || {}; + const enc = opt.encode || encodeURIComponent; + if (typeof enc !== "function") { + throw new TypeError("option encode is invalid"); + } + if (!fieldContentRegExp.test(name)) { + throw new TypeError("argument name is invalid"); + } + const encodedValue = enc(value); + if (encodedValue && !fieldContentRegExp.test(encodedValue)) { + throw new TypeError("argument val is invalid"); + } + let str = name + "=" + encodedValue; + if (void 0 !== opt.maxAge && opt.maxAge !== null) { + const maxAge = opt.maxAge - 0; + if (Number.isNaN(maxAge) || !Number.isFinite(maxAge)) { + throw new TypeError("option maxAge is invalid"); + } + str += "; Max-Age=" + Math.floor(maxAge); + } + if (opt.domain) { + if (!fieldContentRegExp.test(opt.domain)) { + throw new TypeError("option domain is invalid"); + } + str += "; Domain=" + opt.domain; + } + if (opt.path) { + if (!fieldContentRegExp.test(opt.path)) { + throw new TypeError("option path is invalid"); + } + str += "; Path=" + opt.path; + } + if (opt.expires) { + if (!isDate(opt.expires) || Number.isNaN(opt.expires.valueOf())) { + throw new TypeError("option expires is invalid"); + } + str += "; Expires=" + opt.expires.toUTCString(); + } + if (opt.httpOnly) { + str += "; HttpOnly"; + } + if (opt.secure) { + str += "; Secure"; + } + if (opt.priority) { + const priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority; + switch (priority) { + case "low": { + str += "; Priority=Low"; + break; + } + case "medium": { + str += "; Priority=Medium"; + break; + } + case "high": { + str += "; Priority=High"; + break; + } + default: { + throw new TypeError("option priority is invalid"); + } + } + } + if (opt.sameSite) { + const sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite; + switch (sameSite) { + case true: { + str += "; SameSite=Strict"; + break; + } + case "lax": { + str += "; SameSite=Lax"; + break; + } + case "strict": { + str += "; SameSite=Strict"; + break; + } + case "none": { + str += "; SameSite=None"; + break; + } + default: { + throw new TypeError("option sameSite is invalid"); + } + } + } + if (opt.partitioned) { + str += "; Partitioned"; + } + return str; +} +function isDate(val) { + return Object.prototype.toString.call(val) === "[object Date]" || val instanceof Date; +} + +function parseSetCookie(setCookieValue, options) { + const parts = (setCookieValue || "").split(";").filter((str) => typeof str === "string" && !!str.trim()); + const nameValuePairStr = parts.shift() || ""; + const parsed = _parseNameValuePair(nameValuePairStr); + const name = parsed.name; + let value = parsed.value; + try { + value = options?.decode === false ? value : (options?.decode || decodeURIComponent)(value); + } catch { + } + const cookie = { + name, + value + }; + for (const part of parts) { + const sides = part.split("="); + const partKey = (sides.shift() || "").trimStart().toLowerCase(); + const partValue = sides.join("="); + switch (partKey) { + case "expires": { + cookie.expires = new Date(partValue); + break; + } + case "max-age": { + cookie.maxAge = Number.parseInt(partValue, 10); + break; + } + case "secure": { + cookie.secure = true; + break; + } + case "httponly": { + cookie.httpOnly = true; + break; + } + case "samesite": { + cookie.sameSite = partValue; + break; + } + default: { + cookie[partKey] = partValue; + } + } + } + return cookie; +} +function _parseNameValuePair(nameValuePairStr) { + let name = ""; + let value = ""; + const nameValueArr = nameValuePairStr.split("="); + if (nameValueArr.length > 1) { + name = nameValueArr.shift(); + value = nameValueArr.join("="); + } else { + value = nameValuePairStr; + } + return { name, value }; +} + +function splitSetCookieString(cookiesString) { + if (Array.isArray(cookiesString)) { + return cookiesString.flatMap((c) => splitSetCookieString(c)); + } + if (typeof cookiesString !== "string") { + return []; + } + const cookiesStrings = []; + let pos = 0; + let start; + let ch; + let lastComma; + let nextStart; + let cookiesSeparatorFound; + const skipWhitespace = () => { + while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { + pos += 1; + } + return pos < cookiesString.length; + }; + const notSpecialChar = () => { + ch = cookiesString.charAt(pos); + return ch !== "=" && ch !== ";" && ch !== ","; + }; + while (pos < cookiesString.length) { + start = pos; + cookiesSeparatorFound = false; + while (skipWhitespace()) { + ch = cookiesString.charAt(pos); + if (ch === ",") { + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while (pos < cookiesString.length && notSpecialChar()) { + pos += 1; + } + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + cookiesSeparatorFound = true; + pos = nextStart; + cookiesStrings.push(cookiesString.slice(start, lastComma)); + start = pos; + } else { + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.slice(start, cookiesString.length)); + } + } + return cookiesStrings; +} + +export { parse, parseSetCookie, serialize, splitSetCookieString }; diff --git a/frontend_admin/.output/server/node_modules/cookie-es/package.json b/frontend_admin/.output/server/node_modules/cookie-es/package.json new file mode 100644 index 0000000..5e09be2 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/cookie-es/package.json @@ -0,0 +1,46 @@ +{ + "name": "cookie-es", + "version": "1.2.3", + "repository": "unjs/cookie-es", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "require": { + "types": "./dist/index.d.cts", + "default": "./dist/index.cjs" + } + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild", + "dev": "vitest --coverage", + "lint": "eslint --cache . && prettier -c src test", + "lint:fix": "automd && eslint --cache . --fix && prettier -c src test -w", + "release": "pnpm test && pnpm build && changelogen --release --push && npm publish --tag 1x", + "test": "pnpm lint && vitest run --coverage" + }, + "devDependencies": { + "@vitest/coverage-v8": "^2.0.3", + "automd": "^0.3.8", + "changelogen": "^0.5.5", + "eslint": "^9.7.0", + "eslint-config-unjs": "^0.3.2", + "prettier": "^3.3.3", + "typescript": "^5.5.3", + "unbuild": "^2.0.0", + "vitest": "^2.0.3" + }, + "packageManager": "pnpm@9.5.0" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/defu/dist/defu.mjs b/frontend_admin/.output/server/node_modules/defu/dist/defu.mjs new file mode 100644 index 0000000..3e53ced --- /dev/null +++ b/frontend_admin/.output/server/node_modules/defu/dist/defu.mjs @@ -0,0 +1,69 @@ +function isPlainObject(value) { + if (value === null || typeof value !== "object") { + return false; + } + const prototype = Object.getPrototypeOf(value); + if (prototype !== null && prototype !== Object.prototype && Object.getPrototypeOf(prototype) !== null) { + return false; + } + if (Symbol.iterator in value) { + return false; + } + if (Symbol.toStringTag in value) { + return Object.prototype.toString.call(value) === "[object Module]"; + } + return true; +} + +function _defu(baseObject, defaults, namespace = ".", merger) { + if (!isPlainObject(defaults)) { + return _defu(baseObject, {}, namespace, merger); + } + const object = { ...defaults }; + for (const key of Object.keys(baseObject)) { + if (key === "__proto__" || key === "constructor") { + continue; + } + const value = baseObject[key]; + if (value === null || value === void 0) { + continue; + } + if (merger && merger(object, key, value, namespace)) { + continue; + } + if (Array.isArray(value) && Array.isArray(object[key])) { + object[key] = [...value, ...object[key]]; + } else if (isPlainObject(value) && isPlainObject(object[key])) { + object[key] = _defu( + value, + object[key], + (namespace ? `${namespace}.` : "") + key.toString(), + merger + ); + } else { + object[key] = value; + } + } + return object; +} +function createDefu(merger) { + return (...arguments_) => ( + // eslint-disable-next-line unicorn/no-array-reduce + arguments_.reduce((p, c) => _defu(p, c, "", merger), {}) + ); +} +const defu = createDefu(); +const defuFn = createDefu((object, key, currentValue) => { + if (object[key] !== void 0 && typeof currentValue === "function") { + object[key] = currentValue(object[key]); + return true; + } +}); +const defuArrayFn = createDefu((object, key, currentValue) => { + if (Array.isArray(object[key]) && typeof currentValue === "function") { + object[key] = currentValue(object[key]); + return true; + } +}); + +export { createDefu, defu as default, defu, defuArrayFn, defuFn }; diff --git a/frontend_admin/.output/server/node_modules/defu/package.json b/frontend_admin/.output/server/node_modules/defu/package.json new file mode 100644 index 0000000..ed181f1 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/defu/package.json @@ -0,0 +1,48 @@ +{ + "name": "defu", + "version": "6.1.7", + "description": "Recursively assign default properties. Lightweight and Fast!", + "license": "MIT", + "repository": "unjs/defu", + "files": [ + "dist", + "lib" + ], + "main": "./lib/defu.cjs", + "module": "./dist/defu.mjs", + "types": "./dist/defu.d.ts", + "exports": { + ".": { + "import": { + "types": "./dist/defu.d.mts", + "default": "./dist/defu.mjs" + }, + "require": { + "types": "./lib/defu.d.cts", + "default": "./lib/defu.cjs" + } + } + }, + "devDependencies": { + "@types/node": "^25.5.0", + "@typescript/native-preview": "7.0.0-dev.20260401.1", + "@vitest/coverage-v8": "^4.1.2", + "changelogen": "^0.6.2", + "eslint-config-unjs": "^0.6.2", + "expect-type": "^1.3.0", + "oxfmt": "^0.43.0", + "oxlint": "^1.58.0", + "typescript": "^6.0.2", + "unbuild": "^3.6.1", + "vitest": "^4.1.2" + }, + "scripts": { + "build": "unbuild", + "dev": "vitest", + "lint": "oxlint src && oxfmt --check src test", + "lint:fix": "oxlint src --fix && oxfmt src test", + "release": "pnpm test && pnpm build && changelogen --release && git push --follow-tags && pnpm publish", + "test": "pnpm lint && pnpm test:types && pnpm vitest run", + "test:types": "tsgo --noEmit" + } +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/destr/dist/index.mjs b/frontend_admin/.output/server/node_modules/destr/dist/index.mjs new file mode 100644 index 0000000..603ddc1 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/destr/dist/index.mjs @@ -0,0 +1,72 @@ +const suspectProtoRx = /"(?:_|\\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*:/; +const suspectConstructorRx = /"(?: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*:/; +const JsonSigRx = /^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/; +function jsonParseTransform(key, value) { + if (key === "__proto__" || key === "constructor" && value && typeof value === "object" && "prototype" in value) { + warnKeyDropped(key); + return; + } + return value; +} +function warnKeyDropped(key) { + console.warn(`[destr] Dropping "${key}" key to prevent prototype pollution.`); +} +function destr(value, options = {}) { + if (typeof value !== "string") { + return value; + } + if (value[0] === '"' && value[value.length - 1] === '"' && value.indexOf("\\") === -1) { + return value.slice(1, -1); + } + const _value = value.trim(); + if (_value.length <= 9) { + switch (_value.toLowerCase()) { + case "true": { + return true; + } + case "false": { + return false; + } + case "undefined": { + return void 0; + } + case "null": { + return null; + } + case "nan": { + return Number.NaN; + } + case "infinity": { + return Number.POSITIVE_INFINITY; + } + case "-infinity": { + return Number.NEGATIVE_INFINITY; + } + } + } + if (!JsonSigRx.test(value)) { + if (options.strict) { + throw new SyntaxError("[destr] Invalid JSON"); + } + return value; + } + try { + if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) { + if (options.strict) { + throw new Error("[destr] Possible prototype pollution"); + } + return JSON.parse(value, jsonParseTransform); + } + return JSON.parse(value); + } catch (error) { + if (options.strict) { + throw error; + } + return value; + } +} +function safeDestr(value, options = {}) { + return destr(value, { ...options, strict: true }); +} + +export { destr as default, destr, safeDestr }; diff --git a/frontend_admin/.output/server/node_modules/destr/package.json b/frontend_admin/.output/server/node_modules/destr/package.json new file mode 100644 index 0000000..2472217 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/destr/package.json @@ -0,0 +1,47 @@ +{ + "name": "destr", + "version": "2.0.5", + "description": "A faster, secure and convenient alternative for JSON.parse", + "repository": "unjs/destr", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./lib/index.cjs" + } + }, + "main": "./lib/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist", + "lib" + ], + "scripts": { + "bench:bun": "pnpm build && bun --bun ./test/bench.mjs", + "bench:node": "pnpm build && node ./test/bench.mjs", + "build": "unbuild", + "dev": "vitest dev", + "lint": "eslint . && prettier -c src test", + "lint:fix": "eslint . --fix && prettier -w src test", + "release": "pnpm test && pnpm build && changelogen --release --push && npm publish", + "test": "pnpm lint && vitest run --coverage" + }, + "devDependencies": { + "@hapi/bourne": "^3.0.0", + "@vitest/coverage-v8": "^3.1.1", + "changelogen": "^0.6.1", + "eslint": "^9.23.0", + "eslint-config-unjs": "^0.4.2", + "mitata": "^1.0.34", + "prettier": "^3.5.3", + "secure-json-parse": "^4.0.0", + "typescript": "^5.8.2", + "unbuild": "~3.4", + "vitest": "^3.1.1" + }, + "packageManager": "pnpm@10.7.1" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/h3/dist/index.mjs b/frontend_admin/.output/server/node_modules/h3/dist/index.mjs new file mode 100644 index 0000000..569d1d8 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/h3/dist/index.mjs @@ -0,0 +1,2498 @@ +import { withoutTrailingSlash, withoutBase, getQuery as getQuery$1, decode, withLeadingSlash, parseURL, joinURL, decodePath } from 'ufo'; +import { parse as parse$1, serialize, parseSetCookie } from 'cookie-es'; +import { createRouter as createRouter$1, toRouteMatcher } from 'radix3'; +import { defu } from 'defu'; +import destr from 'destr'; +import crypto from 'uncrypto'; +import { seal, defaults, unseal } from 'iron-webcrypto'; +import { IncomingMessage, ServerResponse } from 'node-mock-http'; + +function useBase(base, handler) { + base = withoutTrailingSlash(base); + if (!base || base === "/") { + return handler; + } + return eventHandler(async (event) => { + event.node.req.originalUrl = event.node.req.originalUrl || event.node.req.url || "/"; + const _path = event._path || event.node.req.url || "/"; + event._path = withoutBase(event.path || "/", base); + event.node.req.url = event._path; + try { + return await handler(event); + } finally { + event._path = event.node.req.url = _path; + } + }); +} + +function hasProp(obj, prop) { + try { + return prop in obj; + } catch { + return false; + } +} + +class H3Error extends Error { + static __h3_error__ = true; + statusCode = 500; + fatal = false; + unhandled = false; + statusMessage; + data; + cause; + constructor(message, opts = {}) { + super(message, opts); + if (opts.cause && !this.cause) { + this.cause = opts.cause; + } + } + toJSON() { + const obj = { + message: this.message, + statusCode: sanitizeStatusCode(this.statusCode, 500) + }; + if (this.statusMessage) { + obj.statusMessage = sanitizeStatusMessage(this.statusMessage); + } + if (this.data !== void 0) { + obj.data = this.data; + } + return obj; + } +} +function createError(input) { + if (typeof input === "string") { + return new H3Error(input); + } + if (isError(input)) { + return input; + } + const err = new H3Error(input.message ?? input.statusMessage ?? "", { + cause: input.cause || input + }); + if (hasProp(input, "stack")) { + try { + Object.defineProperty(err, "stack", { + get() { + return input.stack; + } + }); + } catch { + try { + err.stack = input.stack; + } catch { + } + } + } + if (input.data) { + err.data = input.data; + } + if (input.statusCode) { + err.statusCode = sanitizeStatusCode(input.statusCode, err.statusCode); + } else if (input.status) { + err.statusCode = sanitizeStatusCode(input.status, err.statusCode); + } + if (input.statusMessage) { + err.statusMessage = input.statusMessage; + } else if (input.statusText) { + err.statusMessage = input.statusText; + } + if (err.statusMessage) { + const originalMessage = err.statusMessage; + const sanitizedMessage = sanitizeStatusMessage(err.statusMessage); + if (sanitizedMessage !== originalMessage) { + console.warn( + "[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default." + ); + } + } + if (input.fatal !== void 0) { + err.fatal = input.fatal; + } + if (input.unhandled !== void 0) { + err.unhandled = input.unhandled; + } + return err; +} +function sendError(event, error, debug) { + if (event.handled) { + return; + } + const h3Error = isError(error) ? error : createError(error); + const responseBody = { + statusCode: h3Error.statusCode, + statusMessage: h3Error.statusMessage, + stack: [], + data: h3Error.data + }; + if (debug) { + responseBody.stack = (h3Error.stack || "").split("\n").map((l) => l.trim()); + } + if (event.handled) { + return; + } + const _code = Number.parseInt(h3Error.statusCode); + setResponseStatus(event, _code, h3Error.statusMessage); + event.node.res.setHeader("content-type", MIMES.json); + event.node.res.end(JSON.stringify(responseBody, void 0, 2)); +} +function isError(input) { + return input?.constructor?.__h3_error__ === true; +} + +function parse(multipartBodyBuffer, boundary) { + let lastline = ""; + let state = 0 /* INIT */; + let buffer = []; + const allParts = []; + let currentPartHeaders = []; + for (let i = 0; i < multipartBodyBuffer.length; i++) { + const prevByte = i > 0 ? multipartBodyBuffer[i - 1] : null; + const currByte = multipartBodyBuffer[i]; + const newLineChar = currByte === 10 || currByte === 13; + if (!newLineChar) { + lastline += String.fromCodePoint(currByte); + } + const newLineDetected = currByte === 10 && prevByte === 13; + if (0 /* INIT */ === state && newLineDetected) { + if ("--" + boundary === lastline) { + state = 1 /* READING_HEADERS */; + } + lastline = ""; + } else if (1 /* READING_HEADERS */ === state && newLineDetected) { + if (lastline.length > 0) { + const i2 = lastline.indexOf(":"); + if (i2 > 0) { + const name = lastline.slice(0, i2).toLowerCase(); + const value = lastline.slice(i2 + 1).trim(); + currentPartHeaders.push([name, value]); + } + } else { + state = 2 /* READING_DATA */; + buffer = []; + } + lastline = ""; + } else if (2 /* READING_DATA */ === state) { + if (lastline.length > boundary.length + 4) { + lastline = ""; + } + if ("--" + boundary === lastline) { + const j = buffer.length - lastline.length; + const part = buffer.slice(0, j - 1); + allParts.push(process(part, currentPartHeaders)); + buffer = []; + currentPartHeaders = []; + lastline = ""; + state = 3 /* READING_PART_SEPARATOR */; + } else { + buffer.push(currByte); + } + if (newLineDetected) { + lastline = ""; + } + } else if (3 /* READING_PART_SEPARATOR */ === state && newLineDetected) { + state = 1 /* READING_HEADERS */; + } + } + return allParts; +} +function process(data, headers) { + const dataObj = {}; + const contentDispositionHeader = headers.find((h) => h[0] === "content-disposition")?.[1] || ""; + for (const i of contentDispositionHeader.split(";")) { + const s = i.split("="); + if (s.length !== 2) { + continue; + } + const key = (s[0] || "").trim(); + if (key === "name" || key === "filename") { + const _value = (s[1] || "").trim().replace(/"/g, ""); + dataObj[key] = Buffer.from(_value, "latin1").toString("utf8"); + } + } + const contentType = headers.find((h) => h[0] === "content-type")?.[1] || ""; + if (contentType) { + dataObj.type = contentType; + } + dataObj.data = Buffer.from(data); + return dataObj; +} + +async function validateData(data, fn) { + try { + const res = await fn(data); + if (res === false) { + throw createValidationError(); + } + if (res === true) { + return data; + } + return res ?? data; + } catch (error) { + throw createValidationError(error); + } +} +function createValidationError(validateError) { + throw createError({ + status: 400, + statusMessage: "Validation Error", + message: validateError?.message || "Validation Error", + data: validateError + }); +} + +function getQuery(event) { + return getQuery$1(event.path || ""); +} +function getValidatedQuery(event, validate) { + const query = getQuery(event); + return validateData(query, validate); +} +function getRouterParams(event, opts = {}) { + let params = event.context.params || {}; + if (opts.decode) { + params = { ...params }; + for (const key in params) { + params[key] = decode(params[key]); + } + } + return params; +} +function getValidatedRouterParams(event, validate, opts = {}) { + const routerParams = getRouterParams(event, opts); + return validateData(routerParams, validate); +} +function getRouterParam(event, name, opts = {}) { + const params = getRouterParams(event, opts); + return params[name]; +} +function getMethod(event, defaultMethod = "GET") { + return (event.node.req.method || defaultMethod).toUpperCase(); +} +function isMethod(event, expected, allowHead) { + if (allowHead && event.method === "HEAD") { + return true; + } + if (typeof expected === "string") { + if (event.method === expected) { + return true; + } + } else if (expected.includes(event.method)) { + return true; + } + return false; +} +function assertMethod(event, expected, allowHead) { + if (!isMethod(event, expected, allowHead)) { + throw createError({ + statusCode: 405, + statusMessage: "HTTP method is not allowed." + }); + } +} +function getRequestHeaders(event) { + const _headers = {}; + for (const key in event.node.req.headers) { + const val = event.node.req.headers[key]; + _headers[key] = Array.isArray(val) ? val.filter(Boolean).join(", ") : val; + } + return _headers; +} +const getHeaders = getRequestHeaders; +function getRequestHeader(event, name) { + const headers = getRequestHeaders(event); + const value = headers[name.toLowerCase()]; + return value; +} +const getHeader = getRequestHeader; +function getRequestHost(event, opts = {}) { + if (opts.xForwardedHost) { + const _header = event.node.req.headers["x-forwarded-host"]; + const xForwardedHost = (_header || "").split(",").shift()?.trim(); + if (xForwardedHost) { + return xForwardedHost; + } + } + return event.node.req.headers.host || "localhost"; +} +function getRequestProtocol(event, opts = {}) { + if (opts.xForwardedProto !== false && event.node.req.headers["x-forwarded-proto"] === "https") { + return "https"; + } + return event.node.req.connection?.encrypted ? "https" : "http"; +} +const DOUBLE_SLASH_RE = /[/\\]{2,}/g; +function getRequestPath(event) { + const path = (event.node.req.url || "/").replace(DOUBLE_SLASH_RE, "/"); + return path; +} +function getRequestURL(event, opts = {}) { + const host = getRequestHost(event, opts); + const protocol = getRequestProtocol(event, opts); + const path = (event.node.req.originalUrl || event.path).replace( + /^[/\\]+/g, + "/" + ); + return new URL(path, `${protocol}://${host}`); +} +function toWebRequest(event) { + return event.web?.request || new Request(getRequestURL(event), { + // @ts-ignore Undici option + duplex: "half", + method: event.method, + headers: event.headers, + body: getRequestWebStream(event) + }); +} +function getRequestIP(event, opts = {}) { + if (event.context.clientAddress) { + return event.context.clientAddress; + } + if (opts.xForwardedFor) { + const xForwardedFor = getRequestHeader(event, "x-forwarded-for")?.split(",").shift()?.trim(); + if (xForwardedFor) { + return xForwardedFor; + } + } + if (event.node.req.socket.remoteAddress) { + return event.node.req.socket.remoteAddress; + } +} + +const RawBodySymbol = Symbol.for("h3RawBody"); +const ParsedBodySymbol = Symbol.for("h3ParsedBody"); +const PayloadMethods$1 = ["PATCH", "POST", "PUT", "DELETE"]; +function readRawBody(event, encoding = "utf8") { + assertMethod(event, PayloadMethods$1); + const _rawBody = event._requestBody || event.web?.request?.body || event.node.req[RawBodySymbol] || event.node.req.rawBody || event.node.req.body; + if (_rawBody) { + const promise2 = Promise.resolve(_rawBody).then((_resolved) => { + if (Buffer.isBuffer(_resolved)) { + return _resolved; + } + if (typeof _resolved.pipeTo === "function") { + return new Promise((resolve, reject) => { + const chunks = []; + _resolved.pipeTo( + new WritableStream({ + write(chunk) { + chunks.push(chunk); + }, + close() { + resolve(Buffer.concat(chunks)); + }, + abort(reason) { + reject(reason); + } + }) + ).catch(reject); + }); + } else if (typeof _resolved.pipe === "function") { + return new Promise((resolve, reject) => { + const chunks = []; + _resolved.on("data", (chunk) => { + chunks.push(chunk); + }).on("end", () => { + resolve(Buffer.concat(chunks)); + }).on("error", reject); + }); + } + if (_resolved.constructor === Object) { + return Buffer.from(JSON.stringify(_resolved)); + } + if (_resolved instanceof URLSearchParams) { + return Buffer.from(_resolved.toString()); + } + if (_resolved instanceof FormData) { + return new Response(_resolved).bytes().then((uint8arr) => Buffer.from(uint8arr)); + } + return Buffer.from(_resolved); + }); + return encoding ? promise2.then((buff) => buff.toString(encoding)) : promise2; + } + if (!Number.parseInt(event.node.req.headers["content-length"] || "") && !/\bchunked\b/i.test( + String(event.node.req.headers["transfer-encoding"] ?? "") + )) { + return Promise.resolve(void 0); + } + const promise = event.node.req[RawBodySymbol] = new Promise( + (resolve, reject) => { + const bodyData = []; + event.node.req.on("error", (err) => { + reject(err); + }).on("data", (chunk) => { + bodyData.push(chunk); + }).on("end", () => { + resolve(Buffer.concat(bodyData)); + }); + } + ); + const result = encoding ? promise.then((buff) => buff.toString(encoding)) : promise; + return result; +} +async function readBody(event, options = {}) { + const request = event.node.req; + if (hasProp(request, ParsedBodySymbol)) { + return request[ParsedBodySymbol]; + } + const contentType = request.headers["content-type"] || ""; + const body = await readRawBody(event); + let parsed; + if (contentType === "application/json") { + parsed = _parseJSON(body, options.strict ?? true); + } else if (contentType.startsWith("application/x-www-form-urlencoded")) { + parsed = _parseURLEncodedBody(body); + } else if (contentType.startsWith("text/")) { + parsed = body; + } else { + parsed = _parseJSON(body, options.strict ?? false); + } + request[ParsedBodySymbol] = parsed; + return parsed; +} +async function readValidatedBody(event, validate) { + const _body = await readBody(event, { strict: true }); + return validateData(_body, validate); +} +async function readMultipartFormData(event) { + const contentType = getRequestHeader(event, "content-type"); + if (!contentType || !contentType.startsWith("multipart/form-data")) { + return; + } + const boundary = contentType.match(/boundary=([^;]*)(;|$)/i)?.[1]; + if (!boundary) { + return; + } + const body = await readRawBody(event, false); + if (!body) { + return; + } + return parse(body, boundary); +} +async function readFormData(event) { + return await toWebRequest(event).formData(); +} +function getRequestWebStream(event) { + if (!PayloadMethods$1.includes(event.method)) { + return; + } + const bodyStream = event.web?.request?.body || event._requestBody; + if (bodyStream) { + return bodyStream; + } + const _hasRawBody = RawBodySymbol in event.node.req || "rawBody" in event.node.req || "body" in event.node.req || "__unenv__" in event.node.req; + if (_hasRawBody) { + return new ReadableStream({ + async start(controller) { + const _rawBody = await readRawBody(event, false); + if (_rawBody) { + controller.enqueue(_rawBody); + } + controller.close(); + } + }); + } + return new ReadableStream({ + start: (controller) => { + event.node.req.on("data", (chunk) => { + controller.enqueue(chunk); + }); + event.node.req.on("end", () => { + controller.close(); + }); + event.node.req.on("error", (err) => { + controller.error(err); + }); + } + }); +} +function _parseJSON(body = "", strict) { + if (!body) { + return void 0; + } + try { + return destr(body, { strict }); + } catch { + throw createError({ + statusCode: 400, + statusMessage: "Bad Request", + message: "Invalid JSON body" + }); + } +} +function _parseURLEncodedBody(body) { + const form = new URLSearchParams(body); + const parsedForm = /* @__PURE__ */ Object.create(null); + for (const [key, value] of form.entries()) { + if (hasProp(parsedForm, key)) { + if (!Array.isArray(parsedForm[key])) { + parsedForm[key] = [parsedForm[key]]; + } + parsedForm[key].push(value); + } else { + parsedForm[key] = value; + } + } + return parsedForm; +} + +function handleCacheHeaders(event, opts) { + const cacheControls = ["public", ...opts.cacheControls || []]; + let cacheMatched = false; + if (opts.maxAge !== void 0) { + cacheControls.push(`max-age=${+opts.maxAge}`, `s-maxage=${+opts.maxAge}`); + } + if (opts.modifiedTime) { + const modifiedTime = new Date(opts.modifiedTime); + const ifModifiedSince = event.node.req.headers["if-modified-since"]; + event.node.res.setHeader("last-modified", modifiedTime.toUTCString()); + if (ifModifiedSince && new Date(ifModifiedSince) >= modifiedTime) { + cacheMatched = true; + } + } + if (opts.etag) { + event.node.res.setHeader("etag", opts.etag); + const ifNonMatch = event.node.req.headers["if-none-match"]; + if (ifNonMatch === opts.etag) { + cacheMatched = true; + } + } + event.node.res.setHeader("cache-control", cacheControls.join(", ")); + if (cacheMatched) { + event.node.res.statusCode = 304; + if (!event.handled) { + event.node.res.end(); + } + return true; + } + return false; +} + +const MIMES = { + html: "text/html", + json: "application/json" +}; + +const DISALLOWED_STATUS_CHARS = /[^\u0009\u0020-\u007E]/g; +function sanitizeStatusMessage(statusMessage = "") { + return statusMessage.replace(DISALLOWED_STATUS_CHARS, ""); +} +function sanitizeStatusCode(statusCode, defaultStatusCode = 200) { + if (!statusCode) { + return defaultStatusCode; + } + if (typeof statusCode === "string") { + statusCode = Number.parseInt(statusCode, 10); + } + if (statusCode < 100 || statusCode > 999) { + return defaultStatusCode; + } + return statusCode; +} + +function getDistinctCookieKey(name, opts) { + return [name, opts.domain || "", opts.path || "/"].join(";"); +} + +function parseCookies(event) { + return parse$1(event.node.req.headers.cookie || ""); +} +function getCookie(event, name) { + return parseCookies(event)[name]; +} +function setCookie(event, name, value, serializeOptions = {}) { + if (!serializeOptions.path) { + serializeOptions = { path: "/", ...serializeOptions }; + } + const newCookie = serialize(name, value, serializeOptions); + const currentCookies = splitCookiesString( + event.node.res.getHeader("set-cookie") + ); + if (currentCookies.length === 0) { + event.node.res.setHeader("set-cookie", newCookie); + return; + } + const newCookieKey = getDistinctCookieKey(name, serializeOptions); + event.node.res.removeHeader("set-cookie"); + for (const cookie of currentCookies) { + const parsed = parseSetCookie(cookie); + const key = getDistinctCookieKey(parsed.name, parsed); + if (key === newCookieKey) { + continue; + } + event.node.res.appendHeader("set-cookie", cookie); + } + event.node.res.appendHeader("set-cookie", newCookie); +} +function deleteCookie(event, name, serializeOptions) { + setCookie(event, name, "", { + ...serializeOptions, + maxAge: 0 + }); +} +function splitCookiesString(cookiesString) { + if (Array.isArray(cookiesString)) { + return cookiesString.flatMap((c) => splitCookiesString(c)); + } + if (typeof cookiesString !== "string") { + return []; + } + const cookiesStrings = []; + let pos = 0; + let start; + let ch; + let lastComma; + let nextStart; + let cookiesSeparatorFound; + const skipWhitespace = () => { + while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { + pos += 1; + } + return pos < cookiesString.length; + }; + const notSpecialChar = () => { + ch = cookiesString.charAt(pos); + return ch !== "=" && ch !== ";" && ch !== ","; + }; + while (pos < cookiesString.length) { + start = pos; + cookiesSeparatorFound = false; + while (skipWhitespace()) { + ch = cookiesString.charAt(pos); + if (ch === ",") { + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while (pos < cookiesString.length && notSpecialChar()) { + pos += 1; + } + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + cookiesSeparatorFound = true; + pos = nextStart; + cookiesStrings.push(cookiesString.slice(start, lastComma)); + start = pos; + } else { + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.slice(start)); + } + } + return cookiesStrings; +} + +function serializeIterableValue(value) { + switch (typeof value) { + case "string": { + return value; + } + case "boolean": + case "number": + case "bigint": + case "symbol": { + return value.toString(); + } + case "function": + case "undefined": { + return void 0; + } + case "object": { + if (value instanceof Uint8Array) { + return value; + } + return JSON.stringify(value); + } + } +} +function coerceIterable(iterable) { + if (typeof iterable === "function") { + iterable = iterable(); + } + if (Symbol.iterator in iterable) { + return iterable[Symbol.iterator](); + } + if (Symbol.asyncIterator in iterable) { + return iterable[Symbol.asyncIterator](); + } + return iterable; +} + +const defer = typeof setImmediate === "undefined" ? (fn) => fn() : setImmediate; +function send(event, data, type) { + if (type) { + defaultContentType(event, type); + } + return new Promise((resolve) => { + defer(() => { + if (!event.handled) { + event.node.res.end(data); + } + resolve(); + }); + }); +} +function sendNoContent(event, code) { + if (event.handled) { + return; + } + if (!code && event.node.res.statusCode !== 200) { + code = event.node.res.statusCode; + } + const _code = sanitizeStatusCode(code, 204); + if (_code === 204) { + event.node.res.removeHeader("content-length"); + } + event.node.res.writeHead(_code); + event.node.res.end(); +} +function setResponseStatus(event, code, text) { + if (code) { + event.node.res.statusCode = sanitizeStatusCode( + code, + event.node.res.statusCode + ); + } + if (text) { + event.node.res.statusMessage = sanitizeStatusMessage(text); + } +} +function getResponseStatus(event) { + return event.node.res.statusCode; +} +function getResponseStatusText(event) { + return event.node.res.statusMessage; +} +function defaultContentType(event, type) { + if (type && event.node.res.statusCode !== 304 && !event.node.res.getHeader("content-type")) { + event.node.res.setHeader("content-type", type); + } +} +function sendRedirect(event, location, code = 302) { + event.node.res.statusCode = sanitizeStatusCode( + code, + event.node.res.statusCode + ); + event.node.res.setHeader("location", location); + const encodedLoc = location.replace(/"/g, "%22"); + const html = ``; + return send(event, html, MIMES.html); +} +function getResponseHeaders(event) { + return event.node.res.getHeaders(); +} +function getResponseHeader(event, name) { + return event.node.res.getHeader(name); +} +function setResponseHeaders(event, headers) { + for (const [name, value] of Object.entries(headers)) { + event.node.res.setHeader( + name, + value + ); + } +} +const setHeaders = setResponseHeaders; +function setResponseHeader(event, name, value) { + event.node.res.setHeader(name, value); +} +const setHeader = setResponseHeader; +function appendResponseHeaders(event, headers) { + for (const [name, value] of Object.entries(headers)) { + appendResponseHeader(event, name, value); + } +} +const appendHeaders = appendResponseHeaders; +function appendResponseHeader(event, name, value) { + let current = event.node.res.getHeader(name); + if (!current) { + event.node.res.setHeader(name, value); + return; + } + if (!Array.isArray(current)) { + current = [current.toString()]; + } + event.node.res.setHeader(name, [...current, value]); +} +const appendHeader = appendResponseHeader; +function clearResponseHeaders(event, headerNames) { + if (headerNames && headerNames.length > 0) { + for (const name of headerNames) { + removeResponseHeader(event, name); + } + } else { + for (const [name] of Object.entries(getResponseHeaders(event))) { + removeResponseHeader(event, name); + } + } +} +function removeResponseHeader(event, name) { + return event.node.res.removeHeader(name); +} +function isStream(data) { + if (!data || typeof data !== "object") { + return false; + } + if (typeof data.pipe === "function") { + if (typeof data._read === "function") { + return true; + } + if (typeof data.abort === "function") { + return true; + } + } + if (typeof data.pipeTo === "function") { + return true; + } + return false; +} +function isWebResponse(data) { + return typeof Response !== "undefined" && data instanceof Response; +} +function sendStream(event, stream) { + if (!stream || typeof stream !== "object") { + throw new Error("[h3] Invalid stream provided."); + } + event.node.res._data = stream; + if (!event.node.res.socket) { + event._handled = true; + return Promise.resolve(); + } + if (hasProp(stream, "pipeTo") && typeof stream.pipeTo === "function") { + return stream.pipeTo( + new WritableStream({ + write(chunk) { + event.node.res.write(chunk); + } + }) + ).then(() => { + event.node.res.end(); + }); + } + if (hasProp(stream, "pipe") && typeof stream.pipe === "function") { + return new Promise((resolve, reject) => { + stream.pipe(event.node.res); + if (stream.on) { + stream.on("end", () => { + event.node.res.end(); + resolve(); + }); + stream.on("error", (error) => { + reject(error); + }); + } + event.node.res.on("close", () => { + if (stream.abort) { + stream.abort(); + } + }); + }); + } + throw new Error("[h3] Invalid or incompatible stream provided."); +} +const noop = () => { +}; +function writeEarlyHints(event, hints, cb = noop) { + if (!event.node.res.socket) { + cb(); + return; + } + if (typeof hints === "string" || Array.isArray(hints)) { + hints = { link: hints }; + } + if (hints.link) { + hints.link = Array.isArray(hints.link) ? hints.link : hints.link.split(","); + } + const headers = Object.entries(hints).map( + (e) => [e[0].toLowerCase(), e[1]] + ); + if (headers.length === 0) { + cb(); + return; + } + let hint = "HTTP/1.1 103 Early Hints"; + if (hints.link) { + hint += `\r +Link: ${hints.link.join(", ")}`; + } + for (const [header, value] of headers) { + if (header === "link") { + continue; + } + hint += `\r +${header}: ${value}`; + } + if (event.node.res.socket) { + event.node.res.socket.write( + `${hint}\r +\r +`, + "utf8", + cb + ); + } else { + cb(); + } +} +function sendWebResponse(event, response) { + for (const [key, value] of response.headers) { + if (key === "set-cookie") { + event.node.res.appendHeader(key, splitCookiesString(value)); + } else { + event.node.res.setHeader(key, value); + } + } + if (response.status) { + event.node.res.statusCode = sanitizeStatusCode( + response.status, + event.node.res.statusCode + ); + } + if (response.statusText) { + event.node.res.statusMessage = sanitizeStatusMessage(response.statusText); + } + if (response.redirected) { + event.node.res.setHeader("location", response.url); + } + if (!response.body) { + event.node.res.end(); + return; + } + return sendStream(event, response.body); +} +function sendIterable(event, iterable, options) { + const serializer = options?.serializer ?? serializeIterableValue; + const iterator = coerceIterable(iterable); + return sendStream( + event, + new ReadableStream({ + async pull(controller) { + const { value, done } = await iterator.next(); + if (value !== void 0) { + const chunk = serializer(value); + if (chunk !== void 0) { + controller.enqueue(chunk); + } + } + if (done) { + controller.close(); + } + }, + cancel() { + iterator.return?.(); + } + }) + ); +} + +function resolveCorsOptions(options = {}) { + const defaultOptions = { + origin: "*", + methods: "*", + allowHeaders: "*", + exposeHeaders: "*", + credentials: false, + maxAge: false, + preflight: { + statusCode: 204 + } + }; + return defu(options, defaultOptions); +} +function isPreflightRequest(event) { + const origin = getRequestHeader(event, "origin"); + const accessControlRequestMethod = getRequestHeader( + event, + "access-control-request-method" + ); + return event.method === "OPTIONS" && !!origin && !!accessControlRequestMethod; +} +function isCorsOriginAllowed(origin, options) { + const { origin: originOption } = options; + if (!origin || !originOption || originOption === "*" || originOption === "null") { + return true; + } + if (Array.isArray(originOption)) { + return originOption.some((_origin) => { + if (_origin instanceof RegExp) { + return _origin.test(origin); + } + return origin === _origin; + }); + } + return originOption(origin); +} +function createOriginHeaders(event, options) { + const { origin: originOption } = options; + const origin = getRequestHeader(event, "origin"); + if (!origin || !originOption || originOption === "*") { + return { "access-control-allow-origin": "*" }; + } + if (typeof originOption === "string") { + return { "access-control-allow-origin": originOption, vary: "origin" }; + } + return isCorsOriginAllowed(origin, options) ? { "access-control-allow-origin": origin, vary: "origin" } : {}; +} +function createMethodsHeaders(options) { + const { methods } = options; + if (!methods) { + return {}; + } + if (methods === "*") { + return { "access-control-allow-methods": "*" }; + } + return methods.length > 0 ? { "access-control-allow-methods": methods.join(",") } : {}; +} +function createCredentialsHeaders(options) { + const { credentials } = options; + if (credentials) { + return { "access-control-allow-credentials": "true" }; + } + return {}; +} +function createAllowHeaderHeaders(event, options) { + const { allowHeaders } = options; + if (!allowHeaders || allowHeaders === "*" || allowHeaders.length === 0) { + const header = getRequestHeader(event, "access-control-request-headers"); + return header ? { + "access-control-allow-headers": header, + vary: "access-control-request-headers" + } : {}; + } + return { + "access-control-allow-headers": allowHeaders.join(","), + vary: "access-control-request-headers" + }; +} +function createExposeHeaders(options) { + const { exposeHeaders } = options; + if (!exposeHeaders) { + return {}; + } + if (exposeHeaders === "*") { + return { "access-control-expose-headers": exposeHeaders }; + } + return { "access-control-expose-headers": exposeHeaders.join(",") }; +} +function appendCorsPreflightHeaders(event, options) { + appendHeaders(event, createOriginHeaders(event, options)); + appendHeaders(event, createCredentialsHeaders(options)); + appendHeaders(event, createExposeHeaders(options)); + appendHeaders(event, createMethodsHeaders(options)); + appendHeaders(event, createAllowHeaderHeaders(event, options)); +} +function appendCorsHeaders(event, options) { + appendHeaders(event, createOriginHeaders(event, options)); + appendHeaders(event, createCredentialsHeaders(options)); + appendHeaders(event, createExposeHeaders(options)); +} + +function handleCors(event, options) { + const _options = resolveCorsOptions(options); + if (isPreflightRequest(event)) { + appendCorsPreflightHeaders(event, options); + sendNoContent(event, _options.preflight.statusCode); + return true; + } + appendCorsHeaders(event, options); + return false; +} + +async function getRequestFingerprint(event, opts = {}) { + const fingerprint = []; + if (opts.ip !== false) { + fingerprint.push( + getRequestIP(event, { xForwardedFor: opts.xForwardedFor }) + ); + } + if (opts.method === true) { + fingerprint.push(event.method); + } + if (opts.path === true) { + fingerprint.push(event.path); + } + if (opts.userAgent === true) { + fingerprint.push(getRequestHeader(event, "user-agent")); + } + const fingerprintString = fingerprint.filter(Boolean).join("|"); + if (!fingerprintString) { + return null; + } + if (opts.hash === false) { + return fingerprintString; + } + const buffer = await crypto.subtle.digest( + opts.hash || "SHA-1", + new TextEncoder().encode(fingerprintString) + ); + const hash = [...new Uint8Array(buffer)].map((b) => b.toString(16).padStart(2, "0")).join(""); + return hash; +} + +const PayloadMethods = /* @__PURE__ */ new Set(["PATCH", "POST", "PUT", "DELETE"]); +const ignoredHeaders = /* @__PURE__ */ new Set([ + "transfer-encoding", + "accept-encoding", + "connection", + "keep-alive", + "upgrade", + "expect", + "host", + "accept" +]); +async function proxyRequest(event, target, opts = {}) { + let body; + let duplex; + if (PayloadMethods.has(event.method)) { + if (opts.streamRequest) { + body = getRequestWebStream(event); + duplex = "half"; + } else { + body = await readRawBody(event, false).catch(() => void 0); + } + } + const method = opts.fetchOptions?.method || event.method; + const fetchHeaders = mergeHeaders( + getProxyRequestHeaders(event, { host: target.startsWith("/") }), + opts.fetchOptions?.headers, + opts.headers + ); + return sendProxy(event, target, { + ...opts, + fetchOptions: { + method, + body, + duplex, + ...opts.fetchOptions, + headers: fetchHeaders + } + }); +} +async function sendProxy(event, target, opts = {}) { + let response; + try { + response = await _getFetch(opts.fetch)(target, { + headers: opts.headers, + ignoreResponseError: true, + // make $ofetch.raw transparent + ...opts.fetchOptions + }); + } catch (error) { + throw createError({ + status: 502, + statusMessage: "Bad Gateway", + cause: error + }); + } + event.node.res.statusCode = sanitizeStatusCode( + response.status, + event.node.res.statusCode + ); + event.node.res.statusMessage = sanitizeStatusMessage(response.statusText); + const cookies = []; + for (const [key, value] of response.headers.entries()) { + if (key === "content-encoding") { + continue; + } + if (key === "content-length") { + continue; + } + if (key === "set-cookie") { + cookies.push(...splitCookiesString(value)); + continue; + } + event.node.res.setHeader(key, value); + } + if (cookies.length > 0) { + event.node.res.setHeader( + "set-cookie", + cookies.map((cookie) => { + if (opts.cookieDomainRewrite) { + cookie = rewriteCookieProperty( + cookie, + opts.cookieDomainRewrite, + "domain" + ); + } + if (opts.cookiePathRewrite) { + cookie = rewriteCookieProperty( + cookie, + opts.cookiePathRewrite, + "path" + ); + } + return cookie; + }) + ); + } + if (opts.onResponse) { + await opts.onResponse(event, response); + } + if (response._data !== void 0) { + return response._data; + } + if (event.handled) { + return; + } + if (opts.sendStream === false) { + const data = new Uint8Array(await response.arrayBuffer()); + return event.node.res.end(data); + } + if (response.body) { + for await (const chunk of response.body) { + event.node.res.write(chunk); + } + } + return event.node.res.end(); +} +function getProxyRequestHeaders(event, opts) { + const headers = /* @__PURE__ */ Object.create(null); + const reqHeaders = getRequestHeaders(event); + for (const name in reqHeaders) { + if (!ignoredHeaders.has(name) || name === "host" && opts?.host) { + headers[name] = reqHeaders[name]; + } + } + return headers; +} +function fetchWithEvent(event, req, init, options) { + return _getFetch(options?.fetch)(req, { + ...init, + context: init?.context || event.context, + headers: { + ...getProxyRequestHeaders(event, { + host: typeof req === "string" && req.startsWith("/") + }), + ...init?.headers + } + }); +} +function _getFetch(_fetch) { + if (_fetch) { + return _fetch; + } + if (globalThis.fetch) { + return globalThis.fetch; + } + throw new Error( + "fetch is not available. Try importing `node-fetch-native/polyfill` for Node.js." + ); +} +function rewriteCookieProperty(header, map, property) { + const _map = typeof map === "string" ? { "*": map } : map; + return header.replace( + new RegExp(`(;\\s*${property}=)([^;]+)`, "gi"), + (match, prefix, previousValue) => { + let newValue; + if (previousValue in _map) { + newValue = _map[previousValue]; + } else if ("*" in _map) { + newValue = _map["*"]; + } else { + return match; + } + return newValue ? prefix + newValue : ""; + } + ); +} +function mergeHeaders(defaults, ...inputs) { + const _inputs = inputs.filter(Boolean); + if (_inputs.length === 0) { + return defaults; + } + const merged = new Headers(defaults); + for (const input of _inputs) { + const entries = Array.isArray(input) ? input : typeof input.entries === "function" ? input.entries() : Object.entries(input); + for (const [key, value] of entries) { + if (value !== void 0) { + merged.set(key, value); + } + } + } + return merged; +} + +const getSessionPromise = Symbol("getSession"); +const DEFAULT_NAME = "h3"; +const DEFAULT_COOKIE = { + path: "/", + secure: true, + httpOnly: true +}; +async function useSession(event, config) { + const sessionName = config.name || DEFAULT_NAME; + await getSession(event, config); + const sessionManager = { + get id() { + return event.context.sessions?.[sessionName]?.id; + }, + get data() { + return event.context.sessions?.[sessionName]?.data || {}; + }, + update: async (update) => { + if (!isEvent(event)) { + throw new Error("[h3] Cannot update read-only session."); + } + await updateSession(event, config, update); + return sessionManager; + }, + clear: () => { + if (!isEvent(event)) { + throw new Error("[h3] Cannot clear read-only session."); + } + clearSession(event, config); + return Promise.resolve(sessionManager); + } + }; + return sessionManager; +} +async function getSession(event, config) { + const sessionName = config.name || DEFAULT_NAME; + if (!event.context.sessions) { + event.context.sessions = /* @__PURE__ */ Object.create(null); + } + const existingSession = event.context.sessions[sessionName]; + if (existingSession) { + return existingSession[getSessionPromise] || existingSession; + } + const session = { + id: "", + createdAt: 0, + data: /* @__PURE__ */ Object.create(null) + }; + event.context.sessions[sessionName] = session; + let sealedSession; + if (config.sessionHeader !== false) { + const headerName = typeof config.sessionHeader === "string" ? config.sessionHeader.toLowerCase() : `x-${sessionName.toLowerCase()}-session`; + const headerValue = _getReqHeader(event, headerName); + if (typeof headerValue === "string") { + sealedSession = headerValue; + } + } + if (!sealedSession) { + const cookieHeader = _getReqHeader(event, "cookie"); + if (cookieHeader) { + sealedSession = parse$1(cookieHeader + "")[sessionName]; + } + } + if (sealedSession) { + const promise = unsealSession(event, config, sealedSession).catch(() => { + }).then((unsealed) => { + Object.assign(session, unsealed); + delete event.context.sessions[sessionName][getSessionPromise]; + return session; + }); + event.context.sessions[sessionName][getSessionPromise] = promise; + await promise; + } + if (!session.id) { + if (!isEvent(event)) { + throw new Error( + "Cannot initialize a new session. Make sure using `useSession(event)` in main handler." + ); + } + session.id = config.generateId?.() ?? (config.crypto || crypto).randomUUID(); + session.createdAt = Date.now(); + await updateSession(event, config); + } + return session; +} +function _getReqHeader(event, name) { + if (event.node) { + return event.node?.req.headers[name]; + } + if (event.request) { + return event.request.headers?.get(name); + } + if (event.headers) { + return event.headers.get(name); + } +} +async function updateSession(event, config, update) { + const sessionName = config.name || DEFAULT_NAME; + const session = event.context.sessions?.[sessionName] || await getSession(event, config); + if (typeof update === "function") { + update = update(session.data); + } + if (update) { + Object.assign(session.data, update); + } + if (config.cookie !== false) { + const sealed = await sealSession(event, config); + setCookie(event, sessionName, sealed, { + ...DEFAULT_COOKIE, + expires: config.maxAge ? new Date(session.createdAt + config.maxAge * 1e3) : void 0, + ...config.cookie + }); + } + return session; +} +async function sealSession(event, config) { + const sessionName = config.name || DEFAULT_NAME; + const session = event.context.sessions?.[sessionName] || await getSession(event, config); + const sealed = await seal( + config.crypto || crypto, + session, + config.password, + { + ...defaults, + ttl: config.maxAge ? config.maxAge * 1e3 : 0, + ...config.seal + } + ); + return sealed; +} +async function unsealSession(_event, config, sealed) { + const unsealed = await unseal( + config.crypto || crypto, + sealed, + config.password, + { + ...defaults, + ttl: config.maxAge ? config.maxAge * 1e3 : 0, + ...config.seal + } + ); + if (config.maxAge) { + const age = Date.now() - (unsealed.createdAt || Number.NEGATIVE_INFINITY); + if (age > config.maxAge * 1e3) { + throw new Error("Session expired!"); + } + } + return unsealed; +} +function clearSession(event, config) { + const sessionName = config.name || DEFAULT_NAME; + if (event.context.sessions?.[sessionName]) { + delete event.context.sessions[sessionName]; + } + setCookie(event, sessionName, "", { + ...DEFAULT_COOKIE, + ...config.cookie + }); + return Promise.resolve(); +} + +function formatEventStreamMessage(message) { + let result = ""; + if (message.id) { + result += `id: ${_sanitizeSingleLine(message.id)} +`; + } + if (message.event) { + result += `event: ${_sanitizeSingleLine(message.event)} +`; + } + if (typeof message.retry === "number" && Number.isInteger(message.retry)) { + result += `retry: ${message.retry} +`; + } + const data = typeof message.data === "string" ? message.data : ""; + for (const line of data.split(/\r\n|\r|\n/)) { + result += `data: ${line} +`; + } + result += "\n"; + return result; +} +function _sanitizeSingleLine(value) { + return value.replace(/[\n\r]/g, ""); +} +function formatEventStreamMessages(messages) { + let result = ""; + for (const msg of messages) { + result += formatEventStreamMessage(msg); + } + return result; +} +function setEventStreamHeaders(event) { + const headers = { + "Content-Type": "text/event-stream", + "Cache-Control": "private, no-cache, no-store, no-transform, must-revalidate, max-age=0", + "X-Accel-Buffering": "no" + // prevent nginx from buffering the response + }; + if (!isHttp2Request(event)) { + headers.Connection = "keep-alive"; + } + setResponseHeaders(event, headers); +} +function isHttp2Request(event) { + return getHeader(event, ":path") !== void 0 && getHeader(event, ":method") !== void 0; +} + +class EventStream { + _h3Event; + _transformStream = new TransformStream(); + _writer; + _encoder = new TextEncoder(); + _writerIsClosed = false; + _paused = false; + _unsentData; + _disposed = false; + _handled = false; + constructor(event, opts = {}) { + this._h3Event = event; + this._writer = this._transformStream.writable.getWriter(); + this._writer.closed.then(() => { + this._writerIsClosed = true; + }); + if (opts.autoclose !== false) { + this._h3Event.node.req.on("close", () => this.close()); + } + } + async push(message) { + if (typeof message === "string") { + await this._sendEvent({ data: message }); + return; + } + if (Array.isArray(message)) { + if (message.length === 0) { + return; + } + if (typeof message[0] === "string") { + const msgs = []; + for (const item of message) { + msgs.push({ data: item }); + } + await this._sendEvents(msgs); + return; + } + await this._sendEvents(message); + return; + } + await this._sendEvent(message); + } + async _sendEvent(message) { + if (this._writerIsClosed) { + return; + } + if (this._paused && !this._unsentData) { + this._unsentData = formatEventStreamMessage(message); + return; + } + if (this._paused) { + this._unsentData += formatEventStreamMessage(message); + return; + } + await this._writer.write(this._encoder.encode(formatEventStreamMessage(message))).catch(); + } + async _sendEvents(messages) { + if (this._writerIsClosed) { + return; + } + const payload = formatEventStreamMessages(messages); + if (this._paused && !this._unsentData) { + this._unsentData = payload; + return; + } + if (this._paused) { + this._unsentData += payload; + return; + } + await this._writer.write(this._encoder.encode(payload)).catch(); + } + pause() { + this._paused = true; + } + get isPaused() { + return this._paused; + } + async resume() { + this._paused = false; + await this.flush(); + } + async flush() { + if (this._writerIsClosed) { + return; + } + if (this._unsentData?.length) { + await this._writer.write(this._encoder.encode(this._unsentData)); + this._unsentData = void 0; + } + } + /** + * Close the stream and the connection if the stream is being sent to the client + */ + async close() { + if (this._disposed) { + return; + } + if (!this._writerIsClosed) { + try { + await this._writer.close(); + } catch { + } + } + if (this._h3Event._handled && this._handled && !this._h3Event.node.res.closed) { + this._h3Event.node.res.end(); + } + this._disposed = true; + } + /** + * Triggers callback when the writable stream is closed. + * It is also triggered after calling the `close()` method. + */ + onClosed(cb) { + this._writer.closed.then(cb); + } + async send() { + setEventStreamHeaders(this._h3Event); + setResponseStatus(this._h3Event, 200); + this._h3Event._handled = true; + this._handled = true; + await sendStream(this._h3Event, this._transformStream.readable); + } +} + +function createEventStream(event, opts) { + return new EventStream(event, opts); +} + +async function serveStatic(event, options) { + if (event.method !== "GET" && event.method !== "HEAD") { + if (!options.fallthrough) { + throw createError({ + statusMessage: "Method Not Allowed", + statusCode: 405 + }); + } + return false; + } + const originalId = withLeadingSlash( + withoutTrailingSlash(parseURL(event.path).pathname) + ); + if (/(^|[\\/])(\.\.|%2e%2e|%2e\.|\.%2e)($|[\\/])/i.test(originalId)) { + if (!options.fallthrough) { + throw createError({ statusCode: 404 }); + } + return false; + } + const acceptEncodings = parseAcceptEncoding( + getRequestHeader(event, "accept-encoding"), + options.encodings + ); + if (acceptEncodings.length > 1) { + setResponseHeader(event, "vary", "accept-encoding"); + } + let id = originalId; + let meta; + const _ids = idSearchPaths( + originalId, + acceptEncodings, + options.indexNames || ["/index.html"] + ); + for (const _id of _ids) { + const _meta = await options.getMeta(_id); + if (_meta) { + meta = _meta; + id = _id; + break; + } + } + if (!meta) { + if (!options.fallthrough) { + throw createError({ statusCode: 404 }); + } + return false; + } + if (meta.etag && !getResponseHeader(event, "etag")) { + setResponseHeader(event, "etag", meta.etag); + } + const ifNotMatch = meta.etag && getRequestHeader(event, "if-none-match") === meta.etag; + if (ifNotMatch) { + setResponseStatus(event, 304, "Not Modified"); + return send(event, ""); + } + if (meta.mtime) { + const mtimeDate = new Date(meta.mtime); + const ifModifiedSinceH = getRequestHeader(event, "if-modified-since"); + if (ifModifiedSinceH && new Date(ifModifiedSinceH) >= mtimeDate) { + setResponseStatus(event, 304, "Not Modified"); + return send(event, null); + } + if (!getResponseHeader(event, "last-modified")) { + setResponseHeader(event, "last-modified", mtimeDate.toUTCString()); + } + } + if (meta.type && !getResponseHeader(event, "content-type")) { + setResponseHeader(event, "content-type", meta.type); + } + if (meta.encoding && !getResponseHeader(event, "content-encoding")) { + setResponseHeader(event, "content-encoding", meta.encoding); + } + if (meta.size !== void 0 && meta.size > 0 && !getResponseHeader(event, "content-length")) { + setResponseHeader(event, "content-length", meta.size); + } + if (event.method === "HEAD") { + return send(event, null); + } + const contents = await options.getContents(id); + return isStream(contents) ? sendStream(event, contents) : send(event, contents); +} +function parseAcceptEncoding(header, encodingMap) { + if (!encodingMap || !header) { + return []; + } + return String(header || "").split(",").map((e) => encodingMap[e.trim()]).filter(Boolean); +} +function idSearchPaths(id, encodings, indexNames) { + const ids = []; + for (const suffix of ["", ...indexNames]) { + for (const encoding of [...encodings, ""]) { + ids.push(`${id}${suffix}${encoding}`); + } + } + return ids; +} + +function defineWebSocket(hooks) { + return hooks; +} +function defineWebSocketHandler(hooks) { + return defineEventHandler({ + handler() { + throw createError({ + statusCode: 426, + statusMessage: "Upgrade Required" + }); + }, + websocket: hooks + }); +} + +class H3Event { + "__is_event__" = true; + // Context + node; + // Node + web; + // Web + context = {}; + // Shared + // Request + _method; + _path; + _headers; + _requestBody; + // Response + _handled = false; + // Hooks + _onBeforeResponseCalled; + _onAfterResponseCalled; + constructor(req, res) { + this.node = { req, res }; + } + // --- Request --- + get method() { + if (!this._method) { + this._method = (this.node.req.method || "GET").toUpperCase(); + } + return this._method; + } + get path() { + return this._path || this.node.req.url || "/"; + } + get headers() { + if (!this._headers) { + this._headers = _normalizeNodeHeaders(this.node.req.headers); + } + return this._headers; + } + // --- Respoonse --- + get handled() { + return this._handled || this.node.res.writableEnded || this.node.res.headersSent; + } + respondWith(response) { + return Promise.resolve(response).then( + (_response) => sendWebResponse(this, _response) + ); + } + // --- Utils --- + toString() { + return `[${this.method}] ${this.path}`; + } + toJSON() { + return this.toString(); + } + // --- Deprecated --- + /** @deprecated Please use `event.node.req` instead. */ + get req() { + return this.node.req; + } + /** @deprecated Please use `event.node.res` instead. */ + get res() { + return this.node.res; + } +} +function isEvent(input) { + return hasProp(input, "__is_event__"); +} +function createEvent(req, res) { + return new H3Event(req, res); +} +function _normalizeNodeHeaders(nodeHeaders) { + const headers = new Headers(); + for (const [name, value] of Object.entries(nodeHeaders)) { + if (Array.isArray(value)) { + for (const item of value) { + headers.append(name, item); + } + } else if (value) { + headers.set(name, value); + } + } + return headers; +} + +function defineEventHandler(handler) { + if (typeof handler === "function") { + handler.__is_handler__ = true; + return handler; + } + const _hooks = { + onRequest: _normalizeArray(handler.onRequest), + onBeforeResponse: _normalizeArray(handler.onBeforeResponse) + }; + const _handler = (event) => { + return _callHandler(event, handler.handler, _hooks); + }; + _handler.__is_handler__ = true; + _handler.__resolve__ = handler.handler.__resolve__; + _handler.__websocket__ = handler.websocket; + return _handler; +} +function _normalizeArray(input) { + return input ? Array.isArray(input) ? input : [input] : void 0; +} +async function _callHandler(event, handler, hooks) { + if (hooks.onRequest) { + for (const hook of hooks.onRequest) { + await hook(event); + if (event.handled) { + return; + } + } + } + const body = await handler(event); + const response = { body }; + if (hooks.onBeforeResponse) { + for (const hook of hooks.onBeforeResponse) { + await hook(event, response); + } + } + return response.body; +} +const eventHandler = defineEventHandler; +function defineRequestMiddleware(fn) { + return fn; +} +function defineResponseMiddleware(fn) { + return fn; +} +function isEventHandler(input) { + return hasProp(input, "__is_handler__"); +} +function toEventHandler(input, _, _route) { + return input; +} +function dynamicEventHandler(initial) { + let current = initial; + const wrapper = eventHandler((event) => { + if (current) { + return current(event); + } + }); + wrapper.set = (handler) => { + current = handler; + }; + return wrapper; +} +function defineLazyEventHandler(factory) { + let _promise; + let _resolved; + const resolveHandler = () => { + if (_resolved) { + return Promise.resolve(_resolved); + } + if (!_promise) { + _promise = Promise.resolve(factory()).then((r) => { + const handler2 = r.default || r; + if (typeof handler2 !== "function") { + throw new TypeError( + "Invalid lazy handler result. It should be a function:", + handler2 + ); + } + _resolved = { handler: toEventHandler(r.default || r) }; + return _resolved; + }); + } + return _promise; + }; + const handler = eventHandler((event) => { + if (_resolved) { + return _resolved.handler(event); + } + return resolveHandler().then((r) => r.handler(event)); + }); + handler.__resolve__ = resolveHandler; + return handler; +} +const lazyEventHandler = defineLazyEventHandler; + +const H3Headers = globalThis.Headers; +const H3Response = globalThis.Response; + +function createApp(options = {}) { + const stack = []; + const handler = createAppEventHandler(stack, options); + const resolve = createResolver(stack); + handler.__resolve__ = resolve; + const getWebsocket = cachedFn(() => websocketOptions(resolve, options)); + const app = { + // @ts-expect-error + use: (arg1, arg2, arg3) => use(app, arg1, arg2, arg3), + resolve, + handler, + stack, + options, + get websocket() { + return getWebsocket(); + } + }; + return app; +} +function use(app, arg1, arg2, arg3) { + if (Array.isArray(arg1)) { + for (const i of arg1) { + use(app, i, arg2, arg3); + } + } else if (Array.isArray(arg2)) { + for (const i of arg2) { + use(app, arg1, i, arg3); + } + } else if (typeof arg1 === "string") { + app.stack.push( + normalizeLayer({ ...arg3, route: arg1, handler: arg2 }) + ); + } else if (typeof arg1 === "function") { + app.stack.push(normalizeLayer({ ...arg2, handler: arg1 })); + } else { + app.stack.push(normalizeLayer({ ...arg1 })); + } + return app; +} +function createAppEventHandler(stack, options) { + const spacing = options.debug ? 2 : void 0; + return eventHandler(async (event) => { + event.node.req.originalUrl = event.node.req.originalUrl || event.node.req.url || "/"; + const _rawReqUrl = event.node.req.url || "/"; + const _reqPath = _decodePath(event._path || _rawReqUrl); + event._path = _reqPath; + const _needsRawUrl = _reqPath !== _rawReqUrl; + let _layerPath; + if (options.onRequest) { + await options.onRequest(event); + } + for (const layer of stack) { + if (layer.route.length > 1) { + if (!_reqPath.startsWith(layer.route)) { + continue; + } + _layerPath = _reqPath.slice(layer.route.length) || "/"; + } else { + _layerPath = _reqPath; + } + if (layer.match && !layer.match(_layerPath, event)) { + continue; + } + event._path = _layerPath; + event.node.req.url = _needsRawUrl ? layer.route.length > 1 ? _rawReqUrl.slice(layer.route.length) || "/" : _rawReqUrl : _layerPath; + const val = await layer.handler(event); + const _body = val === void 0 ? void 0 : await val; + if (_body !== void 0) { + const _response = { body: _body }; + if (options.onBeforeResponse) { + event._onBeforeResponseCalled = true; + await options.onBeforeResponse(event, _response); + } + await handleHandlerResponse(event, _response.body, spacing); + if (options.onAfterResponse) { + event._onAfterResponseCalled = true; + await options.onAfterResponse(event, _response); + } + return; + } + if (event.handled) { + if (options.onAfterResponse) { + event._onAfterResponseCalled = true; + await options.onAfterResponse(event, void 0); + } + return; + } + } + if (!event.handled) { + throw createError({ + statusCode: 404, + statusMessage: `Cannot find any path matching ${event.path || "/"}.` + }); + } + if (options.onAfterResponse) { + event._onAfterResponseCalled = true; + await options.onAfterResponse(event, void 0); + } + }); +} +function createResolver(stack) { + return async (path) => { + let _layerPath; + for (const layer of stack) { + if (layer.route === "/" && !layer.handler.__resolve__) { + continue; + } + if (!path.startsWith(layer.route)) { + continue; + } + _layerPath = path.slice(layer.route.length) || "/"; + if (layer.match && !layer.match(_layerPath, void 0)) { + continue; + } + let res = { route: layer.route, handler: layer.handler }; + if (res.handler.__resolve__) { + const _res = await res.handler.__resolve__(_layerPath); + if (!_res) { + continue; + } + res = { + ...res, + ..._res, + route: joinURL(res.route || "/", _res.route || "/") + }; + } + return res; + } + }; +} +function normalizeLayer(input) { + let handler = input.handler; + if (handler.handler) { + handler = handler.handler; + } + if (input.lazy) { + handler = lazyEventHandler(handler); + } else if (!isEventHandler(handler)) { + handler = toEventHandler(handler, void 0, input.route); + } + return { + route: withoutTrailingSlash(input.route), + match: input.match, + handler + }; +} +function handleHandlerResponse(event, val, jsonSpace) { + if (val === null) { + return sendNoContent(event); + } + if (val) { + if (isWebResponse(val)) { + return sendWebResponse(event, val); + } + if (isStream(val)) { + return sendStream(event, val); + } + if (val.buffer) { + return send(event, val); + } + if (val.arrayBuffer && typeof val.arrayBuffer === "function") { + return val.arrayBuffer().then((arrayBuffer) => { + return send(event, Buffer.from(arrayBuffer), val.type); + }); + } + if (val instanceof Error) { + throw createError(val); + } + if (typeof val.end === "function") { + return true; + } + } + const valType = typeof val; + if (valType === "string") { + return send(event, val, MIMES.html); + } + if (valType === "object" || valType === "boolean" || valType === "number") { + return send(event, JSON.stringify(val, void 0, jsonSpace), MIMES.json); + } + if (valType === "bigint") { + return send(event, val.toString(), MIMES.json); + } + throw createError({ + statusCode: 500, + statusMessage: `[h3] Cannot send ${valType} as response.` + }); +} +function cachedFn(fn) { + let cache; + return () => { + if (!cache) { + cache = fn(); + } + return cache; + }; +} +function _decodePath(url) { + const qIndex = url.indexOf("?"); + const path = qIndex === -1 ? url : url.slice(0, qIndex); + const query = qIndex === -1 ? "" : url.slice(qIndex); + const decodedPath = path.includes("%25") ? decodePath(path.replace(/%25/g, "%2525")) : decodePath(path); + return decodedPath + query; +} +function websocketOptions(evResolver, appOptions) { + return { + ...appOptions.websocket, + async resolve(info) { + const url = info.request?.url || info.url || "/"; + const { pathname } = typeof url === "string" ? parseURL(url) : url; + const resolved = await evResolver(pathname); + return resolved?.handler?.__websocket__ || {}; + } + }; +} + +const RouterMethods = [ + "connect", + "delete", + "get", + "head", + "options", + "post", + "put", + "trace", + "patch" +]; +function createRouter(opts = {}) { + const _router = createRouter$1({}); + const routes = {}; + let _matcher; + const router = {}; + const addRoute = (path, handler, method) => { + let route = routes[path]; + if (!route) { + routes[path] = route = { path, handlers: {} }; + _router.insert(path, route); + } + if (Array.isArray(method)) { + for (const m of method) { + addRoute(path, handler, m); + } + } else { + route.handlers[method] = toEventHandler(handler); + } + return router; + }; + router.use = router.add = (path, handler, method) => addRoute(path, handler, method || "all"); + for (const method of RouterMethods) { + router[method] = (path, handle) => router.add(path, handle, method); + } + const matchHandler = (path = "/", method = "get") => { + const qIndex = path.indexOf("?"); + if (qIndex !== -1) { + path = path.slice(0, Math.max(0, qIndex)); + } + const matched = _router.lookup(path); + if (!matched || !matched.handlers) { + return { + error: createError({ + statusCode: 404, + name: "Not Found", + statusMessage: `Cannot find any route matching ${path || "/"}.` + }) + }; + } + let handler = matched.handlers[method] || matched.handlers.all; + if (!handler) { + if (!_matcher) { + _matcher = toRouteMatcher(_router); + } + const _matches = _matcher.matchAll(path).reverse(); + for (const _match of _matches) { + if (_match.handlers[method]) { + handler = _match.handlers[method]; + matched.handlers[method] = matched.handlers[method] || handler; + break; + } + if (_match.handlers.all) { + handler = _match.handlers.all; + matched.handlers.all = matched.handlers.all || handler; + break; + } + } + } + if (!handler) { + return { + error: createError({ + statusCode: 405, + name: "Method Not Allowed", + statusMessage: `Method ${method} is not allowed on this route.` + }) + }; + } + return { matched, handler }; + }; + const isPreemptive = opts.preemptive || opts.preemtive; + router.handler = eventHandler((event) => { + const match = matchHandler( + event.path, + event.method.toLowerCase() + ); + if ("error" in match) { + if (isPreemptive) { + throw match.error; + } else { + return; + } + } + event.context.matchedRoute = match.matched; + const params = match.matched.params || {}; + event.context.params = params; + return Promise.resolve(match.handler(event)).then((res) => { + if (res === void 0 && isPreemptive) { + return null; + } + return res; + }); + }); + router.handler.__resolve__ = async (path) => { + path = withLeadingSlash(path); + const match = matchHandler(path); + if ("error" in match) { + return; + } + let res = { + route: match.matched.path, + handler: match.handler + }; + if (match.handler.__resolve__) { + const _res = await match.handler.__resolve__(path); + if (!_res) { + return; + } + res = { ...res, ..._res }; + } + return res; + }; + return router; +} + +const defineNodeListener = (handler) => handler; +const defineNodeMiddleware = (middleware) => middleware; +function fromNodeMiddleware(handler) { + if (isEventHandler(handler)) { + return handler; + } + if (typeof handler !== "function") { + throw new TypeError( + "Invalid handler. It should be a function:", + handler + ); + } + return eventHandler((event) => { + return callNodeListener( + handler, + event.node.req, + event.node.res + ); + }); +} +function toNodeListener(app) { + const toNodeHandle = async function(req, res) { + const event = createEvent(req, res); + try { + await app.handler(event); + } catch (_error) { + const error = createError(_error); + if (!isError(_error)) { + error.unhandled = true; + } + setResponseStatus(event, error.statusCode, error.statusMessage); + if (app.options.onError) { + await app.options.onError(error, event); + } + if (event.handled) { + return; + } + if (error.unhandled || error.fatal) { + console.error("[h3]", error.fatal ? "[fatal]" : "[unhandled]", error); + } + if (app.options.onBeforeResponse && !event._onBeforeResponseCalled) { + await app.options.onBeforeResponse(event, { body: error }); + } + await sendError(event, error, !!app.options.debug); + if (app.options.onAfterResponse && !event._onAfterResponseCalled) { + await app.options.onAfterResponse(event, { body: error }); + } + } + }; + return toNodeHandle; +} +function promisifyNodeListener(handler) { + return function(req, res) { + return callNodeListener(handler, req, res); + }; +} +function callNodeListener(handler, req, res) { + const isMiddleware = handler.length > 2; + return new Promise((resolve, reject) => { + const next = (err) => { + if (isMiddleware) { + res.off("close", next); + res.off("error", next); + } + return err ? reject(createError(err)) : resolve(void 0); + }; + try { + const returned = handler(req, res, next); + if (isMiddleware && returned === void 0) { + res.once("close", next); + res.once("error", next); + } else { + resolve(returned); + } + } catch (error) { + next(error); + } + }); +} + +function toPlainHandler(app) { + const handler = (request) => { + return _handlePlainRequest(app, request); + }; + return handler; +} +function fromPlainHandler(handler) { + return eventHandler(async (event) => { + const res = await handler({ + method: event.method, + path: event.path, + headers: Object.fromEntries(event.headers.entries()), + body: getRequestWebStream(event), + context: event.context + }); + setResponseStatus(event, res.status, res.statusText); + for (const [key, value] of res.headers) { + setResponseHeader(event, key, value); + } + return res.body; + }); +} +async function _handlePlainRequest(app, request) { + const path = request.path; + const method = (request.method || "GET").toUpperCase(); + const headers = new Headers(request.headers); + const nodeReq = new IncomingMessage(); + const nodeRes = new ServerResponse(nodeReq); + nodeReq.method = method; + nodeReq.url = path; + nodeReq.headers = Object.fromEntries(headers.entries()); + const event = createEvent(nodeReq, nodeRes); + event._method = method; + event._path = path; + event._headers = headers; + if (request.body) { + event._requestBody = request.body; + } + if (request._eventOverrides) { + Object.assign(event, request._eventOverrides); + } + if (request.context) { + Object.assign(event.context, request.context); + } + try { + await app.handler(event); + } catch (_error) { + const error = createError(_error); + if (!isError(_error)) { + error.unhandled = true; + } + if (app.options.onError) { + await app.options.onError(error, event); + } + if (!event.handled) { + if (error.unhandled || error.fatal) { + console.error("[h3]", error.fatal ? "[fatal]" : "[unhandled]", error); + } + await sendError(event, error, !!app.options.debug); + } + } + return { + status: nodeRes.statusCode, + statusText: nodeRes.statusMessage, + headers: _normalizeUnenvHeaders(nodeRes._headers), + body: nodeRes._data + }; +} +function _normalizeUnenvHeaders(input) { + const headers = []; + const cookies = []; + for (const _key in input) { + const key = _key.toLowerCase(); + if (key === "set-cookie") { + cookies.push( + ...splitCookiesString(input["set-cookie"]) + ); + continue; + } + const value = input[key]; + if (Array.isArray(value)) { + for (const _value of value) { + headers.push([key, _value]); + } + } else if (value !== void 0) { + headers.push([key, String(value)]); + } + } + if (cookies.length > 0) { + for (const cookie of cookies) { + headers.push(["set-cookie", cookie]); + } + } + return headers; +} + +function toWebHandler(app) { + const webHandler = (request, context) => { + return _handleWebRequest(app, request, context); + }; + return webHandler; +} +function fromWebHandler(handler) { + return eventHandler((event) => handler(toWebRequest(event), event.context)); +} +const nullBodyResponses = /* @__PURE__ */ new Set([101, 204, 205, 304]); +async function _handleWebRequest(app, request, context) { + const url = new URL(request.url); + const res = await _handlePlainRequest(app, { + _eventOverrides: { + web: { request, url } + }, + context, + method: request.method, + path: url.pathname + url.search, + headers: request.headers, + body: request.body + }); + const body = nullBodyResponses.has(res.status) || request.method === "HEAD" ? null : res.body; + return new Response(body, { + status: res.status, + statusText: res.statusText, + headers: res.headers + }); +} + +export { H3Error, H3Event, H3Headers, H3Response, MIMES, appendCorsHeaders, appendCorsPreflightHeaders, appendHeader, appendHeaders, appendResponseHeader, appendResponseHeaders, assertMethod, callNodeListener, clearResponseHeaders, clearSession, createApp, createAppEventHandler, createError, createEvent, createEventStream, createRouter, defaultContentType, defineEventHandler, defineLazyEventHandler, defineNodeListener, defineNodeMiddleware, defineRequestMiddleware, defineResponseMiddleware, defineWebSocket, defineWebSocketHandler, deleteCookie, dynamicEventHandler, eventHandler, fetchWithEvent, fromNodeMiddleware, fromPlainHandler, fromWebHandler, getCookie, getHeader, getHeaders, getMethod, getProxyRequestHeaders, getQuery, getRequestFingerprint, getRequestHeader, getRequestHeaders, getRequestHost, getRequestIP, getRequestPath, getRequestProtocol, getRequestURL, getRequestWebStream, getResponseHeader, getResponseHeaders, getResponseStatus, getResponseStatusText, getRouterParam, getRouterParams, getSession, getValidatedQuery, getValidatedRouterParams, handleCacheHeaders, handleCors, isCorsOriginAllowed, isError, isEvent, isEventHandler, isMethod, isPreflightRequest, isStream, isWebResponse, lazyEventHandler, parseCookies, promisifyNodeListener, proxyRequest, readBody, readFormData, readMultipartFormData, readRawBody, readValidatedBody, removeResponseHeader, sanitizeStatusCode, sanitizeStatusMessage, sealSession, send, sendError, sendIterable, sendNoContent, sendProxy, sendRedirect, sendStream, sendWebResponse, serveStatic, setCookie, setHeader, setHeaders, setResponseHeader, setResponseHeaders, setResponseStatus, splitCookiesString, toEventHandler, toNodeListener, toPlainHandler, toWebHandler, toWebRequest, unsealSession, updateSession, use, useBase, useSession, writeEarlyHints }; diff --git a/frontend_admin/.output/server/node_modules/h3/package.json b/frontend_admin/.output/server/node_modules/h3/package.json new file mode 100644 index 0000000..b988dd4 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/h3/package.json @@ -0,0 +1,75 @@ +{ + "name": "h3", + "version": "1.15.11", + "description": "Minimal H(TTP) framework built for high performance and portability.", + "license": "MIT", + "repository": "h3js/h3", + "files": [ + "dist" + ], + "sideEffects": false, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "scripts": { + "build": "unbuild", + "dev": "vitest", + "lint": "eslint --cache . && prettier -c src test playground examples docs", + "lint:fix": "eslint --cache . --fix && prettier -c src test playground examples docs -w", + "prepack": "pnpm build", + "play": "listhen -w ./playground/app.ts", + "profile": "0x -o -D .profile -P 'autocannon -c 100 -p 10 -d 40 http://localhost:$PORT' ./playground/server.cjs", + "release": "pnpm test && pnpm build && changelogen --release --publish --publishTag 1x && git push --follow-tags", + "test": "pnpm lint && vitest --run --coverage && pnpm test:types", + "test:types": "tsgo --noEmit" + }, + "dependencies": { + "cookie-es": "^1.2.3", + "crossws": "^0.3.5", + "defu": "^6.1.6", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.4", + "radix3": "^1.1.2", + "ufo": "^1.6.3", + "uncrypto": "^0.1.3" + }, + "devDependencies": { + "0x": "^6.0.0", + "@types/express": "^5.0.6", + "@types/node": "^25.5.0", + "@types/supertest": "^7.2.0", + "@typescript/native-preview": "latest", + "@vitest/coverage-v8": "^4.1.2", + "autocannon": "^8.0.0", + "automd": "^0.4.3", + "changelogen": "^0.6.2", + "connect": "^3.7.0", + "eslint": "^10.1.0", + "eslint-config-unjs": "^0.6.2", + "express": "^5.2.1", + "get-port": "^7.2.0", + "h3": "^1.15.10", + "jiti": "^2.6.1", + "listhen": "^1.9.0", + "node-fetch-native": "^1.6.7", + "prettier": "^3.8.1", + "react": "^19.2.4", + "react-dom": "^19.2.4", + "supertest": "^7.2.2", + "typescript": "^6.0.2", + "unbuild": "^3.6.1", + "undici": "^7.24.7", + "vitest": "^4.1.2", + "zod": "^4.3.6" + }, + "packageManager": "pnpm@10.28.0" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/iron-webcrypto/dist/index.js b/frontend_admin/.output/server/node_modules/iron-webcrypto/dist/index.js new file mode 100644 index 0000000..031a23e --- /dev/null +++ b/frontend_admin/.output/server/node_modules/iron-webcrypto/dist/index.js @@ -0,0 +1,298 @@ +// src/utils.ts +var alphabetByEncoding = {}; +var alphabetByValue = Array.from({ length: 64 }); +for (let i = 0, start = "A".charCodeAt(0), limit = "Z".charCodeAt(0); i + start <= limit; i++) { + const char = String.fromCharCode(i + start); + alphabetByEncoding[char] = i; + alphabetByValue[i] = char; +} +for (let i = 0, start = "a".charCodeAt(0), limit = "z".charCodeAt(0); i + start <= limit; i++) { + const char = String.fromCharCode(i + start); + const index = i + 26; + alphabetByEncoding[char] = index; + alphabetByValue[index] = char; +} +for (let i = 0; i < 10; i++) { + alphabetByEncoding[i.toString(10)] = i + 52; + const char = i.toString(10); + const index = i + 52; + alphabetByEncoding[char] = index; + alphabetByValue[index] = char; +} +alphabetByEncoding["-"] = 62; +alphabetByValue[62] = "-"; +alphabetByEncoding["_"] = 63; +alphabetByValue[63] = "_"; +var bitsPerLetter = 6; +var bitsPerByte = 8; +var maxLetterValue = 63; +var stringToBuffer = (value) => { + return new TextEncoder().encode(value); +}; +var bufferToString = (value) => { + return new TextDecoder().decode(value); +}; +var base64urlDecode = (_input) => { + const input = _input + "=".repeat((4 - _input.length % 4) % 4); + let totalByteLength = input.length / 4 * 3; + if (input.endsWith("==")) { + totalByteLength -= 2; + } else if (input.endsWith("=")) { + totalByteLength--; + } + const out = new ArrayBuffer(totalByteLength); + const dataView = new DataView(out); + for (let i = 0; i < input.length; i += 4) { + let bits = 0; + let bitLength = 0; + for (let j = i, limit = i + 3; j <= limit; j++) { + if (input[j] === "=") { + bits >>= bitsPerLetter; + } else { + if (!(input[j] in alphabetByEncoding)) { + throw new TypeError(`Invalid character ${input[j]} in base64 string.`); + } + bits |= alphabetByEncoding[input[j]] << (limit - j) * bitsPerLetter; + bitLength += bitsPerLetter; + } + } + const chunkOffset = i / 4 * 3; + bits >>= bitLength % bitsPerByte; + const byteLength = Math.floor(bitLength / bitsPerByte); + for (let k = 0; k < byteLength; k++) { + const offset = (byteLength - k - 1) * bitsPerByte; + dataView.setUint8(chunkOffset + k, (bits & 255 << offset) >> offset); + } + } + return new Uint8Array(out); +}; +var base64urlEncode = (_input) => { + const input = typeof _input === "string" ? stringToBuffer(_input) : _input; + let str = ""; + for (let i = 0; i < input.length; i += 3) { + let bits = 0; + let bitLength = 0; + for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) { + bits |= input[j] << (limit - j - 1) * bitsPerByte; + bitLength += bitsPerByte; + } + const bitClusterCount = Math.ceil(bitLength / bitsPerLetter); + bits <<= bitClusterCount * bitsPerLetter - bitLength; + for (let k = 1; k <= bitClusterCount; k++) { + const offset = (bitClusterCount - k) * bitsPerLetter; + str += alphabetByValue[(bits & maxLetterValue << offset) >> offset]; + } + } + return str; +}; + +// src/index.ts +var defaults = { + encryption: { saltBits: 256, algorithm: "aes-256-cbc", iterations: 1, minPasswordlength: 32 }, + integrity: { saltBits: 256, algorithm: "sha256", iterations: 1, minPasswordlength: 32 }, + ttl: 0, + timestampSkewSec: 60, + localtimeOffsetMsec: 0 +}; +var clone = (options) => ({ + ...options, + encryption: { ...options.encryption }, + integrity: { ...options.integrity } +}); +var algorithms = { + "aes-128-ctr": { keyBits: 128, ivBits: 128, name: "AES-CTR" }, + "aes-256-cbc": { keyBits: 256, ivBits: 128, name: "AES-CBC" }, + sha256: { keyBits: 256, name: "SHA-256" } +}; +var macFormatVersion = "2"; +var macPrefix = "Fe26.2"; +var randomBytes = (_crypto, size) => { + const bytes = new Uint8Array(size); + _crypto.getRandomValues(bytes); + return bytes; +}; +var randomBits = (_crypto, bits) => { + if (bits < 1) + throw new Error("Invalid random bits count"); + const bytes = Math.ceil(bits / 8); + return randomBytes(_crypto, bytes); +}; +var pbkdf2 = async (_crypto, password, salt, iterations, keyLength, hash) => { + const passwordBuffer = stringToBuffer(password); + const importedKey = await _crypto.subtle.importKey( + "raw", + passwordBuffer, + { name: "PBKDF2" }, + false, + ["deriveBits"] + ); + const saltBuffer = stringToBuffer(salt); + const params = { name: "PBKDF2", hash, salt: saltBuffer, iterations }; + const derivation = await _crypto.subtle.deriveBits(params, importedKey, keyLength * 8); + return derivation; +}; +var generateKey = async (_crypto, password, options) => { + var _a; + if (!(password == null ? void 0 : password.length)) + throw new Error("Empty password"); + if (options == null || typeof options !== "object") + throw new Error("Bad options"); + if (!(options.algorithm in algorithms)) + throw new Error(`Unknown algorithm: ${options.algorithm}`); + const algorithm = algorithms[options.algorithm]; + const result = {}; + const hmac = (_a = options.hmac) != null ? _a : false; + const id = hmac ? { name: "HMAC", hash: algorithm.name } : { name: algorithm.name }; + const usage = hmac ? ["sign", "verify"] : ["encrypt", "decrypt"]; + if (typeof password === "string") { + if (password.length < options.minPasswordlength) + throw new Error( + `Password string too short (min ${options.minPasswordlength} characters required)` + ); + let { salt = "" } = options; + if (!salt) { + const { saltBits = 0 } = options; + if (!saltBits) + throw new Error("Missing salt and saltBits options"); + const randomSalt = randomBits(_crypto, saltBits); + salt = [...new Uint8Array(randomSalt)].map((x) => x.toString(16).padStart(2, "0")).join(""); + } + const derivedKey = await pbkdf2( + _crypto, + password, + salt, + options.iterations, + algorithm.keyBits / 8, + "SHA-1" + ); + const importedEncryptionKey = await _crypto.subtle.importKey( + "raw", + derivedKey, + id, + false, + usage + ); + result.key = importedEncryptionKey; + result.salt = salt; + } else { + if (password.length < algorithm.keyBits / 8) + throw new Error("Key buffer (password) too small"); + result.key = await _crypto.subtle.importKey("raw", password, id, false, usage); + result.salt = ""; + } + if (options.iv) + result.iv = options.iv; + else if ("ivBits" in algorithm) + result.iv = randomBits(_crypto, algorithm.ivBits); + return result; +}; +var getEncryptParams = (algorithm, key, data) => { + return [ + algorithm === "aes-128-ctr" ? { name: "AES-CTR", counter: key.iv, length: 128 } : { name: "AES-CBC", iv: key.iv }, + key.key, + typeof data === "string" ? stringToBuffer(data) : data + ]; +}; +var encrypt = async (_crypto, password, options, data) => { + const key = await generateKey(_crypto, password, options); + const encrypted = await _crypto.subtle.encrypt(...getEncryptParams(options.algorithm, key, data)); + return { encrypted: new Uint8Array(encrypted), key }; +}; +var decrypt = async (_crypto, password, options, data) => { + const key = await generateKey(_crypto, password, options); + const decrypted = await _crypto.subtle.decrypt(...getEncryptParams(options.algorithm, key, data)); + return bufferToString(new Uint8Array(decrypted)); +}; +var hmacWithPassword = async (_crypto, password, options, data) => { + const key = await generateKey(_crypto, password, { ...options, hmac: true }); + const textBuffer = stringToBuffer(data); + const signed = await _crypto.subtle.sign({ name: "HMAC" }, key.key, textBuffer); + const digest = base64urlEncode(new Uint8Array(signed)); + return { digest, salt: key.salt }; +}; +var normalizePassword = (password) => { + if (typeof password === "string" || password instanceof Uint8Array) + return { encryption: password, integrity: password }; + if ("secret" in password) + return { id: password.id, encryption: password.secret, integrity: password.secret }; + return { id: password.id, encryption: password.encryption, integrity: password.integrity }; +}; +var seal = async (_crypto, object, password, options) => { + if (!password) + throw new Error("Empty password"); + const opts = clone(options); + const now = Date.now() + (opts.localtimeOffsetMsec || 0); + const objectString = JSON.stringify(object); + const pass = normalizePassword(password); + const { id = "", encryption, integrity } = pass; + if (id && !/^\w+$/.test(id)) + throw new Error("Invalid password id"); + const { encrypted, key } = await encrypt(_crypto, encryption, opts.encryption, objectString); + const encryptedB64 = base64urlEncode(new Uint8Array(encrypted)); + const iv = base64urlEncode(key.iv); + const expiration = opts.ttl ? now + opts.ttl : ""; + const macBaseString = `${macPrefix}*${id}*${key.salt}*${iv}*${encryptedB64}*${expiration}`; + const mac = await hmacWithPassword(_crypto, integrity, opts.integrity, macBaseString); + const sealed = `${macBaseString}*${mac.salt}*${mac.digest}`; + return sealed; +}; +var fixedTimeComparison = (a, b) => { + let mismatch = a.length === b.length ? 0 : 1; + if (mismatch) + b = a; + for (let i = 0; i < a.length; i += 1) + mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i); + return mismatch === 0; +}; +var unseal = async (_crypto, sealed, password, options) => { + if (!password) + throw new Error("Empty password"); + const opts = clone(options); + const now = Date.now() + (opts.localtimeOffsetMsec || 0); + const parts = sealed.split("*"); + if (parts.length !== 8) + throw new Error("Incorrect number of sealed components"); + const prefix = parts[0]; + let passwordId = parts[1]; + const encryptionSalt = parts[2]; + const encryptionIv = parts[3]; + const encryptedB64 = parts[4]; + const expiration = parts[5]; + const hmacSalt = parts[6]; + const hmac = parts[7]; + const macBaseString = `${prefix}*${passwordId}*${encryptionSalt}*${encryptionIv}*${encryptedB64}*${expiration}`; + if (macPrefix !== prefix) + throw new Error("Wrong mac prefix"); + if (expiration) { + if (!/^\d+$/.test(expiration)) + throw new Error("Invalid expiration"); + const exp = Number.parseInt(expiration, 10); + if (exp <= now - opts.timestampSkewSec * 1e3) + throw new Error("Expired seal"); + } + let pass = ""; + passwordId = passwordId || "default"; + if (typeof password === "string" || password instanceof Uint8Array) + pass = password; + else if (passwordId in password) { + pass = password[passwordId]; + } else { + throw new Error(`Cannot find password: ${passwordId}`); + } + pass = normalizePassword(pass); + const macOptions = opts.integrity; + macOptions.salt = hmacSalt; + const mac = await hmacWithPassword(_crypto, pass.integrity, macOptions, macBaseString); + if (!fixedTimeComparison(mac.digest, hmac)) + throw new Error("Bad hmac value"); + const encrypted = base64urlDecode(encryptedB64); + const decryptOptions = opts.encryption; + decryptOptions.salt = encryptionSalt; + decryptOptions.iv = base64urlDecode(encryptionIv); + const decrypted = await decrypt(_crypto, pass.encryption, decryptOptions, encrypted); + if (decrypted) + return JSON.parse(decrypted); + return null; +}; + +export { algorithms, base64urlDecode, base64urlEncode, bufferToString, clone, decrypt, defaults, encrypt, generateKey, hmacWithPassword, macFormatVersion, macPrefix, randomBits, seal, stringToBuffer, unseal }; diff --git a/frontend_admin/.output/server/node_modules/iron-webcrypto/package.json b/frontend_admin/.output/server/node_modules/iron-webcrypto/package.json new file mode 100644 index 0000000..19db7ad --- /dev/null +++ b/frontend_admin/.output/server/node_modules/iron-webcrypto/package.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "name": "iron-webcrypto", + "version": "1.2.1", + "description": "a cryptographic utility for sealing-unsealing a JSON object using symmetric key encryption with message integrity verification", + "keywords": [ + "authentication", + "data integrity", + "encryption", + "webcrypto" + ], + "bugs": { + "url": "https://github.com/brc-dd/iron-webcrypto", + "email": "brc-dd@hotmail.com" + }, + "repository": "github:brc-dd/iron-webcrypto", + "funding": "https://github.com/sponsors/brc-dd", + "license": "MIT", + "author": "Divyansh Singh (https://github.com/brc-dd)", + "sideEffects": false, + "type": "module", + "exports": { + "import": "./dist/index.js", + "require": "./dist/index.cjs" + }, + "main": "dist/index.cjs", + "files": [ + "dist/*" + ], + "scripts": { + "build": "pnpm i && tsup && git add -f dist", + "lint": "pnpm build && pnpm lint:only", + "lint:only": "lefthook run pre-commit && publint && attw --pack", + "test": "pnpm test:node && pnpm test:deno && pnpm test:bun", + "test:bun": "bun --cwd=tests/bun test", + "test:deno": "deno test tests/deno/index.test.ts --parallel --no-check", + "test:node": "tsx --test tests/node/index.test.ts" + }, + "devDependencies": { + "@arethetypeswrong/cli": "^0.15.3", + "@commitlint/cli": "^19.3.0", + "@commitlint/config-conventional": "^19.2.2", + "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0", + "@release-it/conventional-changelog": "^8.0.1", + "@types/bun": "^1.1.1", + "@types/node": "^20.12.11", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-security": "^3.0.0", + "eslint-plugin-unicorn": "^52.0.0", + "jsr": "^0.12.4", + "lefthook": "^1.6.10", + "prettier": "^3.2.5", + "prettier-plugin-packagejson": "^2.5.0", + "publint": "^0.2.7", + "release-it": "^17.2.1", + "replace": "^1.2.2", + "tsup": "^8.0.2", + "tsx": "^4.9.3", + "typescript": "^5.4.5" + }, + "packageManager": "pnpm@9.1.0", + "runkitExampleFilename": "dist/example.js" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs b/frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs new file mode 100644 index 0000000..a914c59 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/buffer/node.mjs @@ -0,0 +1 @@ +export{Buffer}from"node:buffer"; diff --git a/frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs b/frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs new file mode 100644 index 0000000..f3e37ca --- /dev/null +++ b/frontend_admin/.output/server/node_modules/node-mock-http/dist/_polyfill/events/node.mjs @@ -0,0 +1 @@ +export{EventEmitter}from"node:events"; diff --git a/frontend_admin/.output/server/node_modules/node-mock-http/dist/index.mjs b/frontend_admin/.output/server/node_modules/node-mock-http/dist/index.mjs new file mode 100644 index 0000000..b01b943 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/node-mock-http/dist/index.mjs @@ -0,0 +1 @@ +import{EventEmitter as f}from"node-mock-http/_polyfill/events";import{Buffer as h}from"node-mock-http/_polyfill/buffer";function o(n){throw new Error(`${n} is not implemented yet!`)}class i extends f{__unenv__={};readableEncoding=null;readableEnded=!0;readableFlowing=!1;readableHighWaterMark=0;readableLength=0;readableObjectMode=!1;readableAborted=!1;readableDidRead=!1;closed=!1;errored=null;readable=!1;destroyed=!1;static from(e,t){return new i(t)}constructor(e){super()}_read(e){}read(e){}setEncoding(e){return this}pause(){return this}resume(){return this}isPaused(){return!0}unpipe(e){return this}unshift(e,t){}wrap(e){return this}push(e,t){return!1}_destroy(e,t){this.removeAllListeners()}destroy(e){return this.destroyed=!0,this._destroy(e),this}pipe(e,t){return{}}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return this.destroy(),Promise.resolve()}async*[Symbol.asyncIterator](){throw o("Readable.asyncIterator")}iterator(e){throw o("Readable.iterator")}map(e,t){throw o("Readable.map")}filter(e,t){throw o("Readable.filter")}forEach(e,t){throw o("Readable.forEach")}reduce(e,t,r){throw o("Readable.reduce")}find(e,t){throw o("Readable.find")}findIndex(e,t){throw o("Readable.findIndex")}some(e,t){throw o("Readable.some")}toArray(e){throw o("Readable.toArray")}every(e,t){throw o("Readable.every")}flatMap(e,t){throw o("Readable.flatMap")}drop(e,t){throw o("Readable.drop")}take(e,t){throw o("Readable.take")}asIndexedPairs(e){throw o("Readable.asIndexedPairs")}}class l extends f{__unenv__={};writable=!0;writableEnded=!1;writableFinished=!1;writableHighWaterMark=0;writableLength=0;writableObjectMode=!1;writableCorked=0;closed=!1;errored=null;writableNeedDrain=!1;writableAborted=!1;destroyed=!1;_data;_encoding="utf8";constructor(e){super()}pipe(e,t){return{}}_write(e,t,r){if(this.writableEnded){r&&r();return}if(this._data===void 0)this._data=e;else{const s=typeof this._data=="string"?h.from(this._data,this._encoding||t||"utf8"):this._data,a=typeof e=="string"?h.from(e,t||this._encoding||"utf8"):e;this._data=h.concat([s,a])}this._encoding=t,r&&r()}_writev(e,t){}_destroy(e,t){}_final(e){}write(e,t,r){const s=typeof t=="string"?this._encoding:"utf8",a=typeof t=="function"?t:typeof r=="function"?r:void 0;return this._write(e,s,a),!0}setDefaultEncoding(e){return this}end(e,t,r){const s=typeof e=="function"?e:typeof t=="function"?t:typeof r=="function"?r:void 0;if(this.writableEnded)return s&&s(),this;const a=e===s?void 0:e;if(a){const u=t===s?void 0:t;this.write(a,u,s)}return this.writableEnded=!0,this.writableFinished=!0,this.emit("close"),this.emit("finish"),this}cork(){}uncork(){}destroy(e){return this.destroyed=!0,delete this._data,this.removeAllListeners(),this}compose(e,t){throw new Error("Method not implemented.")}[Symbol.asyncDispose](){return Promise.resolve()}}const c=class{allowHalfOpen=!0;_destroy;constructor(e=new i,t=new l){Object.assign(this,e),Object.assign(this,t),this._destroy=m(e._destroy,t._destroy)}};function _(){return Object.assign(c.prototype,i.prototype),Object.assign(c.prototype,l.prototype),c}function m(...n){return function(...e){for(const t of n)t(...e)}}const g=_();class A extends g{__unenv__={};bufferSize=0;bytesRead=0;bytesWritten=0;connecting=!1;destroyed=!1;pending=!1;localAddress="";localPort=0;remoteAddress="";remoteFamily="";remotePort=0;autoSelectFamilyAttemptedAddresses=[];readyState="readOnly";constructor(e){super()}write(e,t,r){return!1}connect(e,t,r){return this}end(e,t,r){return this}setEncoding(e){return this}pause(){return this}resume(){return this}setTimeout(e,t){return this}setNoDelay(e){return this}setKeepAlive(e,t){return this}address(){return{}}unref(){return this}ref(){return this}destroySoon(){this.destroy()}resetAndDestroy(){const e=new Error("ERR_SOCKET_CLOSED");return e.code="ERR_SOCKET_CLOSED",this.destroy(e),this}}class y extends i{aborted=!1;httpVersion="1.1";httpVersionMajor=1;httpVersionMinor=1;complete=!0;connection;socket;headers={};trailers={};method="GET";url="/";statusCode=200;statusMessage="";closed=!1;errored=null;readable=!1;constructor(e){super(),this.socket=this.connection=e||new A}get rawHeaders(){const e=this.headers,t=[];for(const r in e)if(Array.isArray(e[r]))for(const s of e[r])t.push(r,s);else t.push(r,e[r]);return t}get rawTrailers(){return[]}setTimeout(e,t){return this}get headersDistinct(){return p(this.headers)}get trailersDistinct(){return p(this.trailers)}}function p(n){const e={};for(const[t,r]of Object.entries(n))t&&(e[t]=(Array.isArray(r)?r:[r]).filter(Boolean));return e}class w extends l{statusCode=200;statusMessage="";upgrading=!1;chunkedEncoding=!1;shouldKeepAlive=!1;useChunkedEncodingByDefault=!1;sendDate=!1;finished=!1;headersSent=!1;strictContentLength=!1;connection=null;socket=null;req;_headers={};constructor(e){super(),this.req=e}assignSocket(e){e._httpMessage=this,this.socket=e,this.connection=e,this.emit("socket",e),this._flush()}_flush(){this.flushHeaders()}detachSocket(e){}writeContinue(e){}writeHead(e,t,r){e&&(this.statusCode=e),typeof t=="string"&&(this.statusMessage=t,t=void 0);const s=r||t;if(s&&!Array.isArray(s))for(const a in s)this.setHeader(a,s[a]);return this.headersSent=!0,this}writeProcessing(){}setTimeout(e,t){return this}appendHeader(e,t){e=e.toLowerCase();const r=this._headers[e],s=[...Array.isArray(r)?r:[r],...Array.isArray(t)?t:[t]].filter(Boolean);return this._headers[e]=s.length>1?s:s[0],this}setHeader(e,t){return this._headers[e.toLowerCase()]=t,this}setHeaders(e){for(const[t,r]of Object.entries(e))this.setHeader(t,r);return this}getHeader(e){return this._headers[e.toLowerCase()]}getHeaders(){return this._headers}getHeaderNames(){return Object.keys(this._headers)}hasHeader(e){return e.toLowerCase()in this._headers}removeHeader(e){delete this._headers[e.toLowerCase()]}addTrailers(e){}flushHeaders(){}writeEarlyHints(e,t){typeof t=="function"&&t()}}const E=(()=>{const n=function(){};return n.prototype=Object.create(null),n})();function R(n={}){const e=new E,t=Array.isArray(n)||H(n)?n:Object.entries(n);for(const[r,s]of t)if(s){if(e[r]===void 0){e[r]=s;continue}e[r]=[...Array.isArray(e[r])?e[r]:[e[r]],...Array.isArray(s)?s:[s]]}return e}function H(n){return typeof n?.entries=="function"}function v(n={}){if(n instanceof Headers)return n;const e=new Headers;for(const[t,r]of Object.entries(n))if(r!==void 0){if(Array.isArray(r)){for(const s of r)e.append(t,String(s));continue}e.set(t,String(r))}return e}const S=new Set([101,204,205,304]);async function b(n,e){const t=new y,r=new w(t);t.url=e.url?.toString()||"/";let s;if(!t.url.startsWith("/")){const d=new URL(t.url);s=d.host,t.url=d.pathname+d.search+d.hash}t.method=e.method||"GET",t.headers=R(e.headers||{}),t.headers.host||(t.headers.host=e.host||s||"localhost"),t.connection.encrypted=t.connection.encrypted||e.protocol==="https",t.body=e.body||null,t.__unenv__=e.context,await n(t,r);let a=r._data;(S.has(r.statusCode)||t.method.toUpperCase()==="HEAD")&&(a=null,delete r._headers["content-length"]);const u={status:r.statusCode,statusText:r.statusMessage,headers:r._headers,body:a};return t.destroy(),r.destroy(),u}async function C(n,e,t={}){try{const r=await b(n,{url:e,...t});return new Response(r.body,{status:r.status,statusText:r.statusText,headers:v(r.headers)})}catch(r){return new Response(r.toString(),{status:Number.parseInt(r.statusCode||r.code)||500,statusText:r.statusText})}}export{y as IncomingMessage,w as ServerResponse,b as callNodeRequestHandler,C as fetchNodeRequestHandler}; diff --git a/frontend_admin/.output/server/node_modules/node-mock-http/package.json b/frontend_admin/.output/server/node_modules/node-mock-http/package.json new file mode 100644 index 0000000..1ab26b1 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/node-mock-http/package.json @@ -0,0 +1,63 @@ +{ + "name": "node-mock-http", + "version": "1.0.4", + "description": "", + "repository": "unjs/node-mock-http", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./_polyfill/buffer": { + "import": { + "node": "./dist/_polyfill/buffer/node.mjs", + "default": "./dist/_polyfill/buffer/nodeless.mjs" + }, + "require": { + "node": "./dist/_polyfill/buffer/node.cjs", + "default": "./dist/_polyfill/buffer/nodeless.cjs" + } + }, + "./_polyfill/events": { + "import": { + "node": "./dist/_polyfill/events/node.mjs", + "default": "./dist/_polyfill/events/nodeless.mjs" + }, + "require": { + "node": "./dist/_polyfill/events/node.cjs", + "default": "./dist/_polyfill/events/nodeless.cjs" + } + } + }, + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild --minify", + "dev": "vitest dev --coverage", + "lint": "eslint . && prettier -c .", + "lint:fix": "automd && eslint . --fix && prettier -w .", + "prepack": "pnpm build", + "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags", + "test": "pnpm lint && pnpm test:types && vitest run --coverage", + "test:types": "tsc --noEmit --skipLibCheck" + }, + "devDependencies": { + "@types/node": "^24.10.1", + "@vitest/coverage-v8": "^4.0.15", + "automd": "^0.4.2", + "changelogen": "^0.6.2", + "eslint": "^9.39.1", + "eslint-config-unjs": "^0.5.0", + "jiti": "^2.6.1", + "prettier": "^3.7.4", + "typescript": "^5.9.3", + "unbuild": "^3.6.1", + "vitest": "^4.0.15" + }, + "packageManager": "pnpm@10.24.0" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/perfect-debounce b/frontend_admin/.output/server/node_modules/perfect-debounce new file mode 120000 index 0000000..4892952 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/perfect-debounce @@ -0,0 +1 @@ +.nitro/perfect-debounce@2.1.0 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/radix3/dist/index.mjs b/frontend_admin/.output/server/node_modules/radix3/dist/index.mjs new file mode 100644 index 0000000..b7226be --- /dev/null +++ b/frontend_admin/.output/server/node_modules/radix3/dist/index.mjs @@ -0,0 +1,262 @@ +const NODE_TYPES = { + NORMAL: 0, + WILDCARD: 1, + PLACEHOLDER: 2 +}; + +function createRouter(options = {}) { + const ctx = { + options, + rootNode: createRadixNode(), + staticRoutesMap: {} + }; + const normalizeTrailingSlash = (p) => options.strictTrailingSlash ? p : p.replace(/\/$/, "") || "/"; + if (options.routes) { + for (const path in options.routes) { + insert(ctx, normalizeTrailingSlash(path), options.routes[path]); + } + } + return { + ctx, + lookup: (path) => lookup(ctx, normalizeTrailingSlash(path)), + insert: (path, data) => insert(ctx, normalizeTrailingSlash(path), data), + remove: (path) => remove(ctx, normalizeTrailingSlash(path)) + }; +} +function lookup(ctx, path) { + const staticPathNode = ctx.staticRoutesMap[path]; + if (staticPathNode) { + return staticPathNode.data; + } + const sections = path.split("/"); + const params = {}; + let paramsFound = false; + let wildcardNode = null; + let node = ctx.rootNode; + let wildCardParam = null; + for (let i = 0; i < sections.length; i++) { + const section = sections[i]; + if (node.wildcardChildNode !== null) { + wildcardNode = node.wildcardChildNode; + wildCardParam = sections.slice(i).join("/"); + } + const nextNode = node.children.get(section); + if (nextNode === void 0) { + if (node && node.placeholderChildren.length > 1) { + const remaining = sections.length - i; + node = node.placeholderChildren.find((c) => c.maxDepth === remaining) || null; + } else { + node = node.placeholderChildren[0] || null; + } + if (!node) { + break; + } + if (node.paramName) { + params[node.paramName] = section; + } + paramsFound = true; + } else { + node = nextNode; + } + } + if ((node === null || node.data === null) && wildcardNode !== null) { + node = wildcardNode; + params[node.paramName || "_"] = wildCardParam; + paramsFound = true; + } + if (!node) { + return null; + } + if (paramsFound) { + return { + ...node.data, + params: paramsFound ? params : void 0 + }; + } + return node.data; +} +function insert(ctx, path, data) { + let isStaticRoute = true; + const sections = path.split("/"); + let node = ctx.rootNode; + let _unnamedPlaceholderCtr = 0; + const matchedNodes = [node]; + for (const section of sections) { + let childNode; + if (childNode = node.children.get(section)) { + node = childNode; + } else { + const type = getNodeType(section); + childNode = createRadixNode({ type, parent: node }); + node.children.set(section, childNode); + if (type === NODE_TYPES.PLACEHOLDER) { + childNode.paramName = section === "*" ? `_${_unnamedPlaceholderCtr++}` : section.slice(1); + node.placeholderChildren.push(childNode); + isStaticRoute = false; + } else if (type === NODE_TYPES.WILDCARD) { + node.wildcardChildNode = childNode; + childNode.paramName = section.slice( + 3 + /* "**:" */ + ) || "_"; + isStaticRoute = false; + } + matchedNodes.push(childNode); + node = childNode; + } + } + for (const [depth, node2] of matchedNodes.entries()) { + node2.maxDepth = Math.max(matchedNodes.length - depth, node2.maxDepth || 0); + } + node.data = data; + if (isStaticRoute === true) { + ctx.staticRoutesMap[path] = node; + } + return node; +} +function remove(ctx, path) { + let success = false; + const sections = path.split("/"); + let node = ctx.rootNode; + for (const section of sections) { + node = node.children.get(section); + if (!node) { + return success; + } + } + if (node.data) { + const lastSection = sections.at(-1) || ""; + node.data = null; + if (Object.keys(node.children).length === 0 && node.parent) { + node.parent.children.delete(lastSection); + node.parent.wildcardChildNode = null; + node.parent.placeholderChildren = []; + } + success = true; + } + return success; +} +function createRadixNode(options = {}) { + return { + type: options.type || NODE_TYPES.NORMAL, + maxDepth: 0, + parent: options.parent || null, + children: /* @__PURE__ */ new Map(), + data: options.data || null, + paramName: options.paramName || null, + wildcardChildNode: null, + placeholderChildren: [] + }; +} +function getNodeType(str) { + if (str.startsWith("**")) { + return NODE_TYPES.WILDCARD; + } + if (str[0] === ":" || str === "*") { + return NODE_TYPES.PLACEHOLDER; + } + return NODE_TYPES.NORMAL; +} + +function toRouteMatcher(router) { + const table = _routerNodeToTable("", router.ctx.rootNode); + return _createMatcher(table, router.ctx.options.strictTrailingSlash); +} +function _createMatcher(table, strictTrailingSlash) { + return { + ctx: { table }, + matchAll: (path) => _matchRoutes(path, table, strictTrailingSlash) + }; +} +function _createRouteTable() { + return { + static: /* @__PURE__ */ new Map(), + wildcard: /* @__PURE__ */ new Map(), + dynamic: /* @__PURE__ */ new Map() + }; +} +function _exportMatcherFromTable(table) { + const obj = /* @__PURE__ */ Object.create(null); + for (const property in table) { + obj[property] = property === "dynamic" ? Object.fromEntries( + [...table[property].entries()].map(([key, value]) => [ + key, + _exportMatcherFromTable(value) + ]) + ) : Object.fromEntries(table[property].entries()); + } + return obj; +} +function exportMatcher(matcher) { + return _exportMatcherFromTable(matcher.ctx.table); +} +function _createTableFromExport(matcherExport) { + const table = {}; + for (const property in matcherExport) { + table[property] = property === "dynamic" ? new Map( + Object.entries(matcherExport[property]).map(([key, value]) => [ + key, + _createTableFromExport(value) + ]) + ) : new Map( + Object.entries(matcherExport[property]) + ); + } + return table; +} +function createMatcherFromExport(matcherExport) { + return _createMatcher(_createTableFromExport(matcherExport)); +} +function _matchRoutes(path, table, strictTrailingSlash) { + if (strictTrailingSlash !== true && path.endsWith("/")) { + path = path.slice(0, -1) || "/"; + } + const matches = []; + for (const [key, value] of _sortRoutesMap(table.wildcard)) { + if (path === key || path.startsWith(key + "/")) { + matches.push(value); + } + } + for (const [key, value] of _sortRoutesMap(table.dynamic)) { + if (path.startsWith(key + "/")) { + const subPath = "/" + path.slice(key.length).split("/").splice(2).join("/"); + matches.push(..._matchRoutes(subPath, value)); + } + } + const staticMatch = table.static.get(path); + if (staticMatch) { + matches.push(staticMatch); + } + return matches.filter(Boolean); +} +function _sortRoutesMap(m) { + return [...m.entries()].sort((a, b) => a[0].length - b[0].length); +} +function _routerNodeToTable(initialPath, initialNode) { + const table = _createRouteTable(); + function _addNode(path, node) { + if (path) { + if (node.type === NODE_TYPES.NORMAL && !(path.includes("*") || path.includes(":"))) { + if (node.data) { + table.static.set(path, node.data); + } + } else if (node.type === NODE_TYPES.WILDCARD) { + table.wildcard.set(path.replace("/**", ""), node.data); + } else if (node.type === NODE_TYPES.PLACEHOLDER) { + const subTable = _routerNodeToTable("", node); + if (node.data) { + subTable.static.set("/", node.data); + } + table.dynamic.set(path.replace(/\/\*|\/:\w+/, ""), subTable); + return; + } + } + for (const [childPath, child] of node.children.entries()) { + _addNode(`${path}/${childPath}`.replace("//", "/"), child); + } + } + _addNode(initialPath, initialNode); + return table; +} + +export { NODE_TYPES, createMatcherFromExport, createRouter, exportMatcher, toRouteMatcher }; diff --git a/frontend_admin/.output/server/node_modules/radix3/package.json b/frontend_admin/.output/server/node_modules/radix3/package.json new file mode 100644 index 0000000..b268791 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/radix3/package.json @@ -0,0 +1,52 @@ +{ + "name": "radix3", + "version": "1.1.2", + "description": "Lightweight and fast router for JavaScript based on Radix Tree", + "repository": "unjs/radix3", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "require": "./dist/index.cjs", + "import": "./dist/index.mjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "bench": "node ./benchmark/direct.mjs", + "bench:http": "node ./benchmark/http.mjs", + "bench:profile": "0x -o -D benchmark/.profile -- node ./benchmark/direct.mjs", + "build": "unbuild", + "dev": "vitest", + "lint": "eslint --ext .ts,.mjs . && prettier -c src tests", + "lint:fix": "eslint --fix --ext .ts,.mjs . && prettier -w src tests", + "playground": "pnpm jiti ./playground.ts", + "release": "pnpm test && pnpm build && changelogen --release && git push --follow-tags && npm publish", + "test": "pnpm lint && pnpm test:types && vitest run", + "test:types": "tsc --noEmit" + }, + "devDependencies": { + "0x": "^5.7.0", + "@vitest/coverage-v8": "^1.4.0", + "autocannon": "^7.15.0", + "benchmark": "^2.1.4", + "changelogen": "^0.5.5", + "eslint": "^8.57.0", + "eslint-config-unjs": "^0.2.1", + "jiti": "^1.21.0", + "listhen": "^1.7.2", + "prettier": "^3.2.5", + "standard-version": "^9.5.0", + "typescript": "^5.4.3", + "unbuild": "^2.0.0", + "vitest": "^1.4.0" + }, + "packageManager": "pnpm@8.15.5" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/uncrypto/dist/crypto.node.mjs b/frontend_admin/.output/server/node_modules/uncrypto/dist/crypto.node.mjs new file mode 100644 index 0000000..78996ba --- /dev/null +++ b/frontend_admin/.output/server/node_modules/uncrypto/dist/crypto.node.mjs @@ -0,0 +1,16 @@ +import nodeCrypto from 'node:crypto'; + +const subtle = nodeCrypto.webcrypto?.subtle || {}; +const randomUUID = () => { + return nodeCrypto.randomUUID(); +}; +const getRandomValues = (array) => { + return nodeCrypto.webcrypto.getRandomValues(array); +}; +const _crypto = { + randomUUID, + getRandomValues, + subtle +}; + +export { _crypto as default, getRandomValues, randomUUID, subtle }; diff --git a/frontend_admin/.output/server/node_modules/uncrypto/package.json b/frontend_admin/.output/server/node_modules/uncrypto/package.json new file mode 100644 index 0000000..46288be --- /dev/null +++ b/frontend_admin/.output/server/node_modules/uncrypto/package.json @@ -0,0 +1,60 @@ +{ + "name": "uncrypto", + "version": "0.1.3", + "description": "Single API for Web Crypto API and Crypto Subtle working in Node.js, Browsers and other runtimes", + "repository": "unjs/uncrypto", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "browser": "./dist/crypto.web.mjs", + "bun": "./dist/crypto.web.mjs", + "deno": "./dist/crypto.web.mjs", + "edge-light": "./dist/crypto.web.mjs", + "edge-routine": "./dist/crypto.web.mjs", + "lagon": "./dist/crypto.web.mjs", + "netlify": "./dist/crypto.web.mjs", + "react-native": "./dist/crypto.web.mjs", + "wintercg": "./dist/crypto.web.mjs", + "worker": "./dist/crypto.web.mjs", + "workerd": "./dist/crypto.web.mjs", + "node": { + "require": "./dist/crypto.node.cjs", + "import": "./dist/crypto.node.mjs", + "types": "./dist/crypto.node.d.ts" + }, + "require": "./dist/crypto.web.cjs", + "import": "./dist/crypto.web.mjs", + "types": "./dist/crypto.web.d.ts" + } + }, + "main": "./dist/crypto.node.cjs", + "module": "./dist/crypto.web.mjs", + "browser": "./dist/crypto.web.mjs", + "types": "./dist/crypto.web.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild", + "dev": "vitest dev", + "lint": "eslint --cache --ext .ts,.js,.mjs,.cjs . && prettier -c src test", + "lint:fix": "eslint --cache --ext .ts,.js,.mjs,.cjs . --fix && prettier -c src test -w", + "prepack": "pnpm run build", + "release": "pnpm test && changelogen --release && npm publish && git push --follow-tags", + "test": "pnpm lint && vitest run --coverage" + }, + "devDependencies": { + "@types/node": "^20.2.5", + "@vitest/coverage-v8": "^0.32.0", + "changelogen": "^0.5.3", + "eslint": "^8.42.0", + "eslint-config-unjs": "^0.2.1", + "prettier": "^2.8.8", + "typescript": "^5.1.3", + "unbuild": "^1.2.1", + "vitest": "^0.32.0" + }, + "packageManager": "pnpm@8.6.1" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/vue-devtools-stub/dist/index.mjs b/frontend_admin/.output/server/node_modules/vue-devtools-stub/dist/index.mjs new file mode 100644 index 0000000..a6694f3 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/vue-devtools-stub/dist/index.mjs @@ -0,0 +1,11 @@ +const setupDevtoolsPlugin = () => { +}; +const isPerformanceSupported = () => false; +const now = () => Date.now(); +const index = { + setupDevtoolsPlugin, + isPerformanceSupported, + now +}; + +export { index as default, isPerformanceSupported, now, setupDevtoolsPlugin }; diff --git a/frontend_admin/.output/server/node_modules/vue-devtools-stub/package.json b/frontend_admin/.output/server/node_modules/vue-devtools-stub/package.json new file mode 100644 index 0000000..7ad6ac3 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/vue-devtools-stub/package.json @@ -0,0 +1,41 @@ +{ + "name": "vue-devtools-stub", + "version": "0.1.0", + "description": "", + "repository": "nuxt-contrib/vue-devtools-stub", + "license": "MIT", + "sideEffects": false, + "type": "module", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild", + "dev": "vitest dev", + "lint": "eslint --ext .ts,.js,.mjs,.cjs .", + "prepack": "unbuild", + "release": "pnpm test && standard-version && git push --follow-tags && pnpm publish", + "test": "pnpm lint && vitest run" + }, + "dependencies": {}, + "devDependencies": { + "@nuxtjs/eslint-config-typescript": "latest", + "@vue/devtools-api": "^6.2.1", + "@vitest/coverage-c8": "latest", + "eslint": "latest", + "standard-version": "latest", + "typescript": "latest", + "unbuild": "latest", + "vitest": "latest" + }, + "packageManager": "pnpm@7.8.0" +} \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/vue-router b/frontend_admin/.output/server/node_modules/vue-router new file mode 120000 index 0000000..6d4efc5 --- /dev/null +++ b/frontend_admin/.output/server/node_modules/vue-router @@ -0,0 +1 @@ +.nitro/vue-router@5.1.0 \ No newline at end of file diff --git a/frontend_admin/.output/server/node_modules/vue-router/node_modules/@vue/devtools-api b/frontend_admin/.output/server/node_modules/vue-router/node_modules/@vue/devtools-api deleted file mode 120000 index daa1b97..0000000 --- a/frontend_admin/.output/server/node_modules/vue-router/node_modules/@vue/devtools-api +++ /dev/null @@ -1 +0,0 @@ -../../../.nitro/@vue/devtools-api@6.6.4 \ No newline at end of file diff --git a/frontend_admin/.output/server/package.json b/frontend_admin/.output/server/package.json index ac11f87..ceccfb2 100644 --- a/frontend_admin/.output/server/package.json +++ b/frontend_admin/.output/server/package.json @@ -5,6 +5,12 @@ "private": true, "dependencies": { "@babel/parser": "7.29.7", + "@intlify/core": "11.4.2", + "@intlify/core-base": "11.4.2", + "@intlify/h3": "0.7.4", + "@intlify/message-compiler": "11.4.2", + "@intlify/shared": "11.4.2", + "@intlify/utils": "0.13.0", "@vue/compiler-core": "3.5.38", "@vue/compiler-dom": "3.5.38", "@vue/compiler-ssr": "3.5.38", @@ -17,17 +23,26 @@ "@vue/server-renderer": "3.5.38", "@vue/shared": "3.5.38", "birpc": "2.9.0", + "cookie-es": "1.2.3", + "defu": "6.1.7", + "destr": "2.0.5", "devalue": "5.8.1", "entities": "7.0.1", "estree-walker": "2.0.2", + "h3": "1.15.11", "hookable": "6.1.1", + "iron-webcrypto": "1.2.1", + "node-mock-http": "1.0.4", "perfect-debounce": "1.0.0", "pinia": "3.0.4", + "radix3": "1.1.2", "source-map-js": "1.2.1", "ufo": "1.6.4", + "uncrypto": "0.1.3", "unhead": "2.1.15", "vue": "3.5.38", "vue-bundle-renderer": "2.2.0", + "vue-devtools-stub": "0.1.0", "vue-router": "4.6.4" } } \ No newline at end of file diff --git a/frontend_admin/composables/useFormatter.ts b/frontend_admin/composables/useFormatter.ts new file mode 100644 index 0000000..65aeb2d --- /dev/null +++ b/frontend_admin/composables/useFormatter.ts @@ -0,0 +1,162 @@ +import { useRegionStore } from '~/stores/region' + +/** + * 🌍 useFormatter Composable + * + * Provides locale-aware formatting utilities for numbers, currencies, dates, + * and percentages. Uses the active region configuration from the RegionStore + * to determine the appropriate locale, currency, and timezone. + * + * Falls back to 'en-EU' locale and 'EUR' currency if no region is configured. + */ +export function useFormatter() { + const regionStore = useRegionStore() + + /** + * Format a number according to the active locale. + * Example: 1234567.89 → "1,234,567.89" (en) or "1 234 567,89" (hu) + */ + function formatNumber(value: number, options?: Intl.NumberFormatOptions): string { + const locale = regionStore.activeLocale || 'en-EU' + try { + return new Intl.NumberFormat(locale, options).format(value) + } catch { + return new Intl.NumberFormat('en-EU', options).format(value) + } + } + + /** + * Format a currency value according to the active region's currency and locale. + * Example: 1234.50 → "€1,234.50" (EUR/en) or "3 456 Ft" (HUF/hu) + */ + function formatCurrency( + value: number, + currency?: string, + options?: Intl.NumberFormatOptions, + ): string { + const locale = regionStore.activeLocale || 'en-EU' + const curr = currency || regionStore.activeCurrency || 'EUR' + try { + return new Intl.NumberFormat(locale, { + style: 'currency', + currency: curr, + minimumFractionDigits: 2, + maximumFractionDigits: 2, + ...options, + }).format(value) + } catch { + return `${value.toFixed(2)} ${curr}` + } + } + + /** + * Format a date according to the active locale and timezone. + * Example: 2026-06-24 → "24/06/2026" (en-GB) or "2026. 06. 24." (hu-HU) + */ + function formatDate( + date: Date | string | number, + options?: Intl.DateTimeFormatOptions, + ): string { + const locale = regionStore.activeLocale || 'en-EU' + const timezone = regionStore.activeTimezone || 'Europe/Brussels' + const d = typeof date === 'string' || typeof date === 'number' ? new Date(date) : date + + try { + return new Intl.DateTimeFormat(locale, { + timezone, + year: 'numeric', + month: '2-digit', + day: '2-digit', + ...options, + }).format(d) + } catch { + return d.toLocaleDateString('en-GB') + } + } + + /** + * Format a datetime with time according to the active locale and timezone. + * Example: "2026-06-24T14:30:00Z" → "24/06/2026, 16:30" (hu-HU/Budapest) + */ + function formatDateTime( + date: Date | string | number, + options?: Intl.DateTimeFormatOptions, + ): string { + const locale = regionStore.activeLocale || 'en-EU' + const timezone = regionStore.activeTimezone || 'Europe/Brussels' + const d = typeof date === 'string' || typeof date === 'number' ? new Date(date) : date + + try { + return new Intl.DateTimeFormat(locale, { + timezone, + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + ...options, + }).format(d) + } catch { + return d.toLocaleString('en-GB') + } + } + + /** + * Format a percentage value. + * Example: 27 → "27%" or 27.5 → "27,5%" (hu) + */ + function formatPercent( + value: number, + options?: Intl.NumberFormatOptions, + ): string { + const locale = regionStore.activeLocale || 'en-EU' + try { + return new Intl.NumberFormat(locale, { + style: 'percent', + minimumFractionDigits: 0, + maximumFractionDigits: 1, + ...options, + }).format(value / 100) + } catch { + return `${value}%` + } + } + + /** + * Calculate price including VAT for the active region. + * VAT rate comes from the active region's default_vat_rate. + */ + function calculatePriceWithVat( + netPrice: number, + vatRate?: number, + ): { net: number; vat: number; gross: number; vatRate: number } { + const rate = vatRate ?? regionStore.activeVatRate ?? 0 + const vat = netPrice * (rate / 100) + const gross = netPrice + vat + return { net: netPrice, vat, gross, vatRate: rate } + } + + /** + * Format a price range with VAT breakdown. + * Example: (100, 27) → "Net: €100.00 | VAT: €27.00 (27%) | Gross: €127.00" + */ + function formatPriceWithVat( + netPrice: number, + vatRate?: number, + currency?: string, + ): string { + const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate) + const curr = currency || regionStore.activeCurrency || 'EUR' + return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}` + } + + return { + formatNumber, + formatCurrency, + formatDate, + formatDateTime, + formatPercent, + calculatePriceWithVat, + formatPriceWithVat, + } +} diff --git a/frontend_admin/i18n/locales/en.json b/frontend_admin/i18n/locales/en.json new file mode 100644 index 0000000..cf7ae4c --- /dev/null +++ b/frontend_admin/i18n/locales/en.json @@ -0,0 +1,141 @@ +{ + "permissions": { + "title": "Permissions Management", + "subtitle": "Permissions Management — Role-based access control & subscription feature flags", + "loading": "Loading permissions data...", + "error_title": "Failed to load permissions", + "retry": "Retry", + "save_changes": "Save Changes", + "discard": "Discard", + "modified_count": "{count} modification(s)", + "current_tier": "Current Tier", + "expires": "Expires", + "superadmin": "Superadmin", + "superadmin_desc": "Full system access — user management, billing, robots, and system configuration.", + "garages": "Garages", + "garages_desc": "Garage-level access — vehicle management, service booking, customer data.", + "feature_flags": "Feature Flags", + "feature_flags_desc": "Subscription feature toggles — resolved from your current tier ({tier}).", + "rbac_title": "RBAC Permission Matrix", + "rbac_desc": "Role-based access control — which roles can perform which admin actions.", + "action": "Action", + "perms": { + "user_mgmt": "User Management", + "billing_admin": "Billing Administration", + "robot_config": "Robot Configuration", + "system_logs": "System Logs Access", + "api_keys": "API Key Management", + "vehicle_crud": "Vehicle CRUD", + "service_booking": "Service Booking", + "customer_view": "Customer Data View", + "report_export": "Report Export", + "bulk_import": "Bulk Import" + } + }, + "packages": { + "title": "Package Management", + "subtitle": "Manage subscription packages and feature flags — Free, Premium, Enterprise", + "loading": "Loading packages...", + "retry": "Retry", + "create_new": "Create Package", + "no_packages": "No packages yet", + "no_packages_desc": "Create your first subscription package to get started.", + "create_first": "Create First Package", + "popular": "Popular", + "fallback_badge": "Fallback", + "trial_badge": "Trial", + "month": "month", + "feature_flags": "Available Features", + "edit": "Edit", + "duplicate": "Duplicate", + "delete": "Delete", + "set_as_default": "Set as default", + "set_as_default_success": "set as default package!", + "edit_title": "Edit Package", + "create_title": "Create Package", + "cancel": "Cancel", + "save": "Save Changes", + "create": "Create", + "save_success": "Package updated successfully!", + "delete_title": "Delete Package", + "delete_confirm": "Are you sure you want to delete \"{name}\"?", + "delete_btn": "Delete", + "allowances": "Allowances", + "max_vehicles": "Max Vehicles", + "max_garages": "Max Garages", + "monthly_credits": "Monthly Credits", + "tier_level": "Tier Level", + "form_name": "System Name", + "form_name_placeholder": "e.g. premium_2024", + "form_display_name": "Display Name", + "form_display_name_placeholder": "e.g. Premium Plus", + "form_type": "Type", + "type_private": "Private", + "type_corporate": "Corporate", + "form_tier_level": "Tier Level", + "form_tier_level_hint": "Higher number = more features & higher rank", + "form_monthly_price": "Monthly Price", + "form_yearly_price": "Yearly Price", + "form_currency": "Currency", + "form_subtitle": "Subtitle / Description", + "form_subtitle_placeholder": "e.g. Best for small businesses", + "form_badge": "Badge Text", + "form_badge_placeholder": "e.g. Most Popular", + "form_is_custom": "Custom Package (not publicly listed)", + "singleton_rules": "Singleton Rules", + "form_is_default_fallback": "Default Fallback Package — assigned when a subscription expires", + "form_trial_days": "Trial Days on Signup", + "form_trial_days_hint": "New organizations get this many free days. Only one package can have trial > 0.", + "per_region_pricing": "Per-Region Pricing", + "smart_calculator": "Smart Pricing Calculator", + "calc_net_price": "Net Price", + "calc_vat_rate": "VAT Rate", + "calc_currency": "Currency", + "calc_net": "Net", + "calc_vat": "VAT", + "calc_gross": "Gross", + "calc_apply": "Apply to Selected Region", + "add_zone": "Add Pricing Zone", + "add_zone_select": "Select a country code...", + "add_zone_already_exists": "This region already exists in the package pricing!" + }, + "garages": { + "title": "Garages CRM", + "subtitle": "Garage list, package management and status changes", + "total_garages": "Total Garages", + "active_garages": "Active Garages", + "premium_garages": "Premium Garages", + "enterprise_garages": "Enterprise Garages", + "search_placeholder": "Search by name, contact or email...", + "all_tiers": "All packages", + "company_name": "Company Name", + "email": "Email", + "status": "Status", + "current_package": "Current Package", + "expiration_date": "Expiration Date", + "actions": "Actions", + "active": "Active", + "inactive": "Inactive", + "suspended": "Suspended", + "change_package": "Change Package", + "manage_subscription": "Manage Subscription", + "view": "View", + "activate": "Activate", + "deactivate": "Deactivate", + "no_results": "No garages match your search.", + "loading": "Loading garages...", + "retry": "Retry", + "members": "members", + "free_fallback": "Free / Fallback", + "expires": "Expires", + "select_package": "Select Package", + "select_package_placeholder": "Select a subscription package...", + "custom_expiration": "Custom Expiration Date", + "optional": "optional", + "custom_expiration_hint": "Leave empty for default duration (e.g. 30 days). For 2-5 year B2B deals, set a custom date!", + "cancel": "Cancel", + "save": "Save", + "saving": "Saving...", + "subscription_updated": "subscription updated successfully!" + } +} diff --git a/frontend_admin/i18n/locales/hu.json b/frontend_admin/i18n/locales/hu.json new file mode 100644 index 0000000..537f23a --- /dev/null +++ b/frontend_admin/i18n/locales/hu.json @@ -0,0 +1,141 @@ +{ + "permissions": { + "title": "Jogosultság Kezelés", + "subtitle": "Permissions Management — Role-based access control & subscription feature flags", + "loading": "Jogosultságok betöltése...", + "error_title": "Nem sikerült betölteni a jogosultságokat", + "retry": "Újra", + "save_changes": "Változtatások Mentése", + "discard": "Elvetés", + "modified_count": "{count} módosítás", + "current_tier": "Aktuális Csomag", + "expires": "Lejárat", + "superadmin": "Superadmin", + "superadmin_desc": "Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció.", + "garages": "Garázsok", + "garages_desc": "Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok.", + "feature_flags": "Feature Flags", + "feature_flags_desc": "Előfizetési funkciók — a jelenlegi csomagod alapján ({tier}).", + "rbac_title": "RBAC Jogosultsági Mátrix", + "rbac_desc": "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik.", + "action": "Művelet", + "perms": { + "user_mgmt": "Felhasználókezelés", + "billing_admin": "Számlázási Adminisztráció", + "robot_config": "Robot Konfiguráció", + "system_logs": "Rendszernaplók Elérése", + "api_keys": "API Kulcs Kezelés", + "vehicle_crud": "Jármű CRUD", + "service_booking": "Szervizfoglalás", + "customer_view": "Ügyféladatok Megtekintése", + "report_export": "Jelentés Exportálás", + "bulk_import": "Tömeges Import" + } + }, + "packages": { + "title": "Csomagok Kezelése", + "subtitle": "Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise", + "loading": "Csomagok betöltése...", + "retry": "Újra", + "create_new": "Új Csomag", + "no_packages": "Még nincsenek csomagok", + "no_packages_desc": "Hozd létre az első előfizetési csomagot a kezdéshez.", + "create_first": "Első Csomag Létrehozása", + "popular": "Népszerű", + "fallback_badge": "Visszaesési", + "trial_badge": "Próba", + "month": "hó", + "feature_flags": "Elérhető Funkciók", + "edit": "Szerkesztés", + "duplicate": "Másolás", + "delete": "Törlés", + "set_as_default": "Beállítás alapértelmezettként", + "set_as_default_success": "alapértelmezett csomagként beállítva!", + "edit_title": "Csomag Szerkesztése", + "create_title": "Csomag Létrehozása", + "cancel": "Mégse", + "save": "Változtatások Mentése", + "create": "Létrehozás", + "save_success": "Csomag sikeresen frissítve!", + "delete_title": "Csomag Törlése", + "delete_confirm": "Biztosan törölni szeretnéd a \"{name}\" csomagot?", + "delete_btn": "Törlés", + "allowances": "Korlátok", + "max_vehicles": "Max Jármű", + "max_garages": "Max Garázs", + "monthly_credits": "Havi Kredit", + "tier_level": "Szint", + "form_name": "Rendszer Név", + "form_name_placeholder": "pl. premium_2024", + "form_display_name": "Megjelenítési Név", + "form_display_name_placeholder": "pl. Premium Plus", + "form_type": "Típus", + "type_private": "Magán", + "type_corporate": "Vállalati", + "form_tier_level": "Szintszám", + "form_tier_level_hint": "Magasabb szám = több funkció és magasabb rang", + "form_monthly_price": "Havi Díj", + "form_yearly_price": "Éves Díj", + "form_currency": "Pénznem", + "form_subtitle": "Felirat / Leírás", + "form_subtitle_placeholder": "pl. Ideális kisvállalkozásoknak", + "form_badge": "Jelvény Szöveg", + "form_badge_placeholder": "pl. Legnépszerűbb", + "form_is_custom": "Egyedi Csomag (nem publikus)", + "singleton_rules": "Egyediségi Szabályok", + "form_is_default_fallback": "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált", + "form_trial_days": "Próba Napok Regisztrációnál", + "form_trial_days_hint": "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0.", + "per_region_pricing": "Régiók szerinti árazás", + "smart_calculator": "Okos Árkalkulátor", + "calc_net_price": "Nettó ár", + "calc_vat_rate": "ÁFA kulcs", + "calc_currency": "Pénznem", + "calc_net": "Nettó", + "calc_vat": "ÁFA", + "calc_gross": "Bruttó", + "calc_apply": "Alkalmaz a kiválasztott régióra", + "add_zone": "Új Zóna Hozzáadása", + "add_zone_select": "Válassz országkódot...", + "add_zone_already_exists": "Ez a régió már létezik a csomag árazásában!" + }, + "garages": { + "title": "Garázsok CRM", + "subtitle": "Garázsok listája, csomagkezelés és státuszmódosítás", + "total_garages": "Összes Garázs", + "active_garages": "Aktív Garázsok", + "premium_garages": "Premium Garázsok", + "enterprise_garages": "Enterprise Garázsok", + "search_placeholder": "Keresés név, kapcsolattartó vagy e-mail alapján...", + "all_tiers": "Összes csomag", + "company_name": "Cégnév", + "email": "E-mail", + "status": "Státusz", + "current_package": "Aktuális Csomag", + "expiration_date": "Lejárat Dátuma", + "actions": "Műveletek", + "active": "Aktív", + "inactive": "Inaktív", + "suspended": "Felfüggesztve", + "change_package": "Csomag Módosítása", + "manage_subscription": "Előfizetés Kezelése", + "view": "Megtekintés", + "activate": "Aktiválás", + "deactivate": "Deaktiválás", + "no_results": "Nincs a keresésnek megfelelő garázs.", + "loading": "Garázsok betöltése...", + "retry": "Újra", + "members": "tag", + "free_fallback": "Ingyenes / Visszaesési", + "expires": "Lejárat", + "select_package": "Csomag Kiválasztása", + "select_package_placeholder": "Válassz egy előfizetési csomagot...", + "custom_expiration": "Egyéni Lejárati Dátum", + "optional": "opcionális", + "custom_expiration_hint": "Hagyd üresen az alapértelmezett időtartamhoz (pl. 30 nap). 2-5 éves B2B deal-eknél adj meg egyedi dátumot!", + "cancel": "Mégse", + "save": "Mentés", + "saving": "Mentés...", + "subscription_updated": "előfizetése sikeresen frissítve!" + } +} diff --git a/frontend_admin/layouts/blank.vue b/frontend_admin/layouts/blank.vue new file mode 100644 index 0000000..25d393e --- /dev/null +++ b/frontend_admin/layouts/blank.vue @@ -0,0 +1,5 @@ + diff --git a/frontend_admin/layouts/default.vue b/frontend_admin/layouts/default.vue index 26a992d..d3cca48 100644 --- a/frontend_admin/layouts/default.vue +++ b/frontend_admin/layouts/default.vue @@ -10,24 +10,27 @@ -
+
@@ -135,8 +152,25 @@

{{ pageTitle }}

- -
+ +
+ +
+ +
+ + +
+
@@ -194,11 +229,42 @@ diff --git a/frontend_admin/pages/login.vue b/frontend_admin/pages/login.vue index e54fee5..d443db6 100644 --- a/frontend_admin/pages/login.vue +++ b/frontend_admin/pages/login.vue @@ -93,6 +93,10 @@ \ No newline at end of file diff --git a/frontend_admin/pages/permissions/index.vue b/frontend_admin/pages/permissions/index.vue index db8ef96..5ecd309 100644 --- a/frontend_admin/pages/permissions/index.vue +++ b/frontend_admin/pages/permissions/index.vue @@ -2,119 +2,273 @@
-

Jogosultság Kezelés

-

Permissions Management — Role-based access control matrix

+

{{ $t('permissions.title') }}

+

{{ $t('permissions.subtitle') }}

- -
- - + +
+ + + -

- This is the permissions management interface. The 3D Capability Matrix UI (Superadmin, Garages, and Packages toggles) will be implemented here in the next iteration. -

+ {{ $t('permissions.loading') }}
- -
- -
-
-
- - - -
-

Superadmin

+ +
+
+ + + +
+

{{ $t('permissions.error_title') }}

+

{{ error }}

-

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

-
-
- {{ perm.label }} - - {{ perm.enabled ? 'Enabled' : 'Disabled' }} - -
-
-
- +
+ +
+ + +
diff --git a/frontend_admin/public/logo.svg b/frontend_admin/public/logo.svg new file mode 100644 index 0000000..601e670 --- /dev/null +++ b/frontend_admin/public/logo.svg @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + diff --git a/frontend_admin/stores/region.ts b/frontend_admin/stores/region.ts new file mode 100644 index 0000000..99cf32a --- /dev/null +++ b/frontend_admin/stores/region.ts @@ -0,0 +1,108 @@ +import { defineStore } from 'pinia' +import { ref, computed } from 'vue' + +export interface RegionConfig { + country_code: string + name: string + currency: string + default_vat_rate: number + locale_code: string + timezone: string + is_active: boolean +} + +export const useRegionStore = defineStore('region', () => { + // ── State ────────────────────────────────────────────────────────── + const regions = ref([]) + const activeRegion = ref(null) + const isLoading = ref(false) + const error = ref(null) + + // ── Getters ──────────────────────────────────────────────────────── + const defaultRegion = computed(() => { + return regions.value.find(r => r.country_code === 'DEFAULT') || null + }) + + const regionMap = computed(() => { + const map = new Map() + for (const r of regions.value) { + map.set(r.country_code, r) + } + return map + }) + + const activeCurrency = computed(() => { + return activeRegion.value?.currency || defaultRegion.value?.currency || 'EUR' + }) + + const activeLocale = computed(() => { + return activeRegion.value?.locale_code || defaultRegion.value?.locale_code || 'en-EU' + }) + + const activeVatRate = computed(() => { + return activeRegion.value?.default_vat_rate ?? defaultRegion.value?.default_vat_rate ?? 0 + }) + + const activeTimezone = computed(() => { + return activeRegion.value?.timezone || defaultRegion.value?.timezone || 'Europe/Brussels' + }) + + // ── Actions ──────────────────────────────────────────────────────── + + /** + * Fetch all active regions from the public API endpoint. + * Called once on app initialization. + */ + async function fetchRegions() { + if (regions.value.length > 0) return // already loaded + isLoading.value = true + error.value = null + + try { + const data = await $fetch('/api/v1/system/regions') + regions.value = data || [] + } catch (err: any) { + error.value = err?.data?.detail || err?.message || 'Failed to load regions' + console.error('[RegionStore] Fetch error:', err) + } finally { + isLoading.value = false + } + } + + /** + * Set the active region by country_code. + * Falls back to DEFAULT if the code is not found. + */ + function setActiveRegion(countryCode: string) { + const found = regions.value.find(r => r.country_code === countryCode) + activeRegion.value = found || defaultRegion.value + } + + /** + * Get a region config by country_code. + */ + function getRegion(countryCode: string): RegionConfig | undefined { + return regionMap.value.get(countryCode) + } + + return { + // State + regions, + activeRegion, + isLoading, + error, + + // Getters + defaultRegion, + regionMap, + activeCurrency, + activeLocale, + activeVatRate, + activeTimezone, + + // Actions + fetchRegions, + setActiveRegion, + getRegion, + } +}) diff --git a/plans/logic_spec_p0_hybrid_vendor_refactor.md b/plans/logic_spec_p0_hybrid_vendor_refactor.md new file mode 100644 index 0000000..49f943f --- /dev/null +++ b/plans/logic_spec_p0_hybrid_vendor_refactor.md @@ -0,0 +1,189 @@ +# P0 Architecture Refactor: Option C (Hybrid) — Vendor/Expense Domain Separation + +**Date:** 2026-06-25 +**Author:** Rendszer-Architect +**Status:** DRAFT — Awaiting approval +**Masterbook 2.0 Alignment:** Domain-Driven Design, Schema Separation + +--- + +## 1. Modul Célja és MasterBook 2.0 illeszkedés + +### Cél +A `quick_add_provider()` jelenleg teljes `Organization` rekordokat hoz létre a `fleet.organizations` táblában minden egyes crowdsource-olt szolgáltató (vendor) számára. Ez **domain-szennyezés**: a könnyűsúlyú beszállítók (szerelők, gumiszervizek) nem érdemelnek teljes szervezeti entitást garázsadminnal, előfizetéssel és tagokkal. + +### MasterBook 2.0 illeszkedés +- **DDD Szeparáció:** A `marketplace.service_providers` tábla a könnyűsúlyú, közösség által beküldött szolgáltatók otthona. A `fleet.organizations` csak a valódi garázsokat (flottakezelő cégeket) tartalmazza. +- **"Dual Entity":** A két entitás (Organization vs ServiceProvider) külön sémában él, eltérő életciklussal és adatigénnyel. +- **Twin-technika:** A ServiceProvider egyszerű, mindössze név + cím adatokkal. A teljes garázs-entitásnak (Organization) viszont subscription, lifecycle, member management kell. + +--- + +## 2. Jelenlegi Architektúra (As-Is) + +### 2.1. `quick_add_provider()` flow +``` +User -> POST /providers/quick-add + -> 1. Organization létre (fleet.organizations, org_type=service_provider) + -> 2. ServiceProfile létre (marketplace.service_profiles, FK -> organization) + -> 3. ServiceExpertise létre (marketplace.service_expertises) + -> 4. Branch létre (fleet.branches, FK -> organization) + -> 5. OrganizationMember létre (fleet.organization_members) - mar kikommentezve! +``` + +### 2.2. AssetCost vendor link +```python +# fleet_finance.asset_costs +vendor_organization_id -> fleet.organizations.id (a beszallito Organization-re mutat) +``` + +### 2.3. Probléma +- Minden crowdsource vendor beszennyezi a `fleet.organizations` táblát +- Az admin `/admin/organizations` API a valódi garázsok mellett a fake orgokat is visszaadja +- A valódi garázsok safe listája: `(15, 21, 43, 45, 47, 48, 49, 50, 66, 67, 69, 70, 71)` — a többi org a quick_add által létrehozott beszállító! + +--- + +## 3. Célarchitektúra (To-Be) — Option C (Hybrid) + +### 3.1. Adatmodell változások + +#### A) `fleet_finance.asset_costs` — ÚJ oszlop +```python +# MEGTARTVA (kompatibilitás): +vendor_organization_id: Optional[int] -> fleet.organizations.id + +# HOZZÁADVA (új elsődleges hivatkozás): +service_provider_id: Optional[int] -> marketplace.service_providers.id +``` + +#### B) `marketplace.service_profiles` — ÚJ oszlop +```python +# MEGTARTVA (meglévő kapcsolatok miatt, nullable): +organization_id: Optional[int] -> fleet.organizations.id + +# HOZZÁADVA (új elsődleges hivatkozás): +service_provider_id: Optional[int] -> marketplace.service_providers.id +``` + +#### C) `marketplace.service_providers` — Bővítés +```python +# MEGLÉVŐ: +id, name, address, category, status, source, validation_score, ... + +# HOZZÁADVA (a quick_add által igényelt mezők): +city: Optional[str] +address_zip: Optional[str] +address_street_name: Optional[str] +address_street_type: Optional[str] +address_house_number: Optional[str] +plus_code: Optional[str] +contact_phone: Optional[str] +contact_email: Optional[str] +website: Optional[str] +``` + +### 3.2. Új `quick_add_provider()` flow +``` +User -> POST /providers/quick-add + -> 1. ServiceProvider létre (marketplace.service_providers) <- ÚJ! + -> 2. ServiceProfile létre (marketplace.service_profiles, FK -> service_provider) + -> 3. ServiceExpertise létre (marketplace.service_expertises) + -> x NINCS Organization létrehozva! + -> x NINCS Branch létrehozva! + -> x NINCS OrganizationMember létrehozva! +``` + +### 3.3. AssetCost vendor választás logika +``` +When creating an expense: + 1. IF service_provider_id is provided -> save to service_provider_id column + 2. IF vendor_organization_id is provided (legacy) -> save to vendor_organization_id column + 3. Both can coexist +``` + +### 3.4. API response changes +- `GET /expenses/{asset_id}` -> add `service_provider_id` and resolved `vendor_name` +- `AssetCostResponse` schema -> add `service_provider_id` + +--- + +## 4. Data Migration: Fake Org -> ServiceProvider + +### 4.1. Safe list (valódi garázsok) +```sql +(15, 21, 43, 45, 47, 48, 49, 50, 66, 67, 69, 70, 71) +``` + +### 4.2. Migrációs lépések +1. SELECT all orgs where id NOT IN safe list +2. For each fake org: + - INSERT into marketplace.service_providers (name, address, city, etc.) + - UPDATE marketplace.service_profiles SET service_provider_id = new_id WHERE organization_id = fake_org_id + - UPDATE fleet_finance.asset_costs SET service_provider_id = new_id WHERE vendor_organization_id = fake_org_id +3. DELETE cascade: + - DELETE from fleet.branches WHERE organization_id IN (fake org IDs) + - DELETE from fleet.organization_members WHERE organization_id IN (fake org IDs) + - DELETE from fleet.organizations WHERE id IN (fake org IDs) + +--- + +## 5. Érintett fájlok + +### Módosítandó fájlok: + +| Fájl | Változtatás | +|------|-------------| +| `backend/app/models/fleet_finance/models.py` | Add `service_provider_id` column + relationship to `AssetCost` | +| `backend/app/models/marketplace/service.py` | Add `service_provider_id` column to `ServiceProfile` | +| `backend/app/models/identity/social.py` | Add address/contact fields to `ServiceProvider` | +| `backend/app/models/__init__.py` | Update imports if needed | +| `backend/app/services/provider_service.py` | Rewrite `quick_add_provider` — create ServiceProvider, not Organization | +| `backend/app/api/v1/endpoints/expenses.py` | Update `create_expense` to handle `service_provider_id` | +| `backend/app/schemas/asset_cost.py` | Add `service_provider_id` field to schemas | +| `backend/scripts/migrate_providers.py` | **NEW** — data migration script | + +--- + +## 6. Végrehajtási Sorrend + +### Fázis 1: Schema változások +1. Add `service_provider_id` to `AssetCost` model +2. Add `service_provider_id` to `ServiceProfile` model +3. Extend `ServiceProvider` model with address/contact fields +4. Run sync_engine to apply schema changes + +### Fázis 2: Refactor `quick_add_provider()` +5. Rewrite `quick_add_provider()` to create ServiceProvider + ServiceProfile only +6. Update schemas (add `service_provider_id`) +7. Update expense creation endpoint + +### Fázis 3: Data Migration +8. Create `backend/scripts/migrate_providers.py` +9. Run migration + +### Fázis 4: Verification +10. Verify GET /admin/organizations returns only 13 garages +11. Verify quick-add flow no longer pollutes garages list + +--- + +## 7. Kockázatok és Függőségek + +| Kockázat | Hatás | Mitigáció | +|----------|-------|-----------| +| Meglévő FK constraint a `vendor_organization_id`-ra | Adatintegritás sérülhet | Továbbra is nullable; a migration átírja a kapcsolatokat | +| ServiceProfile.organization_id meglévő NOT NULL constraint | Migration elakadhat | Már nullable (`Optional[int]`), meglévő rekordok megmaradnak | +| Frontend küld `vendor_organization_id`-t | Új mező nem töltődik | Backward compat: mindkét mezőt kezeljük | +| Branch törlés cascade | Adatvesztés | Csak a fake org-ok Branch-eit töröljük | + +--- + +## 8. Összefoglaló + +Az Option C (Hybrid) megoldás: +- **Megtartja** a `vendor_organization_id`-t a backward compatibility érdekében +- **Hozzáad** egy új `service_provider_id`-t, ami a `marketplace.service_providers` táblára hivatkozik +- **Átírja** a `quick_add_provider()`-t, hogy ne hozzon létre Organization-t +- **Adatmigrációt** végez: a meglévő fake org-okat áthelyezi a ServiceProvider táblába +- **Ellenőrzi** a végeredményt: az admin garázslista pontosan a 13 valódi garázst tartalmazza diff --git a/tests/active/test_deep_merge_fix.py b/tests/active/test_deep_merge_fix.py new file mode 100644 index 0000000..f2091a0 --- /dev/null +++ b/tests/active/test_deep_merge_fix.py @@ -0,0 +1,274 @@ +#!/usr/bin/env python3 +""" +P0 CRITICAL FIX Verification: Deep Merge for JSONB fields. + +This test verifies that the deep_merge_dict() function in admin_packages.py +correctly preserves nested JSONB keys (pricing_zones.HU, lifecycle.available_until) +when a PATCH request only sends a subset of the data. + +Test scenarios: +1. deep_merge_dict unit test — verify the function works correctly in isolation +2. API PATCH test — send a PATCH with only DEFAULT pricing zone, verify HU/US zones survive +3. API PATCH test — send a PATCH with lifecycle.is_public, verify available_until survives +""" + +import os +import sys +import json +import asyncio +from copy import deepcopy + +# Add backend to path +sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../backend')) + +# ── Import the deep_merge_dict function directly ── +from app.api.v1.endpoints.admin_packages import deep_merge_dict + + +def test_deep_merge_dict_unit(): + """Unit test: verify deep_merge_dict preserves nested keys.""" + print("=" * 70) + print("🧪 TEST 1: deep_merge_dict() unit test") + print("=" * 70) + + # ── Scenario A: Multi-zone pricing preservation ── + base = { + "type": "private", + "pricing_zones": { + "HU": {"monthly_price": 990.0, "yearly_price": 9990.0, "currency": "HUF", "credit_price": 25000}, + "US": {"monthly_price": 3.5, "yearly_price": 35.9, "currency": "USD", "credit_price": 25000}, + "DEFAULT": {"monthly_price": 2.99, "yearly_price": 29.9, "currency": "EUR", "credit_price": 25000}, + }, + "lifecycle": {"is_public": True, "available_until": "2026-12-31T23:59:59Z"}, + "allowances": {"max_vehicles": 3, "max_garages": 1, "monthly_free_credits": 50}, + } + + # Frontend sends ONLY DEFAULT zone update (simulating the bug scenario) + override = { + "type": "private", + "pricing_zones": { + "DEFAULT": {"monthly_price": 5.99, "yearly_price": 59.9, "currency": "EUR"}, + }, + "lifecycle": {"is_public": True}, + } + + merged = deep_merge_dict(base, override) + + # Verify HU zone is PRESERVED + assert "HU" in merged["pricing_zones"], "❌ FAIL: HU pricing zone was LOST!" + assert merged["pricing_zones"]["HU"]["monthly_price"] == 990.0, "❌ FAIL: HU price changed!" + assert merged["pricing_zones"]["HU"]["currency"] == "HUF", "❌ FAIL: HU currency changed!" + + # Verify US zone is PRESERVED + assert "US" in merged["pricing_zones"], "❌ FAIL: US pricing zone was LOST!" + assert merged["pricing_zones"]["US"]["monthly_price"] == 3.5, "❌ FAIL: US price changed!" + + # Verify DEFAULT zone is UPDATED + assert merged["pricing_zones"]["DEFAULT"]["monthly_price"] == 5.99, "❌ FAIL: DEFAULT price not updated!" + assert merged["pricing_zones"]["DEFAULT"]["yearly_price"] == 59.9, "❌ FAIL: DEFAULT yearly price not updated!" + + # Verify lifecycle.available_until is PRESERVED + assert merged["lifecycle"]["available_until"] == "2026-12-31T23:59:59Z", \ + "❌ FAIL: lifecycle.available_until was LOST!" + assert merged["lifecycle"]["is_public"] is True, "❌ FAIL: lifecycle.is_public changed!" + + # Verify allowances are PRESERVED + assert merged["allowances"]["max_vehicles"] == 3, "❌ FAIL: allowances.max_vehicles changed!" + + print(" ✅ PASS: All pricing zones preserved (HU, US, DEFAULT)") + print(" ✅ PASS: lifecycle.available_until preserved") + print(" ✅ PASS: Unrelated fields (allowances) preserved") + print(" ✅ PASS: Updated fields correctly applied (DEFAULT price changed)") + print() + + # ── Scenario B: None values are skipped ── + base_b = {"pricing_zones": {"DEFAULT": {"monthly_price": 10.0}}} + override_b = {"pricing_zones": {"DEFAULT": {"monthly_price": None}}} + merged_b = deep_merge_dict(base_b, override_b) + assert merged_b["pricing_zones"]["DEFAULT"]["monthly_price"] == 10.0, \ + "❌ FAIL: None override should preserve existing value!" + print(" ✅ PASS: None values correctly preserve existing data") + print() + + # ── Scenario C: Empty override doesn't destroy data ── + base_c = {"pricing_zones": {"HU": {"monthly_price": 990.0}}} + override_c = {} + merged_c = deep_merge_dict(base_c, override_c) + assert merged_c["pricing_zones"]["HU"]["monthly_price"] == 990.0, \ + "❌ FAIL: Empty override should preserve everything!" + print(" ✅ PASS: Empty override preserves all existing data") + print() + + print("🎉 All unit tests PASSED!") + print() + return True + + +async def test_api_patch_preserves_zones(): + """ + Test the actual API endpoint by sending a PATCH request. + Uses the admin auth token and tests against private_pro_v1 (id=14). + """ + print("=" * 70) + print("🧪 TEST 2: API PATCH — pricing zone preservation") + print("=" * 70) + + import httpx + + # Get admin token + BASE_URL = os.environ.get("API_BASE_URL", "http://localhost:8000") + ADMIN_EMAIL = os.environ.get("ADMIN_EMAIL", "admin@profibot.hu") + ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "Admin123!") + + async with httpx.AsyncClient(base_url=BASE_URL, timeout=30) as client: + # ── Login (OAuth2 form) ── + login_resp = await client.post("/api/v1/auth/login", data={ + "username": ADMIN_EMAIL, + "password": ADMIN_PASSWORD, + }) + if login_resp.status_code != 200: + print(f" ⚠️ Login failed ({login_resp.status_code}), skipping API test.") + print(f" Response: {login_resp.text[:200]}") + return False + + token = login_resp.json().get("access_token") + headers = {"Authorization": f"Bearer {token}"} + + # ── Fetch private_pro_v1 (id=14) ── + list_resp = await client.get("/api/v1/admin/packages", headers=headers) + if list_resp.status_code != 200: + print(f" ⚠️ List failed ({list_resp.status_code}), skipping API test.") + return False + + tiers = list_resp.json().get("tiers", []) + target = next((t for t in tiers if t["name"] == "private_pro_v1"), None) + if not target: + print(" ⚠️ private_pro_v1 not found, trying first package with pricing_zones...") + target = next((t for t in tiers if t.get("rules", {}).get("pricing_zones")), None) + + if not target: + print(" ⚠️ No package with pricing_zones found, skipping API test.") + return False + + tier_id = target["id"] + print(f" Target package: {target['name']} (id={tier_id})") + + # Record zones BEFORE patch + before_zones = dict(target["rules"].get("pricing_zones", {})) + before_lifecycle = dict(target["rules"].get("lifecycle", {})) + print(f" Zones before: {list(before_zones.keys())}") + print(f" Lifecycle before: {before_lifecycle}") + + # ── Send PATCH with ONLY DEFAULT zone ── + patch_payload = { + "rules": { + "type": target["rules"]["type"], + "pricing_zones": { + "DEFAULT": { + "monthly_price": 999.99, + "yearly_price": 9999.99, + "currency": "EUR", + } + }, + "lifecycle": {"is_public": True}, + } + } + + patch_resp = await client.patch( + f"/api/v1/admin/packages/{tier_id}", + headers=headers, + json=patch_payload, + ) + + if patch_resp.status_code != 200: + print(f" ❌ PATCH failed ({patch_resp.status_code}): {patch_resp.text[:300]}") + return False + + updated = patch_resp.json() + after_zones = updated["rules"].get("pricing_zones", {}) + after_lifecycle = updated["rules"].get("lifecycle", {}) + + print(f" Zones after: {list(after_zones.keys())}") + print(f" Lifecycle after: {after_lifecycle}") + + # ── VERIFY: All original zones still exist ── + all_preserved = True + for zone_key in before_zones: + if zone_key not in after_zones: + print(f" ❌ FAIL: Zone '{zone_key}' was LOST!") + all_preserved = False + else: + print(f" ✅ Zone '{zone_key}' preserved") + + # ── VERIFY: DEFAULT price was updated ── + if "DEFAULT" in after_zones: + if after_zones["DEFAULT"]["monthly_price"] == 999.99: + print(f" ✅ DEFAULT price updated correctly") + else: + print(f" ⚠️ DEFAULT price mismatch: {after_zones['DEFAULT']['monthly_price']}") + + # ── VERIFY: lifecycle.available_until preserved ── + if before_lifecycle.get("available_until"): + if after_lifecycle.get("available_until") == before_lifecycle["available_until"]: + print(f" ✅ lifecycle.available_until preserved") + else: + print(f" ❌ FAIL: lifecycle.available_until was LOST or changed!") + print(f" Before: {before_lifecycle.get('available_until')}") + print(f" After: {after_lifecycle.get('available_until')}") + all_preserved = False + + if all_preserved: + print("\n🎉 API test PASSED! Deep merge is working correctly.") + else: + print("\n❌ API test FAILED — some data was lost!") + + # ── Restore original data ── + restore_payload = { + "rules": { + "type": target["rules"]["type"], + "pricing_zones": before_zones, + "lifecycle": before_lifecycle, + } + } + await client.patch( + f"/api/v1/admin/packages/{tier_id}", + headers=headers, + json=restore_payload, + ) + print(" 🔄 Original data restored") + + return all_preserved + + +async def main(): + print("\n" + "=" * 70) + print("🔬 P0 CRITICAL FIX VERIFICATION: Deep Merge for JSONB") + print("=" * 70) + print() + + # Test 1: Unit test + unit_ok = test_deep_merge_dict_unit() + + # Test 2: API test + print() + api_ok = await test_api_patch_preserves_zones() + + # Summary + print() + print("=" * 70) + print("📊 SUMMARY") + print("=" * 70) + print(f" Unit test: {'✅ PASS' if unit_ok else '❌ FAIL'}") + print(f" API test: {'✅ PASS' if api_ok else '❌ FAIL (or skipped)'}") + print() + + if unit_ok: + print("✅ The deep_merge_dict() function is working correctly.") + print(" Multi-zone pricing data loss vulnerability is CLOSED.") + else: + print("❌ Fix verification FAILED!") + sys.exit(1) + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/tests/active/test_subscription_feature_flags.py b/tests/active/test_subscription_feature_flags.py new file mode 100644 index 0000000..d902c2b --- /dev/null +++ b/tests/active/test_subscription_feature_flags.py @@ -0,0 +1,139 @@ +#!/usr/bin/env python3 +""" +Test script for subscription feature flag endpoints (Gitea #239). +Tests: GET /subscriptions/my, GET /subscriptions/feature-flags, GET /subscriptions/check/{key} +""" +import asyncio +import httpx +import sys + +BASE_URL = "http://sf_api:8000/api/v1" + +async def main(): + async with httpx.AsyncClient(base_url=BASE_URL) as client: + # ── Step 1: Login with OAuth2 form data ── + print("=" * 60) + print("STEP 1: Login with admin user") + print("=" * 60) + + login_data = { + "username": "admin@profibot.hu", + "password": "Admin123!", + "grant_type": "password", + } + + login_resp = await client.post( + "/auth/login", + data=login_data, # OAuth2 form data + headers={"Content-Type": "application/x-www-form-urlencoded"}, + ) + + if login_resp.status_code != 200: + print(f"❌ Login failed: {login_resp.status_code}") + print(f" Response: {login_resp.text}") + sys.exit(1) + + token_data = login_resp.json() + token = token_data.get("access_token") + print(f"✅ Login OK — token: {token[:50]}...") + + headers = {"Authorization": f"Bearer {token}"} + + # ── Step 2: GET /subscriptions/my ── + print("\n" + "=" * 60) + print("STEP 2: GET /subscriptions/my") + print("=" * 60) + + resp = await client.get("/subscriptions/my", headers=headers) + if resp.status_code == 200: + data = resp.json() + print(f"✅ Status: 200") + print(f" Tier: {data.get('tier')}") + print(f" Source: {data.get('source')}") + print(f" Expires: {data.get('expires_at')}") + features = data.get('features', {}) + print(f" Features count: {len(features)}") + # Show first 5 features + for i, (k, v) in enumerate(features.items()): + if i >= 5: + print(f" ... and {len(features) - 5} more") + break + print(f" - {k}: {v}") + sub = data.get('subscription') + if sub: + print(f" Subscription tier_name: {sub.get('tier_name')}") + print(f" Subscription display_name: {sub.get('display_name')}") + else: + print(f"❌ Failed: {resp.status_code}") + print(f" Response: {resp.text[:500]}") + + # ── Step 3: GET /subscriptions/feature-flags ── + print("\n" + "=" * 60) + print("STEP 3: GET /subscriptions/feature-flags") + print("=" * 60) + + resp = await client.get("/subscriptions/feature-flags", headers=headers) + if resp.status_code == 200: + data = resp.json() + print(f"✅ Status: 200") + print(f" Tier: {data.get('tier')}") + features = data.get('features', {}) + print(f" Features count: {len(features)}") + # Show all features + for k, v in sorted(features.items()): + print(f" - {k}: {v}") + else: + print(f"❌ Failed: {resp.status_code}") + print(f" Response: {resp.text[:500]}") + + # ── Step 4: GET /subscriptions/check/{feature_key} ── + print("\n" + "=" * 60) + print("STEP 4: GET /subscriptions/check/analytics_tco") + print("=" * 60) + + resp = await client.get("/subscriptions/check/analytics_tco", headers=headers) + if resp.status_code == 200: + data = resp.json() + print(f"✅ Status: 200") + print(f" feature_key: {data.get('feature_key')}") + print(f" granted: {data.get('granted')}") + print(f" tier: {data.get('tier')}") + print(f" required_tier: {data.get('required_tier')}") + else: + print(f"❌ Failed: {resp.status_code}") + print(f" Response: {resp.text[:500]}") + + # ── Step 5: GET /subscriptions/check/unknown_feature ── + print("\n" + "=" * 60) + print("STEP 5: GET /subscriptions/check/unknown_feature (expect 404)") + print("=" * 60) + + resp = await client.get("/subscriptions/check/unknown_feature", headers=headers) + if resp.status_code == 404: + print(f"✅ Correctly returned 404 for unknown feature") + else: + print(f"❌ Expected 404, got {resp.status_code}") + print(f" Response: {resp.text[:500]}") + + # ── Step 6: GET /subscriptions/public ── + print("\n" + "=" * 60) + print("STEP 6: GET /subscriptions/public") + print("=" * 60) + + resp = await client.get("/subscriptions/public", headers=headers) + if resp.status_code == 200: + data = resp.json() + print(f"✅ Status: 200") + print(f" Public tiers count: {len(data)}") + for tier in data[:3]: + print(f" - {tier.get('name')}: {tier.get('resolved_pricing', {}).get('monthly_price', 'N/A')}") + else: + print(f"❌ Failed: {resp.status_code}") + print(f" Response: {resp.text[:500]}") + + print("\n" + "=" * 60) + print("✅ ALL TESTS COMPLETED") + print("=" * 60) + +if __name__ == "__main__": + asyncio.run(main())