nuxt-convex-module 0.0.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +51 -157
  3. package/dist/chunks/index.mjs +1 -1
  4. package/dist/devtools-client/200.html +1 -1
  5. package/dist/devtools-client/404.html +1 -1
  6. package/dist/devtools-client/_nuxt/71bSMC-_.js +2 -0
  7. package/dist/devtools-client/_nuxt/{CZbAGcNC.js → BAaUCl_m.js} +1 -1
  8. package/dist/devtools-client/_nuxt/BhmjAr2Q.js +1 -0
  9. package/dist/devtools-client/_nuxt/BmBQNDID.js +1 -0
  10. package/dist/devtools-client/_nuxt/C6YdTgGl.js +2 -0
  11. package/dist/devtools-client/_nuxt/{DPWXUmcI.js → CKakiU_h.js} +1 -1
  12. package/dist/devtools-client/_nuxt/Cm7YqZQ-.js +1 -0
  13. package/dist/devtools-client/_nuxt/{dy_xXcv9.js → DQmVr-EY.js} +1 -1
  14. package/dist/devtools-client/_nuxt/D_Rij7MD.js +1 -0
  15. package/dist/devtools-client/_nuxt/EZ4-8Xzm.js +3 -0
  16. package/dist/devtools-client/_nuxt/Kba0XpjH.js +1 -0
  17. package/dist/devtools-client/_nuxt/OVE7s6ty.js +1 -0
  18. package/dist/devtools-client/_nuxt/_Lf3mfPR.js +1 -0
  19. package/dist/devtools-client/_nuxt/builds/latest.json +1 -1
  20. package/dist/devtools-client/_nuxt/builds/meta/7dfea6da-3eca-4a35-ba06-5e069ac7e8df.json +1 -0
  21. package/dist/devtools-client/_nuxt/entry.HF8C6P11.css +1 -0
  22. package/dist/devtools-client/_nuxt/error-404.CLlwiMp-.css +1 -0
  23. package/dist/devtools-client/_nuxt/error-500.Bxr6fpDU.css +1 -0
  24. package/dist/devtools-client/_nuxt/queries.DNBUjWk2.css +1 -0
  25. package/dist/devtools-client/_nuxt/vZZlEX5A.js +1 -0
  26. package/dist/devtools-client/auth/index.html +1 -1
  27. package/dist/devtools-client/index.html +1 -1
  28. package/dist/devtools-client/logs/index.html +1 -1
  29. package/dist/devtools-client/queries/index.html +1 -1
  30. package/dist/module.d.mts +129 -0
  31. package/dist/module.json +2 -2
  32. package/dist/module.mjs +576 -0
  33. package/dist/runtime/auth0/vue/index.d.ts +3 -3
  34. package/dist/runtime/better-auth/nuxt/middleware.d.ts +4 -2
  35. package/dist/runtime/better-auth/nuxt/middleware.js +15 -12
  36. package/dist/runtime/better-auth/nuxt/proxy.d.ts +18 -2
  37. package/dist/runtime/better-auth/nuxt/proxy.js +7 -7
  38. package/dist/runtime/better-auth/nuxt/server.d.ts +6 -6
  39. package/dist/runtime/better-auth/nuxt/server.js +15 -0
  40. package/dist/runtime/better-auth/vue/auth-boundary.d.ts +3 -1
  41. package/dist/runtime/better-auth/vue/client.d.ts +1 -1
  42. package/dist/runtime/better-auth/vue/cross-domain.d.ts +4 -5
  43. package/dist/runtime/better-auth/vue/cross-domain.js +11 -4
  44. package/dist/runtime/better-auth/vue/hydration.d.ts +1 -1
  45. package/dist/runtime/better-auth/vue/index.d.ts +2 -1
  46. package/dist/runtime/better-auth/vue/index.js +2 -1
  47. package/dist/runtime/better-auth/vue/plugin.client.d.ts +1 -5
  48. package/dist/runtime/better-auth/vue/plugin.client.js +6 -10
  49. package/dist/runtime/better-auth/vue/plugin.server.d.ts +5 -16
  50. package/dist/runtime/better-auth/vue/plugin.server.js +3 -6
  51. package/dist/runtime/better-auth/vue/redirect.d.ts +33 -0
  52. package/dist/runtime/better-auth/vue/redirect.js +14 -0
  53. package/dist/runtime/better-auth/vue/{use-auth.d.ts → use-better-auth.d.ts} +31 -11
  54. package/dist/runtime/better-auth/vue/{use-auth.js → use-better-auth.js} +4 -3
  55. package/dist/runtime/clerk/vue/index.d.ts +4 -4
  56. package/dist/runtime/devtools/bridge.js +1 -1
  57. package/dist/runtime/nuxt/app.d.ts +48 -0
  58. package/dist/runtime/nuxt/app.js +8 -0
  59. package/dist/runtime/nuxt/composables/use-async-paginated-query.d.ts +88 -0
  60. package/dist/runtime/nuxt/composables/use-async-paginated-query.js +90 -0
  61. package/dist/runtime/nuxt/composables/use-async-query.d.ts +7 -16
  62. package/dist/runtime/nuxt/composables/use-async-query.js +14 -9
  63. package/dist/runtime/nuxt/config.d.ts +11 -0
  64. package/dist/runtime/nuxt/config.js +1 -0
  65. package/dist/runtime/nuxt/csp.d.ts +44 -0
  66. package/dist/runtime/nuxt/csp.js +46 -0
  67. package/dist/runtime/nuxt/index.d.ts +8 -8
  68. package/dist/runtime/nuxt/security.d.ts +33 -0
  69. package/dist/runtime/nuxt/security.js +14 -0
  70. package/dist/runtime/polar/vue/components.d.ts +8 -1
  71. package/dist/runtime/polar/vue/components.js +3 -3
  72. package/dist/runtime/vue/auth/index.d.ts +4 -4
  73. package/dist/runtime/vue/auth/index.js +6 -2
  74. package/dist/runtime/vue/client.d.ts +5 -55
  75. package/dist/runtime/vue/client.js +4 -0
  76. package/dist/runtime/vue/components/convex-image.d.ts +50 -0
  77. package/dist/runtime/vue/components/convex-image.js +21 -0
  78. package/dist/runtime/vue/composables/use-connection-state.d.ts +1 -0
  79. package/dist/runtime/vue/composables/use-paginated-query.d.ts +5 -1
  80. package/dist/runtime/vue/composables/use-paginated-query.js +2 -2
  81. package/dist/runtime/vue/composables/use-query.d.ts +2 -0
  82. package/dist/runtime/vue/composables/use-subscription.d.ts +1 -15
  83. package/dist/runtime/vue/composables/use-upload-queue.d.ts +2 -3
  84. package/dist/runtime/vue/hydration.d.ts +3 -24
  85. package/dist/runtime/vue/index.d.ts +2 -2
  86. package/dist/runtime/vue/index.js +1 -0
  87. package/dist/runtime/vue/plugin.js +1 -1
  88. package/dist/runtime/vue/provide.d.ts +5 -5
  89. package/dist/types.d.mts +3 -0
  90. package/package.json +103 -56
  91. package/dist/devtools-client/_nuxt/B29GGJ5n.js +0 -1
  92. package/dist/devtools-client/_nuxt/BSDEpQet.js +0 -1
  93. package/dist/devtools-client/_nuxt/BY23OQOo.js +0 -1
  94. package/dist/devtools-client/_nuxt/BZYRaL-G.js +0 -1
  95. package/dist/devtools-client/_nuxt/Byw6FxnC.js +0 -1
  96. package/dist/devtools-client/_nuxt/CJJ_hcZN.js +0 -1
  97. package/dist/devtools-client/_nuxt/CS6WMFOx.js +0 -2
  98. package/dist/devtools-client/_nuxt/Cr6_aklh.js +0 -2
  99. package/dist/devtools-client/_nuxt/DNfpyBVU.js +0 -3
  100. package/dist/devtools-client/_nuxt/builds/meta/a7708498-bd09-4de2-b5ab-19b380293c77.json +0 -1
  101. package/dist/devtools-client/_nuxt/entry.DbTJhkHT.css +0 -1
  102. package/dist/devtools-client/_nuxt/error-404.CwGGO2Kz.css +0 -1
  103. package/dist/devtools-client/_nuxt/error-500.8ZJqCQm8.css +0 -1
  104. package/dist/devtools-client/_nuxt/ncgEdbEt.js +0 -1
  105. package/dist/devtools-client/_nuxt/queries.CE_dtt9-.css +0 -1
  106. package/dist/module.d.ts +0 -189
  107. package/dist/module.js +0 -489
  108. package/dist/types.d.ts +0 -3
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 razum@qruto.to
3
+ Copyright © 2026 qruto
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,173 +1,66 @@
1
+ <div align="center">
2
+
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/qruto/nuxt-convex-module/main/.github/assets/hero-dark.svg">
5
+ <img src="https://raw.githubusercontent.com/qruto/nuxt-convex-module/main/.github/assets/hero-light.svg" alt="Nuxt × Convex" width="560">
6
+ </picture>
7
+
8
+ <a href="https://www.npmjs.com/package/nuxt-convex-module"><img src="https://raw.githubusercontent.com/qruto/nuxt-convex-module/main/.github/assets/npm.svg" alt="npm" height="20" align="middle"></a> &nbsp;<a href="https://www.npmjs.com/package/nuxt-convex-module"><sub><b>View on npm</b></sub></a>
9
+
1
10
  # nuxt-convex-module
2
11
 
12
+ Connects a [Nuxt](https://nuxt.com) app to a [Convex](https://convex.dev) backend: live queries, mutations, actions, pagination,
13
+ file storage and SSR, auto-imported and typed against your deployment.
14
+
15
+ <sub>The same [Vue](https://vuejs.org) client runs without Nuxt; Better Auth, Clerk, Auth0 and Polar are opt-in.</sub>
16
+
17
+ [![Nuxt][nuxt-src]][nuxt-href]
18
+ [![Convex][convex-src]][convex-href]
19
+ <img src="https://raw.githubusercontent.com/qruto/nuxt-convex-module/main/.github/assets/separator.svg" alt="" height="20">
3
20
  [![npm version][npm-version-src]][npm-version-href]
4
21
  [![npm downloads][npm-downloads-src]][npm-downloads-href]
22
+ <img src="https://raw.githubusercontent.com/qruto/nuxt-convex-module/main/.github/assets/separator.svg" alt="" height="20">
5
23
  [![Tests][tests-src]][tests-href]
6
24
  [![Coverage][coverage-src]][coverage-href]
25
+ <img src="https://raw.githubusercontent.com/qruto/nuxt-convex-module/main/.github/assets/separator.svg" alt="" height="20">
7
26
  [![License][license-src]][license-href]
8
- [![Nuxt][nuxt-src]][nuxt-href]
9
-
10
- [Convex](https://convex.dev) for [Vue](https://vuejs.org) & [Nuxt](https://nuxt.com) — a faithful Vue/Nuxt port of Convex's official React/Next integration.
11
-
12
- `nuxt-convex-module` mirrors the upstream `convex/react` + `convex/nextjs` surface composable-for-hook: reactive live queries, mutations, actions, cursor pagination, file storage, connection state, and SSR preloading — adapted to Vue with [VueUse](https://vueuse.org) conventions (`MaybeRefOrGetter` inputs, `ComputedRef`/`ShallowRef` returns). Authentication is **provider-agnostic** like upstream: the core ships the generic `ConvexProviderWithAuth` equivalent (`provideConvexAuth`) plus Vue ports of Convex's [Clerk](https://clerk.com) and [Auth0](https://auth0.com) adapters, while [Better Auth](https://www.better-auth.com) and [Polar](https://polar.sh) are **opt-in** sub-modules — mirroring how `@convex-dev/better-auth` and `@convex-dev/polar` are separate packages upstream.
13
-
14
- > 📖 **Full documentation:** the **[docs site](./website)** (homepage · docs · playground, one Nuxt app) covers installation, the integration guide, every composable and server helper, and the complete API reference.
15
-
16
- ## Supported official packages
17
-
18
- Every supported upstream package is ported or wired with the **same public API**, adapted to Vue. Core Convex is always on; the rest light up when their package is installed.
19
-
20
- | Official package | What this gives you | Enable | Subpath | Baseline |
21
- |---|---|---|---|---|
22
- | [`convex`](https://npmjs.com/package/convex) — `/react` + `/nextjs` | The whole data layer: composables, `ConvexVueClient`, auth helpers, SSR preload + server (Nitro) utils | **always on** | `…/vue`, `…/server` | `1.42` |
23
- | `convex` — [`/react-clerk`](https://docs.convex.dev/auth/clerk) | [Clerk](https://clerk.com) auth: `provideConvexAuthFromClerk()` · `<ConvexProviderWithClerk>` | `npm i @clerk/vue` | `…/clerk/vue` | `1.42` |
24
- | `convex` — [`/react-auth0`](https://docs.convex.dev/auth/auth0) | [Auth0](https://auth0.com) auth: `provideConvexAuthFromAuth0()` · `<ConvexProviderWithAuth0>` | `npm i @auth0/auth0-vue` | `…/auth0/vue` | `1.42` |
25
- | [`@convex-dev/better-auth`](https://github.com/get-convex/better-auth) | [Better Auth](https://better-auth.com): `useAuth`, `/api/auth/**` proxy, SSR prefetch, `auth` middleware, `<AuthBoundary>`, `convexAuth` | `npm i @convex-dev/better-auth` | `…/better-auth/vue` | `0.12` |
26
- | [`@convex-dev/polar`](https://github.com/get-convex/polar) | [Polar](https://polar.sh) billing: `<CheckoutLink>` · `<CustomerPortalLink>` | `npm i @convex-dev/polar` | `…/polar/vue` | `0.9` |
27
- | [`@convex-dev/resend`](https://github.com/get-convex/resend) | **Server-only** — no client port needed; call its functions with `useMutation` / `useAction` | (use in your Convex deployment) | — | — |
28
-
29
- Subpath = `nuxt-convex-module/<subpath>`. Pinned baselines and the file-by-file map: [`PARITY.md`](./PARITY.md).
30
-
31
- ## How it plugs into Nuxt
32
-
33
- Listing `nuxt-convex-module` in your `modules` array wires Convex into every layer of the app — through the same `@nuxt/kit` integration points any module uses. Everything below is registered for you; nothing needs importing or manual wiring.
34
-
35
- ### Auto-imported composables · `addImports`
36
-
37
- **Data**
38
- - `useQuery` / `useConvexQuery` — reactive live query (plus `useQuery_experimental`, the 1.39 result/error split)
39
- - `useAsyncQuery` / `useConvexAsyncQuery` — SSR-fetched, payload-hydrated live query with Nuxt's `{ data, error, status, refresh }` shape
40
- - `useQueries` / `useConvexQueries` — several live queries over one subscription
41
- - `useMutation` / `useConvexMutation` — call a Convex mutation
42
- - `useAction` / `useConvexAction` — call a Convex action
43
- - `usePaginatedQuery` — cursor pagination (plus `usePaginatedQuery_experimental`, dual-overload)
44
- - `useConvexConnectionState` — live WebSocket connection status
45
- - `useConvex` — the underlying Convex client
46
-
47
- **Files**
48
- - `useUpload` / `useConvexUpload` / `uploadFile` — upload to Convex storage
49
- - `useUploadQueue` / `useConvexUploadQueue` — multi-file upload queue
50
- - `useStorageUrl` / `useConvexStorageUrl` — resolve a stored file's URL
51
-
52
- **Auth (provider-agnostic)**
53
- - `useConvexAuth` / `provideConvexAuth` — Convex auth state
54
- - `usePreloadedQuery` — hydrate an SSR-preloaded query on the client
55
-
56
- **App API wiring**
57
- - `provideConvexApi` / `useConvexApi` / `useConvexNamespace` — provide and consume the generated `api`
58
-
59
- ### Auto-imported components · `addComponent`
60
-
61
- - `<Authenticated>` / `<Unauthenticated>` / `<AuthLoading>` / `<AuthRefreshing>` — render by auth state
62
-
63
- > Integration-specific composables and components auto-import too **when their package is installed** — `useAuth` + `<AuthBoundary>` (Better Auth), `provideConvexAuthFromClerk` + `<ConvexProviderWithClerk>` (Clerk), `provideConvexAuthFromAuth0` + `<ConvexProviderWithAuth0>` (Auth0), `<CheckoutLink>` + `<CustomerPortalLink>` (Polar). See [Supported official packages](#supported-official-packages).
64
-
65
- ### Server (Nitro) auto-imports · `addServerImports`
66
-
67
- - `fetchQuery` / `fetchMutation` / `fetchAction` — one-shot Convex calls
68
- - `preloadQuery` / `preloadedQueryResult` — SSR preload and the client hydration handoff
69
- - `convexAuth` — request-scoped authenticated server client (Better Auth only)
70
-
71
- ### Plugins, middleware & dev wiring
72
-
73
- - **Base client plugin** · `addPlugin` — provides a `ConvexVueClient` (server + client) so the data layer works on its own; Better Auth supplies its own client plugin instead when installed.
74
- - **Provide-api plugin** · `addPluginTemplate` — wires the generated `api` app-wide; fs-guarded to a no-op until `convex dev` has run, and **re-rendered live** the moment codegen appears (`builder:watch`).
75
- - **Server handler + route rule** · `addServerHandler` / `extendRouteRules` — the same-origin `/api/auth/**` proxy, marked uncacheable (Better Auth only).
76
- - **Route middleware** · `addRouteMiddleware` — the opt-in `auth` page guard (Better Auth only).
77
- - **Nuxt DevTools tab** · `addCustomTab` + devtools RPC — a **Convex panel** (dev only): live connection state, active query subscriptions with results and per-query server logs, auth state, the client log stream, and open-in-editor for Convex functions. Disable with `convex.devtools: false`.
78
-
79
- ### Runtime config & import aliases
80
-
81
- - **Runtime config** (`convex` key, via `updateRuntimeConfig`): public `convex.url` / `convex.siteUrl`
82
- - **Aliases** (Vite + Nitro): `#convex`, `#convex/api`, `#convex/server`, `#convex/dataModel`, `#convex/_generated`
83
-
84
- ### Module dependency · `moduleDependencies`
85
-
86
- - Installs and configures [`nuxt-security`](https://nuxt-security.vercel.app), applying a Convex-aware CSP in production — `connect-src`, `img-src`, and `media-src` scoped to your deployment.
87
-
88
- ### Manual imports · subpath exports
89
-
90
- Everything above is auto-imported in Nuxt, but each surface is also a real **subpath export** — reach for these for explicit/type-only imports. Entries follow **client/server** naming. The self-contained client entries also work in a **plain Vue** (non-Nuxt) app and carry a `/vue` alias for that use; `/better-auth/client` and `/server` rely on Nuxt-provided aliases/runtime config and need Nuxt:
91
-
92
- | Import path | Contents |
93
- |---|---|
94
- | `nuxt-convex-module` | the Nuxt module (for `modules: []`) |
95
- | `nuxt-convex-module/client` (alias `/vue`) | `ConvexVueClient`, `ConvexClientKey`, every composable (`useQuery`, `useMutation`, `useAction`, pagination, upload, …), auth (`provideConvexAuth`, `useConvexAuth`, `<Authenticated>` …), `usePreloadedQuery`, and all public types |
96
- | `nuxt-convex-module/server` | Nitro/server: `fetchQuery`, `fetchMutation`, `fetchAction`, `preloadQuery`, `preloadedQueryResult` |
97
- | `nuxt-convex-module/clerk/client` (alias `/clerk/vue`) | `provideConvexAuthFromClerk`, `<ConvexProviderWithClerk>` |
98
- | `nuxt-convex-module/auth0/client` (alias `/auth0/vue`) | `provideConvexAuthFromAuth0`, `<ConvexProviderWithAuth0>` |
99
- | `nuxt-convex-module/better-auth/client` | `useAuth`, `authClient`, `usePreloadedAuthQuery`, `consumeCrossDomainOneTimeToken`, `<AuthBoundary>`, and the `convexClient` / `crossDomainClient` client plugins (re-exported from `@convex-dev/better-auth/client/plugins`) |
100
- | `nuxt-convex-module/better-auth/server` | Nitro/server: `convexAuth(event)` (auto-imported in server code; import explicitly for the `ConvexAuthOptions` / `ConvexAuthService` types) |
101
- | `nuxt-convex-module/polar/client` (alias `/polar/vue`) | `<CheckoutLink>`, `<CustomerPortalLink>` |
102
-
103
- ## Integrations (auto-detected)
104
-
105
- You only ever add **one** module. Better Auth and Polar light up automatically when their packages are installed — no extra `modules` entries, no config:
106
27
 
107
28
  ```bash
108
- # add auth → it's wired on next dev
109
- npm i @convex-dev/better-auth better-auth
110
- # add billing components → registered automatically
111
- npm i @convex-dev/polar @polar-sh/checkout
29
+ npx nuxi@latest module add nuxt-convex-module
112
30
  ```
113
31
 
114
- ```ts
115
- // nuxt.config.ts — still just one module
116
- export default defineNuxtConfig({
117
- modules: ['nuxt-convex-module'],
118
-
119
- // Everything below is optional. Integrations auto-enable when installed;
120
- // override only if you want to force one on/off or change the auth route.
121
- convex: {
122
- // betterAuth: false,
123
- // betterAuth: { authClient: './app/convex-auth-client' }, // bring your own client
124
- // betterAuth: { crossDomainCallbackRoute: '/auth/callback' }, // login-CSRF guard for crossDomainClient()
125
- // polar: false,
126
- // authRoute: '/api/auth',
127
- },
128
- })
129
- ```
32
+ [Documentation](https://nuxt-convex-module.dev) · [Installation](https://nuxt-convex-module.dev/getting-started/installation) · [Components](https://nuxt-convex-module.dev/components) · [Upstream parity](./PARITY.md) · [Stability](./STABILITY.md) · [Security](#security)
130
33
 
131
- - **Better Auth** (when `@convex-dev/better-auth` is installed) — a Vue/Nuxt port of its `react` + `nextjs` integration: `useAuth` (session, sign-in/out), the same-origin `/api/auth/**` proxy, SSR token prefetch, the opt-in `auth` route middleware, the `<AuthBoundary>` component, and `convexAuth(event)` for request-scoped server calls. Imported directly via `nuxt-convex-module/better-auth/client`. Bring your own auth client (to choose plugins — e.g. `emailOTPClient()`, `passkeyClient()`, or `crossDomainClient()` for cross-domain auth) by pointing `convex.betterAuth.authClient` at a module that exports `authClient`; otherwise a minimal bundled default (`convexClient()` only) is used.
132
- - **Clerk** (when `@clerk/vue` is installed) — a Vue port of `convex/react-clerk`: `provideConvexAuthFromClerk()` and `<ConvexProviderWithClerk>`. Types via `nuxt-convex-module/clerk/client`.
133
- - **Auth0** (when `@auth0/auth0-vue` is installed) — a Vue port of `convex/react-auth0`: `provideConvexAuthFromAuth0()` and `<ConvexProviderWithAuth0>`. Types via `nuxt-convex-module/auth0/client`.
134
- - **Polar** (when `@convex-dev/polar` is installed) — a Vue port of `@convex-dev/polar/react`'s `<CheckoutLink>` and `<CustomerPortalLink>`. Types via `nuxt-convex-module/polar/client`.
34
+ </div>
135
35
 
136
- Pure Convex with no auth? Install none of them — you get just the data layer (the module provides a base client on its own), and nothing drags an auth provider or Polar into your bundle.
36
+ ## What you get
137
37
 
138
- ## Quick start
38
+ - ⚡ **Live data** — [`useQuery`, `useQueries`](https://nuxt-convex-module.dev/guide/queries), [`useMutation`, `useAction`](https://nuxt-convex-module.dev/guide/mutations-and-actions) and cursor [`usePaginatedQuery`](https://nuxt-convex-module.dev/guide/pagination), over one `ConvexVueClient`.
39
+ - 🖥️ **SSR and preloading** — [`useAsyncQuery`, `useAsyncPaginatedQuery`, `fetchQuery`, `preloadQuery`](https://nuxt-convex-module.dev/guide/server-and-ssr) for hydration-safe server rendering; `fetchMutation` / `fetchAction` on the Nitro side.
40
+ - 📁 **File storage** — [`useUpload`, `useUploadQueue`, `useStorageUrl`](https://nuxt-convex-module.dev/guide/file-storage) and `<ConvexImage>`.
41
+ - 🔐 **Auth state** — provider-agnostic [`useConvexAuth` / `provideConvexAuth`](https://nuxt-convex-module.dev/guide/auth-state) and the `<Authenticated>` / `<Unauthenticated>` / `<AuthLoading>` / `<AuthRefreshing>` components.
42
+ - 🧩 **Opt-in integrations** — install [Better Auth, Clerk, Auth0 or Polar](https://nuxt-convex-module.dev/components) and they wire themselves up.
43
+ - 🛡️ **Security** — install [`nuxt-security`](https://nuxt-convex-module.dev/getting-started/security) and the CSP learns your deployment's origins.
44
+ - 🧰 **DevTools** — a Convex tab in [Nuxt DevTools](https://nuxt-convex-module.dev/guide/devtools): connection, live subscriptions, server logs, auth state.
139
45
 
140
- ### 1. Install
46
+ All of it is auto-imported — composables and components in the app, `fetch*` helpers in Nitro — and also reachable through [subpath exports](https://nuxt-convex-module.dev/api-reference#subpath-exports). The same Vue client runs in a [plain Vue app](https://nuxt-convex-module.dev/guide/plain-vue) with no Nuxt involved.
141
47
 
142
- ```bash
143
- npx nuxi@latest module add nuxt-convex-module
144
- ```
48
+ **Packages covered:** `convex` (its `/react`, `/nextjs`, `/react-clerk` and `/react-auth0` entry points), `@convex-dev/better-auth` and `@convex-dev/polar` — each with its pinned upstream version under [Components](https://nuxt-convex-module.dev/components).
145
49
 
146
- > Using **strict** pnpm? Add `public-hoist-pattern[]=@convex-dev/*` to `.npmrc` (or set `node-linker=hoisted`) so Convex can resolve component definitions.
50
+ ## How it's built
147
51
 
148
- ### 2. Add the module
52
+ A Nuxt/Vue **port of Convex's own React/Next client**, hook for composable, not a reimagining: the public API keeps the names, arguments and return shapes Convex documents, so its docs and examples translate line for line. The port is kept diffable against upstream so new Convex releases can be tracked file-for-file — see [Relationship to upstream](#relationship-to-upstream) and [`PARITY.md`](./PARITY.md).
149
53
 
150
- ```ts
151
- // nuxt.config.ts
152
- export default defineNuxtConfig({
153
- modules: ['nuxt-convex-module'],
154
- })
155
- ```
54
+ Composables follow [VueUse](https://vueuse.org) conventions (`MaybeRefOrGetter` inputs, `ComputedRef`/`ShallowRef` returns). Authentication is **provider-agnostic**: the core ships the generic `provideConvexAuth` plumbing plus Vue adapters for [Clerk](https://clerk.com) and [Auth0](https://auth0.com), while [Better Auth](https://www.better-auth.com) and [Polar](https://polar.sh) are **opt-in** sub-modules — mirroring how `@convex-dev/better-auth` and `@convex-dev/polar` are separate packages upstream.
156
55
 
157
- ### 3. Configure environment
56
+ ## Documentation
158
57
 
159
- ```bash
160
- # .env.local (Nuxt app)
161
- NUXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
162
- NUXT_PUBLIC_CONVEX_SITE_URL=https://your-deployment.convex.site
163
- ```
58
+ **[nuxt-convex-module.dev](https://nuxt-convex-module.dev) is the single source of truth** — installation, configuration, every guide, each supported package and the complete API reference live there and nowhere else, so this README does not repeat them. Its source is [`website/`](./website).
164
59
 
165
- ### 4. Start the app, then Convex
166
-
167
- ```bash
168
- npm run dev
169
- npx convex dev
170
- ```
60
+ - [Installation](https://nuxt-convex-module.dev/getting-started/installation) · [Configuration](https://nuxt-convex-module.dev/getting-started/configuration) · [Security](https://nuxt-convex-module.dev/getting-started/security) · [Troubleshooting](https://nuxt-convex-module.dev/getting-started/troubleshooting)
61
+ - [Guide](https://nuxt-convex-module.dev/guide) — queries, mutations and actions, pagination, file storage, server and SSR, auth state, connection state, DevTools, plain Vue
62
+ - [Components](https://nuxt-convex-module.dev/components) — Better Auth, Clerk, Auth0, Polar
63
+ - [API reference](https://nuxt-convex-module.dev/api-reference) and [Recipes](https://nuxt-convex-module.dev/recipes)
171
64
 
172
65
  ## A taste
173
66
 
@@ -188,6 +81,8 @@ const send = useMutation(api.messages.send)
188
81
 
189
82
  A runnable version lives in [`examples/minimal`](examples/minimal) — or open it directly in [StackBlitz](https://stackblitz.com/github/qruto/nuxt-convex-module/tree/main/examples/minimal).
190
83
 
84
+ For something you can click around in, [`examples/playground`](examples/playground) is a live message board covering the same ground plus mutations and connection state — [open it in StackBlitz](https://stackblitz.com/github/qruto/nuxt-convex-module/tree/main/examples/playground). It's also what the **Open in StackBlitz** link on every pull request opens, with that commit's build already wired in, so a change can be tried in a real Nuxt app without setting one up. Both examples run against a Convex deployment of your own — add `NUXT_PUBLIC_CONVEX_URL` and you're live.
85
+
191
86
  ## Relationship to upstream
192
87
 
193
88
  This package is intentionally kept **diffable against the upstream React/Next sources** so it can track new Convex / Better Auth / Polar releases. Each file mirrors its origin:
@@ -201,21 +96,18 @@ This package is intentionally kept **diffable against the upstream React/Next so
201
96
  | `src/runtime/better-auth/**` | `@convex-dev/better-auth/src/{react,nextjs}/**` |
202
97
  | `src/runtime/polar/**` | `@convex-dev/polar/src/react/**` |
203
98
 
204
- The authoritative file-by-file map, pinned upstream baseline versions, and out-of-scope list live in [`PARITY.md`](./PARITY.md); the React→Vue translation rules an automated sync agent follows are in [`AGENTS.md`](./AGENTS.md).
205
-
206
- ## Contributing
99
+ [`PARITY.md`](./PARITY.md) is the authoritative ledger: pinned upstream baselines, the file-by-file map, a compatibility matrix per upstream entry point, and every deliberate divergence with its reason and the test that pins it. It also carries the migration contract and the React→Vue translation rules the port is held to. The sync procedure itself is packaged as the [`upstream-parity` skill](./website/skills/upstream-parity/SKILL.md).
207
100
 
208
- 1. Clone this repository
209
- 2. Install dependencies using `pnpm install`
210
- 3. Prepare for development using `pnpm dev:prepare`
211
- 4. Start the development server (the docs/playground app) using `pnpm dev` — or `pnpm start`
101
+ [`STABILITY.md`](./STABILITY.md) is the other contract: what a version number promises from 1.0.0 on — the covered surface, the experimental tier, and how an upstream release maps to a release here (an upstream breaking change is a major here, whatever upstream called it).
212
102
 
213
- `pnpm dev` runs the playground through [portless](https://portless.sh), so it is served at a stable, named HTTPS URL — **https://nuxt-convex-module.localhost** — instead of a shifting `localhost:<port>`. portless generates and trusts a local CA on first run (auto-elevating to bind port 443); pass `--no-tls` for plain HTTP, or run `nuxt dev website` directly to bypass portless entirely.
103
+ ## Contributing
214
104
 
215
- We follow conventional commits. See [CONTRIBUTING.md](./CONTRIBUTING.md) and [RELEASING.md](./RELEASING.md).
105
+ Setup, project structure, the verification gate and the release flow are in [CONTRIBUTING.md](./CONTRIBUTING.md) and [RELEASE.md](./RELEASE.md); how the port tracks upstream is in [PARITY.md](./PARITY.md). Commits follow conventional commits.
216
106
 
217
107
  ## Security
218
108
 
109
+ The [security guide](https://nuxt-convex-module.dev/getting-started/security) documents every security aspect in one place: the Convex-aware CSP, the hardened Better Auth proxy, auth tokens in SSR payloads, safe post-sign-in redirects, cross-domain one-time tokens, file-storage caveats, and a production checklist.
110
+
219
111
  Found a vulnerability? Report it privately via [GitHub Security Advisories](https://github.com/qruto/nuxt-convex-module/security/advisories/new) — not in a public issue. See [SECURITY.md](./SECURITY.md).
220
112
 
221
113
  ## License
@@ -240,3 +132,5 @@ Found a vulnerability? Report it privately via [GitHub Security Advisories](http
240
132
 
241
133
  [nuxt-src]: https://img.shields.io/badge/Nuxt-020420?logo=nuxt&style=plastic
242
134
  [nuxt-href]: https://nuxt.com
135
+ [convex-src]: https://img.shields.io/badge/Convex-020420?logo=convex&style=plastic
136
+ [convex-href]: https://convex.dev
@@ -9,7 +9,7 @@ const DEVTOOLS_UI_LOCAL_PORT = 3630;
9
9
  const EXTENSIONS = ["ts", "tsx", "js", "jsx", "mts", "mjs"];
10
10
  function resolveFunctionSource(rootDir, functionsDir, udfPath) {
11
11
  const modulePath = udfPath.split(":")[0];
12
- if (!modulePath || modulePath.split("/").some((segment) => segment === "" || segment === "." || segment === "..")) {
12
+ if (!modulePath || modulePath.split(/[\\/]/).some((segment) => segment === "" || segment === "." || segment === "..")) {
13
13
  return {};
14
14
  }
15
15
  const base = join(rootDir, functionsDir);
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-convex-module/_nuxt/Cr6_aklh.js"}}</script><link rel="stylesheet" href="/__nuxt-convex-module/_nuxt/entry.DbTJhkHT.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/Cr6_aklh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/dy_xXcv9.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/DNfpyBVU.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/B29GGJ5n.js"><script type="module" src="/__nuxt-convex-module/_nuxt/Cr6_aklh.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-convex-module/_nuxt/error-500.8ZJqCQm8.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BY23OQOo.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BSDEpQet.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-convex-module",buildId:"a7708498-bd09-4de2-b5ab-19b380293c77",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1785709851876,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-convex-module/_nuxt/C6YdTgGl.js"}}</script><link rel="stylesheet" href="/__nuxt-convex-module/_nuxt/entry.HF8C6P11.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/C6YdTgGl.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/DQmVr-EY.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/EZ4-8Xzm.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/vZZlEX5A.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BmBQNDID.js"><script type="module" src="/__nuxt-convex-module/_nuxt/C6YdTgGl.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-convex-module/_nuxt/error-404.CLlwiMp-.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BhmjAr2Q.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/D_Rij7MD.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-convex-module/_nuxt/error-500.Bxr6fpDU.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/_Lf3mfPR.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-convex-module",buildId:"7dfea6da-3eca-4a35-ba06-5e069ac7e8df",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1789472049139,false]</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-convex-module/_nuxt/Cr6_aklh.js"}}</script><link rel="stylesheet" href="/__nuxt-convex-module/_nuxt/entry.DbTJhkHT.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/Cr6_aklh.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/dy_xXcv9.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/DNfpyBVU.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/B29GGJ5n.js"><script type="module" src="/__nuxt-convex-module/_nuxt/Cr6_aklh.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-convex-module/_nuxt/error-500.8ZJqCQm8.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BY23OQOo.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BSDEpQet.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-convex-module",buildId:"a7708498-bd09-4de2-b5ab-19b380293c77",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1785709851876,false]</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><script type="importmap">{"imports":{"#entry":"/__nuxt-convex-module/_nuxt/C6YdTgGl.js"}}</script><link rel="stylesheet" href="/__nuxt-convex-module/_nuxt/entry.HF8C6P11.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/C6YdTgGl.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/DQmVr-EY.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/EZ4-8Xzm.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/vZZlEX5A.js"><link rel="modulepreload" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BmBQNDID.js"><script type="module" src="/__nuxt-convex-module/_nuxt/C6YdTgGl.js" crossorigin></script><link rel="prefetch" as="style" crossorigin href="/__nuxt-convex-module/_nuxt/error-404.CLlwiMp-.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/BhmjAr2Q.js"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/D_Rij7MD.js"><link rel="prefetch" as="style" crossorigin href="/__nuxt-convex-module/_nuxt/error-500.Bxr6fpDU.css"><link rel="prefetch" as="script" crossorigin href="/__nuxt-convex-module/_nuxt/_Lf3mfPR.js"></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/__nuxt-convex-module",buildId:"7dfea6da-3eca-4a35-ba06-5e069ac7e8df",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1789472049139,false]</script></body></html>
@@ -0,0 +1,2 @@
1
+ import{$ as e,B as t,E as n,F as r,M as i,P as a,V as o,_t as s,c,d as l,f as u,g as d,h as f,ht as p,i as m,l as h,t as g,u as _,v,x as y}from"./EZ4-8Xzm.js";import{a as b,o as x}from"./vZZlEX5A.js";import{n as S,t as C}from"./BmBQNDID.js";import{a as w,i as T,n as E,o as D,r as O,t as k}from"#entry";import{t as A}from"./CKakiU_h.js";var j=v({name:`NButton`,props:{to:String,icon:String,border:{type:Boolean,default:!0},disabled:Boolean,type:{type:String,default:`button`}},setup(e,{attrs:t,slots:n}){return()=>y(e.to?D:`button`,{to:e.to,...t,...!e.to&&{type:e.type},...e.disabled?{disabled:!0}:{tabindex:0},class:[e.border?`n-button-base active:n-button-active focus-visible:n-focus-base hover:n-button-hover`:``,n.default?``:`n-icon-button`,`n-button n-transition n-disabled:n-disabled`].join(` `)},{default:()=>[r(n,`icon`,{},()=>e.icon?[y(S,{icon:e.icon,class:n.default?`n-button-icon`:``})]:[]),r(n,`default`)]})}}),M=O(),N=[`innerHTML`],P=[`textContent`],F={__name:`NCodeBlock`,props:{code:{type:String,required:!0},lang:{type:String,required:!1},lines:{type:Boolean,required:!1,default:!0},inline:{type:Boolean,required:!1},grammarContextCode:{type:String,required:!1},transformRendered:{type:Function,required:!1}},emits:[`loaded`],setup(e,{emit:t}){let r=e,o=t,l=c(()=>{let e=r.lang===`text`?{code:r.code,supported:!1}:M.value?.devtools.renderCodeHighlight(r.code,r.lang,{grammarContextCode:r.grammarContextCode})||{code:r.code,supported:!1};return e.supported&&r.transformRendered&&(e.code=r.transformRendered(e.code)),e.supported&&n(()=>o(`loaded`)),e}),d=c(()=>[`n-code-block shiki`,r.lines&&!r.inline?`n-code-block-lines`:``]);return(t,n)=>e.lang&&l.value.supported?(i(),u(`pre`,{key:0,class:p(d.value)},[h(`code`,{innerHTML:l.value.code},null,8,N)],2)):(i(),u(`pre`,{key:1,class:p(d.value)},[h(`code`,null,[(i(!0),u(m,null,a(e.code.split(`
2
+ `),(e,t)=>(i(),u(m,{key:t},[h(`span`,{class:`line`,textContent:s(e)},null,8,P),n[0]||=h(`br`,null,null,-1)],64))),128))])],2))}},I={flex:`~ gap-3`,"items-center":``},L={__name:`NIconTitle`,props:{icon:{type:String,required:!1},text:{type:String,required:!1}},setup(e){return(t,n)=>(i(),u(`div`,I,[e.icon?(i(),u(`div`,{key:0,class:p(e.icon)},null,2)):l(``,!0),r(t.$slots,`default`,{},()=>[h(`div`,null,s(e.text),1)])]))}},R=[`open`],z={"text-base":``},B={key:0,"text-sm":``,op50:``},V=g({__name:`NSectionBlock`,props:{icon:{type:String,required:!1},text:{type:String,required:!1},description:{type:String,required:!1},containerClass:{type:String,required:!1,default:``},headerClass:{type:String,required:!1},collapse:{type:Boolean,required:!1,default:!0},open:{type:Boolean,required:!1,default:!0},padding:{type:[Boolean,String],required:!1,default:!0}},setup(n){let a=A(n,`open`,void 0,{passive:!0});function c(e){a.value=e.target.open}return(g,v)=>{let y=S,x=L;return i(),u(m,null,[h(`details`,{open:e(a),onToggle:c},[h(`summary`,{class:p([`cursor-pointer select-none p4 hover:bg-active`,n.collapse?``:`pointer-events-none`])},[d(x,{icon:n.icon,text:n.text,"text-xl":``,transition:``,class:p([e(a)?`op100`:`op60`,n.headerClass])},{default:t(()=>[h(`div`,null,[h(`div`,z,[r(g.$slots,`text`,{},()=>[f(s(n.text),1)],!0)]),n.description||g.$slots.description?(i(),u(`div`,B,[r(g.$slots,`description`,{},()=>[f(s(n.description),1)],!0)])):l(``,!0)]),v[0]||=h(`div`,{class:`flex-auto`},null,-1),r(g.$slots,`actions`,{},void 0,!0),n.collapse?(i(),_(y,{key:0,icon:`carbon-chevron-down`,class:`chevron`,"cursor-pointer":``,"place-self-start":``,"text-base":``,op75:``,transition:``,"duration-500":``})):l(``,!0)]),_:3},8,[`icon`,`text`,`class`])],2),v._lazyshow1||e(a)?(v._lazyshow1=!0,i(),u(m,null,[o(h(`div`,{class:p([`flex flex-col flex-gap2 pb6 pt2`,typeof n.padding==`string`?n.padding:n.padding?`px4`:``])},[r(g.$slots,`details`,{},void 0,!0),h(`div`,{class:p([n.containerClass,`mt1`])},[r(g.$slots,`default`,{},void 0,!0)],2),r(g.$slots,`footer`,{},void 0,!0)],2),[[b,e(a)]])],64)):l(`v-show-if`,!0)],40,R),v[1]||=h(`div`,{class:`x-divider`},null,-1)],64)}}},[[`__scopeId`,`data-v-36e420e5`]]),H={class:`font-mono text-xs op65`},U={class:`op50 text-xs whitespace-nowrap`},W={class:`flex flex-col gap-3 px4 pb4`},G={class:`font-mono text-xs bg-active rounded p2 flex flex-col gap-1`},K=Object.assign(v({__name:`QuerySubscription`,props:{query:{}},setup(n){function r(e){return e?new Date(e).toLocaleTimeString():`never`}function o(e){return JSON.stringify(e,null,2)??`undefined`}return(c,p)=>{let g=C,v=j,y=w,b=F,S=V;return i(),_(S,{text:n.query.udfPath,padding:!1,open:!1,icon:`carbon-data-share`},{description:t(()=>[h(`span`,H,s(JSON.stringify(n.query.args)),1)]),actions:t(()=>[n.query.paginated?(i(),_(g,{key:0,n:`blue`},{default:t(()=>[...p[1]||=[f(` paginated `,-1)]]),_:1})):l(``,!0),n.query.errorMessage?(i(),_(g,{key:1,n:`red`},{default:t(()=>[...p[2]||=[f(` error `,-1)]]),_:1})):l(``,!0),h(`span`,U,s(n.query.listenerCount)+` 👂 · `+s(n.query.updates)+` updates · `+s(r(n.query.lastUpdatedAt)),1),d(v,{n:`xs`,icon:`carbon-launch`,title:`Open source file in editor`,onClick:p[0]||=x(t=>(`openFunctionInEditor`in c?c.openFunctionInEditor:e(k))(n.query.udfPath),[`stop`])},{default:t(()=>[...p[3]||=[f(` source `,-1)]]),_:1})]),default:t(()=>[h(`div`,W,[n.query.errorMessage?(i(),_(y,{key:0,n:`red`,icon:`carbon-warning`},{default:t(()=>[f(s(n.query.errorMessage),1)]),_:1})):(i(),u(m,{key:1},[p[4]||=h(`div`,{class:`op50 text-xs`},` Result `,-1),d(b,{code:n.query.result===void 0?`// loading…`:o(n.query.result),lang:`json`,lines:!1,class:`max-h-80 of-auto`},null,8,[`code`])],64)),n.query.logs?.length?(i(),u(m,{key:2},[p[5]||=h(`div`,{class:`op50 text-xs`},` Server logs `,-1),h(`div`,G,[(i(!0),u(m,null,a(n.query.logs,(e,t)=>(i(),u(`div`,{key:t},s(e),1))),128))])],64)):l(``,!0)])]),_:1},8,[`text`])}}}),{__name:`QuerySubscription`}),q={class:`flex flex-col gap-2`},J=v({__name:`queries`,setup(n){let r=E();return(n,o)=>{let s=T,c=K;return i(),u(`div`,q,[e(r).queries.length?l(``,!0):(i(),_(s,{key:0},{default:t(()=>[...o[0]||=[h(`span`,{class:`op50`},`No active query subscriptions.`,-1)]]),_:1})),(i(!0),u(m,null,a(e(r).queries,e=>(i(),_(c,{key:e.token,query:e},null,8,[`query`]))),128))])}}});export{J as default};
@@ -1 +1 @@
1
- import{F as e,M as t,f as n,t as r}from"./DNfpyBVU.js";var i={},a={class:`n-card n-card-base`};function o(r,i){return t(),n(`div`,a,[e(r.$slots,`default`)])}var s=Object.assign(r(i,[[`render`,o]]),{__name:`NCard`});export{s as t};
1
+ import{F as e,M as t,f as n,t as r}from"./EZ4-8Xzm.js";var i={},a={class:`n-card n-card-base`};function o(r,i){return t(),n(`div`,a,[e(r.$slots,`default`)])}var s=Object.assign(r(i,[[`render`,o]]),{__name:`NCard`});export{s as t};
@@ -0,0 +1 @@
1
+ import{B as e,M as t,_t as n,f as r,g as i,h as a,l as o,t as s}from"./EZ4-8Xzm.js";import{t as c}from"./D_Rij7MD.js";import{o as l}from"#entry";var u={class:`antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=s({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:404},statusText:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`}},setup(s){let g=s;return c({title:`${g.status} - ${g.statusText} | ${g.appName}`,script:[{innerHTML:`!function(){let e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(let e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(let t of e)if("childList"===t.type)for(let e of t.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;let r=function(e){let r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),r.credentials="use-credentials"===e.crossOrigin?"include":"anonymous"===e.crossOrigin?"omit":"same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(c,g)=>{let _=l;return t(),r(`div`,u,[o(`div`,d,[o(`h1`,{class:`font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]`,textContent:n(s.status)},null,8,f),o(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:n(s.statusText)},null,8,p),o(`p`,{class:`mb-4 px-2 text-[#64748B] text-md`,textContent:n(s.description)},null,8,m),o(`div`,h,[i(_,{to:`/`,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:e(()=>[a(n(s.backHome),1)]),_:1})])])])}}},[[`__scopeId`,`data-v-3f48964f`]]);export{g as default};
@@ -0,0 +1 @@
1
+ import{F as e,M as t,f as n,ht as r,t as i}from"./EZ4-8Xzm.js";var a={__name:`NIcon`,props:{icon:{type:String,required:!1}},setup(e){return(i,a)=>(t(),n(`div`,{class:r([`n-icon`,e.icon])},null,2))}},o={},s={class:`n-badge`};function c(r,i){return t(),n(`span`,s,[e(r.$slots,`default`)])}var l=Object.assign(i(o,[[`render`,c]]),{__name:`NBadge`});export{a as n,l as t};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Kba0XpjH.js","./EZ4-8Xzm.js","./BmBQNDID.js","./BAaUCl_m.js","./Cm7YqZQ-.js","./vZZlEX5A.js","./CKakiU_h.js","./71bSMC-_.js","./queries.DNBUjWk2.css","./OVE7s6ty.js","./BhmjAr2Q.js","./D_Rij7MD.js","./DQmVr-EY.js","./error-404.CLlwiMp-.css","./_Lf3mfPR.js","./error-500.Bxr6fpDU.css"])))=>i.map(i=>d[i]);
2
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,t as m,u as h}from"./DQmVr-EY.js";import{$ as g,A as _,B as v,C as y,E as ee,F as b,I as x,J as S,K as C,L as w,M as T,N as E,O as D,P as te,Q as ne,R as re,S as ie,U as ae,W as oe,X as se,Y as ce,_ as le,_t as ue,a as de,b as fe,c as O,d as pe,f as k,g as A,gt as me,h as j,i as M,j as N,l as P,o as he,q as ge,t as _e,u as F,v as ve,w as ye,x as I,y as be}from"./EZ4-8Xzm.js";import{n as xe,r as Se,t as Ce}from"./vZZlEX5A.js";import{n as we,t as Te}from"./BmBQNDID.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Ee=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function De(e){return Ee.test(e)}import.meta.url.replace(/\/app\/.*$/,`/`);var Oe=Symbol(`layout-meta`),ke=Symbol(`route`),L=e({docsBase:o,reporters:a});String.fromCharCode;var Ae=/#/g,je=/&/g,Me=/\//g,Ne=/=/g,Pe=/\?/g,Fe=/\+/g,Ie=/%5e/gi,Le=/%60/gi,Re=/%7c/gi,ze=/%20/gi,Be=/%2f/gi,Ve=/%252f/gi;function He(e){return encodeURI(``+e).replace(Re,`|`)}function Ue(e){return He(typeof e==`string`?e:JSON.stringify(e)).replace(Fe,`%2B`).replace(ze,`+`).replace(Ae,`%23`).replace(je,`%26`).replace(Le,"`").replace(Ie,`^`).replace(Me,`%2F`)}function We(e){return Ue(e).replace(Ne,`%3D`)}function Ge(e){return He(e).replace(Ae,`%23`).replace(Pe,`%3F`).replace(Ve,`%2F`).replace(je,`%26`).replace(Fe,`%2B`)}function Ke(e=``){try{return decodeURIComponent(``+e)}catch{return``+e}}function qe(e){return Ke(e.replace(Be,`%252F`))}function Je(e){return Ke(e.replace(Fe,` `))}function Ye(e){return Ke(e.replace(Fe,` `))}function Xe(e=``){let t=Object.create(null);e[0]===`?`&&(e=e.slice(1));for(let n of e.split(`&`)){let e=n.match(/([^=]+)=?(.*)/)||[];if(e.length<2)continue;let r=Je(e[1]);if(r===`__proto__`||r===`constructor`)continue;let i=Ye(e[2]||``);t[r]===void 0?t[r]=i:Array.isArray(t[r])?t[r].push(i):t[r]=[t[r],i]}return t}function Ze(e,t){return(typeof t==`number`||typeof t==`boolean`)&&(t=String(t)),t?Array.isArray(t)?t.map(t=>`${We(e)}=${Ue(t)}`).join(`&`):`${We(e)}=${Ue(t)}`:We(e)}function Qe(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>Ze(t,e[t])).filter(Boolean).join(`&`)}var $e=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,et=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,tt=/^([/\\]\s*){2,}[^/\\]/,nt=/^[\s\0]*(blob|data|javascript|vbscript):$/i,rt=/\/$|\/\?|\/#/,it=/^\.?\//;function R(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?$e.test(e):et.test(e)||(t.acceptRelative?tt.test(e):!1)}function at(e){return!!e&&nt.test(e)}function ot(e=``,t){return t?rt.test(e):e.endsWith(`/`)}function st(e=``,t){if(!t)return(ot(e)?e.slice(0,-1):e)||`/`;if(!ot(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function ct(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(ot(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function lt(e,t){if(ft(t)||R(e))return e;let n=st(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return mt(n,e)}function ut(e,t){if(ft(t))return e;let n=st(t);if(!e.startsWith(n))return e;let r=e[n.length];return r&&r!==`/`&&r!==`?`?e:`/`+e.slice(n.length).replace(/^\/+/,``)}function dt(e,t){let n=vt(e);return n.search=Qe({...Xe(n.search),...t}),bt(n)}function ft(e){return!e||e===`/`}function pt(e){return e&&e!==`/`}function mt(e,...t){let n=e||``;for(let e of t.filter(e=>pt(e)))if(n){let t=e.replace(it,``);n=ct(n)+t}else n=e;return n}function ht(...e){let t=/\/(?!\/)/,n=e.filter(Boolean),r=[],i=0;for(let e of n)if(!(!e||e===`/`)){for(let[n,a]of e.split(t).entries())if(!(!a||a===`.`)){if(a===`..`){if(r.length===1&&R(r[0]))continue;r.pop(),i--;continue}if(n===1&&r[r.length-1]?.endsWith(`:/`)){r[r.length-1]+=`/`+a;continue}r.push(a),i++}}let a=r.join(`/`);return i>=0?n[0]?.startsWith(`/`)&&!a.startsWith(`/`)?a=`/`+a:n[0]?.startsWith(`./`)&&!a.startsWith(`./`)&&(a=`./`+a):a=`../`.repeat(-1*i)+a,n[n.length-1]?.endsWith(`/`)&&!a.endsWith(`/`)&&(a+=`/`),a}function gt(e,t){return Ke(st(e))===Ke(st(t))}var _t=Symbol.for(`ufo:protocolRelative`);function vt(e=``,t){let n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){let[,e,t=``]=n;return{protocol:e.toLowerCase(),pathname:t,href:e+t,auth:``,host:``,search:``,hash:``}}if(!R(e,{acceptRelative:!0}))return t?vt(t+e):yt(e);let[,r=``,i,a=``]=e.replace(/\\/g,`/`).match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,o=``,s=``]=a.match(/([^#/?]*)(.*)?/)||[];r===`file:`&&(s=s.replace(/\/(?=[A-Za-z]:)/,``));let{pathname:c,search:l,hash:u}=yt(s);return{protocol:r.toLowerCase(),auth:i?i.slice(0,Math.max(0,i.length-1)):``,host:o,pathname:c,search:l,hash:u,[_t]:!r}}function yt(e=``){let[t=``,n=``,r=``]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function bt(e){let t=e.pathname||``,n=e.search?(e.search.startsWith(`?`)?``:`?`)+e.search:``,r=e.hash||``,i=e.auth?e.auth+`@`:``,a=e.host||``;return(e.protocol||e[_t]?(e.protocol||``)+`//`:``)+i+a+t+n+r}function xt(e){if(typeof e!=`object`||!e)return!1;let 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 St(e,t,n=`.`,r){if(!xt(t))return St(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:xt(a)&&xt(i[t])?St(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function Ct(e){return(...t)=>t.reduce((t,n)=>St(t,n,``,e),{})}var wt=Ct(),Tt=/"(?:_|\\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*:/,Et=/"(?: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*:/,Dt=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Ot(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t){kt(e);return}return t}function kt(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function At(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let 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 NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Dt.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Tt.test(e)||Et.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Ot)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function jt(e,t){try{return t in e}catch{return!1}}var Mt=class extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(e,t={}){super(e,t),t.cause&&!this.cause&&(this.cause=t.cause)}toJSON(){let e={message:this.message,statusCode:Lt(this.statusCode,500)};return this.statusMessage&&(e.statusMessage=It(this.statusMessage)),this.data!==void 0&&(e.data=this.data),e}};function Nt(e){if(typeof e==`string`)return new Mt(e);if(Pt(e))return e;let t=new Mt(e.message??e.statusMessage??``,{cause:e.cause||e});if(jt(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=Lt(e.statusCode,t.statusCode):e.status&&(t.statusCode=Lt(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){let e=t.statusMessage;It(t.statusMessage)!==e&&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 Pt(e){return e?.constructor?.__h3_error__===!0}var Ft=/[^\u0009\u0020-\u007E]/g;function It(e=``){return e.replace(Ft,``)}function Lt(e,t=200){return!e||(typeof e==`string`&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}globalThis.Headers,globalThis.Response;var z=()=>s()?.$router;function Rt(e){let t=e.scope,n=ae();for(;n;){if(n===t)return!0;n=n.parent}return!1}var zt=(()=>{if(ie()){let e=be();if(!e||Rt(e))return y(ke,s()._route)}return s()._route});function Bt(e){return e}var Vt=()=>{try{if(s()._processingMiddleware)return!0}catch{return!1}return!1},Ht=(e,t)=>{e||=`/`;let n=typeof e==`string`?e:`path`in e?Ut(e):z().resolve(e).href;if(t?.open){let{protocol:e}=new URL(n,window.location.href);if(e&&at(e))throw L.NUXT_E2002({toPath:n,protocol:e});let{target:r=`_blank`,windowFeatures:i={}}=t.open,a=[];for(let[e,t]of Object.entries(i))t!==void 0&&a.push(`${e.toLowerCase()}=${t}`);return open(n,r,a.join(`, `)),Promise.resolve()}let r=R(n,{acceptRelative:!0}),i=t?.external||r;if(i){if(!t?.external)throw L.NUXT_E2001({toPath:n});let{protocol:e}=new URL(n,window.location.href);if(e&&at(e))throw L.NUXT_E2002({toPath:n,protocol:e})}let a=Vt();if(!i&&a){if(t?.replace){if(typeof e==`string`){let{pathname:t,search:n,hash:r}=vt(e);return{path:t,...n&&{query:Xe(n)},...r&&{hash:r},replace:!0}}return{...e,replace:!0}}return e}let o=z(),c=s();if(i)return c._scope.stop(),t?.replace?location.replace(n):location.href=n,a?c.isHydrating?new Promise(()=>{}):!1:Promise.resolve();let l=typeof e==`string`?Wt(e):e;return t?.replace?o.replace(l):o.push(l)};function Ut(e){return dt(e.path||``,e.query||{})+(e.hash||``)}function Wt(e){let t=vt(e);return Ge(qe(t.pathname))+t.search+t.hash}var Gt=`__nuxt_error`,Kt=()=>se(s().payload,`error`),B=e=>{let t=V(e);try{let e=Kt();s().hooks.callHook(`app:error`,t),e.value||=t}catch{throw t}return t},qt=(e,t)=>{let n=e.callHook(`app:error`,V(t));return l.NUXT_E1012({userAgent:navigator.userAgent,cause:t}),n},Jt=async(e,t)=>{if(De(navigator.userAgent)){await qt(e,t);return}await e.runWithContext(()=>B(t))},Yt=async(e={})=>{let t=s(),n=Kt();t.callHook(`app:error:cleared`,e),e.redirect&&await z().replace(e.redirect),n.value=void 0},Xt=e=>!!e&&typeof e==`object`&&`__nuxt_error`in e,V=e=>{typeof e!=`string`&&e.statusText&&(e.message??=e.statusText);let t=Nt(e);return Object.defineProperty(t,Gt,{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},Zt=class extends Error{constructor(e,t){super(e,t),this.name=`FetchError`,t?.cause&&!this.cause&&(this.cause=t.cause)}};function Qt(e){let t=e.error?.message||e.error?.toString()||``,n=e.request?.method||e.options?.method||`GET`,r=e.request?.url||String(e.request)||`/`,i=new Zt(`${`[${n}] ${JSON.stringify(r)}`}: ${e.response?`${e.response.status} ${e.response.statusText}`:`<no response>`}${t?` ${t}`:``}`,e.error?{cause:e.error}:void 0);for(let t of[`request`,`options`,`response`])Object.defineProperty(i,t,{get(){return e[t]}});for(let[t,n]of[[`data`,`_data`],[`status`,`status`],[`statusCode`,`status`],[`statusText`,`statusText`],[`statusMessage`,`statusText`]])Object.defineProperty(i,t,{get(){return e.response&&e.response[n]}});return i}var $t=new Set(Object.freeze([`PATCH`,`POST`,`PUT`,`DELETE`]));function en(e=`GET`){return $t.has(e.toUpperCase())}function tn(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}var nn=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]),rn=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function an(e=``){if(!e)return`json`;let t=e.split(`;`).shift()||``;return rn.test(t)?`json`:t===`text/event-stream`?`stream`:nn.has(t)||t.startsWith(`text/`)?`text`:`blob`}function on(e,t,n,r){let i=sn(t?.headers??e?.headers,n?.headers,r),a;return(n?.query||n?.params||t?.params||t?.query)&&(a={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:a,params:a,headers:i}}function sn(e,t,n){if(!t)return new n(e);let r=new n(t);if(e)for(let[t,i]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(t,i);return r}async function cn(e,t){if(t){if(Array.isArray(t))for(let n of t)await n(e);else await t(e)}}var ln=new Set([408,409,425,429,500,502,503,504]),un=new Set([101,204,205,304]);function dn(e={}){let{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function i(e){let t=e.error&&e.error.name===`AbortError`&&!e.options.timeout||!1;if(e.options.retry!==!1&&!t){let t;t=typeof e.options.retry==`number`?e.options.retry:+!en(e.options.method);let n=e.response&&e.response.status||500;if(t>0&&(Array.isArray(e.options.retryStatusCodes)?e.options.retryStatusCodes.includes(n):ln.has(n))){let n=typeof e.options.retryDelay==`function`?e.options.retryDelay(e):e.options.retryDelay||0;return n>0&&await new Promise(e=>setTimeout(e,n)),a(e.request,{...e.options,retry:t-1})}}let n=Qt(e);throw Error.captureStackTrace&&Error.captureStackTrace(n,a),n}let a=async function(a,o={}){let s={request:a,options:on(a,o,e.defaults,n),response:void 0,error:void 0};if(s.options.method&&(s.options.method=s.options.method.toUpperCase()),s.options.onRequest&&(await cn(s,s.options.onRequest),s.options.headers instanceof n||(s.options.headers=new n(s.options.headers||{}))),typeof s.request==`string`&&(s.options.baseURL&&(s.request=lt(s.request,s.options.baseURL)),s.options.query&&(s.request=dt(s.request,s.options.query),delete s.options.query),`query`in s.options&&delete s.options.query,`params`in s.options&&delete s.options.params),s.options.body&&en(s.options.method)){if(tn(s.options.body)){let e=s.options.headers.get(`content-type`);typeof s.options.body!=`string`&&(s.options.body=e===`application/x-www-form-urlencoded`?new URLSearchParams(s.options.body).toString():JSON.stringify(s.options.body)),e||s.options.headers.set(`content-type`,`application/json`),s.options.headers.has(`accept`)||s.options.headers.set(`accept`,`application/json`)}else(`pipeTo`in s.options.body&&typeof s.options.body.pipeTo==`function`||typeof s.options.body.pipe==`function`)&&(`duplex`in s.options||(s.options.duplex=`half`))}let c;if(!s.options.signal&&s.options.timeout){let e=new r;c=setTimeout(()=>{let t=Error(`[TimeoutError]: The operation was aborted due to timeout`);t.name=`TimeoutError`,t.code=23,e.abort(t)},s.options.timeout),s.options.signal=e.signal}try{s.response=await t(s.request,s.options)}catch(e){return s.error=e,s.options.onRequestError&&await cn(s,s.options.onRequestError),await i(s)}finally{c&&clearTimeout(c)}if((s.response.body||s.response._bodyInit)&&!un.has(s.response.status)&&s.options.method!==`HEAD`){let e=(s.options.parseResponse?`json`:s.options.responseType)||an(s.response.headers.get(`content-type`)||``);switch(e){case`json`:{let e=await s.response.text(),t=s.options.parseResponse||At;s.response._data=t(e);break}case`stream`:s.response._data=s.response.body||s.response._bodyInit;break;default:s.response._data=await s.response[e]()}}return s.options.onResponse&&await cn(s,s.options.onResponse),!s.options.ignoreResponseError&&s.response.status>=400&&s.response.status<600?(s.options.onResponseError&&await cn(s,s.options.onResponseError),await i(s)):s.response},o=async function(e,t){return(await a(e,t))._data};return o.raw=a,o.native=(...e)=>t(...e),o.create=(t={},n={})=>dn({...e,...n,defaults:{...e.defaults,...n.defaults,...t}}),o}var fn=(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 Error(`unable to locate global object`)})(),pn=fn.fetch?(...e)=>fn.fetch(...e):()=>Promise.reject(Error(`[ofetch] global.fetch is not supported!`)),mn=fn.Headers,hn=fn.AbortController,gn=dn({fetch:pn,Headers:mn,AbortController:hn}),_n=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,vn=()=>_n().app,yn=()=>vn().baseURL,bn=()=>vn().buildAssetsDir,xn=(...e)=>ht(Sn(),bn(),...e),Sn=(...e)=>{let t=vn(),n=t.cdnURL||t.baseURL;return e.length?ht(n,...e):n};globalThis.__buildAssetsURL=xn,globalThis.__publicAssetsURL=Sn,globalThis.$fetch||(globalThis.$fetch=gn.create({baseURL:yn()}));var Cn=globalThis.$fetch;`global`in globalThis||(globalThis.global=globalThis);function wn(e,t){t.push(d),e.vueApp.use(t);let n=!0,r=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.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);let i=t.push.bind(t);t.push=((t,n)=>{let r=i(t,n),a=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(a):a()},r})}function Tn(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function En(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>Tn(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}var Dn=new Set([`link`,`style`,`script`,`noscript`]),On=new Set([`title`,`titleTemplate`,`script`,`style`,`noscript`]),kn=new Set([`base`,`meta`,`link`,`style`,`script`,`noscript`]),An=new Set([`title`,`base`,`htmlAttrs`,`bodyAttrs`,`meta`,`link`,`style`,`script`,`noscript`]),jn=new Set([`base`,`title`,`titleTemplate`,`bodyAttrs`,`htmlAttrs`,`templateParams`]),Mn=new Set([`key`,`tagPosition`,`tagPriority`,`tagDuplicateStrategy`,`innerHTML`,`textContent`,`processTemplateParams`]),Nn=new Set([`templateParams`,`htmlAttrs`,`bodyAttrs`]),Pn=new Set([`theme-color`,`google-site-verification`,`author`,`og:locale:alternate`,`og:image`,`og:video`,`og:audio`,`article:author`,`article:tag`,`book:author`,`book:tag`,`twitter:image`]),Fn={critical:-8,high:-1,low:2},In=e=>typeof e==`number`?Number.isFinite(e):e;function Ln(e){return e===`__proto__`||e===`constructor`||e===`prototype`}function Rn(e){let t=new f;for(let n in e||{})t.hook(n,e[n]);return t}function H(e,t,n){if(e.hooks?._hooks?.[t]?.length)return e.hooks?.callHook(t,n)}function zn(e,t,n){let r=e.push,i=e;i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>Tn(i,e),i.render=()=>n(i);function a(){t.callHook(`entries:updated`,i),i._b||i.render()}return i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,a()},i.push=(n,o)=>{let s=o?.onRendered?t.hook(`dom:rendered`,o.onRendered):void 0,c=r(n,o),l=e.entries.get(c._i);return l&&(l._o=n),i.dirty=!0,a(),{_i:c._i,patch(e){c.patch(e),i.dirty=!0,a()},dispose(){s?.(),e.entries.has(c._i)&&(c.dispose(),i.invalidate())}}},i}var Bn=/^(?:viewport|description|keywords|robots)$/,Vn=[`name`,`property`,`http-equiv`];function Hn(e){let t=e.indexOf(`:`);if(t===-1)return!1;let n=e.slice(t+1);return Pn.has(n)||n.startsWith(`og:image:`)||n.startsWith(`og:video:`)||n.startsWith(`og:audio:`)||n.startsWith(`twitter:image:`)}function Un(e){let{props:t,tag:n,key:r}=e;if(jn.has(n))return n;if(n===`link`){if(t.rel===`canonical`)return`canonical`;if(t.rel===`alternate`&&t.hreflang)return`alternate:${t.hreflang}`}if(t.charset)return`charset`;if(n===`meta`)for(let e of Vn){let n=t[e];if(n!==void 0)return`meta:${n}${(typeof n!=`string`||!n.includes(`:`))&&!Bn.test(n)&&r?`:key:${r}`:``}`}return r?`${n}:key:${r}`:t.id?`${n}:id:${t.id}`:n===`link`&&t.rel&&t.href?`link:${t.rel}:${t.href}`:On.has(n)&&(e.textContent||e.innerHTML)?`${n}:content:${e.textContent||e.innerHTML}`:void 0}function Wn(e){let t=e._h||e._d||e.textContent||e.innerHTML;if(t)return t;let n=Object.keys(e.props).sort(),r=`${e.tag}:`,i=``;for(let t of n)r+=`${i}${t}:${String(e.props[t])}`,i=`,`;return r}function Gn(e,t,n){if(n===`_resolver`)return e;typeof e==`function`&&(!n||n!==`titleTemplate`&&!n.startsWith(`on`))&&(e=e());let r=t?t(n,e):e;if(Array.isArray(r)){let e;for(let n=0;n<r.length;n++){let i=Gn(r[n],t);e?e[n]=i:i!==r[n]&&(e=r.slice(0,n),e[n]=i)}return e||r}if(r?.constructor===Object){let e;for(let n in r){let i=Ln(n),a=i?void 0:Gn(r[n],t,n);if(!e&&(i||a!==r[n])){e={};for(let t in r){if(t===n)break;e[t]=r[t]}}e&&!i&&(e[n]=a)}return e||r}return r}var Kn=/[\s"'<>/=\x00-\x1F\x7F]/;function qn(e,t){let n=e===`style`,r=n?new Map:new Set,i=e=>{if(e){if(n){let t=e.indexOf(`:`);t>0&&r.set(e.slice(0,t).trim(),e.slice(t+1).trim())}else e.split(` `).forEach(e=>e&&r.add(e))}};if(typeof t==`string`)(n?t.split(`;`):[t]).forEach(i);else if(Array.isArray(t))t.forEach(i);else if(t&&typeof t==`object`)for(let e in t){let a=t[e];a&&a!==`false`&&(n?r.set(e.trim(),String(a)):i(e))}return r}function Jn(e,t){if(e.props=e.props||{},!t)return e;if(e.tag===`templateParams`)return e.props=t,e;let n=kn.has(e.tag)||e.tag===`htmlAttrs`||e.tag===`bodyAttrs`;for(let r in t){if(Ln(r))continue;let i=r.startsWith(`data-`),a=n&&!Mn.has(r),o=a&&!i?r.toLowerCase():r;if(a&&(!o||Kn.test(o)))continue;let s=t[r];if(s===null)e.props[o]=null;else if(r===`class`||r===`style`)e.props[r]=qn(r,s);else if(Mn.has(r)){if((r===`textContent`||r===`innerHTML`)&&typeof s==`object`){let n=t.type||`application/json`;(n.endsWith(`json`)||n===`speculationrules`||n===`importmap`)&&(e.props.type=n,e[r]=JSON.stringify(s))}else e[r]=s}else if(s!==void 0){let t=String(s),n=e.tag===`meta`&&o===`content`;e.props[o]=t===`true`||t===``?i||n?t:!0:!s&&i&&t===`false`?`false`:s}}return e}function Yn(e,t){let n;return t.length&&(n=(e,n)=>{for(let r=0;r<t.length;r++)n=t[r](e,n);return n},e=n(void 0,e)),Gn(e,n)}function Xn(e,t){let n=Jn({tag:e,props:{}},typeof t==`object`&&typeof t!=`function`?t:{[e===`script`||e===`noscript`||e===`style`?`innerHTML`:`textContent`]:t});if(n.key&&Dn.has(n.tag)&&(n.props[`data-hid`]=n._h=n.key),n.tag===`script`&&typeof n.innerHTML==`object`&&(n.innerHTML=JSON.stringify(n.innerHTML),n.props.type=n.props.type||`application/json`),Array.isArray(n.props.content)){let e=[];for(let t of n.props.content)e.push({...n,props:{...n.props,content:t}});return e}return n}function Zn(e,t){if(Array.isArray(t))for(let n of t)e.push(n);else e.push(t)}function Qn(e,t){if(!e)return[];typeof e==`function`&&(e=e()),e=Yn(e,t);let n=[];for(let t in e){let r=e[t];if(r!==void 0){if(Array.isArray(r))for(let e of r)Zn(n,Xn(t,e));else Zn(n,Xn(t,r))}}return n}var $n=/</g,er=/<\/script/g,tr=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,nr=()=>100;function rr(e){for(let t in e)return!1;return!0}var ir=/^tags:|:render/;function ar(e,t){let n=(t[`entries:resolve`]?.length||0)+(t[`entries:normalize`]?.length||0);if(e._h!==n){e._h=n;for(let t of e.entries.values())delete t._tags}}function or(e){for(let t=0;t<e.length;t++){let n=e[t],r={...n.props};r.class instanceof Set&&(r.class=new Set(r.class)),r.style instanceof Map&&(r.style=new Map(r.style)),e[t]={...n,props:r}}}function sr(e,t){let n=e.tags,r=0;for(let t of e.tagMap.values())if(Array.isArray(t))for(let e of t)n[r++]=e;else n[r++]=t;n.length=r,t&&n.sort(tr)}function cr(e){let t=!1;for(let n of e.tags.sort(tr)){let r=n._d||Wn(n);if(!r)continue;let i=e.tagMap.get(r);if(!i){e.tagMap.set(r,n);continue}if((n.tagDuplicateStrategy||(Nn.has(n.tag)?`merge`:null)||(n.key&&n.key===i.key?`merge`:null))===`merge`){let t={...i.props};for(let e in n.props)t[e]=e===`style`?new Map([...i.props.style||new Map,...n.props[e]]):e===`class`?new Set([...i.props.class||[],...n.props[e]]):n.props[e];e.tagMap.set(r,{...n,props:t})}else n._p>>10==i._p>>10&&n.tag===`meta`&&Hn(r)?(e.tagMap.set(r,Object.assign([...Array.isArray(i)?i:[i],n],n)),t=!0):(n._w===i._w?n._p>i._p:n._w<i._w)&&e.tagMap.set(r,n)}return t}function lr(e,t){let n=e.tagMap.get(`title`),r=e.tagMap.get(`titleTemplate`);if(t._title=n?.textContent,!r)return;let i=r.textContent;if(t._titleTemplate=i,!i)return;let a=typeof i==`function`?i(n?.textContent):i;typeof a==`string`&&!t.plugins.has(`template-params`)&&(a=a.replace(`%s`,n?.textContent||``)),n?a===null?e.tagMap.delete(`title`):e.tagMap.set(`title`,{...n,textContent:a}):e.tagMap.set(`titleTemplate`,{...r,tag:`title`,textContent:a})}function ur(e){let t=0;for(let n of e){let{innerHTML:r,tag:i,props:a}=n;if(!(!An.has(i)||rr(a)&&!In(r)&&!In(n.textContent))&&!(i===`meta`&&!In(a.content)&&!a[`http-equiv`]&&!a.charset)){if(i===`script`&&(r||n.textContent)){let e=String(a.type),t=e.endsWith(`json`)||e===`importmap`||e===`speculationrules`,i=e=>t?(typeof e==`string`?e:JSON.stringify(e)).replace($n,`\\u003C`):typeof e==`string`?e.replace(er,`<\\/script`):e;n={...n},r&&(n.innerHTML=i(r)),n.textContent&&(n.textContent=i(n.textContent)),n._d=Un(n)}e[t++]=n}}return e.length=t,e}function dr(e,t){let n=t?.tagWeight??e.resolvedOptions._tagWeight??nr,r={tagMap:new Map,tags:[]},i=e.hooks?._hooks||{};ar(e,i);for(let t of e.entries.values())t._pending!==void 0&&(t.input=t._pending,delete t._pending,delete t._tags,delete t._precomputedTags);let a;(i[`entries:resolve`]?.length||i[`entries:normalize`]?.length)&&(a=[...e.entries.values()],i[`entries:resolve`]?.length&&H(e,`entries:resolve`,{entries:a,...r})),ar(e,i);for(let t of a||e.entries.values()){let a=t._tags;if(!a){if(t._precomputedTags&&n===e.resolvedOptions._tagWeight&&!i[`entries:normalize`]?.length&&!i[`entries:resolve`]?.length&&(!t.options||rr(t.options)))a=t._precomputedTags;else{if(a=Qn(t.input,e.resolvedOptions.propResolvers||[]),t.options&&!rr(t.options))for(let e of a)Object.assign(e,t.options);if(i[`entries:normalize`]?.length){let n={tags:a,entry:t};H(e,`entries:normalize`,n),a=n.tags}for(let e=0;e<a.length;e++){let r=a[e];r._w=n(r),r._p=(t._i<<10)+e,r._d=Un(r),r._d||(r._h=Wn(r))}t._tags=a}}r.tags.push(...a)}for(let e in i)if(i[e]?.length&&ir.test(e)){or(r.tags);break}let o=cr(r);return lr(r,e),sr(r,o),H(e,`tags:beforeResolve`,r),H(e,`tags:resolve`,r),H(e,`tags:afterResolve`,r),ur(r.tags)}var fr=/\s+/;function pr(e={}){return t=>gr(t,e)}function mr(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function hr(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(fr))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function gr(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom;if(!n||e._du||r&&r._d===n&&!e.dirty&&!mr(e))return!1;let i=n.defaultView;e._du=!0;let a=!1;try{let o=function(e,t,n){d._s[e]=!n&&f[e]||t,delete f[e]},s=function(e,t,n,r,i,a){let s=`${e}:event:${t}`,c=d._l.get(s);if(c&&c[0]===a&&c[1]===n&&c[2]===r){o(s,c[4]);return}c?.[4]();let l=`data-${t}`,u=(e=>r.call(i,e)),f=()=>{a.removeEventListener(n,u),i.getAttribute(l)===``&&i.removeAttribute(l),d._l.get(s)?.[3]===u&&d._l.delete(s)};a.addEventListener(n,u),d._l.set(s,[a,n,r,u,f]),i.setAttribute(l,``),o(s,f,!0)},c=function({id:e,$el:t,tag:n}){if(d._e.set(e,t),!n.tag.endsWith(`Attrs`)){let r=n.textContent;r!=null&&r!==``&&(r!==t.textContent&&(t.textContent=r),o(`${e}:text`,()=>{t.textContent===r&&(t.textContent=``)},!0));let i=n.innerHTML;i!=null&&i!==``&&(i!==t.innerHTML&&(t.innerHTML=i),o(`${e}:html`,()=>{t.innerHTML===i&&(t.innerHTML=``)},!0));let a=`${e}:el`;o(a,f[a]||(()=>{t?.remove(),d._e.delete(e)}))}for(let r in n.props){let a=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof a==`function`){let o=r.slice(2);t?.dataset?.[`${r}fired`]&&a.call(t,new((i?.Event)||Event)(o)),s(e,r,o,a,t,n.tag===`bodyAttrs`&&i?i:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&a)for(let e of a){let n=`${c}:${e}`;o(n,f[n]||(()=>t.classList.remove(e))),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&a)for(let[e,n]of a){let r=`${c}:${e}`;o(r,f[r]||(()=>t.style.removeProperty(e))),t.style.setProperty(e,n)}else a!==!1&&a!==null&&(t.getAttribute(r)!==a&&t.setAttribute(r,a===!0?``:String(a)),o(c,f[c]||(()=>t.removeAttribute(r))))}},l={shouldRender:!0,tags:[]};if(H(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=r;if(u?._d!==n){if(u){for(let e in u._s)u._s[e]();for(let e in u._p)u._p[e]();u._s=u._p={},u._e.clear(),u._l.clear()}u=void 0}u?u._p=u._s:u=hr(e,n),u._s={};let d=u,f=d._p,p=[],m={};e.dirty=!1;let h=dr(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),g=[],_={};for(let e of h){let t=_[e._d]||0,r=(t?`${e._d}:${t}`:e._d)||e._h,i={tag:e,id:r,shouldRender:!0};if(e.tag===`meta`&&e._d&&Hn(e._d)&&(_[e._d]=t+1),g.push(i),e.tag===`title`){n.title=e.textContent,o(`title:`,()=>n.title=d._t);continue}i.$el=d._e.get(r),i.$el?c(i):kn.has(e.tag)&&p.push(i)}if(p.length){let e=new Set(d._e.values());for(let t of[...n.body.children,...n.head.children]){let n=t.tagName.toLowerCase();if(!kn.has(n)||e.has(t))continue;let r={innerHTML:t.innerHTML};for(let e of t.getAttributeNames())r[e]=t.getAttribute(e);let i=Jn({tag:n,props:{}},r);i.key=t.getAttribute(`data-hid`)||void 0;let a=Un(i)||Wn(i),o=a,s=1;for(;d._e.has(o);)o=`${a}:${s++}`;d._e.set(o,t)}}for(let e of p){let t=d._e.get(e.id);e.$el=t||n.createElement(e.tag.tag),c(e),t||(m[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el)}m.head&&n.head.appendChild(m.head),m.bodyOpen&&n.body.insertBefore(m.bodyOpen,n.body.firstChild),m.bodyClose&&n.body.appendChild(m.bodyClose);for(let e in f)f[e]();e._dom=d,a=!0,H(e,`dom:rendered`,{renders:g})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return a&&(e.dirty||mr(e))&&gr(e,t),a}var _r=e=>typeof e.tagPriority==`number`?e.tagPriority:100+(Fn[e.tagPriority]||0);function vr(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||pr({document:e.document}),n=zn(En(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:_r,init:[]}),Rn(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}var yr=`usehead`;function br(){if(ie()){let e=y(yr);if(e)return e}throw Error(`useHead() was called without provide context, ensure you call it through the setup() function.`)}function xr(e){return{install(t){t.config.globalProperties.$unhead=e,t.config.globalProperties.$head=e,t.provide(yr,e)}}.install}function Sr(e,t){return t&&typeof e==`function`&&(e.key=t),e}var Cr=/\\/g,wr=/</g,Tr=/"/g,Er=/%\w+(?:\.\w+)?/g,Dr=`%separator`;function Or(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0)return n?(r||``).replace(Cr,`\\\\`).replace(wr,`\\u003C`).replace(Tr,`\\"`):r||``}function kr(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(Er);if(!a)return e;let o=e.includes(Dr);return e=e.replace(Er,e=>{if(e===Dr||!a.includes(e))return e;let n=Or(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(Dr).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var Ar=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,jr=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),Mr=Sr({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=jr(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=jr(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(Ar))}}}),Nr=Sr({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let 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),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function U(e){return typeof e?.then==`function`}var Pr=256;function Fr(e,t){if(t===e.length)return;if(t===Pr){let n=Array(e.length),r=!1;for(;t<e.length;t++){let i=W(e[t]);n[t]=i,r||=U(i)}return r?n:void 0}let n=W(e[t]);if(U(n)){let r=Array(e.length);r[t]=n;for(let n=t+1;n<e.length;n++)r[n]=W(e[n]);return r}let r=Fr(e,t+1);return r&&(r[t]=n),r}function Ir(e,t,n){if(n===t.length)return;if(n===Pr){let r=Array(t.length),i=!1;for(;n<t.length;n++){let a=W(e[t[n]]);r[n]=a,i||=U(a)}return i?r:void 0}let r=W(e[t[n]]);if(U(r)){let i=Array(t.length);i[n]=r;for(let r=n+1;r<t.length;r++)i[r]=W(e[t[r]]);return i}let i=Ir(e,t,n+1);return i&&(i[n]=r),i}function W(e){if(typeof e==`function`)return e;if(U(e))return Promise.resolve(e).then(W);if(Array.isArray(e)){let t=Fr(e,0);return t?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=Ir(e,t,0);if(n)return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var Lr=Sr(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=W(a);if(!U(o)){t.delete(i);continue}t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})}}}}},`promises`),Rr={meta:`content`,link:`href`,htmlAttrs:`lang`},zr=[`innerHTML`,`textContent`];function Br(e,t,n,r=!1){return typeof e==`string`&&e.includes(`%`)?kr(e,t,n,r):e}var Vr=Sr(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=Br(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=Rr[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=Br(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of zr)typeof e[t]==`string`&&(e[t]=Br(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=Br(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function Hr(e={}){let t=pr(),n,r=0;return n=vr({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=xr(n),n}var Ur={disableDefaults:!0,plugins:[Nr,Lr,Vr,Mr]},Wr=p({name:`nuxt:head`,enforce:`pre`,setup(e){wn(e,Hr(Ur))}}),Gr=/(:\w+)\([^)]+\)/g,Kr=/(:\w+)[?+*]/g,qr=/:\w+/g,Jr=(e,t)=>t.path.replace(Gr,`$1`).replace(Kr,`$1`).replace(qr,t=>e.params[t.slice(1)]?.toString()||``),Yr=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Jr(e.route,n));return typeof r==`function`?r(e.route):r},Xr=(e,t)=>({default:()=>e?I(de,e===!0?{}:e,t):t});function Zr(e){return Array.isArray(e)?e:[e]}var Qr=e=>e.startsWith(`/`);function $r(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function ei(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&$r(e.default)}var G=Object.assign;function ti(e,t){let n={};for(let r in t){let i=t[r];n[r]=K(i)?i.map(e):e(i)}return n}var ni=()=>{},K=Array.isArray;function ri(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var ii=Symbol(``);function q(e,t){return G(Error(),{type:e,[ii]:!0},t)}function J(e,t){return e instanceof Error&&ii in e&&(t==null||!!(e.type&t))}var ai=Symbol(``),oi=Symbol(``),si=Symbol(``),ci=Symbol(``),li=Symbol(``),ui=typeof document<`u`,di=/#/g,fi=/&/g,pi=/\//g,mi=/=/g,hi=/\?/g,gi=/\+/g,_i=/%5B/g,vi=/%5D/g,yi=/%5E/g,bi=/%60/g,xi=/%7B/g,Si=/%7C/g,Ci=/%7D/g,wi=/%20/g;function Ti(e){return e==null?``:encodeURI(``+e).replace(Si,`|`).replace(_i,`[`).replace(vi,`]`)}function Ei(e){return Ti(e).replace(xi,`{`).replace(Ci,`}`).replace(yi,`^`)}function Di(e){return Ti(e).replace(gi,`%2B`).replace(wi,`+`).replace(di,`%23`).replace(fi,`%26`).replace(bi,"`").replace(xi,`{`).replace(Ci,`}`).replace(yi,`^`)}function Oi(e){return Di(e).replace(mi,`%3D`)}function ki(e){return Ti(e).replace(di,`%23`).replace(hi,`%3F`)}function Ai(e){return ki(e).replace(pi,`%2F`)}function ji(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Mi=/\/$/,Ni=e=>e.replace(Mi,``);function Pi(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=Hi(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:ji(o)}}function Fi(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Ii(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Li(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Ri(t.matched[r],n.matched[i])&&zi(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Ri(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function zi(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Bi(e[n],t[n]))return!1;return!0}function Bi(e,t){return K(e)?Vi(e,t):K(t)?Vi(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Vi(e,t){return K(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Hi(e,t){if(Qr(e))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o<r.length;o++)if(s=r[o],s!==`.`){if(s===`..`)a>1&&a--;else break}return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var Y={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function Ui(e){if(!e){if(ui){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`}return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Ni(e)}var Wi=/^[^#]+#/;function Gi(e,t){return e.replace(Wi,`#`)+t}function Ki(e,t){let 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)}}var qi=()=>history.scrollRestoration===`manual`?{left:window.scrollX,top:window.scrollY}:null;function Ji(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=Ki(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function Yi(e,t){return(history.state?history.state.position-t:-1)+e}var Xi=new Map;function Zi(e){Xi.set(e,qi())}function Qi(e){let t=Xi.get(e);return Xi.delete(e),t}function $i(e){return typeof e==`string`||e&&typeof e==`object`}function ea(e){return typeof e==`string`||typeof e==`symbol`}function ta(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;e<n.length;++e){let r=n[e].replace(gi,` `),i=r.indexOf(`=`),a=ji(i<0?r:r.slice(0,i)),o=i<0?null:ji(r.slice(i+1));if(a in t){let e=t[a];K(e)||(e=t[a]=[e]),e.push(o)}else t[a]=o}return t}function na(e){let t=``;for(let n in e){let r=e[n];if(n=Oi(n),r==null){r!==void 0&&(t+=(t.length?`&`:``)+n);continue}(K(r)?r.map(e=>e&&Di(e)):[r&&Di(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function ra(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=K(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function ia(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function X(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(q(4,{from:n,to:t})):e instanceof Error?c(e):$i(e)?c(q(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function aa(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e])){if($r(s)){let c=(s.__vccOpts||s)[t];c&&a.push(X(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=ei(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&X(c,n,r,o,e,i)()}))}}}return a}function oa(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;o<a;o++){let a=t.matched[o];a&&(e.matched.find(e=>Ri(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Ri(e,s))||i.push(s))}return[n,r,i]}var sa=()=>location.protocol+`//`+location.host;function ca(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Ii(n,``)}return Ii(n,e)+r+i}function la(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=ca(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){let{history:e}=window;e.state&&e.replaceState(G({},e.state,{scroll:qi()}),``)}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),{pauseListeners:c,listen:l,destroy:d}}function ua(e,t,n,r=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:null}}function da(e){let{history:t,location:n}=window,r={value:ca(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:sa()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,G({},t.state,ua(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=G({},i.value,t.state,{forward:e,scroll:qi()});a(o.current,o,!0),a(e,G({},ua(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function fa(e){e=Ui(e);let t=da(e),n=la(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=G({location:``,base:e,go:r,createHref:Gi.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var pa={type:0,value:``},ma=/[a-zA-Z0-9_]/;function ha(e){if(!e)return[[]];if(e===`/`)return[[pa]];if(!Qr(e))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;s<e.length;)switch(c=e[s++],n){case 0:c===`\\`?(r=n,n=4):c===`/`?(l&&d(),o()):c===`:`?(d(),n=1):f();break;case 4:f(),n=r;break;case 1:c===`(`?n=2:ma.test(c)?f():(d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--);break;case 2:c===`)`?u[u.length-1]==`\\`?u=u.slice(0,-1)+c:n=3:u+=c;break;case 3:d(),n=0,c!==`*`&&c!==`?`&&c!==`+`&&s--,u=``;break;default:t(`Unknown state`)}return n===2&&t(`Unfinished custom RegExp for param "${l}"`),d(),o(),i}var ga=`[^/]+?`,_a={sensitive:!1,strict:!1,start:!0,end:!0},va=/[.+*?^${}()[\]/\\]/g;function ya(e,t){let n=G({},_a,t),r=[],i=n.start?`^`:``,a=[];for(let t of e){let e=t.length?[]:[90];n.strict&&!t.length&&(i+=`/`);for(let r=0;r<t.length;r++){let o=t[r],s=40+(n.sensitive?.25:0);if(o.type===0)r||(i+=`/`),i+=o.value.replace(va,`\\$&`),s+=40;else if(o.type===1){let{value:e,repeatable:n,optional:c,regexp:l}=o;a.push({name:e,repeatable:n,optional:c});let u=l||ga;if(u!==ga){s+=10;try{RegExp(`(${u})`)}catch(t){throw Error(`Invalid custom RegExp for param "${e}" (${u}): `+t.message)}}let d=n?`((?:${u})(?:/(?:${u}))*)`:`(${u})`;r||(d=c&&t.length<2?`(?:/${d})`:`/`+d),c&&(d+=`?`),i+=d,s+=20,c&&(s+=-8),n&&(s+=-20),u===`.*`&&(s+=-50)}e.push(s)}r.push(e)}if(n.strict&&n.end){let e=r.length-1;r[e][r[e].length-1]+=.7000000000000001}n.strict||(i+=`/?`),n.end?i+=`$`:n.strict&&!i.endsWith(`/`)&&(i+=`(?:/|$)`);let o=new RegExp(i,n.sensitive?``:`i`);function s(e){let t=e.match(o),n={};if(!t)return null;for(let e=1;e<t.length;e++){let r=t[e]||``,i=a[e-1];n[i.name]=r&&i.repeatable?r.split(`/`):r}return n}function c(t){let n=``,r=!1;for(let i of e){(!r||!n.endsWith(`/`))&&(n+=`/`),r=!1;for(let e of i)if(e.type===0)n+=e.value;else if(e.type===1){let{value:a,repeatable:o,optional:s}=e,c=a in t?t[a]:``;if(K(c)&&!o)throw Error(`Provided param "${a}" is an array but it is not repeatable (* or + modifiers)`);let l=K(c)?c.join(`/`):c;if(!l){if(s)i.length<2&&(n.endsWith(`/`)?n=n.slice(0,-1):r=!0);else throw Error(`Missing required param "${a}"`)}n+=l}}return n||`/`}return{re:o,score:r,keys:a,parse:s,stringify:c}}function ba(e,t){let n=0;for(;n<e.length&&n<t.length;){let r=t[n]-e[n];if(r)return r;n++}return e.length<t.length?e.length===1&&e[0]===80?-1:1:e.length>t.length?t.length===1&&t[0]===80?1:-1:0}function xa(e,t){let n=0,r=e.score,i=t.score;for(;n<r.length&&n<i.length;){let e=ba(r[n],i[n]);if(e)return e;n++}if(Math.abs(i.length-r.length)===1){if(Sa(r))return 1;if(Sa(i))return-1}return i.length-r.length}function Sa(e){let t=e[e.length-1];return e.length>0&&t[t.length-1]<0}var Ca={strict:!1,end:!0,sensitive:!1};function wa(e,t,n){let r=G(ya(ha(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Ta(e,t){let n=[],r=new Map;t=ri(Ca,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Da(e);s.aliasOf=r&&r.record;let l=ri(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Da(G({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&!Qr(u)){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=wa(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!ka(d)&&o(e.name)),Na(d)&&c(d),s.children){let e=s.children;for(let t=0;t<e.length;t++)a(e[t],d,r&&r.children[t])}r||=d}return f?()=>{o(f)}:ni}function o(e){if(ea(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=ja(e,n);n.splice(t,0,e),e.record.name&&!ka(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw q(1,{location:e});s=i.record.name,a=G(Ea(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Ea(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw q(1,{location:e,currentLocation:t});s=i.record.name,a=G({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Aa(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Ea(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Da(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Oa(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 Oa(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function ka(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Aa(e){return e.reduce((e,t)=>G(e,t.meta),{})}function ja(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;xa(e,t[i])<0?r=i:n=i+1}let i=Ma(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ma(e){let t=e;for(;t=t.parent;)if(Na(t)&&xa(e,t)===0)return t}function Na({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Pa(e){let t=y(si),n=y(ci),r=O(()=>{let n=g(e.to);return t.resolve(n)}),i=O(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(Ri.bind(null,i));if(o>-1)return o;let s=za(e[t-2]);return t>1&&za(i)===s&&a[a.length-1].path!==s?a.findIndex(Ri.bind(null,e[t-2])):o}),a=O(()=>i.value>-1&&Ra(n.params,r.value.params)),o=O(()=>i.value>-1&&i.value===n.matched.length-1&&zi(n.params,r.value.params));function s(n={}){if(La(n)){let n=t[g(e.replace)?`replace`:`push`](g(e.to)).catch(ni);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:O(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Fa(e){return e.length===1?e[0]:e}var Ia=ve({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:Pa,setup(e,{slots:t}){let n=C(Pa(e)),{options:r}=y(si),i=O(()=>({[Ba(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Ba(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Fa(t.default(n));return e.custom?r:I(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function La(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){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Ra(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!K(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function za(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Ba=(e,t,n)=>e??t??n,Va=ve({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=y(li),i=O(()=>e.route||r.value),a=y(oi,0),o=O(()=>{let e=g(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=O(()=>i.value.matched[o.value]);E(oi,O(()=>o.value+1)),E(ai,s),E(li,i);let c=ge();return re(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!Ri(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Ha(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=I(l,G({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Ha(n.default,{Component:f,route:r})||f}}});function Ha(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var Ua=Va;function Wa(e){let t=Ta(e.routes,e),n=e.parseQuery||ta,r=e.stringifyQuery||na,i=e.history,a=ia(),o=ia(),s=ia(),c=ce(Y),l=ce(0),u=Y;ui&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=ti.bind(null,e=>``+e),f=ti.bind(null,Ai),p=ti.bind(null,ji);function m(e,n){let r,i;ea(e)?(r=t.getRecordMatcher(e),i=n):i=e;let a=t.addRoute(i,r);return l.value++,()=>{a(),l.value++}}function h(e){let n=t.getRecordMatcher(e);n&&(t.removeRoute(n),l.value++)}function _(){t.clearRoutes(),l.value++}function v(){return t.getRoutes().map(e=>e.record)}function y(e){return!!t.getRecordMatcher(e)}function b(e,a){if(l.value,typeof e==`string`){a||=e.startsWith(`/`)?Y:c.value;let r=Pi(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return G(r,o,{params:p(o.params),redirectedFrom:void 0,href:s})}a=G({},a||(e.path!=null&&e.path.startsWith(`/`)&&!(`name`in e&&e.name)?Y:c.value));let o;if(e.path!=null)o=G({},e,{path:Pi(n,e.path,a.path).path});else{let t=G({},e.params);for(let e in t)t[e]??delete t[e];o=G({},e,{params:f(t)}),a.params=f(a.params)}let s=t.resolve(o,a),u=e.hash||``;s.params=d(p(s.params));let m=Fi(r,G({},e,{hash:Ei(u),path:s.path})),h=i.createHref(m);return G({fullPath:m,hash:u,query:r===na?ra(e.query):e.query||{}},s,{redirectedFrom:void 0,href:h})}function x(e){return typeof e==`string`?Pi(n,e,c.value.path):G({},e)}function C(e,t){if(u!==e)return q(8,{from:t,to:e})}function w(e){return D(e)}function T(e){return w(G(x(e),{replace:!0}))}function E(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=x(i):{path:i},i.params={}),G({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function D(e,t){let n=u=b(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,l=E(n,i);if(l)return D(G(x(l),{state:typeof l==`object`?G({},a,l.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Li(r,i,n)&&(f=q(16,{to:d,from:i}),k(i,i,!0,!1)),(f?Promise.resolve(f):re(d,i)).catch(e=>J(e)?J(e,2)?e:pe(e):fe(e,d,i)).then(e=>{if(e){if(J(e,2))return D(G({replace:s},x(e.to),{state:typeof e.to==`object`?G({},a,e.to.state):a,force:o}),t||d)}else e=ae(d,i,!0,s,a);return ie(d,i,e),e})}function te(e,t){let n=C(e,t);return n?Promise.reject(n):Promise.resolve()}function ne(e){let t=j.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function re(e,t){let n,[r,i,s]=oa(e,t);n=aa(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(X(r,e,t))});let c=te.bind(null,e,t);return n.push(c),N(n).then(()=>{n=[];for(let r of a.list())n.push(X(r,e,t));return n.push(c),N(n)}).then(()=>{n=aa(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(X(r,e,t))});return n.push(c),N(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter){if(K(r.beforeEnter))for(let i of r.beforeEnter)n.push(X(i,e,t));else n.push(X(r.beforeEnter,e,t))}return n.push(c),N(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=aa(s,`beforeRouteEnter`,e,t,ne),n.push(c),N(n))).then(()=>{n=[];for(let r of o.list())n.push(X(r,e,t));return n.push(c),N(n)}).catch(e=>J(e,8)?e:Promise.reject(e))}function ie(e,t,n){s.list().forEach(r=>ne(()=>r(e,t,n)))}function ae(e,t,n,r,a){let o=C(e,t);if(o)return o;let s=t===Y,l=ui?history.state:{};n&&(r||s?i.replace(e.fullPath,G({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,k(e,t,n,s),pe()}let oe;function se(){oe||=i.listen((e,t,n)=>{if(!M.listening)return;let r=b(e),a=E(r,M.currentRoute.value);if(a){D(G(a,{replace:!0,force:!0}),r).catch(ni);return}u=r;let o=c.value;ui&&n.delta&&Zi(Yi(o.fullPath,n.delta)),re(r,o).catch(e=>J(e,12)?e:J(e,2)?(D(G(x(e.to),{force:!0}),r).then(e=>{J(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(ni),Promise.reject()):(n.delta&&i.go(-n.delta,!1),fe(e,r,o))).then(e=>{e||=ae(r,o,!1),e&&(n.delta&&!J(e,8)?i.go(-n.delta,!1):n.type===`pop`&&J(e,20)&&i.go(-1,!1)),ie(r,o,e)}).catch(ni)})}let le=ia(),ue=ia(),de;function fe(e,t,n){pe(e);let r=ue.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function O(){return de&&c.value!==Y?Promise.resolve():new Promise((e,t)=>{le.add([e,t])})}function pe(e){return de||(de=!e,se(),le.list().forEach(([t,n])=>e?n(e):t()),le.reset()),e}function k(t,n,r,i){let{scrollBehavior:a}=e;if(!ui||!a)return Promise.resolve();let o=!r&&Qi(Yi(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return ee().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&Ji(e)).catch(e=>t===c.value&&fe(e,t,n))}let A=e=>i.go(e),me,j=new Set,M={currentRoute:c,listening:!0,addRoute:m,removeRoute:h,clearRoutes:_,hasRoute:y,getRoutes:v,resolve:b,options:e,push:w,replace:T,go:A,back:()=>A(-1),forward:()=>A(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ue.add,isReady:O,install(e){e.component(`RouterLink`,Ia),e.component(`RouterView`,Ua),e.config.globalProperties.$router=M,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>g(c)}),ui&&!me&&c.value===Y&&(me=!0,w(i.location).catch(e=>{}));let t={};for(let e in Y)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(si,M),e.provide(ci,S(t)),e.provide(li,c);let n=e.unmount;j.add(e),e.unmount=function(){j.delete(e),j.size<1&&(u=Y,oe&&oe(),oe=null,c.value=Y,me=!1,de=!1),n()}}};function N(e){return e.reduce((e,t)=>e.then(()=>ne(t)),Promise.resolve())}return M}var Ga=(e,t)=>({default:()=>e?I(Ce,e===!0?{}:e,t):t.default?.()}),Ka=/(:\w+)\([^)]+\)/g,qa=/(:\w+)[?+*]/g,Ja=/:\w+/g;function Ya(e){let t=e?.meta.key??e.path.replace(Ka,`$1`).replace(qa,`$1`).replace(Ja,t=>e.params[t.slice(1)]?.toString()||``);return typeof t==`function`?t(e):t}function Xa(e,t){return e===t||t===Y?!1:Ya(e)!==Ya(t)||!e.matched.every((e,n)=>e.components&&e.components.default===t.matched[n]?.components?.default)}function Za(e){return Array.isArray(e)?e:[e]}function Qa(e){let t=[];for(let n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?Za(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?Za(n.onBeforeLeave):void 0});return wt(...t)}var $a={scrollBehavior(e,t,n){let r=s(),i=z(),a=i.options?.scrollBehaviorType??`auto`;return e.path.replace(/\/$/,``)===t.path.replace(/\/$/,``)?t.hash&&!e.hash?n??{left:0,top:0}:e.hash?{el:e.hash,top:eo(e.hash),behavior:a}:!1:(typeof e.meta.scrollToTop==`function`?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===Y?to(e,t,n,a):new Promise(o=>{let s=()=>{requestAnimationFrame(()=>{if(i.currentRoute.value.fullPath!==e.fullPath){o(!1);return}o(to(e,t,n,a))})};r.hooks.hookOnce(`page:loading:end`,()=>{let e=r[`~transitionPromise`];e?e.then(s):s()})})}};function eo(e){try{let t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}function to(e,t,n,r){return n||(e.hash?{el:e.hash,top:eo(e.hash),behavior:Xa(e,t)?r:`instant`}:{left:0,top:0})}var Z={hashMode:!1,scrollBehaviorType:`auto`,...$a},no=Bt(async e=>{let t,n;if(!e.meta?.validate)return;let r=([t,n]=i(()=>Promise.resolve(e.meta.validate(e))),t=await t,n(),t);if(r!==!0)return V({fatal:!0,status:r&&(r.status||r.statusCode)||404,statusText:r&&(r.statusText||r.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})},1),ro=e({docsBase:o,reporters:a}),io=(e,t)=>[],ao=io,oo=function(e){if(!e.includes(`%`))return e;let t=e.indexOf(`?`),n=t===-1?e:e.slice(0,t);try{return t===-1?decodeURI(n):decodeURI(n)+e.slice(t)}catch{return e}},so=(e,t)=>{if(typeof e!=`string`)return e;let n=oo(e);return t?n.toLowerCase():n},co=e=>Z.sensitive?wt({},...io(``,so(e,!1)).map(e=>e.data).reverse()):wt({},...ao(``,so(e,!0)).map(e=>e.data).reverse()),lo=`modulepreload`,uo=function(e,t){return new URL(e,t).href},fo={},po=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=uo(t,n),t=s(t),t in fo)return;fo[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:lo,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},mo=Cn,ho=co,go;function _o(){let e;return e=mo(xn(`builds/meta/${t().app.buildId}.json`),{responseType:`json`}).then(e=>{if(!e||typeof e!=`object`||!Array.isArray(e.prerendered))throw ro.NUXT_E5004();return e}),go=e,e.catch(t=>{go===e&&(go=void 0),ro.NUXT_E5002({cause:t})}),e}function vo(){return go||_o()}function yo(e){let t=typeof e==`string`?e:e.path;try{return ho(t)}catch(e){return ro.NUXT_E5003({path:t,cause:e}),{}}}var bo=[no,Bt(e=>{let t=yo({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return R(n,{acceptRelative:!0})?(window.location.href=n,!1):n}})],xo={},So=[{name:`auth`,path:`/auth`,component:()=>po(()=>import(`./Kba0XpjH.js`),__vite__mapDeps([0,1,2,3]),import.meta.url)},{name:`logs`,path:`/logs`,component:()=>po(()=>import(`./Cm7YqZQ-.js`),__vite__mapDeps([4,1,5,6]),import.meta.url)},{name:`queries`,path:`/queries`,component:()=>po(()=>import(`./71bSMC-_.js`),__vite__mapDeps([7,1,5,2,6,8]),import.meta.url)},{name:`index`,path:`/`,component:()=>po(()=>import(`./OVE7s6ty.js`),__vite__mapDeps([9,1,2,3]),import.meta.url)}];function Co(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),ut(n,``)}let s=ut(r,e),c=!n||gt(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var wo=p({name:`nuxt:router`,enforce:`pre`,async setup(e){let n,r,a=t().app.baseURL,o=Z.history?.(a)??fa(a),s=Z.routes?([n,r]=i(()=>Z.routes(So)),n=await n,r(),n??So):So,c,l=Wa({...Z,scrollBehavior:(e,t,n)=>{if(t===Y){c=n;return}if(Z.scrollBehavior){if(l.options.scrollBehavior=Z.scrollBehavior,`scrollRestoration`in window.history){let e=l.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return Z.scrollBehavior(e,Y,c||n)}},history:o,routes:s});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(l);let u=ce(l.currentRoute.value);l.afterEach((e,t)=>{u.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>u.value});let d=Co(a,window.location,e.payload.path),f=ce(l.currentRoute.value),p=()=>{f.value=l.currentRoute.value};l.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;if(n===r){Yr({route:e,Component:{type:n}})===Yr({route:t,Component:{type:r}})&&p();return}e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&p()});let m={sync:p};for(let e in f.value)Object.defineProperty(m,e,{get:()=>f.value[e],enumerable:!0});e._route=S(m),e._middleware||={global:[],named:{}};let h=Kt();l.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&h.value&&await e.runWithContext(Yt),r&&await e.callHook(`page:loading:end`)});try{[n,r]=i(()=>l.isReady()),await n,r()}catch(t){[n,r]=i(()=>Jt(e,t)),await n,r()}let g=d===l.currentRoute.value.fullPath?l.currentRoute.value:l.resolve(d),_=l.currentRoute.value.fullPath,v=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&d!==e.payload.path&&gt(l.currentRoute.value.path,e.payload.path);p();function y(t){!e.isHydrating&&t.fullPath!==Co(a,window.location)&&o.push(t.fullPath)}let ee=e.payload.state._layout;return l.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=C(t.meta),e.isHydrating&&ee&&!oe(t.meta.layout)&&(t.meta.layout=ee),e._processingMiddleware=!0;{let r=new Set([...bo,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of Zr(t))r.add(e)}let i=yo({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await xo[i]?.().then(e=>e.default||e):i;if(!r)throw L.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||V({status:404,statusText:`Page Not Found: ${d}`});return await e.runWithContext(()=>B(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return Xt(i)&&i.fatal&&(await e.runWithContext(()=>B(i)),y(t)),i}catch(n){let r=V(n);return r.fatal&&(await e.runWithContext(()=>B(r)),y(t)),r}}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)}),l.afterEach(t=>{if(t.matched.length===0&&!h.value)return e.runWithContext(()=>B(V({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in g&&(g.name=void 0),l.currentRoute.value.fullPath===_){if(v){let t=l.resolve(e.payload.path);`name`in t&&(t.name=void 0),await l.replace({...t,force:!0});let n=()=>{e[`~restoreDeferredRoute`]&&(e[`~restoreDeferredRoute`]=void 0,l.currentRoute.value=l.resolve(d),p(),l.replace({...g,force:!0}).catch(()=>{}))};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await l.replace({...g,force:!0})}l.options.scrollBehavior=Z.scrollBehavior}catch(t){await Jt(e,t)}}),{provide:{router:l}}}},1),To=globalThis.requestIdleCallback||(e=>{let t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),Eo=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),Do=e=>{let t=s();t.isHydrating?t.hooks.hookOnce(`app:suspense:resolve`,()=>{To(()=>e())}):To(()=>e())},Oo=p(()=>{let e=z();Do(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),ko=p(e=>{let t;async function n(){let r;try{r=await vo()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,h);try{let n=await Cn(xn(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Do(()=>{t=setTimeout(n,h)})});function Ao(e={}){let t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw L.NUXT_E2010({path:t});if(n.protocol&&at(n.protocol))throw L.NUXT_E2002({toPath:t,protocol:n.protocol});let r={};try{r=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||r?.path!==t||r?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:t,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:s().payload.state}))}catch{}window.location.pathname===t?window.location.reload():window.location.href=t}}var jo=p({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&De(navigator.userAgent)&&Ao()})}}),Mo=p({name:`nuxt:chunk-reload`,setup(e){let n=z(),r=t(),i=new Set;n.beforeEach(()=>{i.clear()}),e.hook(`app:chunkError`,({error:e})=>{i.add(e)});function a(e){Ao({path:mt(r.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{n.beforeResolve(a)}),n.onError((e,t)=>{i.has(e)&&a(t)})}});function No(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}async function Po(e,t=z()){let{path:n,matched:r}=t.resolve(e);if(!r.length||(t._routePreloaded||=new Set,t._routePreloaded.has(n)))return;let i=t._preloadPromises||=[];if(i.length>4)return Promise.all(i).then(()=>Po(e,t));t._routePreloaded.add(n);for(let e of r){let t=e.components?.default;if(typeof t!=`function`)continue;let n=Promise.resolve(t()).catch(()=>{}).finally(()=>i.splice(i.indexOf(n),1));i.push(n)}await Promise.all(i)}var Fo=(...e)=>e.find(e=>e!==void 0);function Io(e){let t=e.replace(/[\u0000-\u001F\s]+/g,``);for(;t.toLowerCase().startsWith(`view-source:`);)t=t.slice(12);let n=t.indexOf(`:`);return n>0&&at(t.slice(0,n+1))?null:e}function Lo(e){let n=e.componentName||`NuxtLink`;function r(e){return typeof e==`string`&&e.startsWith(`#`)}function i(t,n,r){let i=r??e.trailingSlash;if(!t||i!==`append`&&i!==`remove`)return t;if(typeof t==`string`)return zo(t,i);let a=`path`in t&&t.path!==void 0?t.path:n(t).path;return{...t,name:void 0,path:zo(a,i)}}function a(n){let a=z(),o=t(),s=O(()=>!!g(n.target)&&g(n.target)!==`_self`),c=O(()=>{let e=g(n.to)||g(n.href)||``;return typeof e==`string`&&R(e,{acceptRelative:!0})}),l=x(`RouterLink`),u=l&&typeof l!=`string`?l.useLink:void 0,d=O(()=>{if(g(n.external))return!0;let e=g(n.to)||g(n.href)||``;return typeof e==`object`?!1:e===``||c.value}),f=O(()=>{let e=g(n.to)||g(n.href)||``;return d.value?e:i(e,a.resolve,g(n.trailingSlash))}),p=d.value?void 0:u?.({...n,to:f,viewTransition:g(n.viewTransition)}),m=O(()=>{let t=g(n.trailingSlash)??e.trailingSlash;if(!f.value||c.value||r(f.value)){let e=f.value;return typeof e==`string`?Io(e):e}if(d.value){let e=typeof f.value==`object`&&`path`in f.value?Ut(f.value):f.value,n=typeof e==`object`?a.resolve(e).href:e,r=typeof n==`string`?Io(n):n;return r===null?null:zo(r,t)}return typeof f.value==`object`?a.resolve(f.value)?.href??null:zo(mt(o.app.baseURL,f.value),t)});return{to:f,hasTarget:s,isAbsoluteUrl:c,isExternal:d,href:m,isActive:p?.isActive??O(()=>f.value===a.currentRoute.value.path),isExactActive:p?.isExactActive??O(()=>f.value===a.currentRoute.value.path),route:p?.route??O(()=>a.resolve(f.value)),async navigate(e){m.value!==null&&await Ht(m.value,{replace:g(n.replace),external:d.value||s.value})}}}return ve({name:n,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:a,setup(t,{slots:n}){let i=z(),{to:o,href:c,navigate:l,isExternal:u,hasTarget:d,isAbsoluteUrl:f}=a(t),p=ce(!1),m=ge(null),h=e=>{m.value=t.custom?e?.$el?.nextElementSibling:e?.$el};function g(n){return!!(!p.value&&(typeof t.prefetchOn==`string`?t.prefetchOn===n:t.prefetchOn?.[n]??e.prefetchOn?.[n])&&(t.prefetch??e.prefetch)!==!1&&t.noPrefetch!==!0&&t.target!==`_blank`&&!Ho())}async function _(e=s()){if(p.value||c.value===null)return;p.value=!0;let t=typeof o.value==`string`?o.value:u.value?Ut(o.value):i.resolve(o.value).fullPath,n=u.value?new URL(t,window.location.href).href:t;await Promise.all([e.hooks.callHook(`link:prefetch`,n)?.catch(()=>{}),!u.value&&!d.value&&Po(o.value,i).catch(()=>{})])}if(!t.custom&&g(`visibility`)){let e=s(),t,n=null;N(()=>{let r=Bo();Do(()=>{t=To(()=>{m?.value?.tagName&&(n=r.observe(m.value,async()=>{n?.(),n=null,await _(e)}))})})}),D(()=>{t&&Eo(t),n?.(),n=null})}return()=>{let a=t.target||null,s=Fo(t.noRel?``:t.rel,e.externalRelAttribute,f.value||d.value?`noopener noreferrer`:``)||null,v=e=>({href:c.value,navigate:l,get route(){if(!c.value)return;let e=new URL(c.value,window.location.href);return{path:e.pathname,fullPath:e.pathname,get query(){return Xe(e.search)},hash:e.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:c.value}},rel:s,target:a,isExternal:u.value||d.value,isActive:!1,isExactActive:!1,...e,prefetch:_,prefetched:p.value,shouldPrefetch:g});if(!u.value&&!d.value&&!r(o.value)){let r={ref:h,to:o.value,activeClass:t.activeClass||e.activeClass,exactActiveClass:t.exactActiveClass||e.exactActiveClass,replace:t.replace,ariaCurrentValue:t.ariaCurrentValue,custom:t.custom};return t.custom||(g(`interaction`)&&(r.onPointerenter=_.bind(null,void 0),r.onFocus=_.bind(null,void 0)),p.value&&(r.class=t.prefetchedClass||e.prefetchedClass),r.rel=t.rel||void 0),I(x(`RouterLink`),r,t.custom&&n.default?{default:e=>n.default(v(e))}:n.default)}return t.custom?n.default?n.default(v()):null:I(`a`,{ref:m,href:c.value||null,rel:s,target:a,onClick:async e=>{if(!(u.value||d.value)){e.preventDefault();try{let e=Wt(c.value??``);return await(t.replace?i.replace(e):i.push(e))}finally{if(r(o.value)){let e=o.value.slice(1),t=e;try{t=decodeURIComponent(e)}catch{}document.getElementById(t)?.focus()}}}}},n.default?.())}}})}var Ro=Lo(c);function zo(e,t){if(t!==`append`&&t!==`remove`)return e;let n=t===`append`?ct:st;return R(e)&&!e.startsWith(`http`)?e:n(e,!0)}function Bo(){let e=s();if(e._observer)return e._observer;let t=null,n=new Map;return e._observer={observe:(e,r)=>(t||=new IntersectionObserver(e=>{for(let t of e){let e=n.get(t.target);(t.isIntersecting||t.intersectionRatio>0)&&e&&e()}}),n.set(e,r),t.observe(e),()=>{n.delete(e),t?.unobserve(e),n.size===0&&(t?.disconnect(),t=null)})}}var Vo=/2g/;function Ho(){let e=navigator.connection;return!!(e&&(e.saveData||Vo.test(e.effectiveType)))}var Uo=p({name:`nuxt:island-link-navigation`,setup(e){}}),Wo=p({name:`nuxt:global-components`}),Go={},Ko=[Wr,wo,Oo,ko,jo,Mo,Uo,Wo,p({name:`nuxt:prefetch`,setup(e){let t=z();e.hooks.hook(`app:mounted`,()=>{t.beforeEach(async e=>{let t=e?.meta?.layout;t&&typeof Go[t]==`function`&&await Go[t]()})}),e.hooks.hook(`link:prefetch`,e=>{if(R(e))return;let n=t.resolve(e);if(!n)return;let r=n.meta.layout,i=Zr(n.meta.middleware).filter(e=>typeof e==`string`);for(let e of i){let t=xo[e];typeof t==`function`&&t()}typeof r==`string`&&r in Go&&No(Go[r])})}}),p(()=>{})],qo={class:`n-tip n-tip-base`},Jo={__name:`NTip`,props:{icon:{type:String,required:!1}},setup(e){return(t,n)=>{let r=we;return T(),k(`div`,qo,[b(t.$slots,`icon`,{},()=>[e.icon?(T(),F(r,{key:0,icon:e.icon,class:`n-tip-icon`},null,8,[`icon`])):pe(``,!0)]),P(`div`,null,[b(t.$slots,`default`)])])}}},Yo={},Xo={class:`n-loading n-panel-grids-center`},Zo={class:`flex flex-col animate-pulse items-center text-lg`};function Qo(e,t){return T(),k(`div`,Xo,[P(`div`,Zo,[t[1]||=P(`div`,{class:`i-carbon-circle-dash animate-spin text-4xl op50`},null,-1),b(e.$slots,`default`,{},()=>[t[0]||=j(` Loading... `,-1)])])])}var $o=Object.assign(_e(Yo,[[`render`,Qo]]),{__name:`NLoading`}),es={},ts={class:`n-panel-grids-center`};function ns(e,t){return T(),k(`div`,ts,[b(e.$slots,`default`)])}var rs=Object.assign(_e(es,[[`render`,ns]]),{__name:`NPanelGrids`}),is=(e=`RouteProvider`)=>ve({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean,routeRecord:Object},setup(e){let t=e.renderKey,n=e.route,r={};for(let i in e.route)Object.defineProperty(r,i,{get:()=>t===e.renderKey?e.route[i]:n[i],enumerable:!0});return E(ke,S(r)),()=>e.vnode?I(e.vnode,{ref:e.vnodeRef}):e.vnode}}),as=is(),os=new WeakMap,ss=ve({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}){let i=s(),a=ge(),o=y(ke,null),c=new Set,l;r({pageRef:a});let u=y(Oe,null),d,f=i.deferHydration(),p=!1,m=!1,h,g=0;if(i.isHydrating){let e=i.hooks.hookOnce(`app:error`,f),t=z().beforeEach(()=>{e(),t()})}e.pageKey&&re(()=>e.pageKey,(e,t)=>{e!==t&&i.callHook(`page:loading:start`)});let _=!1;{let e=z().beforeResolve(()=>{_=!1});D(()=>{e(),f()})}return()=>I(Ua,{name:e.name,route:e.route,...t},{default:us(t=>{let r=cs(o,t.route,t.Component),s=o&&o.matched.length===t.route.matched.length;if(!t.Component){if(d&&!s&&!fs(d))return d;f();return}if(d&&u&&!fs(d)&&!u.isCurrent(t.route))return d;if(r&&o&&(!u||u?.isCurrent(o)))return(s||d)&&!fs(d)?d:null;let v=Yr(t,e.pageKey),y=ls(o,t.route,t.Component);!i.isHydrating&&l===v&&!y&&ee(()=>{_||(_=!0,i.callHook(`page:loading:end`))}),p&&l!==v&&m&&g++,l=v;let b=!!(e.transition??t.route.meta.pageTransition??!1),x=b&&Qa([e.transition,t.route.meta.pageTransition,!1,{onAfterLeave(){i[`~transitionFinish`]?.(),delete i[`~transitionFinish`],delete i[`~transitionPromise`],i.callHook(`page:transition:finish`,t.Component)}}]),S=e.keepalive??t.route.meta.keepalive??!1,C=t.Component.type,w=C.name||C.__name;t.route.meta.keepalive&&w&&c.add(w);let T;if(c.size>0&&e.keepalive==null&&(!S||typeof S==`object`&&S&&S.include)){let e=typeof S==`object`&&S?{...S}:{},t=e.include?Array.isArray(e.include)?e.include:[e.include]:[];T={...e,include:Array.from(new Set([...t,...c]))}}else T=S;return d=Ga(b&&x,Xr(T,I(he,{key:g,suspensible:!0,onPending:()=>{p=!0,b&&!i[`~transitionPromise`]&&(i[`~transitionPromise`]=new Promise(e=>{i[`~transitionFinish`]=e})),h=i.callHook(`page:start`,t.Component)},onResolve:async()=>{p=!1,m=!0,i.isHydrating&&i[`~restoreDeferredRoute`]?.();try{await ee(),i._route.sync?.(),await h,await i.callHook(`page:finish`,t.Component),!_&&!y&&(_=!0,await i.callHook(`page:loading:end`))}finally{f()}}},{default:()=>{let e={key:v||void 0,vnode:n.default?ds(n.default,t):t.Component,route:t.route,renderKey:v||void 0,trackRootNodes:b,vnodeRef:a,routeRecord:void 0};if(!T)return I(as,e);let r=C,i=os.get(r);return i||(i=is(w),os.set(r,i)),I(i,e)}}))).default(),d})})}});function cs(e,t,n){if(!e)return!1;let r=t.matched.findIndex(e=>e.components?.default===n?.type);if(r===-1)return!1;let i=t.matched.slice(0,r).filter(e=>e.components?.default);if(!i.length)return!1;let a=e.matched.filter(e=>e.components?.default);return i.some((e,t)=>e.components?.default!==a[t]?.components?.default)||n&&Yr({route:t,Component:n})!==Yr({route:e,Component:n})}function ls(e,t,n){return e?t.matched.findIndex(e=>e.components?.default===n?.type)<t.matched.length-1:!1}function us(e){let t=(t=>{let n=e(t);return Array.isArray(n)?n:n==null||!ye(n)?[pe()]:[n]});return t._n=!0,t}function ds(e,t){let n=e(t);return n.length===1?I(n[0]):I(M,void 0,n)}function fs(e){return!!e&&(!!e.suspense?.isUnmounted||!!e.component?.isUnmounted)}var Q,ps=[];function ms(e){if(ps.push(e),!(typeof window>`u`))return window.__NUXT_DEVTOOLS__&&ps.forEach(e=>e(window.__NUXT_DEVTOOLS__)),Object.defineProperty(window,"__NUXT_DEVTOOLS__",{set(e){e&&ps.forEach(t=>t(e))},get(){return Q.value},configurable:!0}),()=>{ps.splice(ps.indexOf(e),1)}}function hs(){Q||(Q=ce(),ms(t));function e(){Q&&ne(Q)}function t(t){Q.value=t,t.host&&t.host.hooks.hook(`host:update:reactivity`,e)}return Q}var gs=`nuxt-convex-module`,_s=300,vs=300,ys=10,$=C({connected:!1,bridgeAvailable:null,info:null,connection:{status:`idle`},queries:[],auth:{available:!1},logs:[]}),bs=null,xs=null,Ss=!1;function Cs(e){let t=e?.$convexDevtools;if(t)return t;try{return window.parent.__NUXT_CONVEX_DEVTOOLS__}catch{return}}function ws(e){$.bridgeAvailable=!0;let t=e.getSnapshot();$.connection=t.connection,$.queries=t.queries,$.auth=t.auth,$.logs=[...t.logs],e.on(`connection`,e=>$.connection=e),e.on(`queries`,e=>$.queries=e),e.on(`auth`,e=>$.auth=e),e.on(`log`,e=>{$.logs.push(e),$.logs.length>_s&&$.logs.splice(0,$.logs.length-_s)})}function Ts(){return Ss?$:(Ss=!0,hs(),ms(e=>{$.connected=!0,xs=t=>e.devtools.rpc.openInEditor(t),bs=e.devtools.extendClientRpc(gs,{});let t=(e=0)=>{Promise.race([bs.getInfo(),new Promise((e,t)=>setTimeout(()=>t(Error(`timeout`)),4e3))]).then(e=>$.info=e).catch(()=>{e<5&&setTimeout(()=>t(e+1),2e3)})};t();let n=0,r=()=>{let t=Cs(e.host.nuxt);if(t){ws(t);return}if(n+=1,n>=ys){$.bridgeAvailable=!1;return}setTimeout(r,vs)};r()}),$)}async function Es(e){if(!bs||!xs)return;let{filepath:t}=await bs.resolveFunctionSource(e);t&&await xs(t)}var Ds={class:`h-screen flex of-hidden font-sans text-sm`},Os={class:`w-36 shrink-0 flex flex-col gap-0.5 p2 border-r border-base`},ks={class:`flex-1 of-auto p4`},As=ve({__name:`app`,setup(e){let t=Ts(),n=[{to:`/`,label:`Connection`,icon:`carbon-plug`},{to:`/queries`,label:`Queries`,icon:`carbon-data-share`},{to:`/auth`,label:`Auth`,icon:`carbon-user-avatar`},{to:`/logs`,label:`Logs`,icon:`carbon-terminal`}];return(e,r)=>{let i=we,a=Te,o=Ro,s=Jo,c=$o,l=rs,u=ss;return T(),k(`div`,Ds,[P(`nav`,Os,[(T(),k(M,null,te(n,e=>A(o,{key:e.to,to:e.to,class:`px2 py1.5 rounded flex items-center gap-2 op65 hover:op100 hover:bg-active`,"active-class":`bg-active op100!`},{default:v(()=>[A(i,{icon:e.icon},null,8,[`icon`]),j(` `+ue(e.label)+` `,1),e.to===`/queries`&&g(t).queries.length?(T(),F(a,{key:0,n:`green`,class:`ml-auto`},{default:v(()=>[j(ue(g(t).queries.length),1)]),_:1})):pe(``,!0)]),_:2},1032,[`to`])),64))]),P(`main`,ks,[g(t).bridgeAvailable===!1?(T(),F(s,{key:0,n:`orange`,icon:`carbon-warning`},{default:v(()=>[...r[0]||=[j(` No Convex client found in this app. Make sure a Convex deployment URL is configured (`,-1),P(`code`,null,`NUXT_PUBLIC_CONVEX_URL`,-1),j(` or `,-1),P(`code`,null,`convex.url`,-1),j(`) and reload the page. `,-1)]]),_:1})):g(t).bridgeAvailable===null?(T(),F(l,{key:1},{default:v(()=>[A(c,null,{default:v(()=>[...r[1]||=[j(`Connecting to the app…`,-1)]]),_:1})]),_:1})):(T(),F(u,{key:2}))])])}}}),js={__name:`nuxt-error-page`,props:{error:Object},setup(e){let t=e.error,n=Number(t.statusCode||500),r=n===404,i=t.statusMessage??(r?`Page Not Found`:`Internal Server Error`),a=t.message||t.toString(),o=le(()=>po(()=>import(`./BhmjAr2Q.js`),__vite__mapDeps([10,1,11,12,13]),import.meta.url)),s=le(()=>po(()=>import(`./_Lf3mfPR.js`),__vite__mapDeps([14,1,11,12,15]),import.meta.url)),c=r?o:s;return(e,t)=>(T(),F(g(c),me(fe({status:g(n),statusText:g(i),statusCode:g(n),statusMessage:g(i),description:g(a),stack:g(void 0)})),null,16))}},Ms=()=>null,Ns={key:0},Ps={__name:`nuxt-root`,setup(e){let t=s(),n=t.deferHydration();if(t.isHydrating){let e=t.hooks.hookOnce(`app:error`,n),r=z().beforeEach(()=>{e(),r()})}window.location.pathname,E(ke,zt()),t.hooks.callHookWith(e=>e.map(e=>e()),`vue:setup`,[]);let r=Kt();function i(e,n,r){let i=t.vueApp.config.errorHandler;if(i&&!i.__nuxt_default)try{i(e,n,r)}catch(e){console.error("[nuxt] Error in `app.config.errorHandler`",e)}}return _((e,n,r)=>{if(t.hooks.callHook(`vue:error`,e,n,r)?.catch(e=>console.error("[nuxt] Error in `vue:error` hook",e)),De(navigator.userAgent))return qt(t,e),!1;if(Xt(e)&&(e.fatal||e.unhandled))return t.runWithContext(()=>B(e)),i(e,n,r),!1}),(e,t)=>(T(),F(he,{onResolve:g(n)},{default:v(()=>[g(!1)?(T(),k(`div`,Ns)):g(r)?(T(),F(g(js),{key:1,error:g(r)},null,8,[`error`])):g(!1)?(T(),F(g(Ms),{key:2,context:g(!1)},null,8,[`context`])):g(!1)?(T(),F(w(g(!1)),{key:3})):(T(),F(g(As),{key:4}))]),_:1},8,[`onResolve`]))}},Fs;{let e;Fs=async function(){if(e)return e;let t=!!(window.__NUXT__?.serverRendered??document.getElementById(`__NUXT_DATA__`)?.dataset.ssr===`true`),i=t?Se(Ps):xe(Ps),a=u({vueApp:i});async function o(e){await a.callHook(`app:error`,e),a.payload.error||=V(e)}o.__nuxt_default=!0,i.config.errorHandler=o,a.hook(`app:suspense:resolve`,()=>{i.config.errorHandler===o&&(i.config.errorHandler=void 0)}),!t&&n.id&&a.hook(`app:suspense:resolve`,()=>{document.getElementById(n.id)?.remove()});try{await m(a,Ko)}catch(e){o(e)}try{await a.hooks.callHook(`app:created`,i),await a.hooks.callHook(`app:beforeMount`,i),i.mount(r),await a.hooks.callHook(`app:mounted`,i),await ee()}catch(e){o(e)}return i},e=Fs().catch(e=>{throw l.NUXT_E1009({cause:e}),e})}export{Jo as a,br as c,rs as i,Gn as l,Ts as n,Ro as o,hs as r,yr as s,Es as t};
@@ -1 +1 @@
1
- import{E as e,R as t,c as n,q as r,y as i}from"./DNfpyBVU.js";var a=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var o=e=>e!==void 0;a&&window.document,a&&window.navigator,a&&window.location;function s(e){return JSON.parse(JSON.stringify(e))}function c(a,c,l,u={}){var d,f;let{clone:p=!1,passive:m=!1,eventName:h,deep:g=!1,defaultValue:_,shouldEmit:v}=u,y=i(),b=l||y?.emit||(y==null||(d=y.$emit)==null?void 0:d.bind(y))||(y==null||(f=y.proxy)==null||(f=f.$emit)==null?void 0:f.bind(y?.proxy)),x=h;c||=`modelValue`,x||=`update:${c.toString()}`;let S=e=>p?typeof p==`function`?p(e):s(e):e,C=()=>o(a[c])?S(a[c]):_,w=e=>{v?v(e)&&b(x,e):b(x,e)};if(m){let n=r(C()),i=!1;return t(()=>a[c],t=>{i||(i=!0,n.value=S(t),e(()=>i=!1))}),t(n,e=>{!i&&(e!==a[c]||g)&&w(e)},{deep:g}),n}else return n({get(){return C()},set(e){w(e)}})}export{c as t};
1
+ import{E as e,R as t,c as n,q as r,y as i}from"./EZ4-8Xzm.js";var a=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var o=e=>e!==void 0;a&&window.document,a&&window.navigator,a&&window.location;function s(e){return JSON.parse(JSON.stringify(e))}function c(a,c,l,u={}){var d,f;let{clone:p=!1,passive:m=!1,eventName:h,deep:g=!1,defaultValue:_,shouldEmit:v}=u,y=i(),b=l||y?.emit||(y==null||(d=y.$emit)==null?void 0:d.bind(y))||(y==null||(f=y.proxy)==null||(f=f.$emit)==null?void 0:f.bind(y?.proxy)),x=h;c||=`modelValue`,x||=`update:${c.toString()}`;let S=e=>p?typeof p==`function`?p(e):s(e):e,C=()=>o(a[c])?S(a[c]):_,w=e=>{v?v(e)&&b(x,e):b(x,e)};if(m){let n=r(C()),i=!1;return t(()=>a[c],t=>{i||(i=!0,n.value=S(t),e(()=>i=!1))}),t(n,e=>{!i&&(e!==a[c]||g)&&w(e)},{deep:g}),n}return n({get(){return C()},set(e){w(e)}})}export{c as t};
@@ -0,0 +1 @@
1
+ import{$ as e,B as t,G as n,M as r,P as i,V as a,_t as o,c as s,f as c,g as l,ht as u,i as d,l as f,q as p,u as m,v as h}from"./EZ4-8Xzm.js";import{i as g}from"./vZZlEX5A.js";import{i as _,n as v}from"#entry";import{t as y}from"./CKakiU_h.js";var b={class:`n-select-tabs flex flex-inline flex-wrap items-center border n-border-base rounded n-bg-base`},x=[`disabled`,`title`],S=[`disabled`,`value`,`title`],C={__name:`NSelectTabs`,props:{modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:!1},options:{type:Array,required:!0}},emits:[],setup(t,{emit:s}){let l=y(t,`modelValue`,s,{passive:!0});return(s,p)=>(r(),c(`fieldset`,b,[(r(!0),c(d,null,i(t.options,(i,s)=>(r(),c(`label`,{key:i.label,disabled:t.disabled,class:u([`relative n-border-base px-0.5em py-0.1em hover:n-bg-active`,[s?`border-l n-border-base ml--1px`:``,i.value===e(l)?`n-bg-active`:``]]),title:i.label},[f(`div`,{class:u([i.value===e(l)?``:`op35`])},o(i.label),3),a(f(`input`,{"onUpdate:modelValue":p[0]||=e=>n(l)?l.value=e:null,type:`radio`,disabled:t.disabled,value:i.value,title:i.label,class:`absolute inset-0 op-0.1`},null,8,S),[[g,e(l)]])],10,x))),128))]))}},w={class:`flex flex-col gap-3 h-full`},T={key:1,class:`font-mono text-xs flex flex-col gap-1 of-auto`},E={class:`op40 shrink-0`},D={class:`uppercase op50 shrink-0 w-14`},O={class:`break-all`},k=h({__name:`logs`,setup(a){let h=v(),g=p(`all`),y=s(()=>g.value===`all`?h.logs:h.logs.filter(e=>e.level===g.value)),b={verbose:`op40`,log:``,warn:`text-orange`,error:`text-red`};return(a,s)=>{let p=C,v=_;return r(),c(`div`,w,[l(p,{modelValue:e(g),"onUpdate:modelValue":s[0]||=e=>n(g)?g.value=e:null,n:`xs`,options:[{label:`All (${e(h).logs.length})`,value:`all`},{label:`Verbose`,value:`verbose`},{label:`Log`,value:`log`},{label:`Warn`,value:`warn`},{label:`Error`,value:`error`}]},null,8,[`modelValue`,`options`]),e(y).length?(r(),c(`div`,T,[(r(!0),c(d,null,i(e(y),(e,t)=>(r(),c(`div`,{key:t,class:u([`flex gap-2`,b[e.level]])},[f(`span`,E,o(new Date(e.timestamp).toLocaleTimeString()),1),f(`span`,D,o(e.level),1),f(`span`,O,o(e.args.join(` `)),1)],2))),128))])):(r(),m(v,{key:0},{default:t(()=>[...s[1]||=[f(`span`,{class:`op50`},`No client log output yet.`,-1)]]),_:1}))])}}});export{k as default};