From 42393ce6fcdc0a5406ea3fc6d98c78e21a7fa91a Mon Sep 17 00:00:00 2001 From: oiov Date: Thu, 12 Feb 2026 16:40:39 +0800 Subject: [PATCH] upd --- ...49e9f773444d4342cadf24bd778d19e475a.sqlite | Bin 0 -> 4096 bytes .../middleware-insertion-facade.js | 0 .../middleware-loader.entry.ts | 6 +- .../strip-cf-connecting-ip-header.js | 0 .../middleware-insertion-facade.js | 11 ++ .../bundle-MJIuJQ/middleware-loader.entry.ts | 134 +++++++++++++++ .../strip-cf-connecting-ip-header.js | 13 ++ .../middleware-insertion-facade.js | 11 ++ .../bundle-SY4zl5/middleware-loader.entry.ts | 134 +++++++++++++++ .../strip-cf-connecting-ip-header.js | 13 ++ .../middleware-insertion-facade.js | 11 ++ .../bundle-nk20cv/middleware-loader.entry.ts | 134 +++++++++++++++ .../strip-cf-connecting-ip-header.js | 13 ++ .../tmp/{dev-LPc0CX => dev-PnrrLK}/index.js | 30 ++-- .../{dev-LPc0CX => dev-PnrrLK}/index.js.map | 10 +- .../build/client/assets/main-C1FJcYwI.css | 1 + .../{main-BVoEAjX-.js => main-Csk5C9VY.js} | 94 +++++------ .../build/client/assets/main-D8baTJqc.css | 1 - frontend/build/client/index.html | 4 +- frontend/build/client/locales/de/common.json | 71 +++++++- frontend/build/client/locales/en/common.json | 7 +- frontend/build/client/locales/fr/common.json | 63 +++++++- frontend/build/client/locales/hi/common.json | 101 +++++++++--- frontend/build/client/locales/it/common.json | 61 ++++++- frontend/build/client/locales/ko/common.json | 59 ++++++- frontend/build/client/locales/pt/common.json | 59 ++++++- frontend/build/client/locales/ru/common.json | 63 +++++++- frontend/build/client/locales/tr/common.json | 153 ++++++++++++------ .../build/client/locales/zh-TW/common.json | 64 +++++++- frontend/build/client/locales/zh/common.json | 7 +- frontend/public/locales/en/common.json | 7 +- frontend/public/locales/ja/common.json | 7 +- frontend/public/locales/zh/common.json | 7 +- frontend/src/components/MailList.tsx | 12 +- frontend/src/components/SiteStats.tsx | 112 +++++++++++++ frontend/src/services/api.ts | 17 ++ worker/drizzle/0002_add_site_stats.sql | 13 ++ worker/src/api/v1/middleware/apiKeyAuth.ts | 7 +- worker/src/api/v1/routes/mailboxes.ts | 3 + worker/src/database/dao.ts | 122 +++++++++++++- worker/src/database/schema.ts | 14 +- worker/src/index.ts | 26 ++- 42 files changed, 1483 insertions(+), 192 deletions(-) create mode 100644 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/568fdeabe61bc5b723e07537cb6c049e9f773444d4342cadf24bd778d19e475a.sqlite rename .wrangler/tmp/{bundle-5rCH3B => bundle-Gs6nOV}/middleware-insertion-facade.js (100%) rename .wrangler/tmp/{bundle-5rCH3B => bundle-Gs6nOV}/middleware-loader.entry.ts (95%) rename .wrangler/tmp/{bundle-5rCH3B => bundle-Gs6nOV}/strip-cf-connecting-ip-header.js (100%) create mode 100644 .wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js create mode 100644 .wrangler/tmp/bundle-MJIuJQ/middleware-loader.entry.ts create mode 100644 .wrangler/tmp/bundle-MJIuJQ/strip-cf-connecting-ip-header.js create mode 100644 .wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js create mode 100644 .wrangler/tmp/bundle-SY4zl5/middleware-loader.entry.ts create mode 100644 .wrangler/tmp/bundle-SY4zl5/strip-cf-connecting-ip-header.js create mode 100644 .wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js create mode 100644 .wrangler/tmp/bundle-nk20cv/middleware-loader.entry.ts create mode 100644 .wrangler/tmp/bundle-nk20cv/strip-cf-connecting-ip-header.js rename .wrangler/tmp/{dev-LPc0CX => dev-PnrrLK}/index.js (57%) rename .wrangler/tmp/{dev-LPc0CX => dev-PnrrLK}/index.js.map (74%) create mode 100644 frontend/build/client/assets/main-C1FJcYwI.css rename frontend/build/client/assets/{main-BVoEAjX-.js => main-Csk5C9VY.js} (51%) delete mode 100644 frontend/build/client/assets/main-D8baTJqc.css create mode 100644 frontend/src/components/SiteStats.tsx create mode 100644 worker/drizzle/0002_add_site_stats.sql diff --git a/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/568fdeabe61bc5b723e07537cb6c049e9f773444d4342cadf24bd778d19e475a.sqlite b/.wrangler/state/v3/d1/miniflare-D1DatabaseObject/568fdeabe61bc5b723e07537cb6c049e9f773444d4342cadf24bd778d19e475a.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..0b58f0dca7d6ce95907cb0b322dc4802f04688c0 GIT binary patch literal 4096 zcmWFz^vNtqRY=P(%1ta$FlG>7U}9o$P*7lCU|@t|AVoG{WYDXN;00+HAlr;ljiVtj n8UmvsFd71*Aut*OqaiRF0;3@?8UmvsFd71*Aut*O6ovo**AfQj literal 0 HcmV?d00001 diff --git a/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js b/.wrangler/tmp/bundle-Gs6nOV/middleware-insertion-facade.js similarity index 100% rename from .wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js rename to .wrangler/tmp/bundle-Gs6nOV/middleware-insertion-facade.js diff --git a/.wrangler/tmp/bundle-5rCH3B/middleware-loader.entry.ts b/.wrangler/tmp/bundle-Gs6nOV/middleware-loader.entry.ts similarity index 95% rename from .wrangler/tmp/bundle-5rCH3B/middleware-loader.entry.ts rename to .wrangler/tmp/bundle-Gs6nOV/middleware-loader.entry.ts index 9cf005f..4a8dcbb 100644 --- a/.wrangler/tmp/bundle-5rCH3B/middleware-loader.entry.ts +++ b/.wrangler/tmp/bundle-Gs6nOV/middleware-loader.entry.ts @@ -3,12 +3,12 @@ // export dynamically through wrangler, or we can potentially let users directly // add them as a sort of "plugin" system. -import ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js"; +import ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-Gs6nOV/middleware-insertion-facade.js"; import { __facade_invoke__, __facade_register__, Dispatcher } from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts"; -import type { WorkerEntrypointConstructor } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js"; +import type { WorkerEntrypointConstructor } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-Gs6nOV/middleware-insertion-facade.js"; // Preserve all the exports from the worker -export * from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js"; +export * from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-Gs6nOV/middleware-insertion-facade.js"; class __Facade_ScheduledController__ implements ScheduledController { readonly #noRetry: ScheduledController["noRetry"]; diff --git a/.wrangler/tmp/bundle-5rCH3B/strip-cf-connecting-ip-header.js b/.wrangler/tmp/bundle-Gs6nOV/strip-cf-connecting-ip-header.js similarity index 100% rename from .wrangler/tmp/bundle-5rCH3B/strip-cf-connecting-ip-header.js rename to .wrangler/tmp/bundle-Gs6nOV/strip-cf-connecting-ip-header.js diff --git a/.wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js b/.wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js new file mode 100644 index 0000000..f254059 --- /dev/null +++ b/.wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js @@ -0,0 +1,11 @@ + import worker, * as OTHER_EXPORTS from "/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts"; + import * as __MIDDLEWARE_0__ from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts"; +import * as __MIDDLEWARE_1__ from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts"; + + export * from "/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts"; + + export const __INTERNAL_WRANGLER_MIDDLEWARE__ = [ + + __MIDDLEWARE_0__.default,__MIDDLEWARE_1__.default + ] + export default worker; \ No newline at end of file diff --git a/.wrangler/tmp/bundle-MJIuJQ/middleware-loader.entry.ts b/.wrangler/tmp/bundle-MJIuJQ/middleware-loader.entry.ts new file mode 100644 index 0000000..289123b --- /dev/null +++ b/.wrangler/tmp/bundle-MJIuJQ/middleware-loader.entry.ts @@ -0,0 +1,134 @@ +// This loads all middlewares exposed on the middleware object and then starts +// the invocation chain. The big idea is that we can add these to the middleware +// export dynamically through wrangler, or we can potentially let users directly +// add them as a sort of "plugin" system. + +import ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js"; +import { __facade_invoke__, __facade_register__, Dispatcher } from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts"; +import type { WorkerEntrypointConstructor } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js"; + +// Preserve all the exports from the worker +export * from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-MJIuJQ/middleware-insertion-facade.js"; + +class __Facade_ScheduledController__ implements ScheduledController { + readonly #noRetry: ScheduledController["noRetry"]; + + constructor( + readonly scheduledTime: number, + readonly cron: string, + noRetry: ScheduledController["noRetry"] + ) { + this.#noRetry = noRetry; + } + + noRetry() { + if (!(this instanceof __Facade_ScheduledController__)) { + throw new TypeError("Illegal invocation"); + } + // Need to call native method immediately in case uncaught error thrown + this.#noRetry(); + } +} + +function wrapExportedHandler(worker: ExportedHandler): ExportedHandler { + // If we don't have any middleware defined, just return the handler as is + if ( + __INTERNAL_WRANGLER_MIDDLEWARE__ === undefined || + __INTERNAL_WRANGLER_MIDDLEWARE__.length === 0 + ) { + return worker; + } + // Otherwise, register all middleware once + for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) { + __facade_register__(middleware); + } + + const fetchDispatcher: ExportedHandlerFetchHandler = function ( + request, + env, + ctx + ) { + if (worker.fetch === undefined) { + throw new Error("Handler does not export a fetch() function."); + } + return worker.fetch(request, env, ctx); + }; + + return { + ...worker, + fetch(request, env, ctx) { + const dispatcher: Dispatcher = function (type, init) { + if (type === "scheduled" && worker.scheduled !== undefined) { + const controller = new __Facade_ScheduledController__( + Date.now(), + init.cron ?? "", + () => {} + ); + return worker.scheduled(controller, env, ctx); + } + }; + return __facade_invoke__(request, env, ctx, dispatcher, fetchDispatcher); + }, + }; +} + +function wrapWorkerEntrypoint( + klass: WorkerEntrypointConstructor +): WorkerEntrypointConstructor { + // If we don't have any middleware defined, just return the handler as is + if ( + __INTERNAL_WRANGLER_MIDDLEWARE__ === undefined || + __INTERNAL_WRANGLER_MIDDLEWARE__.length === 0 + ) { + return klass; + } + // Otherwise, register all middleware once + for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) { + __facade_register__(middleware); + } + + // `extend`ing `klass` here so other RPC methods remain callable + return class extends klass { + #fetchDispatcher: ExportedHandlerFetchHandler> = ( + request, + env, + ctx + ) => { + this.env = env; + this.ctx = ctx; + if (super.fetch === undefined) { + throw new Error("Entrypoint class does not define a fetch() function."); + } + return super.fetch(request); + }; + + #dispatcher: Dispatcher = (type, init) => { + if (type === "scheduled" && super.scheduled !== undefined) { + const controller = new __Facade_ScheduledController__( + Date.now(), + init.cron ?? "", + () => {} + ); + return super.scheduled(controller); + } + }; + + fetch(request: Request) { + return __facade_invoke__( + request, + this.env, + this.ctx, + this.#dispatcher, + this.#fetchDispatcher + ); + } + }; +} + +let WRAPPED_ENTRY: ExportedHandler | WorkerEntrypointConstructor | undefined; +if (typeof ENTRY === "object") { + WRAPPED_ENTRY = wrapExportedHandler(ENTRY); +} else if (typeof ENTRY === "function") { + WRAPPED_ENTRY = wrapWorkerEntrypoint(ENTRY); +} +export default WRAPPED_ENTRY; diff --git a/.wrangler/tmp/bundle-MJIuJQ/strip-cf-connecting-ip-header.js b/.wrangler/tmp/bundle-MJIuJQ/strip-cf-connecting-ip-header.js new file mode 100644 index 0000000..a011710 --- /dev/null +++ b/.wrangler/tmp/bundle-MJIuJQ/strip-cf-connecting-ip-header.js @@ -0,0 +1,13 @@ +function stripCfConnectingIPHeader(input, init) { + const request = new Request(input, init); + request.headers.delete("CF-Connecting-IP"); + return request; +} + +globalThis.fetch = new Proxy(globalThis.fetch, { + apply(target, thisArg, argArray) { + return Reflect.apply(target, thisArg, [ + stripCfConnectingIPHeader.apply(null, argArray), + ]); + }, +}); diff --git a/.wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js b/.wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js new file mode 100644 index 0000000..f254059 --- /dev/null +++ b/.wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js @@ -0,0 +1,11 @@ + import worker, * as OTHER_EXPORTS from "/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts"; + import * as __MIDDLEWARE_0__ from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts"; +import * as __MIDDLEWARE_1__ from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts"; + + export * from "/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts"; + + export const __INTERNAL_WRANGLER_MIDDLEWARE__ = [ + + __MIDDLEWARE_0__.default,__MIDDLEWARE_1__.default + ] + export default worker; \ No newline at end of file diff --git a/.wrangler/tmp/bundle-SY4zl5/middleware-loader.entry.ts b/.wrangler/tmp/bundle-SY4zl5/middleware-loader.entry.ts new file mode 100644 index 0000000..fa97c88 --- /dev/null +++ b/.wrangler/tmp/bundle-SY4zl5/middleware-loader.entry.ts @@ -0,0 +1,134 @@ +// This loads all middlewares exposed on the middleware object and then starts +// the invocation chain. The big idea is that we can add these to the middleware +// export dynamically through wrangler, or we can potentially let users directly +// add them as a sort of "plugin" system. + +import ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js"; +import { __facade_invoke__, __facade_register__, Dispatcher } from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts"; +import type { WorkerEntrypointConstructor } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js"; + +// Preserve all the exports from the worker +export * from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-SY4zl5/middleware-insertion-facade.js"; + +class __Facade_ScheduledController__ implements ScheduledController { + readonly #noRetry: ScheduledController["noRetry"]; + + constructor( + readonly scheduledTime: number, + readonly cron: string, + noRetry: ScheduledController["noRetry"] + ) { + this.#noRetry = noRetry; + } + + noRetry() { + if (!(this instanceof __Facade_ScheduledController__)) { + throw new TypeError("Illegal invocation"); + } + // Need to call native method immediately in case uncaught error thrown + this.#noRetry(); + } +} + +function wrapExportedHandler(worker: ExportedHandler): ExportedHandler { + // If we don't have any middleware defined, just return the handler as is + if ( + __INTERNAL_WRANGLER_MIDDLEWARE__ === undefined || + __INTERNAL_WRANGLER_MIDDLEWARE__.length === 0 + ) { + return worker; + } + // Otherwise, register all middleware once + for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) { + __facade_register__(middleware); + } + + const fetchDispatcher: ExportedHandlerFetchHandler = function ( + request, + env, + ctx + ) { + if (worker.fetch === undefined) { + throw new Error("Handler does not export a fetch() function."); + } + return worker.fetch(request, env, ctx); + }; + + return { + ...worker, + fetch(request, env, ctx) { + const dispatcher: Dispatcher = function (type, init) { + if (type === "scheduled" && worker.scheduled !== undefined) { + const controller = new __Facade_ScheduledController__( + Date.now(), + init.cron ?? "", + () => {} + ); + return worker.scheduled(controller, env, ctx); + } + }; + return __facade_invoke__(request, env, ctx, dispatcher, fetchDispatcher); + }, + }; +} + +function wrapWorkerEntrypoint( + klass: WorkerEntrypointConstructor +): WorkerEntrypointConstructor { + // If we don't have any middleware defined, just return the handler as is + if ( + __INTERNAL_WRANGLER_MIDDLEWARE__ === undefined || + __INTERNAL_WRANGLER_MIDDLEWARE__.length === 0 + ) { + return klass; + } + // Otherwise, register all middleware once + for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) { + __facade_register__(middleware); + } + + // `extend`ing `klass` here so other RPC methods remain callable + return class extends klass { + #fetchDispatcher: ExportedHandlerFetchHandler> = ( + request, + env, + ctx + ) => { + this.env = env; + this.ctx = ctx; + if (super.fetch === undefined) { + throw new Error("Entrypoint class does not define a fetch() function."); + } + return super.fetch(request); + }; + + #dispatcher: Dispatcher = (type, init) => { + if (type === "scheduled" && super.scheduled !== undefined) { + const controller = new __Facade_ScheduledController__( + Date.now(), + init.cron ?? "", + () => {} + ); + return super.scheduled(controller); + } + }; + + fetch(request: Request) { + return __facade_invoke__( + request, + this.env, + this.ctx, + this.#dispatcher, + this.#fetchDispatcher + ); + } + }; +} + +let WRAPPED_ENTRY: ExportedHandler | WorkerEntrypointConstructor | undefined; +if (typeof ENTRY === "object") { + WRAPPED_ENTRY = wrapExportedHandler(ENTRY); +} else if (typeof ENTRY === "function") { + WRAPPED_ENTRY = wrapWorkerEntrypoint(ENTRY); +} +export default WRAPPED_ENTRY; diff --git a/.wrangler/tmp/bundle-SY4zl5/strip-cf-connecting-ip-header.js b/.wrangler/tmp/bundle-SY4zl5/strip-cf-connecting-ip-header.js new file mode 100644 index 0000000..a011710 --- /dev/null +++ b/.wrangler/tmp/bundle-SY4zl5/strip-cf-connecting-ip-header.js @@ -0,0 +1,13 @@ +function stripCfConnectingIPHeader(input, init) { + const request = new Request(input, init); + request.headers.delete("CF-Connecting-IP"); + return request; +} + +globalThis.fetch = new Proxy(globalThis.fetch, { + apply(target, thisArg, argArray) { + return Reflect.apply(target, thisArg, [ + stripCfConnectingIPHeader.apply(null, argArray), + ]); + }, +}); diff --git a/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js b/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js new file mode 100644 index 0000000..f254059 --- /dev/null +++ b/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js @@ -0,0 +1,11 @@ + import worker, * as OTHER_EXPORTS from "/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts"; + import * as __MIDDLEWARE_0__ from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts"; +import * as __MIDDLEWARE_1__ from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts"; + + export * from "/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts"; + + export const __INTERNAL_WRANGLER_MIDDLEWARE__ = [ + + __MIDDLEWARE_0__.default,__MIDDLEWARE_1__.default + ] + export default worker; \ No newline at end of file diff --git a/.wrangler/tmp/bundle-nk20cv/middleware-loader.entry.ts b/.wrangler/tmp/bundle-nk20cv/middleware-loader.entry.ts new file mode 100644 index 0000000..fbb0a6f --- /dev/null +++ b/.wrangler/tmp/bundle-nk20cv/middleware-loader.entry.ts @@ -0,0 +1,134 @@ +// This loads all middlewares exposed on the middleware object and then starts +// the invocation chain. The big idea is that we can add these to the middleware +// export dynamically through wrangler, or we can potentially let users directly +// add them as a sort of "plugin" system. + +import ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js"; +import { __facade_invoke__, __facade_register__, Dispatcher } from "/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts"; +import type { WorkerEntrypointConstructor } from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js"; + +// Preserve all the exports from the worker +export * from "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js"; + +class __Facade_ScheduledController__ implements ScheduledController { + readonly #noRetry: ScheduledController["noRetry"]; + + constructor( + readonly scheduledTime: number, + readonly cron: string, + noRetry: ScheduledController["noRetry"] + ) { + this.#noRetry = noRetry; + } + + noRetry() { + if (!(this instanceof __Facade_ScheduledController__)) { + throw new TypeError("Illegal invocation"); + } + // Need to call native method immediately in case uncaught error thrown + this.#noRetry(); + } +} + +function wrapExportedHandler(worker: ExportedHandler): ExportedHandler { + // If we don't have any middleware defined, just return the handler as is + if ( + __INTERNAL_WRANGLER_MIDDLEWARE__ === undefined || + __INTERNAL_WRANGLER_MIDDLEWARE__.length === 0 + ) { + return worker; + } + // Otherwise, register all middleware once + for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) { + __facade_register__(middleware); + } + + const fetchDispatcher: ExportedHandlerFetchHandler = function ( + request, + env, + ctx + ) { + if (worker.fetch === undefined) { + throw new Error("Handler does not export a fetch() function."); + } + return worker.fetch(request, env, ctx); + }; + + return { + ...worker, + fetch(request, env, ctx) { + const dispatcher: Dispatcher = function (type, init) { + if (type === "scheduled" && worker.scheduled !== undefined) { + const controller = new __Facade_ScheduledController__( + Date.now(), + init.cron ?? "", + () => {} + ); + return worker.scheduled(controller, env, ctx); + } + }; + return __facade_invoke__(request, env, ctx, dispatcher, fetchDispatcher); + }, + }; +} + +function wrapWorkerEntrypoint( + klass: WorkerEntrypointConstructor +): WorkerEntrypointConstructor { + // If we don't have any middleware defined, just return the handler as is + if ( + __INTERNAL_WRANGLER_MIDDLEWARE__ === undefined || + __INTERNAL_WRANGLER_MIDDLEWARE__.length === 0 + ) { + return klass; + } + // Otherwise, register all middleware once + for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) { + __facade_register__(middleware); + } + + // `extend`ing `klass` here so other RPC methods remain callable + return class extends klass { + #fetchDispatcher: ExportedHandlerFetchHandler> = ( + request, + env, + ctx + ) => { + this.env = env; + this.ctx = ctx; + if (super.fetch === undefined) { + throw new Error("Entrypoint class does not define a fetch() function."); + } + return super.fetch(request); + }; + + #dispatcher: Dispatcher = (type, init) => { + if (type === "scheduled" && super.scheduled !== undefined) { + const controller = new __Facade_ScheduledController__( + Date.now(), + init.cron ?? "", + () => {} + ); + return super.scheduled(controller); + } + }; + + fetch(request: Request) { + return __facade_invoke__( + request, + this.env, + this.ctx, + this.#dispatcher, + this.#fetchDispatcher + ); + } + }; +} + +let WRAPPED_ENTRY: ExportedHandler | WorkerEntrypointConstructor | undefined; +if (typeof ENTRY === "object") { + WRAPPED_ENTRY = wrapExportedHandler(ENTRY); +} else if (typeof ENTRY === "function") { + WRAPPED_ENTRY = wrapWorkerEntrypoint(ENTRY); +} +export default WRAPPED_ENTRY; diff --git a/.wrangler/tmp/bundle-nk20cv/strip-cf-connecting-ip-header.js b/.wrangler/tmp/bundle-nk20cv/strip-cf-connecting-ip-header.js new file mode 100644 index 0000000..a011710 --- /dev/null +++ b/.wrangler/tmp/bundle-nk20cv/strip-cf-connecting-ip-header.js @@ -0,0 +1,13 @@ +function stripCfConnectingIPHeader(input, init) { + const request = new Request(input, init); + request.headers.delete("CF-Connecting-IP"); + return request; +} + +globalThis.fetch = new Proxy(globalThis.fetch, { + apply(target, thisArg, argArray) { + return Reflect.apply(target, thisArg, [ + stripCfConnectingIPHeader.apply(null, argArray), + ]); + }, +}); diff --git a/.wrangler/tmp/dev-LPc0CX/index.js b/.wrangler/tmp/dev-PnrrLK/index.js similarity index 57% rename from .wrangler/tmp/dev-LPc0CX/index.js rename to .wrangler/tmp/dev-PnrrLK/index.js index 411bac6..a9efe28 100644 --- a/.wrangler/tmp/dev-LPc0CX/index.js +++ b/.wrangler/tmp/dev-PnrrLK/index.js @@ -1,21 +1,21 @@ -var Rn=Object.defineProperty;var eu=(r,e,t)=>e in r?Rn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var o=(r,e)=>Rn(r,"name",{value:e,configurable:!0});var tu=(r,e)=>{for(var t in e)Rn(r,t,{get:e[t],enumerable:!0})};var h=(r,e,t)=>(eu(r,typeof e!="symbol"?e+"":e,t),t);function ru(r,e){let t=new Request(r,e);return t.headers.delete("CF-Connecting-IP"),t}o(ru,"stripCfConnectingIPHeader");globalThis.fetch=new Proxy(globalThis.fetch,{apply(r,e,t){return Reflect.apply(r,e,[ru.apply(null,t)])}});function L(r){return new Error(`[unenv] ${r} is not implemented yet!`)}o(L,"createNotImplementedError");function Ue(r){return Object.assign(o(()=>{throw L(r)},"fn"),{__unenv__:!0})}o(Ue,"notImplemented");function qi(r){return class{__unenv__=!0;constructor(){throw new Error(`[unenv] ${r} is not implemented yet!`)}}}o(qi,"notImplementedClass");var On=globalThis.performance?.timeOrigin??Date.now(),Bn=globalThis.performance?.now?globalThis.performance.now.bind(globalThis.performance):()=>Date.now()-On,su={name:"node",entryType:"node",startTime:0,duration:0,nodeStart:0,v8Start:0,bootstrapComplete:0,environment:0,loopStart:0,loopExit:0,idleTime:0,uvMetricsInfo:{loopCount:0,events:0,eventsWaiting:0},detail:void 0,toJSON(){return this}},rt=class{__unenv__=!0;detail;entryType="event";name;startTime;constructor(e,t){this.name=e,this.startTime=t?.startTime||Bn(),this.detail=t?.detail}get duration(){return Bn()-this.startTime}toJSON(){return{name:this.name,entryType:this.entryType,startTime:this.startTime,duration:this.duration,detail:this.detail}}};o(rt,"PerformanceEntry");var qn=o(class extends rt{entryType="mark";constructor(){super(...arguments)}get duration(){return 0}},"PerformanceMark"),ar=class extends rt{entryType="measure"};o(ar,"PerformanceMeasure");var or=class extends rt{entryType="resource";serverTiming=[];connectEnd=0;connectStart=0;decodedBodySize=0;domainLookupEnd=0;domainLookupStart=0;encodedBodySize=0;fetchStart=0;initiatorType="";name="";nextHopProtocol="";redirectEnd=0;redirectStart=0;requestStart=0;responseEnd=0;responseStart=0;secureConnectionStart=0;startTime=0;transferSize=0;workerStart=0;responseStatus=0};o(or,"PerformanceResourceTiming");var Kr=class{__unenv__=!0;getEntries(){return[]}getEntriesByName(e,t){return[]}getEntriesByType(e){return[]}};o(Kr,"PerformanceObserverEntryList");var ur=class{__unenv__=!0;timeOrigin=On;eventCounts=new Map;_entries=[];_resourceTimingBufferSize=0;navigation=void 0;timing=void 0;timerify(e,t){throw L("Performance.timerify")}get nodeTiming(){return su}eventLoopUtilization(){return{}}markResourceTiming(){return new or("")}onresourcetimingbufferfull=null;now(){return this.timeOrigin===On?Bn():Date.now()-this.timeOrigin}clearMarks(e){this._entries=e?this._entries.filter(t=>t.name!==e):this._entries.filter(t=>t.entryType!=="mark")}clearMeasures(e){this._entries=e?this._entries.filter(t=>t.name!==e):this._entries.filter(t=>t.entryType!=="measure")}clearResourceTimings(){this._entries=this._entries.filter(e=>e.entryType!=="resource"||e.entryType!=="navigation")}getEntries(){return this._entries}getEntriesByName(e,t){return this._entries.filter(s=>s.name===e&&(!t||s.entryType===t))}getEntriesByType(e){return this._entries.filter(t=>t.entryType===e)}mark(e,t){let s=new qn(e,t);return this._entries.push(s),s}measure(e,t,s){let n,i;typeof t=="string"?(n=this.getEntriesByName(t,"mark")[0]?.startTime,i=this.getEntriesByName(s,"mark")[0]?.startTime):(n=Number.parseFloat(t?.start)||this.now(),i=Number.parseFloat(t?.end)||this.now());let a=new ar(e,{startTime:n,detail:{start:n,end:i}});return this._entries.push(a),a}setResourceTimingBufferSize(e){this._resourceTimingBufferSize=e}addEventListener(e,t,s){throw L("Performance.addEventListener")}removeEventListener(e,t,s){throw L("Performance.removeEventListener")}dispatchEvent(e){throw L("Performance.dispatchEvent")}toJSON(){return this}};o(ur,"Performance");var ir=class{__unenv__=!0;_callback=null;constructor(e){this._callback=e}takeRecords(){return[]}disconnect(){throw L("PerformanceObserver.disconnect")}observe(e){throw L("PerformanceObserver.observe")}bind(e){return e}runInAsyncScope(e,t,...s){return e.call(t,...s)}asyncId(){return 0}triggerAsyncId(){return 0}emitDestroy(){return this}};o(ir,"PerformanceObserver"),h(ir,"supportedEntryTypes",[]);var Fi=globalThis.performance&&"addEventListener"in globalThis.performance?globalThis.performance:new ur;globalThis.performance=Fi;globalThis.Performance=ur;globalThis.PerformanceEntry=rt;globalThis.PerformanceMark=qn;globalThis.PerformanceMeasure=ar;globalThis.PerformanceObserver=ir;globalThis.PerformanceObserverEntryList=Kr;globalThis.PerformanceResourceTiming=or;import{Writable as ji}from"node:stream";var te=Object.assign(()=>{},{__unenv__:!0});var Q=globalThis.console,Ii=!0,Mi=new ji,$i=new ji,$s=Q?.log??te,nu=Q?.info??$s,Vp=Q?.trace??nu,Kp=Q?.debug??$s,Hp=Q?.table??$s,iu=Q?.error??$s,Qp=Q?.warn??iu,Gp=Q?.createTask??Ue("console.createTask");var Wp=Q?.clear??te,Jp=Q?.count??te,Yp=Q?.countReset??te,Xp=Q?.dir??te,Zp=Q?.dirxml??te,em=Q?.group??te,tm=Q?.groupEnd??te,rm=Q?.groupCollapsed??te,sm=Q?.profile??te,nm=Q?.profileEnd??te,im=Q?.time??te,am=Q?.timeEnd??te,om=Q?.timeLog??te,um=Q?.timeStamp??te,Li=Q?.Console??qi("console.Console"),Pi=new Map;var zi=te,Ui=te;var Fn=globalThis.console,{assert:gm,clear:ym,context:bm,count:xm,countReset:vm,createTask:wm,debug:Am,dir:Dm,dirxml:_m,error:Em,group:Cm,groupCollapsed:Tm,groupEnd:Sm,info:Nm,log:km,profile:Rm,profileEnd:Om,table:Bm,time:qm,timeEnd:Fm,timeLog:jm,timeStamp:Im,trace:Mm,warn:$m}=Fn;Object.assign(Fn,{Console:Li,_ignoreErrors:Ii,_stderr:Mi,_stderrErrorHandler:Ui,_stdout:$i,_stdoutErrorHandler:zi,_times:Pi});var Vi=Fn;globalThis.console=Vi;var Ki=Object.assign(o(function(e){let t=Date.now(),s=Math.trunc(t/1e3),n=t%1e3*1e6;if(e){let i=s-e[0],a=n-e[0];return a<0&&(i=i-1,a=1e9+a),[i,a]}return[s,n]},"hrtime"),{bigint:o(function(){return BigInt(Date.now()*1e6)},"bigint")});import{EventEmitter as Hi}from"node:events";import{Socket as au}from"node:net";var lr=class extends au{fd;constructor(e){super(),this.fd=e}isRaw=!1;setRawMode(e){return this.isRaw=e,this}isTTY=!1};o(lr,"ReadStream");import{Socket as ou}from"node:net";var _t=class extends ou{fd;constructor(e){super(),this.fd=e}clearLine(e,t){return t&&t(),!1}clearScreenDown(e){return e&&e(),!1}cursorTo(e,t,s){return s&&typeof s=="function"&&s(),!1}moveCursor(e,t,s){return s&&s(),!1}getColorDepth(e){return 1}hasColors(e,t){return!1}getWindowSize(){return[this.columns,this.rows]}columns=80;rows=24;isTTY=!1};o(_t,"WriteStream");var Et=class extends Hi{env;hrtime;nextTick;constructor(e){super(),this.env=e.env,this.hrtime=e.hrtime,this.nextTick=e.nextTick;for(let t of[...Object.getOwnPropertyNames(Et.prototype),...Object.getOwnPropertyNames(Hi.prototype)]){let s=this[t];typeof s=="function"&&(this[t]=s.bind(this))}}emitWarning(e,t,s){console.warn(`${s?`[${s}] `:""}${t?`${t}: `:""}${e}`)}emit(...e){return super.emit(...e)}listeners(e){return super.listeners(e)}#e;#t;#r;get stdin(){return this.#e??=new lr(0)}get stdout(){return this.#t??=new _t(1)}get stderr(){return this.#r??=new _t(2)}#i="/";chdir(e){this.#i=e}cwd(){return this.#i}arch="";platform="";argv=[];argv0="";execArgv=[];execPath="";title="";pid=200;ppid=100;get version(){return""}get versions(){return{}}get allowedNodeEnvironmentFlags(){return new Set}get sourceMapsEnabled(){return!1}get debugPort(){return 0}get throwDeprecation(){return!1}get traceDeprecation(){return!1}get features(){return{}}get release(){return{}}get connected(){return!1}get config(){return{}}get moduleLoadList(){return[]}constrainedMemory(){return 0}availableMemory(){return 0}uptime(){return 0}resourceUsage(){return{}}ref(){}unref(){}umask(){throw L("process.umask")}getBuiltinModule(){}getActiveResourcesInfo(){throw L("process.getActiveResourcesInfo")}exit(){throw L("process.exit")}reallyExit(){throw L("process.reallyExit")}kill(){throw L("process.kill")}abort(){throw L("process.abort")}dlopen(){throw L("process.dlopen")}setSourceMapsEnabled(){throw L("process.setSourceMapsEnabled")}loadEnvFile(){throw L("process.loadEnvFile")}disconnect(){throw L("process.disconnect")}cpuUsage(){throw L("process.cpuUsage")}setUncaughtExceptionCaptureCallback(){throw L("process.setUncaughtExceptionCaptureCallback")}hasUncaughtExceptionCaptureCallback(){throw L("process.hasUncaughtExceptionCaptureCallback")}initgroups(){throw L("process.initgroups")}openStdin(){throw L("process.openStdin")}assert(){throw L("process.assert")}binding(){throw L("process.binding")}permission={has:Ue("process.permission.has")};report={directory:"",filename:"",signal:"SIGUSR2",compact:!1,reportOnFatalError:!1,reportOnSignal:!1,reportOnUncaughtException:!1,getReport:Ue("process.report.getReport"),writeReport:Ue("process.report.writeReport")};finalization={register:Ue("process.finalization.register"),unregister:Ue("process.finalization.unregister"),registerBeforeExit:Ue("process.finalization.registerBeforeExit")};memoryUsage=Object.assign(()=>({arrayBuffers:0,rss:0,external:0,heapTotal:0,heapUsed:0}),{rss:()=>0});mainModule=void 0;domain=void 0;send=void 0;exitCode=void 0;channel=void 0;getegid=void 0;geteuid=void 0;getgid=void 0;getgroups=void 0;getuid=void 0;setegid=void 0;seteuid=void 0;setgid=void 0;setgroups=void 0;setuid=void 0;_events=void 0;_eventsCount=void 0;_exiting=void 0;_maxListeners=void 0;_debugEnd=void 0;_debugProcess=void 0;_fatalException=void 0;_getActiveHandles=void 0;_getActiveRequests=void 0;_kill=void 0;_preload_modules=void 0;_rawDebug=void 0;_startProfilerIdleNotifier=void 0;_stopProfilerIdleNotifier=void 0;_tickCallback=void 0;_disconnect=void 0;_handleQueue=void 0;_pendingMessage=void 0;_channel=void 0;_send=void 0;_linkedBinding=void 0};o(Et,"Process");var Qi=globalThis.process,Gi=Qi.getBuiltinModule,{exit:uu,platform:lu,nextTick:Wi}=Gi("node:process"),cu=new Et({env:Qi.env,hrtime:Ki,nextTick:Wi}),{abort:du,addListener:fu,allowedNodeEnvironmentFlags:hu,hasUncaughtExceptionCaptureCallback:pu,setUncaughtExceptionCaptureCallback:mu,loadEnvFile:gu,sourceMapsEnabled:yu,arch:bu,argv:xu,argv0:vu,chdir:wu,config:Au,connected:Du,constrainedMemory:_u,availableMemory:Eu,cpuUsage:Cu,cwd:Tu,debugPort:Su,dlopen:Nu,disconnect:ku,emit:Ru,emitWarning:Ou,env:Bu,eventNames:qu,execArgv:Fu,execPath:ju,finalization:Iu,features:Mu,getActiveResourcesInfo:$u,getMaxListeners:Lu,hrtime:Pu,kill:zu,listeners:Uu,listenerCount:Vu,memoryUsage:Ku,on:Hu,off:Qu,once:Gu,pid:Wu,ppid:Ju,prependListener:Yu,prependOnceListener:Xu,rawListeners:Zu,release:el,removeAllListeners:tl,removeListener:rl,report:sl,resourceUsage:nl,setMaxListeners:il,setSourceMapsEnabled:al,stderr:ol,stdin:ul,stdout:ll,title:cl,throwDeprecation:dl,traceDeprecation:fl,umask:hl,uptime:pl,version:ml,versions:gl,domain:yl,initgroups:bl,moduleLoadList:xl,reallyExit:vl,openStdin:wl,assert:Al,binding:Dl,send:_l,exitCode:El,channel:Cl,getegid:Tl,geteuid:Sl,getgid:Nl,getgroups:kl,getuid:Rl,setegid:Ol,seteuid:Bl,setgid:ql,setgroups:Fl,setuid:jl,permission:Il,mainModule:Ml,_events:$l,_eventsCount:Ll,_exiting:Pl,_maxListeners:zl,_debugEnd:Ul,_debugProcess:Vl,_fatalException:Kl,_getActiveHandles:Hl,_getActiveRequests:Ql,_kill:Gl,_preload_modules:Wl,_rawDebug:Jl,_startProfilerIdleNotifier:Yl,_stopProfilerIdleNotifier:Xl,_tickCallback:Zl,_disconnect:ec,_handleQueue:tc,_pendingMessage:rc,_channel:sc,_send:nc,_linkedBinding:ic}=cu,ac={abort:du,addListener:fu,allowedNodeEnvironmentFlags:hu,hasUncaughtExceptionCaptureCallback:pu,setUncaughtExceptionCaptureCallback:mu,loadEnvFile:gu,sourceMapsEnabled:yu,arch:bu,argv:xu,argv0:vu,chdir:wu,config:Au,connected:Du,constrainedMemory:_u,availableMemory:Eu,cpuUsage:Cu,cwd:Tu,debugPort:Su,dlopen:Nu,disconnect:ku,emit:Ru,emitWarning:Ou,env:Bu,eventNames:qu,execArgv:Fu,execPath:ju,exit:uu,finalization:Iu,features:Mu,getBuiltinModule:Gi,getActiveResourcesInfo:$u,getMaxListeners:Lu,hrtime:Pu,kill:zu,listeners:Uu,listenerCount:Vu,memoryUsage:Ku,nextTick:Wi,on:Hu,off:Qu,once:Gu,pid:Wu,platform:lu,ppid:Ju,prependListener:Yu,prependOnceListener:Xu,rawListeners:Zu,release:el,removeAllListeners:tl,removeListener:rl,report:sl,resourceUsage:nl,setMaxListeners:il,setSourceMapsEnabled:al,stderr:ol,stdin:ul,stdout:ll,title:cl,throwDeprecation:dl,traceDeprecation:fl,umask:hl,uptime:pl,version:ml,versions:gl,domain:yl,initgroups:bl,moduleLoadList:xl,reallyExit:vl,openStdin:wl,assert:Al,binding:Dl,send:_l,exitCode:El,channel:Cl,getegid:Tl,geteuid:Sl,getgid:Nl,getgroups:kl,getuid:Rl,setegid:Ol,seteuid:Bl,setgid:ql,setgroups:Fl,setuid:jl,permission:Il,mainModule:Ml,_events:$l,_eventsCount:Ll,_exiting:Pl,_maxListeners:zl,_debugEnd:Ul,_debugProcess:Vl,_fatalException:Kl,_getActiveHandles:Hl,_getActiveRequests:Ql,_kill:Gl,_preload_modules:Wl,_rawDebug:Jl,_startProfilerIdleNotifier:Yl,_stopProfilerIdleNotifier:Xl,_tickCallback:Zl,_disconnect:ec,_handleQueue:tc,_pendingMessage:rc,_channel:sc,_send:nc,_linkedBinding:ic},Ji=ac;globalThis.process=Ji;var jn=o((r,e,t)=>(s,n)=>{let i=-1;return a(0);async function a(u){if(u<=i)throw new Error("next() called multiple times");i=u;let l,c=!1,d;if(r[u]?(d=r[u][0][0],s.req.routeIndex=u):d=u===r.length&&n||void 0,d)try{l=await d(s,()=>a(u+1))}catch(m){if(m instanceof Error&&e)s.error=m,l=await e(m,s),c=!0;else throw m}else s.finalized===!1&&t&&(l=await t(s));return l&&(s.finalized===!1||c)&&(s.res=l),s}},"compose");var Yi=Symbol();var Xi=o(async(r,e=Object.create(null))=>{let{all:t=!1,dot:s=!1}=e,i=(r instanceof Ls?r.raw.headers:r.headers).get("Content-Type");return i?.startsWith("multipart/form-data")||i?.startsWith("application/x-www-form-urlencoded")?oc(r,{all:t,dot:s}):{}},"parseBody");async function oc(r,e){let t=await r.formData();return t?uc(t,e):{}}o(oc,"parseFormData");function uc(r,e){let t=Object.create(null);return r.forEach((s,n)=>{e.all||n.endsWith("[]")?lc(t,n,s):t[n]=s}),e.dot&&Object.entries(t).forEach(([s,n])=>{s.includes(".")&&(cc(t,s,n),delete t[s])}),t}o(uc,"convertFormDataToBodyData");var lc=o((r,e,t)=>{r[e]!==void 0?Array.isArray(r[e])?r[e].push(t):r[e]=[r[e],t]:e.endsWith("[]")?r[e]=[t]:r[e]=t},"handleParsingAllValues"),cc=o((r,e,t)=>{let s=r,n=e.split(".");n.forEach((i,a)=>{a===n.length-1?s[i]=t:((!s[i]||typeof s[i]!="object"||Array.isArray(s[i])||s[i]instanceof File)&&(s[i]=Object.create(null)),s=s[i])})},"handleParsingNestedValues");var Mn=o(r=>{let e=r.split("/");return e[0]===""&&e.shift(),e},"splitPath"),Zi=o(r=>{let{groups:e,path:t}=dc(r),s=Mn(t);return fc(s,e)},"splitRoutingPath"),dc=o(r=>{let e=[];return r=r.replace(/\{[^}]+\}/g,(t,s)=>{let n=`@${s}`;return e.push([n,t]),n}),{groups:e,path:r}},"extractGroupsFromPath"),fc=o((r,e)=>{for(let t=e.length-1;t>=0;t--){let[s]=e[t];for(let n=r.length-1;n>=0;n--)if(r[n].includes(s)){r[n]=r[n].replace(s,e[t][1]);break}}return r},"replaceGroupMarks"),Ps={},ea=o((r,e)=>{if(r==="*")return"*";let t=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){let s=`${r}#${e}`;return Ps[s]||(t[2]?Ps[s]=e&&e[0]!==":"&&e[0]!=="*"?[s,t[1],new RegExp(`^${t[2]}(?=/${e})`)]:[r,t[1],new RegExp(`^${t[2]}$`)]:Ps[s]=[r,t[1],!0]),Ps[s]}return null},"getPattern"),zs=o((r,e)=>{try{return e(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,t=>{try{return e(t)}catch{return t}})}},"tryDecode"),hc=o(r=>zs(r,decodeURI),"tryDecodeURI"),$n=o(r=>{let e=r.url,t=e.indexOf("/",e.indexOf(":")+4),s=t;for(;s{let e=$n(r);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},"getPathNoStrict"),Ct=o((r,e,...t)=>(t.length&&(e=Ct(e,...t)),`${r?.[0]==="/"?"":"/"}${r}${e==="/"?"":`${r?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),"mergePath"),Us=o(r=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let e=r.split("/"),t=[],s="";return e.forEach(n=>{if(n!==""&&!/\:/.test(n))s+="/"+n;else if(/\:/.test(n))if(/\?/.test(n)){t.length===0&&s===""?t.push("/"):t.push(s);let i=n.replace("?","");s+="/"+i,t.push(s)}else s+="/"+n}),t.filter((n,i,a)=>a.indexOf(n)===i)},"checkOptionalParameter"),In=o(r=>/[%+]/.test(r)?(r.indexOf("+")!==-1&&(r=r.replace(/\+/g," ")),r.indexOf("%")!==-1?zs(r,Ln):r):r,"_decodeURI"),ra=o((r,e,t)=>{let s;if(!t&&e&&!/[%+]/.test(e)){let a=r.indexOf(`?${e}`,8);for(a===-1&&(a=r.indexOf(`&${e}`,8));a!==-1;){let u=r.charCodeAt(a+e.length+1);if(u===61){let l=a+e.length+2,c=r.indexOf("&",l);return In(r.slice(l,c===-1?void 0:c))}else if(u==38||isNaN(u))return"";a=r.indexOf(`&${e}`,a+1)}if(s=/[%+]/.test(r),!s)return}let n={};s??=/[%+]/.test(r);let i=r.indexOf("?",8);for(;i!==-1;){let a=r.indexOf("&",i+1),u=r.indexOf("=",i);u>a&&a!==-1&&(u=-1);let l=r.slice(i+1,u===-1?a===-1?void 0:a:u);if(s&&(l=In(l)),i=a,l==="")continue;let c;u===-1?c="":(c=r.slice(u+1,a===-1?void 0:a),s&&(c=In(c))),t?(n[l]&&Array.isArray(n[l])||(n[l]=[]),n[l].push(c)):n[l]??=c}return e?n[e]:n},"_getQueryParam"),sa=ra,na=o((r,e)=>ra(r,e,!0),"getQueryParams"),Ln=decodeURIComponent;var ia=o(r=>zs(r,Ln),"tryDecodeURIComponent"),Ls=o(class{raw;#e;#t;routeIndex=0;path;bodyCache={};constructor(r,e="/",t=[[]]){this.raw=r,this.path=e,this.#t=t,this.#e={}}param(r){return r?this.#r(r):this.#i()}#r(r){let e=this.#t[0][this.routeIndex][1][r],t=this.#n(e);return t&&/\%/.test(t)?ia(t):t}#i(){let r={},e=Object.keys(this.#t[0][this.routeIndex][1]);for(let t of e){let s=this.#n(this.#t[0][this.routeIndex][1][t]);s!==void 0&&(r[t]=/\%/.test(s)?ia(s):s)}return r}#n(r){return this.#t[1]?this.#t[1][r]:r}query(r){return sa(this.url,r)}queries(r){return na(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let e={};return this.raw.headers.forEach((t,s)=>{e[s]=t}),e}async parseBody(r){return this.bodyCache.parsedBody??=await Xi(this,r)}#s=r=>{let{bodyCache:e,raw:t}=this,s=e[r];if(s)return s;let n=Object.keys(e)[0];return n?e[n].then(i=>(n==="json"&&(i=JSON.stringify(i)),new Response(i)[r]())):e[r]=t[r]()};json(){return this.#s("text").then(r=>JSON.parse(r))}text(){return this.#s("text")}arrayBuffer(){return this.#s("arrayBuffer")}blob(){return this.#s("blob")}formData(){return this.#s("formData")}addValidatedData(r,e){this.#e[r]=e}valid(r){return this.#e[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[Yi](){return this.#t}get matchedRoutes(){return this.#t[0].map(([[,r]])=>r)}get routePath(){return this.#t[0].map(([[,r]])=>r)[this.routeIndex].path}},"HonoRequest");var aa={Stringify:1,BeforeStream:2,Stream:3},pc=o((r,e)=>{let t=new String(r);return t.isEscaped=!0,t.callbacks=e,t},"raw");var Pn=o(async(r,e,t,s,n)=>{typeof r=="object"&&!(r instanceof String)&&(r instanceof Promise||(r=r.toString()),r instanceof Promise&&(r=await r));let i=r.callbacks;if(!i?.length)return Promise.resolve(r);n?n[0]+=r:n=[r];let a=Promise.all(i.map(u=>u({phase:e,buffer:n,context:s}))).then(u=>Promise.all(u.filter(Boolean).map(l=>Pn(l,e,!1,s,n))).then(()=>n[0]));return t?pc(await a,i):a},"resolveCallback");var mc="text/plain; charset=UTF-8",zn=o((r,e)=>({"Content-Type":r,...e}),"setDefaultContentType"),oa=o(class{#e;#t;env={};#r;finalized=!1;error;#i;#n;#s;#c;#u;#l;#o;#d;#f;constructor(r,e){this.#e=r,e&&(this.#n=e.executionCtx,this.env=e.env,this.#l=e.notFoundHandler,this.#f=e.path,this.#d=e.matchResult)}get req(){return this.#t??=new Ls(this.#e,this.#f,this.#d),this.#t}get event(){if(this.#n&&"respondWith"in this.#n)return this.#n;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#n)return this.#n;throw Error("This context has no ExecutionContext")}get res(){return this.#s||=new Response(null,{headers:this.#o??=new Headers})}set res(r){if(this.#s&&r){r=new Response(r.body,r);for(let[e,t]of this.#s.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let s=this.#s.headers.getSetCookie();r.headers.delete("set-cookie");for(let n of s)r.headers.append("set-cookie",n)}else r.headers.set(e,t)}this.#s=r,this.finalized=!0}render=(...r)=>(this.#u??=e=>this.html(e),this.#u(...r));setLayout=r=>this.#c=r;getLayout=()=>this.#c;setRenderer=r=>{this.#u=r};header=(r,e,t)=>{this.finalized&&(this.#s=new Response(this.#s.body,this.#s));let s=this.#s?this.#s.headers:this.#o??=new Headers;e===void 0?s.delete(r):t?.append?s.append(r,e):s.set(r,e)};status=r=>{this.#i=r};set=(r,e)=>{this.#r??=new Map,this.#r.set(r,e)};get=r=>this.#r?this.#r.get(r):void 0;get var(){return this.#r?Object.fromEntries(this.#r):{}}#a(r,e,t){let s=this.#s?new Headers(this.#s.headers):this.#o??new Headers;if(typeof e=="object"&&"headers"in e){let i=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[a,u]of i)a.toLowerCase()==="set-cookie"?s.append(a,u):s.set(a,u)}if(t)for(let[i,a]of Object.entries(t))if(typeof a=="string")s.set(i,a);else{s.delete(i);for(let u of a)s.append(i,u)}let n=typeof e=="number"?e:e?.status??this.#i;return new Response(r,{status:n,headers:s})}newResponse=(...r)=>this.#a(...r);body=(r,e,t)=>this.#a(r,e,t);text=(r,e,t)=>!this.#o&&!this.#i&&!e&&!t&&!this.finalized?new Response(r):this.#a(r,e,zn(mc,t));json=(r,e,t)=>this.#a(JSON.stringify(r),e,zn("application/json",t));html=(r,e,t)=>{let s=o(n=>this.#a(n,e,zn("text/html; charset=UTF-8",t)),"res");return typeof r=="object"?Pn(r,aa.Stringify,!1,{}).then(s):s(r)};redirect=(r,e)=>{let t=String(r);return this.header("Location",/[^\x00-\xFF]/.test(t)?encodeURI(t):t),this.newResponse(null,e??302)};notFound=()=>(this.#l??=()=>new Response,this.#l(this))},"Context");var V="ALL",ua="all",la=["get","post","put","delete","options","patch"],Vs="Can not add a route since the matcher is already built.",Ks=o(class extends Error{},"UnsupportedPathError");var ca="__COMPOSED_HANDLER";var gc=o(r=>r.text("404 Not Found",404),"notFoundHandler"),da=o((r,e)=>{if("getResponse"in r){let t=r.getResponse();return e.newResponse(t.body,t)}return console.error(r),e.text("Internal Server Error",500)},"errorHandler"),Un=o(class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#e="/";routes=[];constructor(r={}){[...la,ua].forEach(n=>{this[n]=(i,...a)=>(typeof i=="string"?this.#e=i:this.#i(n,this.#e,i),a.forEach(u=>{this.#i(n,this.#e,u)}),this)}),this.on=(n,i,...a)=>{for(let u of[i].flat()){this.#e=u;for(let l of[n].flat())a.map(c=>{this.#i(l.toUpperCase(),this.#e,c)})}return this},this.use=(n,...i)=>(typeof n=="string"?this.#e=n:(this.#e="*",i.unshift(n)),i.forEach(a=>{this.#i(V,this.#e,a)}),this);let{strict:t,...s}=r;Object.assign(this,s),this.getPath=t??!0?r.getPath??$n:ta}#t(){let r=new Un({router:this.router,getPath:this.getPath});return r.errorHandler=this.errorHandler,r.#r=this.#r,r.routes=this.routes,r}#r=gc;errorHandler=da;route(r,e){let t=this.basePath(r);return e.routes.map(s=>{let n;e.errorHandler===da?n=s.handler:(n=o(async(i,a)=>(await jn([],e.errorHandler)(i,()=>s.handler(i,a))).res,"handler"),n[ca]=s.handler),t.#i(s.method,s.path,n)}),this}basePath(r){let e=this.#t();return e._basePath=Ct(this._basePath,r),e}onError=r=>(this.errorHandler=r,this);notFound=r=>(this.#r=r,this);mount(r,e,t){let s,n;t&&(typeof t=="function"?n=t:(n=t.optionHandler,t.replaceRequest===!1?s=o(u=>u,"replaceRequest"):s=t.replaceRequest));let i=n?u=>{let l=n(u);return Array.isArray(l)?l:[l]}:u=>{let l;try{l=u.executionCtx}catch{}return[u.env,l]};s||=(()=>{let u=Ct(this._basePath,r),l=u==="/"?0:u.length;return c=>{let d=new URL(c.url);return d.pathname=d.pathname.slice(l)||"/",new Request(d,c)}})();let a=o(async(u,l)=>{let c=await e(s(u.req.raw),...i(u));if(c)return c;await l()},"handler");return this.#i(V,Ct(r,"*"),a),this}#i(r,e,t){r=r.toUpperCase(),e=Ct(this._basePath,e);let s={basePath:this._basePath,path:e,method:r,handler:t};this.router.add(r,e,[t,s]),this.routes.push(s)}#n(r,e){if(r instanceof Error)return this.errorHandler(r,e);throw r}#s(r,e,t,s){if(s==="HEAD")return(async()=>new Response(null,await this.#s(r,e,t,"GET")))();let n=this.getPath(r,{env:t}),i=this.router.match(s,n),a=new oa(r,{path:n,matchResult:i,env:t,executionCtx:e,notFoundHandler:this.#r});if(i[0].length===1){let l;try{l=i[0][0][0][0](a,async()=>{a.res=await this.#r(a)})}catch(c){return this.#n(c,a)}return l instanceof Promise?l.then(c=>c||(a.finalized?a.res:this.#r(a))).catch(c=>this.#n(c,a)):l??this.#r(a)}let u=jn(i[0],this.errorHandler,this.#r);return(async()=>{try{let l=await u(a);if(!l.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return l.res}catch(l){return this.#n(l,a)}})()}fetch=(r,...e)=>this.#s(r,e[1],e[0],r.method);request=(r,e,t,s)=>r instanceof Request?this.fetch(e?new Request(r,e):r,t,s):(r=r.toString(),this.fetch(new Request(/^https?:\/\//.test(r)?r:`http://localhost${Ct("/",r)}`,e),t,s));fire=()=>{addEventListener("fetch",r=>{r.respondWith(this.#s(r.request,r,void 0,r.request.method))})}},"Hono");var Hs=[];function Vn(r,e){let t=this.buildAllMatchers(),s=o((n,i)=>{let a=t[n]||t[V],u=a[2][i];if(u)return u;let l=i.match(a[0]);if(!l)return[[],Hs];let c=l.indexOf("",1);return[a[1][c],l]},"match2");return this.match=s,s(r,e)}o(Vn,"match");var Qs="[^/]+",Hr=".*",Qr="(?:|/.*)",Tt=Symbol(),yc=new Set(".\\+*[^]$()");function bc(r,e){return r.length===1?e.length===1?rm!==Hr&&m!==Qr))throw Tt;if(n)return;l=this.#r[d]=new Gs,c!==""&&(l.#t=s.varIndex++)}!n&&c!==""&&t.push([c,l.#t])}else if(l=this.#r[i],!l){if(Object.keys(this.#r).some(c=>c.length>1&&c!==Hr&&c!==Qr))throw Tt;if(n)return;l=this.#r[i]=new Gs}l.insert(a,e,t,s,n)}buildRegExpStr(){let e=Object.keys(this.#r).sort(bc).map(t=>{let s=this.#r[t];return(typeof s.#t=="number"?`(${t})@${s.#t}`:yc.has(t)?`\\${t}`:t)+s.buildRegExpStr()});return typeof this.#e=="number"&&e.unshift(`#${this.#e}`),e.length===0?"":e.length===1?e[0]:"(?:"+e.join("|")+")"}},"Node");var fa=o(class{#e={varIndex:0};#t=new Gs;insert(r,e,t){let s=[],n=[];for(let a=0;;){let u=!1;if(r=r.replace(/\{[^}]+\}/g,l=>{let c=`@\\${a}`;return n[a]=[c,l],a++,u=!0,c}),!u)break}let i=r.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let a=n.length-1;a>=0;a--){let[u]=n[a];for(let l=i.length-1;l>=0;l--)if(i[l].indexOf(u)!==-1){i[l]=i[l].replace(u,n[a][1]);break}}return this.#t.insert(i,e,s,this.#e,t),s}buildRegExp(){let r=this.#t.buildRegExpStr();if(r==="")return[/^$/,[],[]];let e=0,t=[],s=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(n,i,a)=>i!==void 0?(t[++e]=Number(i),"$()"):(a!==void 0&&(s[Number(a)]=++e),"")),[new RegExp(`^${r}`),t,s]}},"Trie");var xc=[/^$/,[],Object.create(null)],ha=Object.create(null);function pa(r){return ha[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,t)=>t?`\\${t}`:"(?:|/.*)")}$`)}o(pa,"buildWildcardRegExp");function vc(){ha=Object.create(null)}o(vc,"clearWildcardRegExpCache");function wc(r){let e=new fa,t=[];if(r.length===0)return xc;let s=r.map(c=>[!/\*|\/:/.test(c[0]),...c]).sort(([c,d],[m,x])=>c?1:m?-1:d.length-x.length),n=Object.create(null);for(let c=0,d=-1,m=s.length;c[q,Object.create(null)]),Hs]:d++;let O;try{O=e.insert(N,d,x)}catch(q){throw q===Tt?new Ks(N):q}x||(t[d]=C.map(([q,$])=>{let z=Object.create(null);for($-=1;$>=0;$--){let[j,M]=O[$];z[j]=M}return[q,z]}))}let[i,a,u]=e.buildRegExp();for(let c=0,d=t.length;cn.length-s.length))if(pa(t).test(e))return[...r[t]]}}o(cr,"findMiddleware");var Ws=o(class{name="RegExpRouter";#e;#t;constructor(){this.#e={[V]:Object.create(null)},this.#t={[V]:Object.create(null)}}add(r,e,t){let s=this.#e,n=this.#t;if(!s||!n)throw new Error(Vs);s[r]||[s,n].forEach(u=>{u[r]=Object.create(null),Object.keys(u[V]).forEach(l=>{u[r][l]=[...u[V][l]]})}),e==="/*"&&(e="*");let i=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let u=pa(e);r===V?Object.keys(s).forEach(l=>{s[l][e]||=cr(s[l],e)||cr(s[V],e)||[]}):s[r][e]||=cr(s[r],e)||cr(s[V],e)||[],Object.keys(s).forEach(l=>{(r===V||r===l)&&Object.keys(s[l]).forEach(c=>{u.test(c)&&s[l][c].push([t,i])})}),Object.keys(n).forEach(l=>{(r===V||r===l)&&Object.keys(n[l]).forEach(c=>u.test(c)&&n[l][c].push([t,i]))});return}let a=Us(e)||[e];for(let u=0,l=a.length;u{(r===V||r===d)&&(n[d][c]||=[...cr(s[d],c)||cr(s[V],c)||[]],n[d][c].push([t,i-l+u+1]))})}}match=Vn;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#t).concat(Object.keys(this.#e)).forEach(e=>{r[e]||=this.#r(e)}),this.#e=this.#t=void 0,vc(),r}#r(r){let e=[],t=r===V;return[this.#e,this.#t].forEach(s=>{let n=s[r]?Object.keys(s[r]).map(i=>[i,s[r][i]]):[];n.length!==0?(t||=!0,e.push(...n)):r!==V&&e.push(...Object.keys(s[V]).map(i=>[i,s[V][i]]))}),t?wc(e):null}},"RegExpRouter");var Kn=o(class{name="SmartRouter";#e=[];#t=[];constructor(r){this.#e=r.routers}add(r,e,t){if(!this.#t)throw new Error(Vs);this.#t.push([r,e,t])}match(r,e){if(!this.#t)throw new Error("Fatal error");let t=this.#e,s=this.#t,n=t.length,i=0,a;for(;il.indexOf(a)===u),score:this.#i}}),s}#s(r,e,t,s){let n=[];for(let i=0,a=r.#e.length;i1&&t.sort((u,l)=>u.score-l.score),[t.map(({handler:u,params:l})=>[u,l])]}},"Node");var Qn=o(class{name="TrieRouter";#e;constructor(){this.#e=new Hn}add(r,e,t){let s=Us(e);if(s){for(let n=0,i=s.length;n{let t=/\.([a-zA-Z0-9]+?)$/,s=r.match(t);if(!s)return;let n=e[s[1]];return n&&n.startsWith("text")&&(n+="; charset=utf-8"),n},"getMimeType");var Ac={aac:"audio/aac",avi:"video/x-msvideo",avif:"image/avif",av1:"video/av1",bin:"application/octet-stream",bmp:"image/bmp",css:"text/css",csv:"text/csv",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",gif:"image/gif",gz:"application/gzip",htm:"text/html",html:"text/html",ico:"image/x-icon",ics:"text/calendar",jpeg:"image/jpeg",jpg:"image/jpeg",js:"text/javascript",json:"application/json",jsonld:"application/ld+json",map:"application/json",mid:"audio/x-midi",midi:"audio/x-midi",mjs:"text/javascript",mp3:"audio/mpeg",mp4:"video/mp4",mpeg:"video/mpeg",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",opus:"audio/opus",otf:"font/otf",pdf:"application/pdf",png:"image/png",rtf:"application/rtf",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",ts:"video/mp2t",ttf:"font/ttf",txt:"text/plain",wasm:"application/wasm",webm:"video/webm",weba:"audio/webm",webmanifest:"application/manifest+json",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xml:"application/xml",zip:"application/zip","3gp":"video/3gpp","3g2":"video/3gpp2",gltf:"model/gltf+json",glb:"model/gltf-binary"},Dc=Ac;var ga=o((...r)=>{let e=r.filter(n=>n!=="").join("/");e=e.replace(/(?<=\/)\/+/g,"");let t=e.split("/"),s=[];for(let n of t)n===".."&&s.length>0&&s.at(-1)!==".."?s.pop():n!=="."&&s.push(n);return s.join("/")||"."},"defaultJoin");var ya={br:".br",zstd:".zst",gzip:".gz"},_c=Object.keys(ya),Ec="index.html",ba=o(r=>{let e=r.root??"./",t=r.path,s=r.join??ga;return async(n,i)=>{if(n.finalized)return i();let a;if(r.path)a=r.path;else try{if(a=decodeURIComponent(n.req.path),/(?:^|[\/\\])\.\.(?:$|[\/\\])/.test(a))throw new Error}catch{return await r.onNotFound?.(n.req.path,n),i()}let u=s(e,!t&&r.rewriteRequestPath?r.rewriteRequestPath(a):a);r.isDir&&await r.isDir(u)&&(u=s(u,Ec));let l=r.getContent,c=await l(u,n);if(c instanceof Response)return n.newResponse(c.body,c);if(c){let d=r.mimes&&Gn(u,r.mimes)||Gn(u);if(n.header("Content-Type",d||"application/octet-stream"),r.precompressed&&(!d||ma.test(d))){let m=new Set(n.req.header("Accept-Encoding")?.split(",").map(x=>x.trim()));for(let x of _c){if(!m.has(x))continue;let N=await l(u+ya[x],n);if(N){c=N,n.header("Content-Encoding",x),n.header("Vary","Accept-Encoding",{append:!0});break}}}return await r.onFound?.(u,n),n.body(c)}await r.onNotFound?.(u,n),await i()}},"serveStatic");var xa=o(async(r,e)=>{let t;e&&e.manifest?typeof e.manifest=="string"?t=JSON.parse(e.manifest):t=e.manifest:typeof __STATIC_CONTENT_MANIFEST=="string"?t=JSON.parse(__STATIC_CONTENT_MANIFEST):t=__STATIC_CONTENT_MANIFEST;let s;e&&e.namespace?s=e.namespace:s=__STATIC_CONTENT;let n=t[r]||r;if(!n)return null;let i=await s.get(n,{type:"stream"});return i||null},"getContentFromKVAsset");var va=o(r=>o(async function(t,s){return ba({...r,getContent:o(async i=>xa(i,{manifest:r.manifest,namespace:r.namespace?r.namespace:t.env?t.env.__STATIC_CONTENT:void 0}),"getContent")})(t,s)},"serveStatic2"),"serveStatic");var Js=o(r=>va(r),"module");var wa=o(class{#e;constructor(r){this.#e=r,this.raw=r.raw,this.url=r.url?new URL(r.url):null,this.protocol=r.protocol??null}send(r,e){this.#e.send(r,e??{})}raw;binaryType="arraybuffer";get readyState(){return this.#e.readyState}url;protocol;close(r,e){this.#e.close(r,e)}},"WSContext");var Aa=o(r=>(...e)=>{if(typeof e[0]=="function"){let[t,s]=e;return o(async function(i,a){let u=await t(i),l=await r(i,u,s);if(l)return l;await a()},"upgradeWebSocket")}else{let[t,s,n]=e;return(async()=>{let i=await r(t,s,n);if(!i)throw new Error("Failed to upgrade WebSocket");return i})()}},"defineWebSocketHelper");var Cc=Aa(async(r,e)=>{if(r.req.header("Upgrade")!=="websocket")return;let s=new WebSocketPair,n=s[0],i=s[1],a=new wa({close:(u,l)=>i.close(u,l),get protocol(){return i.protocol},raw:i,get readyState(){return i.readyState},url:i.url?new URL(i.url):null,send:u=>i.send(u)});return e.onClose&&i.addEventListener("close",u=>e.onClose?.(u,a)),e.onMessage&&i.addEventListener("message",u=>e.onMessage?.(u,a)),e.onError&&i.addEventListener("error",u=>e.onError?.(u,a)),i.accept?.(),new Response(null,{status:101,webSocket:n})});var Ys=o(r=>{let t={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...r},s=(i=>typeof i=="string"?i==="*"?()=>i:a=>i===a?a:null:typeof i=="function"?i:a=>i.includes(a)?a:null)(t.origin),n=(i=>typeof i=="function"?i:Array.isArray(i)?()=>i:()=>[])(t.allowMethods);return o(async function(a,u){function l(d,m){a.res.headers.set(d,m)}o(l,"set");let c=await s(a.req.header("origin")||"",a);if(c&&l("Access-Control-Allow-Origin",c),t.origin!=="*"){let d=a.req.header("Vary");d?l("Vary",d):l("Vary","Origin")}if(t.credentials&&l("Access-Control-Allow-Credentials","true"),t.exposeHeaders?.length&&l("Access-Control-Expose-Headers",t.exposeHeaders.join(",")),a.req.method==="OPTIONS"){t.maxAge!=null&&l("Access-Control-Max-Age",t.maxAge.toString());let d=await n(a.req.header("origin")||"",a);d.length&&l("Access-Control-Allow-Methods",d.join(","));let m=t.allowHeaders;if(!m?.length){let x=a.req.header("Access-Control-Request-Headers");x&&(m=x.split(/\s*,\s*/))}return m?.length&&(l("Access-Control-Allow-Headers",m.join(",")),a.res.headers.append("Vary","Access-Control-Request-Headers")),a.res.headers.delete("Content-Length"),a.res.headers.delete("Content-Type"),new Response(null,{headers:a.res.headers,status:204,statusText:"No Content"})}await u()},"cors2")},"cors");var p=Symbol.for("drizzle:entityKind"),Nx=Symbol.for("drizzle:hasOwnEntityKind");function g(r,e){if(!r||typeof r!="object")return!1;if(r instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,p))throw new Error(`Class "${e.name??""}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=r.constructor;if(t)for(;t;){if(p in t&&t[p]===e[p])return!0;t=Object.getPrototypeOf(t)}return!1}o(g,"is");var Tc,B=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType}name;primary;notNull;default;defaultFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}};o(B,"Column"),Tc=p,h(B,Tc,"Column");var J=Symbol.for("drizzle:SubqueryConfig"),Sc,ee=class{[(Sc=p,J)];constructor(e,t,s,n=!1){this[J]={sql:e,selection:t,alias:s,isWith:n}}};o(ee,"Subquery"),h(ee,Sc,"Subquery");var Nc,st=class extends ee{};o(st,"WithSubquery"),Nc=p,h(st,Nc,"WithSubquery");function Xs(r,...e){return r(...e)}o(Xs,"iife");var Da="0.29.5";var Wn,Jn,_a={startActiveSpan(r,e){return Wn?(Jn||(Jn=Wn.trace.getTracer("drizzle-orm",Da)),Xs((t,s)=>s.startActiveSpan(r,n=>{try{return e(n)}catch(i){throw n.setStatus({code:t.SpanStatusCode.ERROR,message:i instanceof Error?i.message:"Unknown error"}),i}finally{n.end()}}),Wn,Jn)):e()}};var Y=Symbol.for("drizzle:ViewBaseConfig");var Zs=Symbol.for("drizzle:Name"),Yn=Symbol.for("drizzle:Schema"),Ea=Symbol.for("drizzle:Columns"),Xn=Symbol.for("drizzle:OriginalName"),Zn=Symbol.for("drizzle:BaseName"),Ca=Symbol.for("drizzle:IsAlias"),Ta=Symbol.for("drizzle:ExtraConfigBuilder"),Sa=Symbol.for("drizzle:IsDrizzleTable"),kc,v=class{[(kc=p,Zs)];[Xn];[Yn];[Ea];[Zn];[Ca]=!1;[Ta]=void 0;[Sa]=!0;constructor(e,t,s){this[Zs]=this[Xn]=e,this[Yn]=t,this[Zn]=s}};o(v,"Table"),h(v,kc,"Table"),h(v,"Symbol",{Name:Zs,Schema:Yn,OriginalName:Xn,Columns:Ea,BaseName:Zn,IsAlias:Ca,ExtraConfigBuilder:Ta});function Na(r){return typeof r=="object"&&r!==null&&Sa in r}o(Na,"isTable");function nt(r){return r[Zs]}o(nt,"getTableName");var Oc,en=class{};o(en,"FakePrimitiveParam"),Oc=p,h(en,Oc,"FakePrimitiveParam");function ei(r){return typeof r=="object"&&r!==null&&"getSQL"in r&&typeof r.getSQL=="function"}o(ei,"isSQLWrapper");function Rc(r){let e={sql:"",params:[]};for(let t of r)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}o(Rc,"mergeQueries");var Bc,G=class{value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new D([this])}};o(G,"StringChunk"),Bc=p,h(G,Bc,"StringChunk");var qc,dr=class{constructor(e){this.queryChunks=e}decoder=Ra;shouldInlineParams=!1;append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return _a.startActiveSpan("drizzle.buildSQL",t=>{let s=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":s.sql,"drizzle.query.params":JSON.stringify(s.params)}),s})}buildQueryFromSourceParams(e,t){let s=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{escapeName:n,escapeParam:i,prepareTyping:a,inlineParams:u,paramStartIndex:l}=s;return Rc(e.map(c=>{if(g(c,G))return{sql:c.value.join(""),params:[]};if(g(c,Nt))return{sql:n(c.value),params:[]};if(c===void 0)return{sql:"",params:[]};if(Array.isArray(c)){let d=[new G("(")];for(let[m,x]of c.entries())d.push(x),mr},Oa={mapToDriverValue:r=>r},Ov={...Ra,...Oa},jc,ue=class{constructor(e,t=Oa){this.value=e,this.encoder=t}brand;getSQL(){return new D([this])}};o(ue,"Param"),jc=p,h(ue,jc,"Param");function f(r,...e){let t=[];(e.length>0||r.length>0&&r[0]!=="")&&t.push(new G(r[0]));for(let[s,n]of e.entries())t.push(n,new G(r[s+1]));return new D(t)}o(f,"sql");(r=>{function e(){return new D([])}o(e,"empty"),r.empty=e;function t(l){return new D(l)}o(t,"fromList"),r.fromList=t;function s(l){return new D([new G(l)])}o(s,"raw"),r.raw=s;function n(l,c){let d=[];for(let[m,x]of l.entries())m>0&&c!==void 0&&d.push(c),d.push(x);return new D(d)}o(n,"join"),r.join=n;function i(l){return new Nt(l)}o(i,"identifier"),r.identifier=i;function a(l){return new Ve(l)}o(a,"placeholder2"),r.placeholder=a;function u(l,c){return new ue(l,c)}o(u,"param2"),r.param=u})(f||(f={}));(r=>{class e{constructor(s,n){this.sql=s,this.fieldAlias=n}static[p]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new e(this.sql,this.fieldAlias)}}o(e,"Aliased"),r.Aliased=e})(D||(D={}));var Ic,Ve=class{constructor(e){this.name=e}getSQL(){return new D([this])}};o(Ve,"Placeholder"),Ic=p,h(Ve,Ic,"Placeholder");function Wr(r,e){return r.map(t=>{if(g(t,Ve)){if(!(t.name in e))throw new Error(`No value for placeholder "${t.name}" was provided`);return e[t.name]}return t})}o(Wr,"fillPlaceholders");var Mc,le=class{[(Mc=p,Y)];constructor({name:e,schema:t,selectedFields:s,query:n}){this[Y]={name:e,originalName:e,schema:t,selectedFields:s,query:n,isExisting:!n,isAlias:!1}}getSQL(){return new D([this])}};o(le,"View"),h(le,Mc,"View");B.prototype.getSQL=function(){return new D([this])};v.prototype.getSQL=function(){return new D([this])};ee.prototype.getSQL=function(){return new D([this])};var $c,Ke=class{constructor(e){this.table=e}get(e,t){return t==="table"?this.table:e[t]}};o(Ke,"ColumnAliasProxyHandler"),$c=p,h(Ke,$c,"ColumnAliasProxyHandler");var Lc,it=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}get(e,t){if(t===v.Symbol.IsAlias)return!0;if(t===v.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===v.Symbol.OriginalName)return this.alias;if(t===Y)return{...e[Y],name:this.alias,isAlias:!0};if(t===v.Symbol.Columns){let n=e[v.Symbol.Columns];if(!n)return n;let i={};return Object.keys(n).map(a=>{i[a]=new Proxy(n[a],new Ke(new Proxy(e,this)))}),i}let s=e[t];return g(s,B)?new Proxy(s,new Ke(new Proxy(e,this))):s}};o(it,"TableAliasProxyHandler"),Lc=p,h(it,Lc,"TableAliasProxyHandler");var Pc,tn=class{constructor(e){this.alias=e}get(e,t){return t==="sourceTable"?Jr(e.sourceTable,this.alias):e[t]}};o(tn,"RelationTableAliasProxyHandler"),Pc=p,h(tn,Pc,"RelationTableAliasProxyHandler");function Jr(r,e){return new Proxy(r,new it(e,!1))}o(Jr,"aliasedTable");function qe(r,e){return new Proxy(r,new Ke(new Proxy(r.table,new it(e,!1))))}o(qe,"aliasedTableColumn");function ti(r,e){return new D.Aliased(Yr(r.sql,e),r.fieldAlias)}o(ti,"mapColumnsInAliasedSQLToAlias");function Yr(r,e){return f.join(r.queryChunks.map(t=>g(t,B)?qe(t,e):g(t,D)?Yr(t,e):g(t,D.Aliased)?ti(t,e):t))}o(Yr,"mapColumnsInSQLToAlias");var zc,Fe=class{config;constructor(e,t,s){this.config={name:e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:s}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}};o(Fe,"ColumnBuilder"),zc=p,h(Fe,zc,"ColumnBuilder");var Uc,He=class extends Error{constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}};o(He,"DrizzleError"),Uc=p,h(He,Uc,"DrizzleError");var Vc,fr=class extends He{constructor(){super({message:"Rollback"})}};o(fr,"TransactionRollbackError"),Vc=p,h(fr,Vc,"TransactionRollbackError");function de(r,e){return ka(e)&&!ei(r)&&!g(r,ue)&&!g(r,Ve)&&!g(r,B)&&!g(r,v)&&!g(r,le)?new ue(r,e):r}o(de,"bindIfParam");var se=o((r,e)=>f`${r} = ${de(e,r)}`,"eq"),Ba=o((r,e)=>f`${r} <> ${de(e,r)}`,"ne");function Qe(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new D(e):new D([new G("("),f.join(e,new G(" and ")),new G(")")])}o(Qe,"and");function qa(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new D(e):new D([new G("("),f.join(e,new G(" or ")),new G(")")])}o(qa,"or");function Fa(r){return f`not ${r}`}o(Fa,"not");var ja=o((r,e)=>f`${r} > ${de(e,r)}`,"gt"),Ia=o((r,e)=>f`${r} >= ${de(e,r)}`,"gte"),rn=o((r,e)=>f`${r} < ${de(e,r)}`,"lt"),Ma=o((r,e)=>f`${r} <= ${de(e,r)}`,"lte");function sn(r,e){if(Array.isArray(e)){if(e.length===0)throw new Error("inArray requires at least one value");return f`${r} in ${e.map(t=>de(t,r))}`}return f`${r} in ${de(e,r)}`}o(sn,"inArray");function $a(r,e){if(Array.isArray(e)){if(e.length===0)throw new Error("notInArray requires at least one value");return f`${r} not in ${e.map(t=>de(t,r))}`}return f`${r} not in ${de(e,r)}`}o($a,"notInArray");function La(r){return f`${r} is null`}o(La,"isNull");function Pa(r){return f`${r} is not null`}o(Pa,"isNotNull");function za(r){return f`exists ${r}`}o(za,"exists");function Ua(r){return f`not exists ${r}`}o(Ua,"notExists");function Va(r,e,t){return f`${r} between ${de(e,r)} and ${de(t,r)}`}o(Va,"between");function Ka(r,e,t){return f`${r} not between ${de(e,r)} and ${de(t,r)}`}o(Ka,"notBetween");function Ha(r,e){return f`${r} like ${e}`}o(Ha,"like");function Qa(r,e){return f`${r} not like ${e}`}o(Qa,"notLike");function Ga(r,e){return f`${r} ilike ${e}`}o(Ga,"ilike");function Wa(r,e){return f`${r} not ilike ${e}`}o(Wa,"notIlike");function nn(r){return f`${r} asc`}o(nn,"asc");function Xr(r){return f`${r} desc`}o(Xr,"desc");var Kc,Zr=class{write(e){console.log(e)}};o(Zr,"ConsoleLogWriter"),Kc=p,h(Zr,Kc,"ConsoleLogWriter");var Hc,hr=class{writer;constructor(e){this.writer=e?.writer??new Zr}logQuery(e,t){let s=t.map(i=>{try{return JSON.stringify(i)}catch{return String(i)}}),n=s.length?` -- params: [${s.join(", ")}]`:"";this.writer.write(`Query: ${e}${n}`)}};o(hr,"DefaultLogger"),Hc=p,h(hr,Hc,"DefaultLogger");var Qc,pr=class{logQuery(){}};o(pr,"NoopLogger"),Qc=p,h(pr,Qc,"NoopLogger");var Gc,re=class{[(Gc=p,Symbol.toStringTag)]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};o(re,"QueryPromise"),h(re,Gc,"QueryPromise");var Ja=Symbol.for("drizzle:PgInlineForeignKeys"),Wc,we=class extends v{[(Wc=p,Ja)]=[];[v.Symbol.ExtraConfigBuilder]=void 0};o(we,"PgTable"),h(we,Wc,"PgTable"),h(we,"Symbol",Object.assign({},v.Symbol,{InlineForeignKeys:Ja}));var Jc,mr=class{columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new es(e,this.columns,this.name)}};o(mr,"PrimaryKeyBuilder"),Jc=p,h(mr,Jc,"PgPrimaryKeyBuilder");var Yc,es=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s}columns;name;getName(){return this.name??`${this.table[we.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};o(es,"PrimaryKey"),Yc=p,h(es,Yc,"PgPrimaryKey");var ed,gr=class{constructor(e,t,s){this.sourceTable=e,this.referencedTable=t,this.relationName=s,this.referencedTableName=t[v.Symbol.Name]}referencedTableName;fieldName};o(gr,"Relation"),ed=p,h(gr,ed,"Relation");var td,ts=class{constructor(e,t){this.table=e,this.config=t}};o(ts,"Relations"),td=p,h(ts,td,"Relations");var rd,ri=class extends gr{constructor(e,t,s,n){super(e,t,s?.relationName),this.config=s,this.isNullable=n}withFieldName(e){let t=new ri(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},je=ri;o(je,"One"),rd=p,h(je,rd,"One");var sd,si=class extends gr{constructor(e,t,s){super(e,t,s?.relationName),this.config=s}withFieldName(e){let t=new si(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}},kt=si;o(kt,"Many"),sd=p,h(kt,sd,"Many");function Ya(){return{and:Qe,between:Va,eq:se,exists:za,gt:ja,gte:Ia,ilike:Ga,inArray:sn,isNull:La,isNotNull:Pa,like:Ha,lt:rn,lte:Ma,ne:Ba,not:Fa,notBetween:Ka,notExists:Ua,notLike:Qa,notIlike:Wa,notInArray:$a,or:qa,sql:f}}o(Ya,"getOperators");function Xa(){return{sql:f,asc:nn,desc:Xr}}o(Xa,"getOrderByOperators");function Za(r,e){Object.keys(r).length===1&&"default"in r&&!g(r.default,v)&&(r=r.default);let t={},s={},n={};for(let[i,a]of Object.entries(r))if(Na(a)){let u=a[v.Symbol.Name],l=s[u];t[u]=i,n[i]={tsName:i,dbName:a[v.Symbol.Name],schema:a[v.Symbol.Schema],columns:a[v.Symbol.Columns],relations:l?.relations??{},primaryKey:l?.primaryKey??[]};for(let d of Object.values(a[v.Symbol.Columns]))d.primary&&n[i].primaryKey.push(d);let c=a[v.Symbol.ExtraConfigBuilder]?.(a);if(c)for(let d of Object.values(c))g(d,mr)&&n[i].primaryKey.push(...d.columns)}else if(g(a,ts)){let u=a.table[v.Symbol.Name],l=t[u],c=a.config(e(a.table)),d;for(let[m,x]of Object.entries(c))if(l){let N=n[l];N.relations[m]=x,d&&N.primaryKey.push(...d)}else u in s||(s[u]={relations:{},primaryKey:d}),s[u].relations[m]=x}return{tables:n,tableNamesMap:t}}o(Za,"extractTablesRelationalConfig");function Xc(r){return o(function(t,s){return new je(r,t,s,s?.fields.reduce((n,i)=>n&&i.notNull,!0)??!1)},"one")}o(Xc,"createOne");function Zc(r){return o(function(t,s){return new kt(r,t,s)},"many")}o(Zc,"createMany");function eo(r,e,t){if(g(t,je)&&t.config)return{fields:t.config.fields,references:t.config.references};let s=e[t.referencedTable[v.Symbol.Name]];if(!s)throw new Error(`Table "${t.referencedTable[v.Symbol.Name]}" not found in schema`);let n=r[s];if(!n)throw new Error(`Table "${s}" not found in schema`);let i=t.sourceTable,a=e[i[v.Symbol.Name]];if(!a)throw new Error(`Table "${i[v.Symbol.Name]}" not found in schema`);let u=[];for(let l of Object.values(n.relations))(t.relationName&&t!==l&&l.relationName===t.relationName||!t.relationName&&l.referencedTable===t.sourceTable)&&u.push(l);if(u.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${s}"`):new Error(`There are multiple relations between "${s}" and "${t.sourceTable[v.Symbol.Name]}". Please specify relation name`);if(u[0]&&g(u[0],je)&&u[0].config)return{fields:u[0].config.references,references:u[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${t.fieldName}"`)}o(eo,"normalizeRelation");function to(r){return{one:Xc(r),many:Zc(r)}}o(to,"createTableRelationsHelpers");function an(r,e,t,s,n=i=>i){let i={};for(let[a,u]of s.entries())if(u.isJson){let l=e.relations[u.tsKey],c=t[a],d=typeof c=="string"?JSON.parse(c):c;i[u.tsKey]=g(l,je)?d&&an(r,r[u.relationTableTsKey],d,u.selection,n):d.map(m=>an(r,r[u.relationTableTsKey],m,u.selection,n))}else{let l=n(t[a]),c=u.field,d;g(c,B)?d=c:g(c,D)?d=c.decoder:d=c.sql.decoder,i[u.tsKey]=l===null?null:d.mapFromDriverValue(l)}return i}o(an,"mapRelationalRow");function ni(r){return f`count(${r||f.raw("*")})`.mapWith(Number)}o(ni,"count");function on(r,e,t){let s={},n=r.reduce((i,{path:a,field:u},l)=>{let c;g(u,B)?c=u:g(u,D)?c=u.decoder:c=u.sql.decoder;let d=i;for(let[m,x]of a.entries())if(m0)for(let[i,a]of Object.entries(s))typeof a=="string"&&!t[a]&&(n[i]=null);return n}o(on,"mapResultRow");function Ae(r,e){return Object.entries(r).reduce((t,[s,n])=>{if(typeof s!="string")return t;let i=e?[...e,s]:[s];return g(n,B)||g(n,D)||g(n,D.Aliased)?t.push({path:i,field:n}):g(n,v)?t.push(...Ae(n[v.Symbol.Columns],i)):t.push(...Ae(n,i)),t},[])}o(Ae,"orderSelectedFields");function ii(r,e){let t=Object.keys(r),s=Object.keys(e);if(t.length!==s.length)return!1;for(let[n,i]of t.entries())if(i!==s[n])return!1;return!0}o(ii,"haveSameKeys");function un(r,e){let t=Object.entries(e).filter(([,s])=>s!==void 0).map(([s,n])=>g(n,D)?[s,n]:[s,new ue(n,r[v.Symbol.Columns][s])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}o(un,"mapUpdateSet");function ro(r,e){for(let t of e)for(let s of Object.getOwnPropertyNames(t.prototype))s!=="constructor"&&Object.defineProperty(r.prototype,s,Object.getOwnPropertyDescriptor(t.prototype,s)||Object.create(null))}o(ro,"applyMixins");function ln(r){return r[v.Symbol.Columns]}o(ln,"getTableColumns");function ai(r){return g(r,ee)?r[J].alias:g(r,le)?r[Y].name:g(r,D)?void 0:r[v.Symbol.IsAlias]?r[v.Symbol.Name]:r[v.Symbol.BaseName]}o(ai,"getTableLikeName");var oi=Symbol.for("drizzle:SQLiteInlineForeignKeys"),id,K=class extends v{[(id=p,v.Symbol.Columns)];[oi]=[];[v.Symbol.ExtraConfigBuilder]=void 0};o(K,"SQLiteTable"),h(K,id,"SQLiteTable"),h(K,"Symbol",Object.assign({},v.Symbol,{InlineForeignKeys:oi}));function nd(r,e,t,s,n=r){let i=new K(r,s,n),a=Object.fromEntries(Object.entries(e).map(([l,c])=>{let d=c,m=d.build(i);return i[oi].push(...d.buildForeignKeys(m,i)),[l,m]})),u=Object.assign(i,a);return u[v.Symbol.Columns]=a,t&&(u[K.Symbol.ExtraConfigBuilder]=t),u}o(nd,"sqliteTableBase");var cn=o((r,e,t)=>nd(r,e,t),"sqliteTable");var ad,yr=class{reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:s,columns:n,foreignColumns:i}=e();return{name:s,columns:n,foreignTable:i[0].table,foreignColumns:i}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new rs(e,this)}};o(yr,"ForeignKeyBuilder"),ad=p,h(yr,ad,"SQLiteForeignKeyBuilder");var od,rs=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),n=t.map(u=>u.name),i=s.map(u=>u.name),a=[this.table[K.Symbol.Name],...n,s[0].table[K.Symbol.Name],...i];return e??`${a.join("_")}_fk`}};o(rs,"ForeignKey"),od=p,h(rs,od,"SQLiteForeignKey");function ui(r,e){return`${r[K.Symbol.Name]}_${e.join("_")}_unique`}o(ui,"uniqueKeyName");var ud,ss=class{constructor(e,t){this.name=t,this.columns=e}columns;build(e){return new ns(e,this.columns,this.name)}};o(ss,"UniqueConstraintBuilder"),ud=p,h(ss,ud,"SQLiteUniqueConstraintBuilder");var ld,dn=class{name;constructor(e){this.name=e}on(...e){return new ss(e,this.name)}};o(dn,"UniqueOnConstraintBuilder"),ld=p,h(dn,ld,"SQLiteUniqueOnConstraintBuilder");var cd,ns=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s??ui(this.table,this.columns.map(n=>n.name))}columns;name;getName(){return this.name}};o(ns,"UniqueConstraint"),cd=p,h(ns,cd,"SQLiteUniqueConstraint");var dd,Ge=class extends Fe{foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:n})=>((i,a)=>{let u=new yr(()=>{let l=i();return{columns:[e],foreignColumns:[l]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)})(s,n))}};o(Ge,"SQLiteColumnBuilder"),dd=p,h(Ge,dd,"SQLiteColumnBuilder");var fd,me=class extends B{constructor(e,t){t.uniqueName||(t.uniqueName=ui(e,[t.name])),super(e,t),this.table=e}};o(me,"SQLiteColumn"),fd=p,h(me,fd,"SQLiteColumn");var hd,Rt=class extends Ge{constructor(e,t,s){super(e,t,s),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}};o(Rt,"SQLiteBaseIntegerBuilder"),hd=p,h(Rt,hd,"SQLiteBaseIntegerBuilder");var pd,Ot=class extends me{autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};o(Ot,"SQLiteBaseInteger"),pd=p,h(Ot,pd,"SQLiteBaseInteger");var md,is=class extends Rt{constructor(e){super(e,"number","SQLiteInteger")}build(e){return new as(e,this.config)}};o(is,"SQLiteIntegerBuilder"),md=p,h(is,md,"SQLiteIntegerBuilder");var gd,as=class extends Ot{};o(as,"SQLiteInteger"),gd=p,h(as,gd,"SQLiteInteger");var yd,os=class extends Rt{constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(f`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new us(e,this.config)}};o(os,"SQLiteTimestampBuilder"),yd=p,h(os,yd,"SQLiteTimestampBuilder");var bd,us=class extends Ot{mode=this.config.mode;mapFromDriverValue(e){return this.config.mode==="timestamp"?new Date(e*1e3):new Date(e)}mapToDriverValue(e){let t=e.getTime();return this.config.mode==="timestamp"?Math.floor(t/1e3):t}};o(us,"SQLiteTimestamp"),bd=p,h(us,bd,"SQLiteTimestamp");var xd,ls=class extends Rt{constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new cs(e,this.config)}};o(ls,"SQLiteBooleanBuilder"),xd=p,h(ls,xd,"SQLiteBooleanBuilder");var vd,cs=class extends Ot{mode=this.config.mode;mapFromDriverValue(e){return Number(e)===1}mapToDriverValue(e){return e?1:0}};o(cs,"SQLiteBoolean"),vd=p,h(cs,vd,"SQLiteBoolean");function De(r,e){return e?.mode==="timestamp"||e?.mode==="timestamp_ms"?new os(r,e.mode):e?.mode==="boolean"?new ls(r,e.mode):new is(r)}o(De,"integer");var wd,ds=class extends Ge{constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new Bt(e,this.config)}};o(ds,"SQLiteTextBuilder"),wd=p,h(ds,wd,"SQLiteTextBuilder");var Ad,Bt=class extends me{enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};o(Bt,"SQLiteText"),Ad=p,h(Bt,Ad,"SQLiteText");var Dd,fs=class extends Ge{constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new hs(e,this.config)}};o(fs,"SQLiteTextJsonBuilder"),Dd=p,h(fs,Dd,"SQLiteTextJsonBuilder");var _d,hs=class extends me{getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}};o(hs,"SQLiteTextJson"),_d=p,h(hs,_d,"SQLiteTextJson");function I(r,e={}){return e.mode==="json"?new fs(r):new ds(r,e)}o(I,"text");var Ed,li=class{config;constructor(e){this.config={...e}}get(e,t){if(t===J)return{...e[J],selection:new Proxy(e[J].selection,this)};if(t===Y)return{...e[Y],selectedFields:new Proxy(e[Y].selectedFields,this)};if(typeof t=="symbol")return e[t];let n=(g(e,ee)?e[J].selection:g(e,le)?e[Y].selectedFields:e)[t];if(g(n,D.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!n.isSelectionField)return n.sql;let i=n.clone();return i.isSelectionField=!0,i}if(g(n,D)){if(this.config.sqlBehavior==="sql")return n;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return g(n,B)?this.config.alias?new Proxy(n,new Ke(new Proxy(n.table,new it(this.config.alias,this.config.replaceOriginalName??!1)))):n:typeof n!="object"||n===null?n:new Proxy(n,new li(this.config))}},ae=li;o(ae,"SelectionProxyHandler"),Ed=p,h(ae,Ed,"SelectionProxyHandler");var Cd,qt=class extends re{constructor(e,t,s,n){super(),this.table=e,this.session=t,this.dialect=s,this.config={table:e,withList:n}}config;where(e){return this.config.where=e,this}returning(e=this.table[K.Symbol.Columns]){return this.config.returning=Ae(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run")}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(e){return this._prepare().execute(e)}$dynamic(){return this}};o(qt,"SQLiteDeleteBase"),Cd=p,h(qt,Cd,"SQLiteDelete");var Td,Ft=class{constructor(e,t,s,n){this.table=e,this.session=t,this.dialect=s,this.withList=n}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw new Error("values() must be called with at least one value");let t=e.map(s=>{let n={},i=this.table[v.Symbol.Columns];for(let a of Object.keys(s)){let u=s[a];n[a]=g(u,D)?u:new ue(u,i[a])}return n});return new ps(this.table,t,this.session,this.dialect,this.withList)}};o(Ft,"SQLiteInsertBuilder"),Td=p,h(Ft,Td,"SQLiteInsertBuilder");var Sd,ps=class extends re{constructor(e,t,s,n,i){super(),this.session=s,this.dialect=n,this.config={table:e,values:t,withList:i}}config;returning(e=this.config.table[K.Symbol.Columns]){return this.config.returning=Ae(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=f`do nothing`;else{let t=Array.isArray(e.target)?f`${e.target}`:f`${[e.target]}`,s=e.where?f` where ${e.where}`:f``;this.config.onConflict=f`${t} do nothing${s}`}return this}onConflictDoUpdate(e){let t=Array.isArray(e.target)?f`${e.target}`:f`${[e.target]}`,s=e.where?f` where ${e.where}`:f``,n=this.dialect.buildUpdateSet(this.config.table,un(this.config.table,e.set));return this.config.onConflict=f`${t} do update set ${n}${s}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run")}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}};o(ps,"SQLiteInsertBase"),Sd=p,h(ps,Sd,"SQLiteInsert");var Nd,at=class extends le{};o(at,"SQLiteViewBase"),Nd=p,h(at,Nd,"SQLiteViewBase");var kd,br=class{escapeName(e){return`"${e}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[f`with `];for(let[s,n]of e.entries())t.push(f`${f.identifier(n[J].alias)} as (${n[J].sql})`),s{let l=e[v.Symbol.Columns][i],c=f`${f.identifier(l.name)} = ${a}`;return u{let u=[];if(g(i,D.Aliased)&&i.isSelectionField)u.push(f.identifier(i.fieldAlias));else if(g(i,D.Aliased)||g(i,D)){let l=g(i,D.Aliased)?i.sql:i;t?u.push(new D(l.queryChunks.map(c=>g(c,B)?f.identifier(c.name):c))):u.push(l),g(i,D.Aliased)&&u.push(f` as ${f.identifier(i.fieldAlias)}`)}else if(g(i,B)){let l=i.table[v.Symbol.Name],c=i.name;t?u.push(f.identifier(c)):u.push(f`${f.identifier(l)}.${f.identifier(c)}`)}return au?.some(({alias:ze})=>ze===(Z[v.Symbol.IsAlias]?nt(Z):Z[v.Symbol.BaseName])))(ie.field.table)){let Z=nt(ie.field.table);throw new Error(`Your "${ie.path.join("->")}" field references a column "${Z}"."${ie.field.name}", but the table "${Z}" is not part of the query! Did you forget to join it?`)}let O=!u||u.length===0,q=this.buildWithCTE(e),$=x?f` distinct`:void 0,z=this.buildSelection(C,{isSingleTable:O}),j=(()=>g(a,v)&&a[v.Symbol.OriginalName]!==a[v.Symbol.Name]?f`${f.identifier(a[v.Symbol.OriginalName])} ${f.identifier(a[v.Symbol.Name])}`:a)(),M=[];if(u)for(let[ie,Z]of u.entries()){ie===0&&M.push(f` `);let ze=Z.table;if(g(ze,K)){let kn=ze[K.Symbol.Name],Ri=ze[K.Symbol.Schema],Oi=ze[K.Symbol.OriginalName],Bi=kn===Oi?void 0:Z.alias;M.push(f`${f.raw(Z.joinType)} join ${Ri?f`${f.identifier(Ri)}.`:void 0}${f.identifier(Oi)}${Bi&&f` ${f.identifier(Bi)}`} on ${Z.on}`)}else M.push(f`${f.raw(Z.joinType)} join ${ze} on ${Z.on}`);ie0?f` group by ${f.join(W)}`:void 0,js=F.length>0?f` order by ${f.join(F)}`:void 0,Vr=d?f` limit ${d}`:void 0,Is=m?f` offset ${m}`:void 0,Ms=f`${q}select${$} ${z} from ${j}${Ee}${ve}${nr}${T}${js}${Vr}${Is}`;return N.length>0?this.buildSetOperations(Ms,N):Ms}buildSetOperations(e,t){let[s,...n]=t;if(!s)throw new Error("Cannot pass undefined values to any set operator");return n.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:s}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:s}),n)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:s,rightSelect:n,limit:i,orderBy:a,offset:u}}){let l=f`${e.getSQL()} `,c=f`${n.getSQL()}`,d;if(a&&a.length>0){let C=[];for(let O of a)if(g(O,me))C.push(f.identifier(O.name));else if(g(O,D)){for(let q=0;qf.identifier(C.name));for(let[C,O]of t.entries()){let q=[];for(let[$,z]of l){let j=O[$];if(j===void 0||g(j,ue)&&j.value===void 0){let M;if(z.default!==null&&z.default!==void 0)M=g(z.default,D)?z.default:f.param(z.default,z);else if(z.defaultFn!==void 0){let Ee=z.defaultFn();M=g(Ee,D)?Ee:f.param(Ee,z)}else M=f`null`;q.push(M)}else q.push(j)}a.push(q),C({dbKey:j.name,tsKey:z,field:qe(j,u),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let $=Object.fromEntries(Object.entries(i.columns).map(([T,F])=>[T,qe(F,u)]));if(a.where){let T=typeof a.where=="function"?a.where($,Ya()):a.where;C=T&&Yr(T,u)}let z=[],j=[];if(a.columns){let T=!1;for(let[F,W]of Object.entries(a.columns))W!==void 0&&F in i.columns&&(!T&&W===!0&&(T=!0),j.push(F));j.length>0&&(j=T?j.filter(F=>a.columns?.[F]===!0):Object.keys(i.columns).filter(F=>!j.includes(F)))}else j=Object.keys(i.columns);for(let T of j){let F=i.columns[T];z.push({tsKey:T,value:F})}let M=[];a.with&&(M=Object.entries(a.with).filter(T=>!!T[1]).map(([T,F])=>({tsKey:T,queryConfig:F,relation:i.relations[T]})));let Ee;if(a.extras){Ee=typeof a.extras=="function"?a.extras($,{sql:f}):a.extras;for(let[T,F]of Object.entries(Ee))z.push({tsKey:T,value:ti(F,u)})}for(let{tsKey:T,value:F}of z)d.push({dbKey:g(F,D.Aliased)?F.fieldAlias:i.columns[T].name,tsKey:T,field:g(F,B)?qe(F,u):F,relationTableTsKey:void 0,isJson:!1,selection:[]});let ve=typeof a.orderBy=="function"?a.orderBy($,Xa()):a.orderBy??[];Array.isArray(ve)||(ve=[ve]),N=ve.map(T=>g(T,B)?qe(T,u):Yr(T,u)),m=a.limit,x=a.offset;for(let{tsKey:T,queryConfig:F,relation:W}of M){let nr=eo(t,s,W),js=W.referencedTable[v.Symbol.Name],Vr=s[js],Is=`${u}_${T}`,Ms=Qe(...nr.fields.map((ze,kn)=>se(qe(nr.references[kn],Is),qe(ze,u)))),ie=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:s,table:e[Vr],tableConfig:t[Vr],queryConfig:g(W,je)?F===!0?{limit:1}:{...F,limit:1}:F,tableAlias:Is,joinOn:Ms,nestedQueryRelation:W}),Z=f`(${ie.sql})`.as(T);d.push({dbKey:T,tsKey:T,field:Z,relationTableTsKey:Vr,isJson:!0,selection:ie.selection})}}if(d.length===0)throw new He({message:`No fields selected for table "${i.tsName}" ("${u}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let q;if(C=Qe(c,C),l){let $=f`json_array(${f.join(d.map(({field:M})=>g(M,me)?f.identifier(M.name):g(M,D.Aliased)?M.sql:M),f`, `)})`;g(l,kt)&&($=f`coalesce(json_group_array(${$}), json_array())`);let z=[{dbKey:"data",tsKey:"data",field:$.as("data"),isJson:!0,relationTableTsKey:i.tsName,selection:d}];m!==void 0||x!==void 0||N.length>0?(q=this.buildSelectQuery({table:Jr(n,u),fields:{},fieldsFlat:[{path:[],field:f.raw("*")}],where:C,limit:m,offset:x,orderBy:N,setOperators:[]}),C=void 0,m=void 0,x=void 0,N=void 0):q=Jr(n,u),q=this.buildSelectQuery({table:g(q,K)?q:new ee(q,{},u),fields:{},fieldsFlat:z.map(({field:M})=>({path:[],field:g(M,B)?qe(M,u):M})),joins:O,where:C,limit:m,offset:x,orderBy:N,setOperators:[]})}else q=this.buildSelectQuery({table:Jr(n,u),fields:{},fieldsFlat:d.map(({field:$})=>({path:[],field:g($,B)?qe($,u):$})),joins:O,where:C,limit:m,offset:x,orderBy:N,setOperators:[]});return{tableTsKey:i.tsName,sql:q,selection:d}}};o(br,"SQLiteDialect"),kd=p,h(br,kd,"SQLiteDialect");var Rd,xr=class extends br{migrate(e,t,s){let n=s===void 0||typeof s=="string"?"__drizzle_migrations":s.migrationsTable??"__drizzle_migrations",i=f` +var qn=Object.defineProperty;var uu=(r,e,t)=>e in r?qn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var o=(r,e)=>qn(r,"name",{value:e,configurable:!0});var lu=(r,e)=>{for(var t in e)qn(r,t,{get:e[t],enumerable:!0})};var h=(r,e,t)=>(uu(r,typeof e!="symbol"?e+"":e,t),t);function cu(r,e){let t=new Request(r,e);return t.headers.delete("CF-Connecting-IP"),t}o(cu,"stripCfConnectingIPHeader");globalThis.fetch=new Proxy(globalThis.fetch,{apply(r,e,t){return Reflect.apply(r,e,[cu.apply(null,t)])}});function L(r){return new Error(`[unenv] ${r} is not implemented yet!`)}o(L,"createNotImplementedError");function Ue(r){return Object.assign(o(()=>{throw L(r)},"fn"),{__unenv__:!0})}o(Ue,"notImplemented");function $i(r){return class{__unenv__=!0;constructor(){throw new Error(`[unenv] ${r} is not implemented yet!`)}}}o($i,"notImplementedClass");var Fn=globalThis.performance?.timeOrigin??Date.now(),jn=globalThis.performance?.now?globalThis.performance.now.bind(globalThis.performance):()=>Date.now()-Fn,du={name:"node",entryType:"node",startTime:0,duration:0,nodeStart:0,v8Start:0,bootstrapComplete:0,environment:0,loopStart:0,loopExit:0,idleTime:0,uvMetricsInfo:{loopCount:0,events:0,eventsWaiting:0},detail:void 0,toJSON(){return this}},st=class{__unenv__=!0;detail;entryType="event";name;startTime;constructor(e,t){this.name=e,this.startTime=t?.startTime||jn(),this.detail=t?.detail}get duration(){return jn()-this.startTime}toJSON(){return{name:this.name,entryType:this.entryType,startTime:this.startTime,duration:this.duration,detail:this.detail}}};o(st,"PerformanceEntry");var In=o(class extends st{entryType="mark";constructor(){super(...arguments)}get duration(){return 0}},"PerformanceMark"),ur=class extends st{entryType="measure"};o(ur,"PerformanceMeasure");var lr=class extends st{entryType="resource";serverTiming=[];connectEnd=0;connectStart=0;decodedBodySize=0;domainLookupEnd=0;domainLookupStart=0;encodedBodySize=0;fetchStart=0;initiatorType="";name="";nextHopProtocol="";redirectEnd=0;redirectStart=0;requestStart=0;responseEnd=0;responseStart=0;secureConnectionStart=0;startTime=0;transferSize=0;workerStart=0;responseStatus=0};o(lr,"PerformanceResourceTiming");var Qr=class{__unenv__=!0;getEntries(){return[]}getEntriesByName(e,t){return[]}getEntriesByType(e){return[]}};o(Qr,"PerformanceObserverEntryList");var cr=class{__unenv__=!0;timeOrigin=Fn;eventCounts=new Map;_entries=[];_resourceTimingBufferSize=0;navigation=void 0;timing=void 0;timerify(e,t){throw L("Performance.timerify")}get nodeTiming(){return du}eventLoopUtilization(){return{}}markResourceTiming(){return new lr("")}onresourcetimingbufferfull=null;now(){return this.timeOrigin===Fn?jn():Date.now()-this.timeOrigin}clearMarks(e){this._entries=e?this._entries.filter(t=>t.name!==e):this._entries.filter(t=>t.entryType!=="mark")}clearMeasures(e){this._entries=e?this._entries.filter(t=>t.name!==e):this._entries.filter(t=>t.entryType!=="measure")}clearResourceTimings(){this._entries=this._entries.filter(e=>e.entryType!=="resource"||e.entryType!=="navigation")}getEntries(){return this._entries}getEntriesByName(e,t){return this._entries.filter(s=>s.name===e&&(!t||s.entryType===t))}getEntriesByType(e){return this._entries.filter(t=>t.entryType===e)}mark(e,t){let s=new In(e,t);return this._entries.push(s),s}measure(e,t,s){let n,i;typeof t=="string"?(n=this.getEntriesByName(t,"mark")[0]?.startTime,i=this.getEntriesByName(s,"mark")[0]?.startTime):(n=Number.parseFloat(t?.start)||this.now(),i=Number.parseFloat(t?.end)||this.now());let a=new ur(e,{startTime:n,detail:{start:n,end:i}});return this._entries.push(a),a}setResourceTimingBufferSize(e){this._resourceTimingBufferSize=e}addEventListener(e,t,s){throw L("Performance.addEventListener")}removeEventListener(e,t,s){throw L("Performance.removeEventListener")}dispatchEvent(e){throw L("Performance.dispatchEvent")}toJSON(){return this}};o(cr,"Performance");var or=class{__unenv__=!0;_callback=null;constructor(e){this._callback=e}takeRecords(){return[]}disconnect(){throw L("PerformanceObserver.disconnect")}observe(e){throw L("PerformanceObserver.observe")}bind(e){return e}runInAsyncScope(e,t,...s){return e.call(t,...s)}asyncId(){return 0}triggerAsyncId(){return 0}emitDestroy(){return this}};o(or,"PerformanceObserver"),h(or,"supportedEntryTypes",[]);var Mi=globalThis.performance&&"addEventListener"in globalThis.performance?globalThis.performance:new cr;globalThis.performance=Mi;globalThis.Performance=cr;globalThis.PerformanceEntry=st;globalThis.PerformanceMark=In;globalThis.PerformanceMeasure=ur;globalThis.PerformanceObserver=or;globalThis.PerformanceObserverEntryList=Qr;globalThis.PerformanceResourceTiming=lr;import{Writable as Li}from"node:stream";var re=Object.assign(()=>{},{__unenv__:!0});var Q=globalThis.console,Pi=!0,zi=new Li,Ki=new Li,zs=Q?.log??re,fu=Q?.info??zs,Xp=Q?.trace??fu,Zp=Q?.debug??zs,em=Q?.table??zs,hu=Q?.error??zs,tm=Q?.warn??hu,rm=Q?.createTask??Ue("console.createTask");var sm=Q?.clear??re,nm=Q?.count??re,im=Q?.countReset??re,am=Q?.dir??re,om=Q?.dirxml??re,um=Q?.group??re,lm=Q?.groupEnd??re,cm=Q?.groupCollapsed??re,dm=Q?.profile??re,fm=Q?.profileEnd??re,hm=Q?.time??re,pm=Q?.timeEnd??re,mm=Q?.timeLog??re,gm=Q?.timeStamp??re,Ui=Q?.Console??$i("console.Console"),Vi=new Map;var Hi=re,Qi=re;var $n=globalThis.console,{assert:_m,clear:Em,context:Cm,count:Sm,countReset:Tm,createTask:Nm,debug:km,dir:Rm,dirxml:Om,error:Bm,group:qm,groupCollapsed:Fm,groupEnd:jm,info:Im,log:$m,profile:Mm,profileEnd:Lm,table:Pm,time:zm,timeEnd:Km,timeLog:Um,timeStamp:Vm,trace:Hm,warn:Qm}=$n;Object.assign($n,{Console:Ui,_ignoreErrors:Pi,_stderr:zi,_stderrErrorHandler:Qi,_stdout:Ki,_stdoutErrorHandler:Hi,_times:Vi});var Gi=$n;globalThis.console=Gi;var Wi=Object.assign(o(function(e){let t=Date.now(),s=Math.trunc(t/1e3),n=t%1e3*1e6;if(e){let i=s-e[0],a=n-e[0];return a<0&&(i=i-1,a=1e9+a),[i,a]}return[s,n]},"hrtime"),{bigint:o(function(){return BigInt(Date.now()*1e6)},"bigint")});import{EventEmitter as Ji}from"node:events";import{Socket as pu}from"node:net";var dr=class extends pu{fd;constructor(e){super(),this.fd=e}isRaw=!1;setRawMode(e){return this.isRaw=e,this}isTTY=!1};o(dr,"ReadStream");import{Socket as mu}from"node:net";var Et=class extends mu{fd;constructor(e){super(),this.fd=e}clearLine(e,t){return t&&t(),!1}clearScreenDown(e){return e&&e(),!1}cursorTo(e,t,s){return s&&typeof s=="function"&&s(),!1}moveCursor(e,t,s){return s&&s(),!1}getColorDepth(e){return 1}hasColors(e,t){return!1}getWindowSize(){return[this.columns,this.rows]}columns=80;rows=24;isTTY=!1};o(Et,"WriteStream");var Ct=class extends Ji{env;hrtime;nextTick;constructor(e){super(),this.env=e.env,this.hrtime=e.hrtime,this.nextTick=e.nextTick;for(let t of[...Object.getOwnPropertyNames(Ct.prototype),...Object.getOwnPropertyNames(Ji.prototype)]){let s=this[t];typeof s=="function"&&(this[t]=s.bind(this))}}emitWarning(e,t,s){console.warn(`${s?`[${s}] `:""}${t?`${t}: `:""}${e}`)}emit(...e){return super.emit(...e)}listeners(e){return super.listeners(e)}#e;#t;#r;get stdin(){return this.#e??=new dr(0)}get stdout(){return this.#t??=new Et(1)}get stderr(){return this.#r??=new Et(2)}#i="/";chdir(e){this.#i=e}cwd(){return this.#i}arch="";platform="";argv=[];argv0="";execArgv=[];execPath="";title="";pid=200;ppid=100;get version(){return""}get versions(){return{}}get allowedNodeEnvironmentFlags(){return new Set}get sourceMapsEnabled(){return!1}get debugPort(){return 0}get throwDeprecation(){return!1}get traceDeprecation(){return!1}get features(){return{}}get release(){return{}}get connected(){return!1}get config(){return{}}get moduleLoadList(){return[]}constrainedMemory(){return 0}availableMemory(){return 0}uptime(){return 0}resourceUsage(){return{}}ref(){}unref(){}umask(){throw L("process.umask")}getBuiltinModule(){}getActiveResourcesInfo(){throw L("process.getActiveResourcesInfo")}exit(){throw L("process.exit")}reallyExit(){throw L("process.reallyExit")}kill(){throw L("process.kill")}abort(){throw L("process.abort")}dlopen(){throw L("process.dlopen")}setSourceMapsEnabled(){throw L("process.setSourceMapsEnabled")}loadEnvFile(){throw L("process.loadEnvFile")}disconnect(){throw L("process.disconnect")}cpuUsage(){throw L("process.cpuUsage")}setUncaughtExceptionCaptureCallback(){throw L("process.setUncaughtExceptionCaptureCallback")}hasUncaughtExceptionCaptureCallback(){throw L("process.hasUncaughtExceptionCaptureCallback")}initgroups(){throw L("process.initgroups")}openStdin(){throw L("process.openStdin")}assert(){throw L("process.assert")}binding(){throw L("process.binding")}permission={has:Ue("process.permission.has")};report={directory:"",filename:"",signal:"SIGUSR2",compact:!1,reportOnFatalError:!1,reportOnSignal:!1,reportOnUncaughtException:!1,getReport:Ue("process.report.getReport"),writeReport:Ue("process.report.writeReport")};finalization={register:Ue("process.finalization.register"),unregister:Ue("process.finalization.unregister"),registerBeforeExit:Ue("process.finalization.registerBeforeExit")};memoryUsage=Object.assign(()=>({arrayBuffers:0,rss:0,external:0,heapTotal:0,heapUsed:0}),{rss:()=>0});mainModule=void 0;domain=void 0;send=void 0;exitCode=void 0;channel=void 0;getegid=void 0;geteuid=void 0;getgid=void 0;getgroups=void 0;getuid=void 0;setegid=void 0;seteuid=void 0;setgid=void 0;setgroups=void 0;setuid=void 0;_events=void 0;_eventsCount=void 0;_exiting=void 0;_maxListeners=void 0;_debugEnd=void 0;_debugProcess=void 0;_fatalException=void 0;_getActiveHandles=void 0;_getActiveRequests=void 0;_kill=void 0;_preload_modules=void 0;_rawDebug=void 0;_startProfilerIdleNotifier=void 0;_stopProfilerIdleNotifier=void 0;_tickCallback=void 0;_disconnect=void 0;_handleQueue=void 0;_pendingMessage=void 0;_channel=void 0;_send=void 0;_linkedBinding=void 0};o(Ct,"Process");var Yi=globalThis.process,Xi=Yi.getBuiltinModule,{exit:gu,platform:yu,nextTick:Zi}=Xi("node:process"),bu=new Ct({env:Yi.env,hrtime:Wi,nextTick:Zi}),{abort:xu,addListener:vu,allowedNodeEnvironmentFlags:wu,hasUncaughtExceptionCaptureCallback:Au,setUncaughtExceptionCaptureCallback:Du,loadEnvFile:_u,sourceMapsEnabled:Eu,arch:Cu,argv:Su,argv0:Tu,chdir:Nu,config:ku,connected:Ru,constrainedMemory:Ou,availableMemory:Bu,cpuUsage:qu,cwd:Fu,debugPort:ju,dlopen:Iu,disconnect:$u,emit:Mu,emitWarning:Lu,env:Pu,eventNames:zu,execArgv:Ku,execPath:Uu,finalization:Vu,features:Hu,getActiveResourcesInfo:Qu,getMaxListeners:Gu,hrtime:Wu,kill:Ju,listeners:Yu,listenerCount:Xu,memoryUsage:Zu,on:el,off:tl,once:rl,pid:sl,ppid:nl,prependListener:il,prependOnceListener:al,rawListeners:ol,release:ul,removeAllListeners:ll,removeListener:cl,report:dl,resourceUsage:fl,setMaxListeners:hl,setSourceMapsEnabled:pl,stderr:ml,stdin:gl,stdout:yl,title:bl,throwDeprecation:xl,traceDeprecation:vl,umask:wl,uptime:Al,version:Dl,versions:_l,domain:El,initgroups:Cl,moduleLoadList:Sl,reallyExit:Tl,openStdin:Nl,assert:kl,binding:Rl,send:Ol,exitCode:Bl,channel:ql,getegid:Fl,geteuid:jl,getgid:Il,getgroups:$l,getuid:Ml,setegid:Ll,seteuid:Pl,setgid:zl,setgroups:Kl,setuid:Ul,permission:Vl,mainModule:Hl,_events:Ql,_eventsCount:Gl,_exiting:Wl,_maxListeners:Jl,_debugEnd:Yl,_debugProcess:Xl,_fatalException:Zl,_getActiveHandles:ec,_getActiveRequests:tc,_kill:rc,_preload_modules:sc,_rawDebug:nc,_startProfilerIdleNotifier:ic,_stopProfilerIdleNotifier:ac,_tickCallback:oc,_disconnect:uc,_handleQueue:lc,_pendingMessage:cc,_channel:dc,_send:fc,_linkedBinding:hc}=bu,pc={abort:xu,addListener:vu,allowedNodeEnvironmentFlags:wu,hasUncaughtExceptionCaptureCallback:Au,setUncaughtExceptionCaptureCallback:Du,loadEnvFile:_u,sourceMapsEnabled:Eu,arch:Cu,argv:Su,argv0:Tu,chdir:Nu,config:ku,connected:Ru,constrainedMemory:Ou,availableMemory:Bu,cpuUsage:qu,cwd:Fu,debugPort:ju,dlopen:Iu,disconnect:$u,emit:Mu,emitWarning:Lu,env:Pu,eventNames:zu,execArgv:Ku,execPath:Uu,exit:gu,finalization:Vu,features:Hu,getBuiltinModule:Xi,getActiveResourcesInfo:Qu,getMaxListeners:Gu,hrtime:Wu,kill:Ju,listeners:Yu,listenerCount:Xu,memoryUsage:Zu,nextTick:Zi,on:el,off:tl,once:rl,pid:sl,platform:yu,ppid:nl,prependListener:il,prependOnceListener:al,rawListeners:ol,release:ul,removeAllListeners:ll,removeListener:cl,report:dl,resourceUsage:fl,setMaxListeners:hl,setSourceMapsEnabled:pl,stderr:ml,stdin:gl,stdout:yl,title:bl,throwDeprecation:xl,traceDeprecation:vl,umask:wl,uptime:Al,version:Dl,versions:_l,domain:El,initgroups:Cl,moduleLoadList:Sl,reallyExit:Tl,openStdin:Nl,assert:kl,binding:Rl,send:Ol,exitCode:Bl,channel:ql,getegid:Fl,geteuid:jl,getgid:Il,getgroups:$l,getuid:Ml,setegid:Ll,seteuid:Pl,setgid:zl,setgroups:Kl,setuid:Ul,permission:Vl,mainModule:Hl,_events:Ql,_eventsCount:Gl,_exiting:Wl,_maxListeners:Jl,_debugEnd:Yl,_debugProcess:Xl,_fatalException:Zl,_getActiveHandles:ec,_getActiveRequests:tc,_kill:rc,_preload_modules:sc,_rawDebug:nc,_startProfilerIdleNotifier:ic,_stopProfilerIdleNotifier:ac,_tickCallback:oc,_disconnect:uc,_handleQueue:lc,_pendingMessage:cc,_channel:dc,_send:fc,_linkedBinding:hc},ea=pc;globalThis.process=ea;var Mn=o((r,e,t)=>(s,n)=>{let i=-1;return a(0);async function a(u){if(u<=i)throw new Error("next() called multiple times");i=u;let l,c=!1,d;if(r[u]?(d=r[u][0][0],s.req.routeIndex=u):d=u===r.length&&n||void 0,d)try{l=await d(s,()=>a(u+1))}catch(m){if(m instanceof Error&&e)s.error=m,l=await e(m,s),c=!0;else throw m}else s.finalized===!1&&t&&(l=await t(s));return l&&(s.finalized===!1||c)&&(s.res=l),s}},"compose");var ta=Symbol();var ra=o(async(r,e=Object.create(null))=>{let{all:t=!1,dot:s=!1}=e,i=(r instanceof Ks?r.raw.headers:r.headers).get("Content-Type");return i?.startsWith("multipart/form-data")||i?.startsWith("application/x-www-form-urlencoded")?mc(r,{all:t,dot:s}):{}},"parseBody");async function mc(r,e){let t=await r.formData();return t?gc(t,e):{}}o(mc,"parseFormData");function gc(r,e){let t=Object.create(null);return r.forEach((s,n)=>{e.all||n.endsWith("[]")?yc(t,n,s):t[n]=s}),e.dot&&Object.entries(t).forEach(([s,n])=>{s.includes(".")&&(bc(t,s,n),delete t[s])}),t}o(gc,"convertFormDataToBodyData");var yc=o((r,e,t)=>{r[e]!==void 0?Array.isArray(r[e])?r[e].push(t):r[e]=[r[e],t]:e.endsWith("[]")?r[e]=[t]:r[e]=t},"handleParsingAllValues"),bc=o((r,e,t)=>{let s=r,n=e.split(".");n.forEach((i,a)=>{a===n.length-1?s[i]=t:((!s[i]||typeof s[i]!="object"||Array.isArray(s[i])||s[i]instanceof File)&&(s[i]=Object.create(null)),s=s[i])})},"handleParsingNestedValues");var Pn=o(r=>{let e=r.split("/");return e[0]===""&&e.shift(),e},"splitPath"),sa=o(r=>{let{groups:e,path:t}=xc(r),s=Pn(t);return vc(s,e)},"splitRoutingPath"),xc=o(r=>{let e=[];return r=r.replace(/\{[^}]+\}/g,(t,s)=>{let n=`@${s}`;return e.push([n,t]),n}),{groups:e,path:r}},"extractGroupsFromPath"),vc=o((r,e)=>{for(let t=e.length-1;t>=0;t--){let[s]=e[t];for(let n=r.length-1;n>=0;n--)if(r[n].includes(s)){r[n]=r[n].replace(s,e[t][1]);break}}return r},"replaceGroupMarks"),Us={},na=o((r,e)=>{if(r==="*")return"*";let t=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){let s=`${r}#${e}`;return Us[s]||(t[2]?Us[s]=e&&e[0]!==":"&&e[0]!=="*"?[s,t[1],new RegExp(`^${t[2]}(?=/${e})`)]:[r,t[1],new RegExp(`^${t[2]}$`)]:Us[s]=[r,t[1],!0]),Us[s]}return null},"getPattern"),Vs=o((r,e)=>{try{return e(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,t=>{try{return e(t)}catch{return t}})}},"tryDecode"),wc=o(r=>Vs(r,decodeURI),"tryDecodeURI"),zn=o(r=>{let e=r.url,t=e.indexOf("/",e.indexOf(":")+4),s=t;for(;s{let e=zn(r);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},"getPathNoStrict"),St=o((r,e,...t)=>(t.length&&(e=St(e,...t)),`${r?.[0]==="/"?"":"/"}${r}${e==="/"?"":`${r?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),"mergePath"),Hs=o(r=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let e=r.split("/"),t=[],s="";return e.forEach(n=>{if(n!==""&&!/\:/.test(n))s+="/"+n;else if(/\:/.test(n))if(/\?/.test(n)){t.length===0&&s===""?t.push("/"):t.push(s);let i=n.replace("?","");s+="/"+i,t.push(s)}else s+="/"+n}),t.filter((n,i,a)=>a.indexOf(n)===i)},"checkOptionalParameter"),Ln=o(r=>/[%+]/.test(r)?(r.indexOf("+")!==-1&&(r=r.replace(/\+/g," ")),r.indexOf("%")!==-1?Vs(r,Kn):r):r,"_decodeURI"),aa=o((r,e,t)=>{let s;if(!t&&e&&!/[%+]/.test(e)){let a=r.indexOf(`?${e}`,8);for(a===-1&&(a=r.indexOf(`&${e}`,8));a!==-1;){let u=r.charCodeAt(a+e.length+1);if(u===61){let l=a+e.length+2,c=r.indexOf("&",l);return Ln(r.slice(l,c===-1?void 0:c))}else if(u==38||isNaN(u))return"";a=r.indexOf(`&${e}`,a+1)}if(s=/[%+]/.test(r),!s)return}let n={};s??=/[%+]/.test(r);let i=r.indexOf("?",8);for(;i!==-1;){let a=r.indexOf("&",i+1),u=r.indexOf("=",i);u>a&&a!==-1&&(u=-1);let l=r.slice(i+1,u===-1?a===-1?void 0:a:u);if(s&&(l=Ln(l)),i=a,l==="")continue;let c;u===-1?c="":(c=r.slice(u+1,a===-1?void 0:a),s&&(c=Ln(c))),t?(n[l]&&Array.isArray(n[l])||(n[l]=[]),n[l].push(c)):n[l]??=c}return e?n[e]:n},"_getQueryParam"),oa=aa,ua=o((r,e)=>aa(r,e,!0),"getQueryParams"),Kn=decodeURIComponent;var la=o(r=>Vs(r,Kn),"tryDecodeURIComponent"),Ks=o(class{raw;#e;#t;routeIndex=0;path;bodyCache={};constructor(r,e="/",t=[[]]){this.raw=r,this.path=e,this.#t=t,this.#e={}}param(r){return r?this.#r(r):this.#i()}#r(r){let e=this.#t[0][this.routeIndex][1][r],t=this.#n(e);return t&&/\%/.test(t)?la(t):t}#i(){let r={},e=Object.keys(this.#t[0][this.routeIndex][1]);for(let t of e){let s=this.#n(this.#t[0][this.routeIndex][1][t]);s!==void 0&&(r[t]=/\%/.test(s)?la(s):s)}return r}#n(r){return this.#t[1]?this.#t[1][r]:r}query(r){return oa(this.url,r)}queries(r){return ua(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let e={};return this.raw.headers.forEach((t,s)=>{e[s]=t}),e}async parseBody(r){return this.bodyCache.parsedBody??=await ra(this,r)}#s=r=>{let{bodyCache:e,raw:t}=this,s=e[r];if(s)return s;let n=Object.keys(e)[0];return n?e[n].then(i=>(n==="json"&&(i=JSON.stringify(i)),new Response(i)[r]())):e[r]=t[r]()};json(){return this.#s("text").then(r=>JSON.parse(r))}text(){return this.#s("text")}arrayBuffer(){return this.#s("arrayBuffer")}blob(){return this.#s("blob")}formData(){return this.#s("formData")}addValidatedData(r,e){this.#e[r]=e}valid(r){return this.#e[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[ta](){return this.#t}get matchedRoutes(){return this.#t[0].map(([[,r]])=>r)}get routePath(){return this.#t[0].map(([[,r]])=>r)[this.routeIndex].path}},"HonoRequest");var ca={Stringify:1,BeforeStream:2,Stream:3},Ac=o((r,e)=>{let t=new String(r);return t.isEscaped=!0,t.callbacks=e,t},"raw");var Un=o(async(r,e,t,s,n)=>{typeof r=="object"&&!(r instanceof String)&&(r instanceof Promise||(r=r.toString()),r instanceof Promise&&(r=await r));let i=r.callbacks;if(!i?.length)return Promise.resolve(r);n?n[0]+=r:n=[r];let a=Promise.all(i.map(u=>u({phase:e,buffer:n,context:s}))).then(u=>Promise.all(u.filter(Boolean).map(l=>Un(l,e,!1,s,n))).then(()=>n[0]));return t?Ac(await a,i):a},"resolveCallback");var Dc="text/plain; charset=UTF-8",Vn=o((r,e)=>({"Content-Type":r,...e}),"setDefaultContentType"),da=o(class{#e;#t;env={};#r;finalized=!1;error;#i;#n;#s;#c;#u;#l;#o;#d;#f;constructor(r,e){this.#e=r,e&&(this.#n=e.executionCtx,this.env=e.env,this.#l=e.notFoundHandler,this.#f=e.path,this.#d=e.matchResult)}get req(){return this.#t??=new Ks(this.#e,this.#f,this.#d),this.#t}get event(){if(this.#n&&"respondWith"in this.#n)return this.#n;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#n)return this.#n;throw Error("This context has no ExecutionContext")}get res(){return this.#s||=new Response(null,{headers:this.#o??=new Headers})}set res(r){if(this.#s&&r){r=new Response(r.body,r);for(let[e,t]of this.#s.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let s=this.#s.headers.getSetCookie();r.headers.delete("set-cookie");for(let n of s)r.headers.append("set-cookie",n)}else r.headers.set(e,t)}this.#s=r,this.finalized=!0}render=(...r)=>(this.#u??=e=>this.html(e),this.#u(...r));setLayout=r=>this.#c=r;getLayout=()=>this.#c;setRenderer=r=>{this.#u=r};header=(r,e,t)=>{this.finalized&&(this.#s=new Response(this.#s.body,this.#s));let s=this.#s?this.#s.headers:this.#o??=new Headers;e===void 0?s.delete(r):t?.append?s.append(r,e):s.set(r,e)};status=r=>{this.#i=r};set=(r,e)=>{this.#r??=new Map,this.#r.set(r,e)};get=r=>this.#r?this.#r.get(r):void 0;get var(){return this.#r?Object.fromEntries(this.#r):{}}#a(r,e,t){let s=this.#s?new Headers(this.#s.headers):this.#o??new Headers;if(typeof e=="object"&&"headers"in e){let i=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[a,u]of i)a.toLowerCase()==="set-cookie"?s.append(a,u):s.set(a,u)}if(t)for(let[i,a]of Object.entries(t))if(typeof a=="string")s.set(i,a);else{s.delete(i);for(let u of a)s.append(i,u)}let n=typeof e=="number"?e:e?.status??this.#i;return new Response(r,{status:n,headers:s})}newResponse=(...r)=>this.#a(...r);body=(r,e,t)=>this.#a(r,e,t);text=(r,e,t)=>!this.#o&&!this.#i&&!e&&!t&&!this.finalized?new Response(r):this.#a(r,e,Vn(Dc,t));json=(r,e,t)=>this.#a(JSON.stringify(r),e,Vn("application/json",t));html=(r,e,t)=>{let s=o(n=>this.#a(n,e,Vn("text/html; charset=UTF-8",t)),"res");return typeof r=="object"?Un(r,ca.Stringify,!1,{}).then(s):s(r)};redirect=(r,e)=>{let t=String(r);return this.header("Location",/[^\x00-\xFF]/.test(t)?encodeURI(t):t),this.newResponse(null,e??302)};notFound=()=>(this.#l??=()=>new Response,this.#l(this))},"Context");var U="ALL",fa="all",ha=["get","post","put","delete","options","patch"],Qs="Can not add a route since the matcher is already built.",Gs=o(class extends Error{},"UnsupportedPathError");var pa="__COMPOSED_HANDLER";var _c=o(r=>r.text("404 Not Found",404),"notFoundHandler"),ma=o((r,e)=>{if("getResponse"in r){let t=r.getResponse();return e.newResponse(t.body,t)}return console.error(r),e.text("Internal Server Error",500)},"errorHandler"),Hn=o(class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#e="/";routes=[];constructor(r={}){[...ha,fa].forEach(n=>{this[n]=(i,...a)=>(typeof i=="string"?this.#e=i:this.#i(n,this.#e,i),a.forEach(u=>{this.#i(n,this.#e,u)}),this)}),this.on=(n,i,...a)=>{for(let u of[i].flat()){this.#e=u;for(let l of[n].flat())a.map(c=>{this.#i(l.toUpperCase(),this.#e,c)})}return this},this.use=(n,...i)=>(typeof n=="string"?this.#e=n:(this.#e="*",i.unshift(n)),i.forEach(a=>{this.#i(U,this.#e,a)}),this);let{strict:t,...s}=r;Object.assign(this,s),this.getPath=t??!0?r.getPath??zn:ia}#t(){let r=new Hn({router:this.router,getPath:this.getPath});return r.errorHandler=this.errorHandler,r.#r=this.#r,r.routes=this.routes,r}#r=_c;errorHandler=ma;route(r,e){let t=this.basePath(r);return e.routes.map(s=>{let n;e.errorHandler===ma?n=s.handler:(n=o(async(i,a)=>(await Mn([],e.errorHandler)(i,()=>s.handler(i,a))).res,"handler"),n[pa]=s.handler),t.#i(s.method,s.path,n)}),this}basePath(r){let e=this.#t();return e._basePath=St(this._basePath,r),e}onError=r=>(this.errorHandler=r,this);notFound=r=>(this.#r=r,this);mount(r,e,t){let s,n;t&&(typeof t=="function"?n=t:(n=t.optionHandler,t.replaceRequest===!1?s=o(u=>u,"replaceRequest"):s=t.replaceRequest));let i=n?u=>{let l=n(u);return Array.isArray(l)?l:[l]}:u=>{let l;try{l=u.executionCtx}catch{}return[u.env,l]};s||=(()=>{let u=St(this._basePath,r),l=u==="/"?0:u.length;return c=>{let d=new URL(c.url);return d.pathname=d.pathname.slice(l)||"/",new Request(d,c)}})();let a=o(async(u,l)=>{let c=await e(s(u.req.raw),...i(u));if(c)return c;await l()},"handler");return this.#i(U,St(r,"*"),a),this}#i(r,e,t){r=r.toUpperCase(),e=St(this._basePath,e);let s={basePath:this._basePath,path:e,method:r,handler:t};this.router.add(r,e,[t,s]),this.routes.push(s)}#n(r,e){if(r instanceof Error)return this.errorHandler(r,e);throw r}#s(r,e,t,s){if(s==="HEAD")return(async()=>new Response(null,await this.#s(r,e,t,"GET")))();let n=this.getPath(r,{env:t}),i=this.router.match(s,n),a=new da(r,{path:n,matchResult:i,env:t,executionCtx:e,notFoundHandler:this.#r});if(i[0].length===1){let l;try{l=i[0][0][0][0](a,async()=>{a.res=await this.#r(a)})}catch(c){return this.#n(c,a)}return l instanceof Promise?l.then(c=>c||(a.finalized?a.res:this.#r(a))).catch(c=>this.#n(c,a)):l??this.#r(a)}let u=Mn(i[0],this.errorHandler,this.#r);return(async()=>{try{let l=await u(a);if(!l.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return l.res}catch(l){return this.#n(l,a)}})()}fetch=(r,...e)=>this.#s(r,e[1],e[0],r.method);request=(r,e,t,s)=>r instanceof Request?this.fetch(e?new Request(r,e):r,t,s):(r=r.toString(),this.fetch(new Request(/^https?:\/\//.test(r)?r:`http://localhost${St("/",r)}`,e),t,s));fire=()=>{addEventListener("fetch",r=>{r.respondWith(this.#s(r.request,r,void 0,r.request.method))})}},"Hono");var Ws=[];function Qn(r,e){let t=this.buildAllMatchers(),s=o((n,i)=>{let a=t[n]||t[U],u=a[2][i];if(u)return u;let l=i.match(a[0]);if(!l)return[[],Ws];let c=l.indexOf("",1);return[a[1][c],l]},"match2");return this.match=s,s(r,e)}o(Qn,"match");var Js="[^/]+",Gr=".*",Wr="(?:|/.*)",Tt=Symbol(),Ec=new Set(".\\+*[^]$()");function Cc(r,e){return r.length===1?e.length===1?rm!==Gr&&m!==Wr))throw Tt;if(n)return;l=this.#r[d]=new Ys,c!==""&&(l.#t=s.varIndex++)}!n&&c!==""&&t.push([c,l.#t])}else if(l=this.#r[i],!l){if(Object.keys(this.#r).some(c=>c.length>1&&c!==Gr&&c!==Wr))throw Tt;if(n)return;l=this.#r[i]=new Ys}l.insert(a,e,t,s,n)}buildRegExpStr(){let e=Object.keys(this.#r).sort(Cc).map(t=>{let s=this.#r[t];return(typeof s.#t=="number"?`(${t})@${s.#t}`:Ec.has(t)?`\\${t}`:t)+s.buildRegExpStr()});return typeof this.#e=="number"&&e.unshift(`#${this.#e}`),e.length===0?"":e.length===1?e[0]:"(?:"+e.join("|")+")"}},"Node");var ga=o(class{#e={varIndex:0};#t=new Ys;insert(r,e,t){let s=[],n=[];for(let a=0;;){let u=!1;if(r=r.replace(/\{[^}]+\}/g,l=>{let c=`@\\${a}`;return n[a]=[c,l],a++,u=!0,c}),!u)break}let i=r.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let a=n.length-1;a>=0;a--){let[u]=n[a];for(let l=i.length-1;l>=0;l--)if(i[l].indexOf(u)!==-1){i[l]=i[l].replace(u,n[a][1]);break}}return this.#t.insert(i,e,s,this.#e,t),s}buildRegExp(){let r=this.#t.buildRegExpStr();if(r==="")return[/^$/,[],[]];let e=0,t=[],s=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(n,i,a)=>i!==void 0?(t[++e]=Number(i),"$()"):(a!==void 0&&(s[Number(a)]=++e),"")),[new RegExp(`^${r}`),t,s]}},"Trie");var Sc=[/^$/,[],Object.create(null)],ya=Object.create(null);function ba(r){return ya[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,t)=>t?`\\${t}`:"(?:|/.*)")}$`)}o(ba,"buildWildcardRegExp");function Tc(){ya=Object.create(null)}o(Tc,"clearWildcardRegExpCache");function Nc(r){let e=new ga,t=[];if(r.length===0)return Sc;let s=r.map(c=>[!/\*|\/:/.test(c[0]),...c]).sort(([c,d],[m,x])=>c?1:m?-1:d.length-x.length),n=Object.create(null);for(let c=0,d=-1,m=s.length;c[q,Object.create(null)]),Ws]:d++;let O;try{O=e.insert(N,d,x)}catch(q){throw q===Tt?new Gs(N):q}x||(t[d]=C.map(([q,M])=>{let z=Object.create(null);for(M-=1;M>=0;M--){let[j,$]=O[M];z[j]=$}return[q,z]}))}let[i,a,u]=e.buildRegExp();for(let c=0,d=t.length;cn.length-s.length))if(ba(t).test(e))return[...r[t]]}}o(fr,"findMiddleware");var Xs=o(class{name="RegExpRouter";#e;#t;constructor(){this.#e={[U]:Object.create(null)},this.#t={[U]:Object.create(null)}}add(r,e,t){let s=this.#e,n=this.#t;if(!s||!n)throw new Error(Qs);s[r]||[s,n].forEach(u=>{u[r]=Object.create(null),Object.keys(u[U]).forEach(l=>{u[r][l]=[...u[U][l]]})}),e==="/*"&&(e="*");let i=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let u=ba(e);r===U?Object.keys(s).forEach(l=>{s[l][e]||=fr(s[l],e)||fr(s[U],e)||[]}):s[r][e]||=fr(s[r],e)||fr(s[U],e)||[],Object.keys(s).forEach(l=>{(r===U||r===l)&&Object.keys(s[l]).forEach(c=>{u.test(c)&&s[l][c].push([t,i])})}),Object.keys(n).forEach(l=>{(r===U||r===l)&&Object.keys(n[l]).forEach(c=>u.test(c)&&n[l][c].push([t,i]))});return}let a=Hs(e)||[e];for(let u=0,l=a.length;u{(r===U||r===d)&&(n[d][c]||=[...fr(s[d],c)||fr(s[U],c)||[]],n[d][c].push([t,i-l+u+1]))})}}match=Qn;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#t).concat(Object.keys(this.#e)).forEach(e=>{r[e]||=this.#r(e)}),this.#e=this.#t=void 0,Tc(),r}#r(r){let e=[],t=r===U;return[this.#e,this.#t].forEach(s=>{let n=s[r]?Object.keys(s[r]).map(i=>[i,s[r][i]]):[];n.length!==0?(t||=!0,e.push(...n)):r!==U&&e.push(...Object.keys(s[U]).map(i=>[i,s[U][i]]))}),t?Nc(e):null}},"RegExpRouter");var Gn=o(class{name="SmartRouter";#e=[];#t=[];constructor(r){this.#e=r.routers}add(r,e,t){if(!this.#t)throw new Error(Qs);this.#t.push([r,e,t])}match(r,e){if(!this.#t)throw new Error("Fatal error");let t=this.#e,s=this.#t,n=t.length,i=0,a;for(;il.indexOf(a)===u),score:this.#i}}),s}#s(r,e,t,s){let n=[];for(let i=0,a=r.#e.length;i1&&t.sort((u,l)=>u.score-l.score),[t.map(({handler:u,params:l})=>[u,l])]}},"Node");var Jn=o(class{name="TrieRouter";#e;constructor(){this.#e=new Wn}add(r,e,t){let s=Hs(e);if(s){for(let n=0,i=s.length;n{let t=/\.([a-zA-Z0-9]+?)$/,s=r.match(t);if(!s)return;let n=e[s[1]];return n&&n.startsWith("text")&&(n+="; charset=utf-8"),n},"getMimeType");var kc={aac:"audio/aac",avi:"video/x-msvideo",avif:"image/avif",av1:"video/av1",bin:"application/octet-stream",bmp:"image/bmp",css:"text/css",csv:"text/csv",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",gif:"image/gif",gz:"application/gzip",htm:"text/html",html:"text/html",ico:"image/x-icon",ics:"text/calendar",jpeg:"image/jpeg",jpg:"image/jpeg",js:"text/javascript",json:"application/json",jsonld:"application/ld+json",map:"application/json",mid:"audio/x-midi",midi:"audio/x-midi",mjs:"text/javascript",mp3:"audio/mpeg",mp4:"video/mp4",mpeg:"video/mpeg",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",opus:"audio/opus",otf:"font/otf",pdf:"application/pdf",png:"image/png",rtf:"application/rtf",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",ts:"video/mp2t",ttf:"font/ttf",txt:"text/plain",wasm:"application/wasm",webm:"video/webm",weba:"audio/webm",webmanifest:"application/manifest+json",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xml:"application/xml",zip:"application/zip","3gp":"video/3gpp","3g2":"video/3gpp2",gltf:"model/gltf+json",glb:"model/gltf-binary"},Rc=kc;var va=o((...r)=>{let e=r.filter(n=>n!=="").join("/");e=e.replace(/(?<=\/)\/+/g,"");let t=e.split("/"),s=[];for(let n of t)n===".."&&s.length>0&&s.at(-1)!==".."?s.pop():n!=="."&&s.push(n);return s.join("/")||"."},"defaultJoin");var wa={br:".br",zstd:".zst",gzip:".gz"},Oc=Object.keys(wa),Bc="index.html",Aa=o(r=>{let e=r.root??"./",t=r.path,s=r.join??va;return async(n,i)=>{if(n.finalized)return i();let a;if(r.path)a=r.path;else try{if(a=decodeURIComponent(n.req.path),/(?:^|[\/\\])\.\.(?:$|[\/\\])/.test(a))throw new Error}catch{return await r.onNotFound?.(n.req.path,n),i()}let u=s(e,!t&&r.rewriteRequestPath?r.rewriteRequestPath(a):a);r.isDir&&await r.isDir(u)&&(u=s(u,Bc));let l=r.getContent,c=await l(u,n);if(c instanceof Response)return n.newResponse(c.body,c);if(c){let d=r.mimes&&Yn(u,r.mimes)||Yn(u);if(n.header("Content-Type",d||"application/octet-stream"),r.precompressed&&(!d||xa.test(d))){let m=new Set(n.req.header("Accept-Encoding")?.split(",").map(x=>x.trim()));for(let x of Oc){if(!m.has(x))continue;let N=await l(u+wa[x],n);if(N){c=N,n.header("Content-Encoding",x),n.header("Vary","Accept-Encoding",{append:!0});break}}}return await r.onFound?.(u,n),n.body(c)}await r.onNotFound?.(u,n),await i()}},"serveStatic");var Da=o(async(r,e)=>{let t;e&&e.manifest?typeof e.manifest=="string"?t=JSON.parse(e.manifest):t=e.manifest:typeof __STATIC_CONTENT_MANIFEST=="string"?t=JSON.parse(__STATIC_CONTENT_MANIFEST):t=__STATIC_CONTENT_MANIFEST;let s;e&&e.namespace?s=e.namespace:s=__STATIC_CONTENT;let n=t[r]||r;if(!n)return null;let i=await s.get(n,{type:"stream"});return i||null},"getContentFromKVAsset");var _a=o(r=>o(async function(t,s){return Aa({...r,getContent:o(async i=>Da(i,{manifest:r.manifest,namespace:r.namespace?r.namespace:t.env?t.env.__STATIC_CONTENT:void 0}),"getContent")})(t,s)},"serveStatic2"),"serveStatic");var Zs=o(r=>_a(r),"module");var Ea=o(class{#e;constructor(r){this.#e=r,this.raw=r.raw,this.url=r.url?new URL(r.url):null,this.protocol=r.protocol??null}send(r,e){this.#e.send(r,e??{})}raw;binaryType="arraybuffer";get readyState(){return this.#e.readyState}url;protocol;close(r,e){this.#e.close(r,e)}},"WSContext");var Ca=o(r=>(...e)=>{if(typeof e[0]=="function"){let[t,s]=e;return o(async function(i,a){let u=await t(i),l=await r(i,u,s);if(l)return l;await a()},"upgradeWebSocket")}else{let[t,s,n]=e;return(async()=>{let i=await r(t,s,n);if(!i)throw new Error("Failed to upgrade WebSocket");return i})()}},"defineWebSocketHelper");var qc=Ca(async(r,e)=>{if(r.req.header("Upgrade")!=="websocket")return;let s=new WebSocketPair,n=s[0],i=s[1],a=new Ea({close:(u,l)=>i.close(u,l),get protocol(){return i.protocol},raw:i,get readyState(){return i.readyState},url:i.url?new URL(i.url):null,send:u=>i.send(u)});return e.onClose&&i.addEventListener("close",u=>e.onClose?.(u,a)),e.onMessage&&i.addEventListener("message",u=>e.onMessage?.(u,a)),e.onError&&i.addEventListener("error",u=>e.onError?.(u,a)),i.accept?.(),new Response(null,{status:101,webSocket:n})});var en=o(r=>{let t={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...r},s=(i=>typeof i=="string"?i==="*"?()=>i:a=>i===a?a:null:typeof i=="function"?i:a=>i.includes(a)?a:null)(t.origin),n=(i=>typeof i=="function"?i:Array.isArray(i)?()=>i:()=>[])(t.allowMethods);return o(async function(a,u){function l(d,m){a.res.headers.set(d,m)}o(l,"set");let c=await s(a.req.header("origin")||"",a);if(c&&l("Access-Control-Allow-Origin",c),t.origin!=="*"){let d=a.req.header("Vary");d?l("Vary",d):l("Vary","Origin")}if(t.credentials&&l("Access-Control-Allow-Credentials","true"),t.exposeHeaders?.length&&l("Access-Control-Expose-Headers",t.exposeHeaders.join(",")),a.req.method==="OPTIONS"){t.maxAge!=null&&l("Access-Control-Max-Age",t.maxAge.toString());let d=await n(a.req.header("origin")||"",a);d.length&&l("Access-Control-Allow-Methods",d.join(","));let m=t.allowHeaders;if(!m?.length){let x=a.req.header("Access-Control-Request-Headers");x&&(m=x.split(/\s*,\s*/))}return m?.length&&(l("Access-Control-Allow-Headers",m.join(",")),a.res.headers.append("Vary","Access-Control-Request-Headers")),a.res.headers.delete("Content-Length"),a.res.headers.delete("Content-Type"),new Response(null,{headers:a.res.headers,status:204,statusText:"No Content"})}await u()},"cors2")},"cors");var p=Symbol.for("drizzle:entityKind"),Ix=Symbol.for("drizzle:hasOwnEntityKind");function g(r,e){if(!r||typeof r!="object")return!1;if(r instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,p))throw new Error(`Class "${e.name??""}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=r.constructor;if(t)for(;t;){if(p in t&&t[p]===e[p])return!0;t=Object.getPrototypeOf(t)}return!1}o(g,"is");var Fc,B=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType}name;primary;notNull;default;defaultFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}};o(B,"Column"),Fc=p,h(B,Fc,"Column");var Y=Symbol.for("drizzle:SubqueryConfig"),jc,te=class{[(jc=p,Y)];constructor(e,t,s,n=!1){this[Y]={sql:e,selection:t,alias:s,isWith:n}}};o(te,"Subquery"),h(te,jc,"Subquery");var Ic,nt=class extends te{};o(nt,"WithSubquery"),Ic=p,h(nt,Ic,"WithSubquery");function tn(r,...e){return r(...e)}o(tn,"iife");var Sa="0.29.5";var Xn,Zn,Ta={startActiveSpan(r,e){return Xn?(Zn||(Zn=Xn.trace.getTracer("drizzle-orm",Sa)),tn((t,s)=>s.startActiveSpan(r,n=>{try{return e(n)}catch(i){throw n.setStatus({code:t.SpanStatusCode.ERROR,message:i instanceof Error?i.message:"Unknown error"}),i}finally{n.end()}}),Xn,Zn)):e()}};var X=Symbol.for("drizzle:ViewBaseConfig");var rn=Symbol.for("drizzle:Name"),ei=Symbol.for("drizzle:Schema"),Na=Symbol.for("drizzle:Columns"),ti=Symbol.for("drizzle:OriginalName"),ri=Symbol.for("drizzle:BaseName"),ka=Symbol.for("drizzle:IsAlias"),Ra=Symbol.for("drizzle:ExtraConfigBuilder"),Oa=Symbol.for("drizzle:IsDrizzleTable"),$c,v=class{[($c=p,rn)];[ti];[ei];[Na];[ri];[ka]=!1;[Ra]=void 0;[Oa]=!0;constructor(e,t,s){this[rn]=this[ti]=e,this[ei]=t,this[ri]=s}};o(v,"Table"),h(v,$c,"Table"),h(v,"Symbol",{Name:rn,Schema:ei,OriginalName:ti,Columns:Na,BaseName:ri,IsAlias:ka,ExtraConfigBuilder:Ra});function Ba(r){return typeof r=="object"&&r!==null&&Oa in r}o(Ba,"isTable");function it(r){return r[rn]}o(it,"getTableName");var Lc,sn=class{};o(sn,"FakePrimitiveParam"),Lc=p,h(sn,Lc,"FakePrimitiveParam");function si(r){return typeof r=="object"&&r!==null&&"getSQL"in r&&typeof r.getSQL=="function"}o(si,"isSQLWrapper");function Mc(r){let e={sql:"",params:[]};for(let t of r)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}o(Mc,"mergeQueries");var Pc,G=class{value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new D([this])}};o(G,"StringChunk"),Pc=p,h(G,Pc,"StringChunk");var zc,hr=class{constructor(e){this.queryChunks=e}decoder=Fa;shouldInlineParams=!1;append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return Ta.startActiveSpan("drizzle.buildSQL",t=>{let s=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":s.sql,"drizzle.query.params":JSON.stringify(s.params)}),s})}buildQueryFromSourceParams(e,t){let s=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{escapeName:n,escapeParam:i,prepareTyping:a,inlineParams:u,paramStartIndex:l}=s;return Mc(e.map(c=>{if(g(c,G))return{sql:c.value.join(""),params:[]};if(g(c,kt))return{sql:n(c.value),params:[]};if(c===void 0)return{sql:"",params:[]};if(Array.isArray(c)){let d=[new G("(")];for(let[m,x]of c.entries())d.push(x),mr},ja={mapToDriverValue:r=>r},Lv={...Fa,...ja},Uc,de=class{constructor(e,t=ja){this.value=e,this.encoder=t}brand;getSQL(){return new D([this])}};o(de,"Param"),Uc=p,h(de,Uc,"Param");function f(r,...e){let t=[];(e.length>0||r.length>0&&r[0]!=="")&&t.push(new G(r[0]));for(let[s,n]of e.entries())t.push(n,new G(r[s+1]));return new D(t)}o(f,"sql");(r=>{function e(){return new D([])}o(e,"empty"),r.empty=e;function t(l){return new D(l)}o(t,"fromList"),r.fromList=t;function s(l){return new D([new G(l)])}o(s,"raw"),r.raw=s;function n(l,c){let d=[];for(let[m,x]of l.entries())m>0&&c!==void 0&&d.push(c),d.push(x);return new D(d)}o(n,"join"),r.join=n;function i(l){return new kt(l)}o(i,"identifier"),r.identifier=i;function a(l){return new Ve(l)}o(a,"placeholder2"),r.placeholder=a;function u(l,c){return new de(l,c)}o(u,"param2"),r.param=u})(f||(f={}));(r=>{class e{constructor(s,n){this.sql=s,this.fieldAlias=n}static[p]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new e(this.sql,this.fieldAlias)}}o(e,"Aliased"),r.Aliased=e})(D||(D={}));var Vc,Ve=class{constructor(e){this.name=e}getSQL(){return new D([this])}};o(Ve,"Placeholder"),Vc=p,h(Ve,Vc,"Placeholder");function Yr(r,e){return r.map(t=>{if(g(t,Ve)){if(!(t.name in e))throw new Error(`No value for placeholder "${t.name}" was provided`);return e[t.name]}return t})}o(Yr,"fillPlaceholders");var Hc,fe=class{[(Hc=p,X)];constructor({name:e,schema:t,selectedFields:s,query:n}){this[X]={name:e,originalName:e,schema:t,selectedFields:s,query:n,isExisting:!n,isAlias:!1}}getSQL(){return new D([this])}};o(fe,"View"),h(fe,Hc,"View");B.prototype.getSQL=function(){return new D([this])};v.prototype.getSQL=function(){return new D([this])};te.prototype.getSQL=function(){return new D([this])};var Qc,He=class{constructor(e){this.table=e}get(e,t){return t==="table"?this.table:e[t]}};o(He,"ColumnAliasProxyHandler"),Qc=p,h(He,Qc,"ColumnAliasProxyHandler");var Gc,at=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}get(e,t){if(t===v.Symbol.IsAlias)return!0;if(t===v.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===v.Symbol.OriginalName)return this.alias;if(t===X)return{...e[X],name:this.alias,isAlias:!0};if(t===v.Symbol.Columns){let n=e[v.Symbol.Columns];if(!n)return n;let i={};return Object.keys(n).map(a=>{i[a]=new Proxy(n[a],new He(new Proxy(e,this)))}),i}let s=e[t];return g(s,B)?new Proxy(s,new He(new Proxy(e,this))):s}};o(at,"TableAliasProxyHandler"),Gc=p,h(at,Gc,"TableAliasProxyHandler");var Wc,nn=class{constructor(e){this.alias=e}get(e,t){return t==="sourceTable"?Xr(e.sourceTable,this.alias):e[t]}};o(nn,"RelationTableAliasProxyHandler"),Wc=p,h(nn,Wc,"RelationTableAliasProxyHandler");function Xr(r,e){return new Proxy(r,new at(e,!1))}o(Xr,"aliasedTable");function Fe(r,e){return new Proxy(r,new He(new Proxy(r.table,new at(e,!1))))}o(Fe,"aliasedTableColumn");function ni(r,e){return new D.Aliased(Zr(r.sql,e),r.fieldAlias)}o(ni,"mapColumnsInAliasedSQLToAlias");function Zr(r,e){return f.join(r.queryChunks.map(t=>g(t,B)?Fe(t,e):g(t,D)?Zr(t,e):g(t,D.Aliased)?ni(t,e):t))}o(Zr,"mapColumnsInSQLToAlias");var Jc,je=class{config;constructor(e,t,s){this.config={name:e,notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:s}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}};o(je,"ColumnBuilder"),Jc=p,h(je,Jc,"ColumnBuilder");var Yc,Qe=class extends Error{constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}};o(Qe,"DrizzleError"),Yc=p,h(Qe,Yc,"DrizzleError");var Xc,pr=class extends Qe{constructor(){super({message:"Rollback"})}};o(pr,"TransactionRollbackError"),Xc=p,h(pr,Xc,"TransactionRollbackError");function he(r,e){return qa(e)&&!si(r)&&!g(r,de)&&!g(r,Ve)&&!g(r,B)&&!g(r,v)&&!g(r,fe)?new de(r,e):r}o(he,"bindIfParam");var W=o((r,e)=>f`${r} = ${he(e,r)}`,"eq"),Ia=o((r,e)=>f`${r} <> ${he(e,r)}`,"ne");function Ge(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new D(e):new D([new G("("),f.join(e,new G(" and ")),new G(")")])}o(Ge,"and");function $a(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new D(e):new D([new G("("),f.join(e,new G(" or ")),new G(")")])}o($a,"or");function Ma(r){return f`not ${r}`}o(Ma,"not");var La=o((r,e)=>f`${r} > ${he(e,r)}`,"gt"),Pa=o((r,e)=>f`${r} >= ${he(e,r)}`,"gte"),an=o((r,e)=>f`${r} < ${he(e,r)}`,"lt"),za=o((r,e)=>f`${r} <= ${he(e,r)}`,"lte");function on(r,e){if(Array.isArray(e)){if(e.length===0)throw new Error("inArray requires at least one value");return f`${r} in ${e.map(t=>he(t,r))}`}return f`${r} in ${he(e,r)}`}o(on,"inArray");function Ka(r,e){if(Array.isArray(e)){if(e.length===0)throw new Error("notInArray requires at least one value");return f`${r} not in ${e.map(t=>he(t,r))}`}return f`${r} not in ${he(e,r)}`}o(Ka,"notInArray");function Ua(r){return f`${r} is null`}o(Ua,"isNull");function Va(r){return f`${r} is not null`}o(Va,"isNotNull");function Ha(r){return f`exists ${r}`}o(Ha,"exists");function Qa(r){return f`not exists ${r}`}o(Qa,"notExists");function Ga(r,e,t){return f`${r} between ${he(e,r)} and ${he(t,r)}`}o(Ga,"between");function Wa(r,e,t){return f`${r} not between ${he(e,r)} and ${he(t,r)}`}o(Wa,"notBetween");function Ja(r,e){return f`${r} like ${e}`}o(Ja,"like");function Ya(r,e){return f`${r} not like ${e}`}o(Ya,"notLike");function Xa(r,e){return f`${r} ilike ${e}`}o(Xa,"ilike");function Za(r,e){return f`${r} not ilike ${e}`}o(Za,"notIlike");function un(r){return f`${r} asc`}o(un,"asc");function es(r){return f`${r} desc`}o(es,"desc");var Zc,ts=class{write(e){console.log(e)}};o(ts,"ConsoleLogWriter"),Zc=p,h(ts,Zc,"ConsoleLogWriter");var ed,mr=class{writer;constructor(e){this.writer=e?.writer??new ts}logQuery(e,t){let s=t.map(i=>{try{return JSON.stringify(i)}catch{return String(i)}}),n=s.length?` -- params: [${s.join(", ")}]`:"";this.writer.write(`Query: ${e}${n}`)}};o(mr,"DefaultLogger"),ed=p,h(mr,ed,"DefaultLogger");var td,gr=class{logQuery(){}};o(gr,"NoopLogger"),td=p,h(gr,td,"NoopLogger");var rd,se=class{[(rd=p,Symbol.toStringTag)]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};o(se,"QueryPromise"),h(se,rd,"QueryPromise");var eo=Symbol.for("drizzle:PgInlineForeignKeys"),sd,De=class extends v{[(sd=p,eo)]=[];[v.Symbol.ExtraConfigBuilder]=void 0};o(De,"PgTable"),h(De,sd,"PgTable"),h(De,"Symbol",Object.assign({},v.Symbol,{InlineForeignKeys:eo}));var nd,yr=class{columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new rs(e,this.columns,this.name)}};o(yr,"PrimaryKeyBuilder"),nd=p,h(yr,nd,"PgPrimaryKeyBuilder");var id,rs=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s}columns;name;getName(){return this.name??`${this.table[De.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};o(rs,"PrimaryKey"),id=p,h(rs,id,"PgPrimaryKey");var ud,br=class{constructor(e,t,s){this.sourceTable=e,this.referencedTable=t,this.relationName=s,this.referencedTableName=t[v.Symbol.Name]}referencedTableName;fieldName};o(br,"Relation"),ud=p,h(br,ud,"Relation");var ld,ss=class{constructor(e,t){this.table=e,this.config=t}};o(ss,"Relations"),ld=p,h(ss,ld,"Relations");var cd,ii=class extends br{constructor(e,t,s,n){super(e,t,s?.relationName),this.config=s,this.isNullable=n}withFieldName(e){let t=new ii(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},Ie=ii;o(Ie,"One"),cd=p,h(Ie,cd,"One");var dd,ai=class extends br{constructor(e,t,s){super(e,t,s?.relationName),this.config=s}withFieldName(e){let t=new ai(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}},Rt=ai;o(Rt,"Many"),dd=p,h(Rt,dd,"Many");function to(){return{and:Ge,between:Ga,eq:W,exists:Ha,gt:La,gte:Pa,ilike:Xa,inArray:on,isNull:Ua,isNotNull:Va,like:Ja,lt:an,lte:za,ne:Ia,not:Ma,notBetween:Wa,notExists:Qa,notLike:Ya,notIlike:Za,notInArray:Ka,or:$a,sql:f}}o(to,"getOperators");function ro(){return{sql:f,asc:un,desc:es}}o(ro,"getOrderByOperators");function so(r,e){Object.keys(r).length===1&&"default"in r&&!g(r.default,v)&&(r=r.default);let t={},s={},n={};for(let[i,a]of Object.entries(r))if(Ba(a)){let u=a[v.Symbol.Name],l=s[u];t[u]=i,n[i]={tsName:i,dbName:a[v.Symbol.Name],schema:a[v.Symbol.Schema],columns:a[v.Symbol.Columns],relations:l?.relations??{},primaryKey:l?.primaryKey??[]};for(let d of Object.values(a[v.Symbol.Columns]))d.primary&&n[i].primaryKey.push(d);let c=a[v.Symbol.ExtraConfigBuilder]?.(a);if(c)for(let d of Object.values(c))g(d,yr)&&n[i].primaryKey.push(...d.columns)}else if(g(a,ss)){let u=a.table[v.Symbol.Name],l=t[u],c=a.config(e(a.table)),d;for(let[m,x]of Object.entries(c))if(l){let N=n[l];N.relations[m]=x,d&&N.primaryKey.push(...d)}else u in s||(s[u]={relations:{},primaryKey:d}),s[u].relations[m]=x}return{tables:n,tableNamesMap:t}}o(so,"extractTablesRelationalConfig");function ad(r){return o(function(t,s){return new Ie(r,t,s,s?.fields.reduce((n,i)=>n&&i.notNull,!0)??!1)},"one")}o(ad,"createOne");function od(r){return o(function(t,s){return new Rt(r,t,s)},"many")}o(od,"createMany");function no(r,e,t){if(g(t,Ie)&&t.config)return{fields:t.config.fields,references:t.config.references};let s=e[t.referencedTable[v.Symbol.Name]];if(!s)throw new Error(`Table "${t.referencedTable[v.Symbol.Name]}" not found in schema`);let n=r[s];if(!n)throw new Error(`Table "${s}" not found in schema`);let i=t.sourceTable,a=e[i[v.Symbol.Name]];if(!a)throw new Error(`Table "${i[v.Symbol.Name]}" not found in schema`);let u=[];for(let l of Object.values(n.relations))(t.relationName&&t!==l&&l.relationName===t.relationName||!t.relationName&&l.referencedTable===t.sourceTable)&&u.push(l);if(u.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${s}"`):new Error(`There are multiple relations between "${s}" and "${t.sourceTable[v.Symbol.Name]}". Please specify relation name`);if(u[0]&&g(u[0],Ie)&&u[0].config)return{fields:u[0].config.references,references:u[0].config.fields};throw new Error(`There is not enough information to infer relation "${a}.${t.fieldName}"`)}o(no,"normalizeRelation");function io(r){return{one:ad(r),many:od(r)}}o(io,"createTableRelationsHelpers");function ln(r,e,t,s,n=i=>i){let i={};for(let[a,u]of s.entries())if(u.isJson){let l=e.relations[u.tsKey],c=t[a],d=typeof c=="string"?JSON.parse(c):c;i[u.tsKey]=g(l,Ie)?d&&ln(r,r[u.relationTableTsKey],d,u.selection,n):d.map(m=>ln(r,r[u.relationTableTsKey],m,u.selection,n))}else{let l=n(t[a]),c=u.field,d;g(c,B)?d=c:g(c,D)?d=c.decoder:d=c.sql.decoder,i[u.tsKey]=l===null?null:d.mapFromDriverValue(l)}return i}o(ln,"mapRelationalRow");function oi(r){return f`count(${r||f.raw("*")})`.mapWith(Number)}o(oi,"count");function cn(r,e,t){let s={},n=r.reduce((i,{path:a,field:u},l)=>{let c;g(u,B)?c=u:g(u,D)?c=u.decoder:c=u.sql.decoder;let d=i;for(let[m,x]of a.entries())if(m0)for(let[i,a]of Object.entries(s))typeof a=="string"&&!t[a]&&(n[i]=null);return n}o(cn,"mapResultRow");function _e(r,e){return Object.entries(r).reduce((t,[s,n])=>{if(typeof s!="string")return t;let i=e?[...e,s]:[s];return g(n,B)||g(n,D)||g(n,D.Aliased)?t.push({path:i,field:n}):g(n,v)?t.push(..._e(n[v.Symbol.Columns],i)):t.push(..._e(n,i)),t},[])}o(_e,"orderSelectedFields");function ui(r,e){let t=Object.keys(r),s=Object.keys(e);if(t.length!==s.length)return!1;for(let[n,i]of t.entries())if(i!==s[n])return!1;return!0}o(ui,"haveSameKeys");function dn(r,e){let t=Object.entries(e).filter(([,s])=>s!==void 0).map(([s,n])=>g(n,D)?[s,n]:[s,new de(n,r[v.Symbol.Columns][s])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}o(dn,"mapUpdateSet");function ao(r,e){for(let t of e)for(let s of Object.getOwnPropertyNames(t.prototype))s!=="constructor"&&Object.defineProperty(r.prototype,s,Object.getOwnPropertyDescriptor(t.prototype,s)||Object.create(null))}o(ao,"applyMixins");function fn(r){return r[v.Symbol.Columns]}o(fn,"getTableColumns");function li(r){return g(r,te)?r[Y].alias:g(r,fe)?r[X].name:g(r,D)?void 0:r[v.Symbol.IsAlias]?r[v.Symbol.Name]:r[v.Symbol.BaseName]}o(li,"getTableLikeName");var ci=Symbol.for("drizzle:SQLiteInlineForeignKeys"),hd,V=class extends v{[(hd=p,v.Symbol.Columns)];[ci]=[];[v.Symbol.ExtraConfigBuilder]=void 0};o(V,"SQLiteTable"),h(V,hd,"SQLiteTable"),h(V,"Symbol",Object.assign({},v.Symbol,{InlineForeignKeys:ci}));function fd(r,e,t,s,n=r){let i=new V(r,s,n),a=Object.fromEntries(Object.entries(e).map(([l,c])=>{let d=c,m=d.build(i);return i[ci].push(...d.buildForeignKeys(m,i)),[l,m]})),u=Object.assign(i,a);return u[v.Symbol.Columns]=a,t&&(u[V.Symbol.ExtraConfigBuilder]=t),u}o(fd,"sqliteTableBase");var ns=o((r,e,t)=>fd(r,e,t),"sqliteTable");var pd,xr=class{reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:s,columns:n,foreignColumns:i}=e();return{name:s,columns:n,foreignTable:i[0].table,foreignColumns:i}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new is(e,this)}};o(xr,"ForeignKeyBuilder"),pd=p,h(xr,pd,"SQLiteForeignKeyBuilder");var md,is=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),n=t.map(u=>u.name),i=s.map(u=>u.name),a=[this.table[V.Symbol.Name],...n,s[0].table[V.Symbol.Name],...i];return e??`${a.join("_")}_fk`}};o(is,"ForeignKey"),md=p,h(is,md,"SQLiteForeignKey");function di(r,e){return`${r[V.Symbol.Name]}_${e.join("_")}_unique`}o(di,"uniqueKeyName");var gd,as=class{constructor(e,t){this.name=t,this.columns=e}columns;build(e){return new os(e,this.columns,this.name)}};o(as,"UniqueConstraintBuilder"),gd=p,h(as,gd,"SQLiteUniqueConstraintBuilder");var yd,hn=class{name;constructor(e){this.name=e}on(...e){return new as(e,this.name)}};o(hn,"UniqueOnConstraintBuilder"),yd=p,h(hn,yd,"SQLiteUniqueOnConstraintBuilder");var bd,os=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s??di(this.table,this.columns.map(n=>n.name))}columns;name;getName(){return this.name}};o(os,"UniqueConstraint"),bd=p,h(os,bd,"SQLiteUniqueConstraint");var xd,We=class extends je{foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:n})=>((i,a)=>{let u=new xr(()=>{let l=i();return{columns:[e],foreignColumns:[l]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)})(s,n))}};o(We,"SQLiteColumnBuilder"),xd=p,h(We,xd,"SQLiteColumnBuilder");var vd,ye=class extends B{constructor(e,t){t.uniqueName||(t.uniqueName=di(e,[t.name])),super(e,t),this.table=e}};o(ye,"SQLiteColumn"),vd=p,h(ye,vd,"SQLiteColumn");var wd,Ot=class extends We{constructor(e,t,s){super(e,t,s),this.config.autoIncrement=!1}primaryKey(e){return e?.autoIncrement&&(this.config.autoIncrement=!0),this.config.hasDefault=!0,super.primaryKey()}};o(Ot,"SQLiteBaseIntegerBuilder"),wd=p,h(Ot,wd,"SQLiteBaseIntegerBuilder");var Ad,Bt=class extends ye{autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};o(Bt,"SQLiteBaseInteger"),Ad=p,h(Bt,Ad,"SQLiteBaseInteger");var Dd,us=class extends Ot{constructor(e){super(e,"number","SQLiteInteger")}build(e){return new ls(e,this.config)}};o(us,"SQLiteIntegerBuilder"),Dd=p,h(us,Dd,"SQLiteIntegerBuilder");var _d,ls=class extends Bt{};o(ls,"SQLiteInteger"),_d=p,h(ls,_d,"SQLiteInteger");var Ed,cs=class extends Ot{constructor(e,t){super(e,"date","SQLiteTimestamp"),this.config.mode=t}defaultNow(){return this.default(f`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(e){return new ds(e,this.config)}};o(cs,"SQLiteTimestampBuilder"),Ed=p,h(cs,Ed,"SQLiteTimestampBuilder");var Cd,ds=class extends Bt{mode=this.config.mode;mapFromDriverValue(e){return this.config.mode==="timestamp"?new Date(e*1e3):new Date(e)}mapToDriverValue(e){let t=e.getTime();return this.config.mode==="timestamp"?Math.floor(t/1e3):t}};o(ds,"SQLiteTimestamp"),Cd=p,h(ds,Cd,"SQLiteTimestamp");var Sd,fs=class extends Ot{constructor(e,t){super(e,"boolean","SQLiteBoolean"),this.config.mode=t}build(e){return new hs(e,this.config)}};o(fs,"SQLiteBooleanBuilder"),Sd=p,h(fs,Sd,"SQLiteBooleanBuilder");var Td,hs=class extends Bt{mode=this.config.mode;mapFromDriverValue(e){return Number(e)===1}mapToDriverValue(e){return e?1:0}};o(hs,"SQLiteBoolean"),Td=p,h(hs,Td,"SQLiteBoolean");function ne(r,e){return e?.mode==="timestamp"||e?.mode==="timestamp_ms"?new cs(r,e.mode):e?.mode==="boolean"?new fs(r,e.mode):new us(r)}o(ne,"integer");var Nd,ps=class extends We{constructor(e,t){super(e,"string","SQLiteText"),this.config.enumValues=t.enum,this.config.length=t.length}build(e){return new qt(e,this.config)}};o(ps,"SQLiteTextBuilder"),Nd=p,h(ps,Nd,"SQLiteTextBuilder");var kd,qt=class extends ye{enumValues=this.config.enumValues;length=this.config.length;constructor(e,t){super(e,t)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};o(qt,"SQLiteText"),kd=p,h(qt,kd,"SQLiteText");var Rd,ms=class extends We{constructor(e){super(e,"json","SQLiteTextJson")}build(e){return new gs(e,this.config)}};o(ms,"SQLiteTextJsonBuilder"),Rd=p,h(ms,Rd,"SQLiteTextJsonBuilder");var Od,gs=class extends ye{getSQLType(){return"text"}mapFromDriverValue(e){return JSON.parse(e)}mapToDriverValue(e){return JSON.stringify(e)}};o(gs,"SQLiteTextJson"),Od=p,h(gs,Od,"SQLiteTextJson");function I(r,e={}){return e.mode==="json"?new ms(r):new ps(r,e)}o(I,"text");var Bd,fi=class{config;constructor(e){this.config={...e}}get(e,t){if(t===Y)return{...e[Y],selection:new Proxy(e[Y].selection,this)};if(t===X)return{...e[X],selectedFields:new Proxy(e[X].selectedFields,this)};if(typeof t=="symbol")return e[t];let n=(g(e,te)?e[Y].selection:g(e,fe)?e[X].selectedFields:e)[t];if(g(n,D.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!n.isSelectionField)return n.sql;let i=n.clone();return i.isSelectionField=!0,i}if(g(n,D)){if(this.config.sqlBehavior==="sql")return n;throw new Error(`You tried to reference "${t}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return g(n,B)?this.config.alias?new Proxy(n,new He(new Proxy(n.table,new at(this.config.alias,this.config.replaceOriginalName??!1)))):n:typeof n!="object"||n===null?n:new Proxy(n,new fi(this.config))}},oe=fi;o(oe,"SelectionProxyHandler"),Bd=p,h(oe,Bd,"SelectionProxyHandler");var qd,Ft=class extends se{constructor(e,t,s,n){super(),this.table=e,this.session=t,this.dialect=s,this.config={table:e,withList:n}}config;where(e){return this.config.where=e,this}returning(e=this.table[V.Symbol.Columns]){return this.config.returning=_e(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run")}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(e){return this._prepare().execute(e)}$dynamic(){return this}};o(Ft,"SQLiteDeleteBase"),qd=p,h(Ft,qd,"SQLiteDelete");var Fd,jt=class{constructor(e,t,s,n){this.table=e,this.session=t,this.dialect=s,this.withList=n}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw new Error("values() must be called with at least one value");let t=e.map(s=>{let n={},i=this.table[v.Symbol.Columns];for(let a of Object.keys(s)){let u=s[a];n[a]=g(u,D)?u:new de(u,i[a])}return n});return new ys(this.table,t,this.session,this.dialect,this.withList)}};o(jt,"SQLiteInsertBuilder"),Fd=p,h(jt,Fd,"SQLiteInsertBuilder");var jd,ys=class extends se{constructor(e,t,s,n,i){super(),this.session=s,this.dialect=n,this.config={table:e,values:t,withList:i}}config;returning(e=this.config.table[V.Symbol.Columns]){return this.config.returning=_e(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=f`do nothing`;else{let t=Array.isArray(e.target)?f`${e.target}`:f`${[e.target]}`,s=e.where?f` where ${e.where}`:f``;this.config.onConflict=f`${t} do nothing${s}`}return this}onConflictDoUpdate(e){let t=Array.isArray(e.target)?f`${e.target}`:f`${[e.target]}`,s=e.where?f` where ${e.where}`:f``,n=this.dialect.buildUpdateSet(this.config.table,dn(this.config.table,e.set));return this.config.onConflict=f`${t} do update set ${n}${s}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run")}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}};o(ys,"SQLiteInsertBase"),jd=p,h(ys,jd,"SQLiteInsert");var Id,ot=class extends fe{};o(ot,"SQLiteViewBase"),Id=p,h(ot,Id,"SQLiteViewBase");var $d,vr=class{escapeName(e){return`"${e}"`}escapeParam(e){return"?"}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[f`with `];for(let[s,n]of e.entries())t.push(f`${f.identifier(n[Y].alias)} as (${n[Y].sql})`),s{let l=e[v.Symbol.Columns][i],c=f`${f.identifier(l.name)} = ${a}`;return u{let u=[];if(g(i,D.Aliased)&&i.isSelectionField)u.push(f.identifier(i.fieldAlias));else if(g(i,D.Aliased)||g(i,D)){let l=g(i,D.Aliased)?i.sql:i;t?u.push(new D(l.queryChunks.map(c=>g(c,B)?f.identifier(c.name):c))):u.push(l),g(i,D.Aliased)&&u.push(f` as ${f.identifier(i.fieldAlias)}`)}else if(g(i,B)){let l=i.table[v.Symbol.Name],c=i.name;t?u.push(f.identifier(c)):u.push(f`${f.identifier(l)}.${f.identifier(c)}`)}return au?.some(({alias:Ke})=>Ke===(ee[v.Symbol.IsAlias]?it(ee):ee[v.Symbol.BaseName])))(ae.field.table)){let ee=it(ae.field.table);throw new Error(`Your "${ae.path.join("->")}" field references a column "${ee}"."${ae.field.name}", but the table "${ee}" is not part of the query! Did you forget to join it?`)}let O=!u||u.length===0,q=this.buildWithCTE(e),M=x?f` distinct`:void 0,z=this.buildSelection(C,{isSingleTable:O}),j=(()=>g(a,v)&&a[v.Symbol.OriginalName]!==a[v.Symbol.Name]?f`${f.identifier(a[v.Symbol.OriginalName])} ${f.identifier(a[v.Symbol.Name])}`:a)(),$=[];if(u)for(let[ae,ee]of u.entries()){ae===0&&$.push(f` `);let Ke=ee.table;if(g(Ke,V)){let Bn=Ke[V.Symbol.Name],Fi=Ke[V.Symbol.Schema],ji=Ke[V.Symbol.OriginalName],Ii=Bn===ji?void 0:ee.alias;$.push(f`${f.raw(ee.joinType)} join ${Fi?f`${f.identifier(Fi)}.`:void 0}${f.identifier(ji)}${Ii&&f` ${f.identifier(Ii)}`} on ${ee.on}`)}else $.push(f`${f.raw(ee.joinType)} join ${Ke} on ${ee.on}`);ae0?f` group by ${f.join(J)}`:void 0,Ms=F.length>0?f` order by ${f.join(F)}`:void 0,Hr=d?f` limit ${d}`:void 0,Ls=m?f` offset ${m}`:void 0,Ps=f`${q}select${M} ${z} from ${j}${Ce}${Ae}${ar}${S}${Ms}${Hr}${Ls}`;return N.length>0?this.buildSetOperations(Ps,N):Ps}buildSetOperations(e,t){let[s,...n]=t;if(!s)throw new Error("Cannot pass undefined values to any set operator");return n.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:s}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:s}),n)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:s,rightSelect:n,limit:i,orderBy:a,offset:u}}){let l=f`${e.getSQL()} `,c=f`${n.getSQL()}`,d;if(a&&a.length>0){let C=[];for(let O of a)if(g(O,ye))C.push(f.identifier(O.name));else if(g(O,D)){for(let q=0;qf.identifier(C.name));for(let[C,O]of t.entries()){let q=[];for(let[M,z]of l){let j=O[M];if(j===void 0||g(j,de)&&j.value===void 0){let $;if(z.default!==null&&z.default!==void 0)$=g(z.default,D)?z.default:f.param(z.default,z);else if(z.defaultFn!==void 0){let Ce=z.defaultFn();$=g(Ce,D)?Ce:f.param(Ce,z)}else $=f`null`;q.push($)}else q.push(j)}a.push(q),C({dbKey:j.name,tsKey:z,field:Fe(j,u),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let M=Object.fromEntries(Object.entries(i.columns).map(([S,F])=>[S,Fe(F,u)]));if(a.where){let S=typeof a.where=="function"?a.where(M,to()):a.where;C=S&&Zr(S,u)}let z=[],j=[];if(a.columns){let S=!1;for(let[F,J]of Object.entries(a.columns))J!==void 0&&F in i.columns&&(!S&&J===!0&&(S=!0),j.push(F));j.length>0&&(j=S?j.filter(F=>a.columns?.[F]===!0):Object.keys(i.columns).filter(F=>!j.includes(F)))}else j=Object.keys(i.columns);for(let S of j){let F=i.columns[S];z.push({tsKey:S,value:F})}let $=[];a.with&&($=Object.entries(a.with).filter(S=>!!S[1]).map(([S,F])=>({tsKey:S,queryConfig:F,relation:i.relations[S]})));let Ce;if(a.extras){Ce=typeof a.extras=="function"?a.extras(M,{sql:f}):a.extras;for(let[S,F]of Object.entries(Ce))z.push({tsKey:S,value:ni(F,u)})}for(let{tsKey:S,value:F}of z)d.push({dbKey:g(F,D.Aliased)?F.fieldAlias:i.columns[S].name,tsKey:S,field:g(F,B)?Fe(F,u):F,relationTableTsKey:void 0,isJson:!1,selection:[]});let Ae=typeof a.orderBy=="function"?a.orderBy(M,ro()):a.orderBy??[];Array.isArray(Ae)||(Ae=[Ae]),N=Ae.map(S=>g(S,B)?Fe(S,u):Zr(S,u)),m=a.limit,x=a.offset;for(let{tsKey:S,queryConfig:F,relation:J}of $){let ar=no(t,s,J),Ms=J.referencedTable[v.Symbol.Name],Hr=s[Ms],Ls=`${u}_${S}`,Ps=Ge(...ar.fields.map((Ke,Bn)=>W(Fe(ar.references[Bn],Ls),Fe(Ke,u)))),ae=this.buildRelationalQuery({fullSchema:e,schema:t,tableNamesMap:s,table:e[Hr],tableConfig:t[Hr],queryConfig:g(J,Ie)?F===!0?{limit:1}:{...F,limit:1}:F,tableAlias:Ls,joinOn:Ps,nestedQueryRelation:J}),ee=f`(${ae.sql})`.as(S);d.push({dbKey:S,tsKey:S,field:ee,relationTableTsKey:Hr,isJson:!0,selection:ae.selection})}}if(d.length===0)throw new Qe({message:`No fields selected for table "${i.tsName}" ("${u}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let q;if(C=Ge(c,C),l){let M=f`json_array(${f.join(d.map(({field:$})=>g($,ye)?f.identifier($.name):g($,D.Aliased)?$.sql:$),f`, `)})`;g(l,Rt)&&(M=f`coalesce(json_group_array(${M}), json_array())`);let z=[{dbKey:"data",tsKey:"data",field:M.as("data"),isJson:!0,relationTableTsKey:i.tsName,selection:d}];m!==void 0||x!==void 0||N.length>0?(q=this.buildSelectQuery({table:Xr(n,u),fields:{},fieldsFlat:[{path:[],field:f.raw("*")}],where:C,limit:m,offset:x,orderBy:N,setOperators:[]}),C=void 0,m=void 0,x=void 0,N=void 0):q=Xr(n,u),q=this.buildSelectQuery({table:g(q,V)?q:new te(q,{},u),fields:{},fieldsFlat:z.map(({field:$})=>({path:[],field:g($,B)?Fe($,u):$})),joins:O,where:C,limit:m,offset:x,orderBy:N,setOperators:[]})}else q=this.buildSelectQuery({table:Xr(n,u),fields:{},fieldsFlat:d.map(({field:M})=>({path:[],field:g(M,B)?Fe(M,u):M})),joins:O,where:C,limit:m,offset:x,orderBy:N,setOperators:[]});return{tableTsKey:i.tsName,sql:q,selection:d}}};o(vr,"SQLiteDialect"),$d=p,h(vr,$d,"SQLiteDialect");var Md,wr=class extends vr{migrate(e,t,s){let n=s===void 0||typeof s=="string"?"__drizzle_migrations":s.migrationsTable??"__drizzle_migrations",i=f` CREATE TABLE IF NOT EXISTS ${f.identifier(n)} ( id SERIAL PRIMARY KEY, hash text NOT NULL, created_at numeric ) - `;t.run(i);let u=t.values(f`SELECT id, hash, created_at FROM ${f.identifier(n)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;t.run(f`BEGIN`);try{for(let l of e)if(!u||Number(u[2]){for(let c of e)if(!u||Number(u[2])[n,e[n]])):g(e,at)?s=e[Y].selectedFields:g(e,D)?s={}:s=ln(e),new Ar({table:e,fields:s,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};o(fe,"SQLiteSelectBuilder"),$d=p,h(fe,$d,"SQLiteSelectBuilder");var Ld,ms=class extends wr{_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:s,session:n,dialect:i,withList:a,distinct:u}){super(),this.config={withList:a,table:e,fields:{...t},distinct:u,setOperators:[]},this.isPartialSelect=s,this.session=n,this.dialect=i,this._={selectedFields:t},this.tableName=ai(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{}}createJoin(e){return(t,s)=>{let n=this.tableName,i=ai(t);if(typeof i=="string"&&this.config.joins?.some(a=>a.alias===i))throw new Error(`Alias "${i}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof n=="string"&&(this.config.fields={[n]:this.config.fields}),typeof i=="string"&&!g(t,D))){let a=g(t,ee)?t[J].selection:g(t,le)?t[Y].selectedFields:t[v.Symbol.Columns];this.config.fields[i]=a}if(typeof s=="function"&&(s=s(new Proxy(this.config.fields,new ae({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:s,table:t,joinType:e,alias:i}),typeof i=="string")switch(e){case"left":{this.joinsNotNullableMap[i]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[i]=!0;break}case"inner":{this.joinsNotNullableMap[i]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[i]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return s=>{let n=typeof s=="function"?s(qd()):s;if(!ii(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new ae({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new ae({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new ae({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new ae({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),s=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=s:this.config.orderBy=s}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new ee(this.getSQL(),this.config.fields,e),new ae({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ae({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};o(ms,"SQLiteSelectQueryBuilderBase"),Ld=p,h(ms,Ld,"SQLiteSelectQueryBuilder");var Pd,Ar=class extends ms{_prepare(e=!0){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let t=Ae(this.config.fields),s=this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),t,"all");return s.joinsNotNullableMap=this.joinsNotNullableMap,s}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.all()}};o(Ar,"SQLiteSelectBase"),Pd=p,h(Ar,Pd,"SQLiteSelect");ro(Ar,[re]);function fn(r,e){return(t,s,...n)=>{let i=[s,...n].map(a=>({type:r,isAll:e,rightSelect:a}));for(let a of i)if(!ii(t.getSelectedFields(),a.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return t.addSetOperators(i)}}o(fn,"createSetOperator");var qd=o(()=>({union:Fd,unionAll:jd,intersect:Id,except:Md}),"getSQLiteSetOperators"),Fd=fn("union",!1),jd=fn("union",!0),Id=fn("intersect",!1),Md=fn("except",!1);var zd,Dr=class{dialect;$with(e){let t=this;return{as(s){return typeof s=="function"&&(s=s(t)),new Proxy(new st(s.getSQL(),s.getSelectedFields(),e,!0),new ae({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...e){let t=this;function s(i){return new fe({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})}o(s,"select");function n(i){return new fe({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}return o(n,"selectDistinct"),{select:s,selectDistinct:n}}select(e){return new fe({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new fe({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new xr),this.dialect}};o(Dr,"QueryBuilder"),zd=p,h(Dr,zd,"SQLiteQueryBuilder");var Ud,jt=class{constructor(e,t,s,n){this.table=e,this.session=t,this.dialect=s,this.withList=n}set(e){return new gs(this.table,un(this.table,e),this.session,this.dialect,this.withList)}};o(jt,"SQLiteUpdateBuilder"),Ud=p,h(jt,Ud,"SQLiteUpdateBuilder");var Vd,gs=class extends re{constructor(e,t,s,n,i){super(),this.session=s,this.dialect=n,this.config={set:t,table:e,withList:i}}config;where(e){return this.config.where=e,this}returning(e=this.config.table[K.Symbol.Columns]){return this.config.returning=Ae(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run")}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}};o(gs,"SQLiteUpdateBase"),Vd=p,h(gs,Vd,"SQLiteUpdate");var Kd,_r=class{constructor(e,t,s,n,i,a,u,l){this.mode=e,this.fullSchema=t,this.schema=s,this.tableNamesMap=n,this.table=i,this.tableConfig=a,this.dialect=u,this.session=l}findMany(e){return this.mode==="sync"?new Er(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many"):new It(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return this.mode==="sync"?new Er(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first"):new It(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}};o(_r,"RelationalQueryBuilder"),Kd=p,h(_r,Kd,"SQLiteAsyncRelationalQueryBuilder");var Hd,It=class extends re{constructor(e,t,s,n,i,a,u,l,c){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=s,this.table=n,this.tableConfig=i,this.dialect=a,this.session=u,this.config=l,this.mode=c}mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(e=!1){let{query:t,builtQuery:s}=this._toSQL();return this.session[e?"prepareOneTimeQuery":"prepareQuery"](s,void 0,this.mode==="first"?"get":"all",(n,i)=>{let a=n.map(u=>an(this.schema,this.tableConfig,u,t.selection,i));return this.mode==="first"?a[0]:a})}prepare(){return this._prepare(!1)}_toSQL(){let e=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return this.mode==="first"?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}};o(It,"SQLiteRelationalQuery"),Hd=p,h(It,Hd,"SQLiteAsyncRelationalQuery");var Qd,Er=class extends It{sync(){return this.executeRaw()}};o(Er,"SQLiteSyncRelationalQuery"),Qd=p,h(Er,Qd,"SQLiteSyncRelationalQuery");var Gd,We=class extends re{constructor(e,t,s,n,i){super(),this.execute=e,this.getSQL=t,this.dialect=n,this.mapBatchResult=i,this.config={action:s}}config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}};o(We,"SQLiteRaw"),Gd=p,h(We,Gd,"SQLiteRaw");var Wd,ot=class{constructor(e,t,s,n){this.resultKind=e,this.dialect=t,this.session=s,this._=n?{schema:n.schema,tableNamesMap:n.tableNamesMap}:{schema:void 0,tableNamesMap:{}},this.query={};let i=this.query;if(this._.schema)for(let[a,u]of Object.entries(this._.schema))i[a]=new _r(e,n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[a],u,t,s)}query;$with(e){return{as(t){return typeof t=="function"&&(t=t(new Dr)),new Proxy(new st(t.getSQL(),t.getSelectedFields(),e,!0),new ae({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...e){let t=this;function s(l){return new fe({fields:l??void 0,session:t.session,dialect:t.dialect,withList:e})}o(s,"select");function n(l){return new fe({fields:l??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}o(n,"selectDistinct");function i(l){return new jt(l,t.session,t.dialect,e)}o(i,"update");function a(l){return new Ft(l,t.session,t.dialect,e)}o(a,"insert");function u(l){return new qt(l,t.session,t.dialect,e)}return o(u,"delete_"),{select:s,selectDistinct:n,update:i,insert:a,delete:u}}select(e){return new fe({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new fe({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new jt(e,this.session,this.dialect)}insert(e){return new Ft(e,this.session,this.dialect)}delete(e){return new qt(e,this.session,this.dialect)}run(e){let t=e.getSQL();return this.resultKind==="async"?new We(async()=>this.session.run(t),()=>t,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(t)}all(e){let t=e.getSQL();return this.resultKind==="async"?new We(async()=>this.session.all(t),()=>t,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(t)}get(e){let t=e.getSQL();return this.resultKind==="async"?new We(async()=>this.session.get(t),()=>t,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(t)}values(e){let t=e.getSQL();return this.resultKind==="async"?new We(async()=>this.session.values(t),()=>t,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(t)}transaction(e,t){return this.session.transaction(e,t)}};o(ot,"BaseSQLiteDatabase"),Wd=p,h(ot,Wd,"BaseSQLiteDatabase");var Jd,ys=class extends re{constructor(e){super(),this.resultCb=e}async execute(){return this.resultCb()}sync(){return this.resultCb()}};o(ys,"ExecuteResultSync"),Jd=p,h(ys,Jd,"ExecuteResultSync");var Yd,Cr=class{constructor(e,t,s){this.mode=e,this.executeMethod=t,this.query=s}joinsNotNullableMap;getQuery(){return this.query}mapRunResult(e,t){return e}mapAllResult(e,t){throw new Error("Not implemented")}mapGetResult(e,t){throw new Error("Not implemented")}execute(e){return this.mode==="async"?this[this.executeMethod](e):new ys(()=>this[this.executeMethod](e))}mapResult(e,t){switch(this.executeMethod){case"run":return this.mapRunResult(e,t);case"all":return this.mapAllResult(e,t);case"get":return this.mapGetResult(e,t)}}};o(Cr,"SQLitePreparedQuery"),Yd=p,h(Cr,Yd,"PreparedQuery");var Xd,Tr=class{constructor(e){this.dialect=e}prepareOneTimeQuery(e,t,s){return this.prepareQuery(e,t,s)}run(e){let t=this.dialect.sqlToQuery(e);try{return this.prepareOneTimeQuery(t,void 0,"run").run()}catch(s){throw new He({cause:s,message:`Failed to run the query '${t.sql}'`})}}extractRawRunValueFromBatchResult(e){return e}all(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run").all()}extractRawAllValueFromBatchResult(e){throw new Error("Not implemented")}get(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run").get()}extractRawGetValueFromBatchResult(e){throw new Error("Not implemented")}values(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run").values()}extractRawValuesValueFromBatchResult(e){throw new Error("Not implemented")}};o(Tr,"SQLiteSession"),Xd=p,h(Tr,Xd,"SQLiteSession");var Zd,Sr=class extends ot{constructor(e,t,s,n,i=0){super(e,t,s,n),this.schema=n,this.nestedIndex=i}rollback(){throw new fr}};o(Sr,"SQLiteTransaction"),Zd=p,h(Sr,Zd,"SQLiteTransaction");var so=Symbol.for("drizzle:MySqlInlineForeignKeys"),ef,Ie=class extends v{[(ef=p,v.Symbol.Columns)];[so]=[];[v.Symbol.ExtraConfigBuilder]=void 0};o(Ie,"MySqlTable"),h(Ie,ef,"MySqlTable"),h(Ie,"Symbol",Object.assign({},v.Symbol,{InlineForeignKeys:so}));var tf,Nr=class{reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:s,columns:n,foreignColumns:i}=e();return{name:s,columns:n,foreignTable:i[0].table,foreignColumns:i}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new bs(e,this)}};o(Nr,"ForeignKeyBuilder"),tf=p,h(Nr,tf,"MySqlForeignKeyBuilder");var rf,bs=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),n=t.map(u=>u.name),i=s.map(u=>u.name),a=[this.table[Ie.Symbol.Name],...n,s[0].table[Ie.Symbol.Name],...i];return e??`${a.join("_")}_fk`}};o(bs,"ForeignKey"),rf=p,h(bs,rf,"MySqlForeignKey");function ci(r,e){return`${r[Ie.Symbol.Name]}_${e.join("_")}_unique`}o(ci,"uniqueKeyName");var sf,xs=class{constructor(e,t){this.name=t,this.columns=e}columns;build(e){return new vs(e,this.columns,this.name)}};o(xs,"UniqueConstraintBuilder"),sf=p,h(xs,sf,"MySqlUniqueConstraintBuilder");var nf,hn=class{name;constructor(e){this.name=e}on(...e){return new xs(e,this.name)}};o(hn,"UniqueOnConstraintBuilder"),nf=p,h(hn,nf,"MySqlUniqueOnConstraintBuilder");var af,vs=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s??ci(this.table,this.columns.map(n=>n.name))}columns;name;nullsNotDistinct=!1;getName(){return this.name}};o(vs,"UniqueConstraint"),af=p,h(vs,af,"MySqlUniqueConstraint");var of,Ce=class extends Fe{foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:n})=>((i,a)=>{let u=new Nr(()=>{let l=i();return{columns:[e],foreignColumns:[l]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)})(s,n))}};o(Ce,"MySqlColumnBuilder"),of=p,h(Ce,of,"MySqlColumnBuilder");var uf,Te=class extends B{constructor(e,t){t.uniqueName||(t.uniqueName=ci(e,[t.name])),super(e,t),this.table=e}};o(Te,"MySqlColumn"),uf=p,h(Te,uf,"MySqlColumn");var lf,pn=class extends Ce{constructor(e,t,s){super(e,t,s),this.config.autoIncrement=!1}autoincrement(){return this.config.autoIncrement=!0,this.config.hasDefault=!0,this}};o(pn,"MySqlColumnBuilderWithAutoIncrement"),lf=p,h(pn,lf,"MySqlColumnBuilderWithAutoIncrement");var cf,mn=class extends Te{autoIncrement=this.config.autoIncrement};o(mn,"MySqlColumnWithAutoIncrement"),cf=p,h(mn,cf,"MySqlColumnWithAutoIncrement");var df,gn=class extends Ce{constructor(e,t){super(e,"string","MySqlChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new Mt(e,this.config)}};o(gn,"MySqlCharBuilder"),df=p,h(gn,df,"MySqlCharBuilder");var ff,Mt=class extends Te{length=this.config.length;enumValues=this.config.enum;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}};o(Mt,"MySqlChar"),ff=p,h(Mt,ff,"MySqlChar");var hf,yn=class extends Ce{constructor(e,t){super(e,"string","MySqlVarBinary"),this.config.length=t?.length}build(e){return new $t(e,this.config)}};o(yn,"MySqlVarBinaryBuilder"),hf=p,h(yn,hf,"MySqlVarBinaryBuilder");var pf,$t=class extends Te{length=this.config.length;getSQLType(){return this.length===void 0?"varbinary":`varbinary(${this.length})`}};o($t,"MySqlVarBinary"),pf=p,h($t,pf,"MySqlVarBinary");var mf,bn=class extends Ce{constructor(e,t){super(e,"string","MySqlVarChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new Lt(e,this.config)}};o(bn,"MySqlVarCharBuilder"),mf=p,h(bn,mf,"MySqlVarCharBuilder");var gf,Lt=class extends Te{length=this.config.length;enumValues=this.config.enum;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};o(Lt,"MySqlVarChar"),gf=p,h(Lt,gf,"MySqlVarChar");var yf,kr=class{reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:s,columns:n,foreignColumns:i}=e();return{name:s,columns:n,foreignTable:i[0].table,foreignColumns:i}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new ws(e,this)}};o(kr,"ForeignKeyBuilder"),yf=p,h(kr,yf,"PgForeignKeyBuilder");var bf,ws=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),n=t.map(u=>u.name),i=s.map(u=>u.name),a=[this.table[we.Symbol.Name],...n,s[0].table[we.Symbol.Name],...i];return e??`${a.join("_")}_fk`}};o(ws,"ForeignKey"),bf=p,h(ws,bf,"PgForeignKey");function di(r,e){return`${r[we.Symbol.Name]}_${e.join("_")}_unique`}o(di,"uniqueKeyName");var xf,As=class{constructor(e,t){this.name=t,this.columns=e}columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new Ds(e,this.columns,this.nullsNotDistinctConfig,this.name)}};o(As,"UniqueConstraintBuilder"),xf=p,h(As,xf,"PgUniqueConstraintBuilder");var vf,xn=class{name;constructor(e){this.name=e}on(...e){return new As(e,this.name)}};o(xn,"UniqueOnConstraintBuilder"),vf=p,h(xn,vf,"PgUniqueOnConstraintBuilder");var wf,Ds=class{constructor(e,t,s,n){this.table=e,this.columns=t,this.name=n??di(this.table,this.columns.map(i=>i.name)),this.nullsNotDistinct=s}columns;name;nullsNotDistinct=!1;getName(){return this.name}};o(Ds,"UniqueConstraint"),wf=p,h(Ds,wf,"PgUniqueConstraint");function no(r,e,t){for(let s=e;sArray.isArray(e)?fi(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}o(fi,"makePgArray");var Af,Se=class extends Fe{foreignKeyConfigs=[];array(e){return new _s(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:n})=>Xs((i,a)=>{let u=new kr(()=>{let l=i();return{columns:[e],foreignColumns:[l]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)},s,n))}};o(Se,"PgColumnBuilder"),Af=p,h(Se,Af,"PgColumnBuilder");var Df,Ne=class extends B{constructor(e,t){t.uniqueName||(t.uniqueName=di(e,[t.name])),super(e,t),this.table=e}};o(Ne,"PgColumn"),Df=p,h(Ne,Df,"PgColumn");var _f,_s=class extends Se{constructor(e,t,s){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=s}build(e){let t=this.config.baseBuilder.build(e);return new Es(e,this.config,t)}};o(_s,"PgArrayBuilder"),_f=p,h(_s,_f,"PgArrayBuilder");var Ef,hi=class extends Ne{constructor(e,t,s,n){super(e,t),this.baseColumn=s,this.range=n,this.size=t.size}size;getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size=="number"?this.size:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=ao(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapToDriverValue(e,t=!1){let s=e.map(n=>n===null?null:g(this.baseColumn,hi)?this.baseColumn.mapToDriverValue(n,!0):this.baseColumn.mapToDriverValue(n));return t?s:fi(s)}},Es=hi;o(Es,"PgArray"),Ef=p,h(Es,Ef,"PgArray");var Cf,vn=class extends Se{constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Pt(e,this.config)}};o(vn,"PgCharBuilder"),Cf=p,h(vn,Cf,"PgCharBuilder");var Tf,Pt=class extends Ne{length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}};o(Pt,"PgChar"),Tf=p,h(Pt,Tf,"PgChar");var Sf,wn=class extends Se{constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(f`gen_random_uuid()`)}build(e){return new zt(e,this.config)}};o(wn,"PgUUIDBuilder"),Sf=p,h(wn,Sf,"PgUUIDBuilder");var Nf,zt=class extends Ne{getSQLType(){return"uuid"}};o(zt,"PgUUID"),Nf=p,h(zt,Nf,"PgUUID");var kf,An=class extends Se{constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Ut(e,this.config)}};o(An,"PgVarcharBuilder"),kf=p,h(An,kf,"PgVarcharBuilder");var Rf,Ut=class extends Ne{length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};o(Ut,"PgVarchar"),Rf=p,h(Ut,Rf,"PgVarchar");var H={};tu(H,{BRAND:()=>sh,DIRTY:()=>Vt,EMPTY_PATH:()=>Ff,INVALID:()=>_,NEVER:()=>Mh,OK:()=>oe,ParseStatus:()=>X,Schema:()=>k,ZodAny:()=>Xe,ZodArray:()=>pe,ZodBigInt:()=>Re,ZodBoolean:()=>lt,ZodBranded:()=>qr,ZodCatch:()=>xt,ZodDate:()=>$e,ZodDefault:()=>bt,ZodDiscriminatedUnion:()=>Qt,ZodEffects:()=>be,ZodEnum:()=>Oe,ZodError:()=>ne,ZodFirstPartyTypeKind:()=>E,ZodFunction:()=>Ze,ZodIntersection:()=>ht,ZodIssueCode:()=>y,ZodLazy:()=>mt,ZodLiteral:()=>gt,ZodMap:()=>Gt,ZodNaN:()=>Wt,ZodNativeEnum:()=>yt,ZodNever:()=>_e,ZodNull:()=>dt,ZodNullable:()=>Be,ZodNumber:()=>ke,ZodObject:()=>P,ZodOptional:()=>xe,ZodParsedType:()=>w,ZodPipeline:()=>vt,ZodPromise:()=>et,ZodReadonly:()=>wt,ZodRecord:()=>pt,ZodSchema:()=>k,ZodSet:()=>Pe,ZodString:()=>he,ZodSymbol:()=>Kt,ZodTransformer:()=>be,ZodTuple:()=>ye,ZodType:()=>k,ZodUndefined:()=>ct,ZodUnion:()=>ft,ZodUnknown:()=>Le,ZodVoid:()=>Ht,addIssueToContext:()=>b,any:()=>fh,array:()=>Jt,bigint:()=>oh,boolean:()=>yo,coerce:()=>Ih,custom:()=>mo,date:()=>uh,datetimeRegex:()=>ho,defaultErrorMap:()=>Je,discriminatedUnion:()=>bh,effect:()=>Nh,enum:()=>Ch,function:()=>Dh,getErrorMap:()=>Rr,getParsedType:()=>Me,instanceof:()=>ih,intersection:()=>xh,isAborted:()=>Dn,isAsync:()=>Or,isDirty:()=>_n,isValid:()=>ut,late:()=>nh,lazy:()=>_h,literal:()=>Eh,makeIssue:()=>Cs,map:()=>wh,nan:()=>ah,nativeEnum:()=>Th,never:()=>ph,null:()=>dh,nullable:()=>Rh,number:()=>go,object:()=>yi,objectUtil:()=>pi,oboolean:()=>jh,onumber:()=>Fh,optional:()=>kh,ostring:()=>qh,pipeline:()=>Bh,preprocess:()=>Oh,promise:()=>Sh,quotelessJson:()=>Of,record:()=>bi,set:()=>Ah,setErrorMap:()=>qf,strictObject:()=>gh,string:()=>Fr,symbol:()=>lh,transformer:()=>Nh,tuple:()=>vh,undefined:()=>ch,union:()=>yh,unknown:()=>hh,util:()=>R,void:()=>mh});var R;(function(r){r.assertEqual=n=>{};function e(n){}o(e,"assertIs"),r.assertIs=e;function t(n){throw new Error}o(t,"assertNever"),r.assertNever=t,r.arrayToEnum=n=>{let i={};for(let a of n)i[a]=a;return i},r.getValidEnumValues=n=>{let i=r.objectKeys(n).filter(u=>typeof n[n[u]]!="number"),a={};for(let u of i)a[u]=n[u];return r.objectValues(a)},r.objectValues=n=>r.objectKeys(n).map(function(i){return n[i]}),r.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let i=[];for(let a in n)Object.prototype.hasOwnProperty.call(n,a)&&i.push(a);return i},r.find=(n,i)=>{for(let a of n)if(i(a))return a},r.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function s(n,i=" | "){return n.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}o(s,"joinValues"),r.joinValues=s,r.jsonStringifyReplacer=(n,i)=>typeof i=="bigint"?i.toString():i})(R||(R={}));var pi;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(pi||(pi={}));var w=R.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Me=o(r=>{switch(typeof r){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(r)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(r)?w.array:r===null?w.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?w.promise:typeof Map<"u"&&r instanceof Map?w.map:typeof Set<"u"&&r instanceof Set?w.set:typeof Date<"u"&&r instanceof Date?w.date:w.object;default:return w.unknown}},"getParsedType");var y=R.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Of=o(r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),"quotelessJson"),ne=class extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(i){return i.message},s={_errors:[]},n=o(i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(n);else if(a.code==="invalid_return_type")n(a.returnTypeError);else if(a.code==="invalid_arguments")n(a.argumentsError);else if(a.path.length===0)s._errors.push(t(a));else{let u=s,l=0;for(;lt.message){let t={},s=[];for(let n of this.issues)if(n.path.length>0){let i=n.path[0];t[i]=t[i]||[],t[i].push(e(n))}else s.push(e(n));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}};o(ne,"ZodError");ne.create=r=>new ne(r);var Bf=o((r,e)=>{let t;switch(r.code){case y.invalid_type:r.received===w.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case y.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,R.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:t=`Unrecognized key(s) in object: ${R.joinValues(r.keys,", ")}`;break;case y.invalid_union:t="Invalid input";break;case y.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${R.joinValues(r.options)}`;break;case y.invalid_enum_value:t=`Invalid enum value. Expected ${R.joinValues(r.options)}, received '${r.received}'`;break;case y.invalid_arguments:t="Invalid function arguments";break;case y.invalid_return_type:t="Invalid function return type";break;case y.invalid_date:t="Invalid date";break;case y.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:R.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case y.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case y.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case y.custom:t="Invalid input";break;case y.invalid_intersection_types:t="Intersection results could not be merged";break;case y.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case y.not_finite:t="Number must be finite";break;default:t=e.defaultError,R.assertNever(r)}return{message:t}},"errorMap"),Je=Bf;var oo=Je;function qf(r){oo=r}o(qf,"setErrorMap");function Rr(){return oo}o(Rr,"getErrorMap");var Cs=o(r=>{let{data:e,path:t,errorMaps:s,issueData:n}=r,i=[...t,...n.path||[]],a={...n,path:i};if(n.message!==void 0)return{...n,path:i,message:n.message};let u="",l=s.filter(c=>!!c).slice().reverse();for(let c of l)u=c(a,{data:e,defaultError:u}).message;return{...n,path:i,message:u}},"makeIssue"),Ff=[];function b(r,e){let t=Rr(),s=Cs({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===Je?void 0:Je].filter(n=>!!n)});r.common.issues.push(s)}o(b,"addIssueToContext");var X=class{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let s=[];for(let n of t){if(n.status==="aborted")return _;n.status==="dirty"&&e.dirty(),s.push(n.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){let s=[];for(let n of t){let i=await n.key,a=await n.value;s.push({key:i,value:a})}return X.mergeObjectSync(e,s)}static mergeObjectSync(e,t){let s={};for(let n of t){let{key:i,value:a}=n;if(i.status==="aborted"||a.status==="aborted")return _;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||n.alwaysSet)&&(s[i.value]=a.value)}return{status:e.value,value:s}}};o(X,"ParseStatus");var _=Object.freeze({status:"aborted"}),Vt=o(r=>({status:"dirty",value:r}),"DIRTY"),oe=o(r=>({status:"valid",value:r}),"OK"),Dn=o(r=>r.status==="aborted","isAborted"),_n=o(r=>r.status==="dirty","isDirty"),ut=o(r=>r.status==="valid","isValid"),Or=o(r=>typeof Promise<"u"&&r instanceof Promise,"isAsync");var A;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(A||(A={}));var ge=class{constructor(e,t,s,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};o(ge,"ParseInputLazyPath");var uo=o((r,e)=>{if(ut(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new ne(r.common.issues);return this._error=t,this._error}}},"handleResult");function S(r){if(!r)return{};let{errorMap:e,invalid_type_error:t,required_error:s,description:n}=r;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:o((a,u)=>{let{message:l}=r;return a.code==="invalid_enum_value"?{message:l??u.defaultError}:typeof u.data>"u"?{message:l??s??u.defaultError}:a.code!=="invalid_type"?{message:u.defaultError}:{message:l??t??u.defaultError}},"customMap"),description:n}}o(S,"processCreateParams");var k=class{get description(){return this._def.description}_getType(e){return Me(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Me(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new X,ctx:{common:e.parent.common,data:e.data,parsedType:Me(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Or(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){let s={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Me(e)},n=this._parseSync({data:e,path:s.path,parent:s});return uo(s,n)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Me(e)};if(!this["~standard"].async)try{let s=this._parseSync({data:e,path:[],parent:t});return ut(s)?{value:s.value}:{issues:t.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>ut(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){let s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){let s={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Me(e)},n=this._parse({data:e,path:s.path,parent:s}),i=await(Or(n)?n:Promise.resolve(n));return uo(s,i)}refine(e,t){let s=o(n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t,"getIssueProperties");return this._refinement((n,i)=>{let a=e(n),u=o(()=>i.addIssue({code:y.custom,...s(n)}),"setError");return typeof Promise<"u"&&a instanceof Promise?a.then(l=>l?!0:(u(),!1)):a?!0:(u(),!1)})}refinement(e,t){return this._refinement((s,n)=>e(s)?!0:(n.addIssue(typeof t=="function"?t(s,n):t),!1))}_refinement(e){return new be({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return xe.create(this,this._def)}nullable(){return Be.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return pe.create(this)}promise(){return et.create(this,this._def)}or(e){return ft.create([this,e],this._def)}and(e){return ht.create(this,e,this._def)}transform(e){return new be({...S(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new bt({...S(this._def),innerType:this,defaultValue:t,typeName:E.ZodDefault})}brand(){return new qr({typeName:E.ZodBranded,type:this,...S(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new xt({...S(this._def),innerType:this,catchValue:t,typeName:E.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return vt.create(this,e)}readonly(){return wt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};o(k,"ZodType");var jf=/^c[^\s-]{8,}$/i,If=/^[0-9a-z]+$/,Mf=/^[0-9A-HJKMNP-TV-Z]{26}$/i,$f=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Lf=/^[a-z0-9_-]{21}$/i,Pf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,zf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Uf=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Vf="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",mi,Kf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Hf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Qf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Gf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Wf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Jf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,co="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Yf=new RegExp(`^${co}$`);function fo(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let t=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}o(fo,"timeRegexSource");function Xf(r){return new RegExp(`^${fo(r)}$`)}o(Xf,"timeRegex");function ho(r){let e=`${co}T${fo(r)}`,t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}o(ho,"datetimeRegex");function Zf(r,e){return!!((e==="v4"||!e)&&Kf.test(r)||(e==="v6"||!e)&&Qf.test(r))}o(Zf,"isValidIP");function eh(r,e){if(!Pf.test(r))return!1;try{let[t]=r.split(".");if(!t)return!1;let s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(s));return!(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}o(eh,"isValidJWT");function th(r,e){return!!((e==="v4"||!e)&&Hf.test(r)||(e==="v6"||!e)&&Gf.test(r))}o(th,"isValidCidr");var he=class extends k{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==w.string){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_type,expected:w.string,received:i.parsedType}),_}let s=new X,n;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(n=this._getOrReturnCtx(e,n),b(n,{code:y.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),s.dirty());else if(i.kind==="length"){let a=e.data.length>i.value,u=e.data.lengthe.test(n),{validation:t,code:y.invalid_string,...A.errToObj(s)})}_addCheck(e){return new he({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...A.errToObj(e)})}url(e){return this._addCheck({kind:"url",...A.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...A.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...A.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...A.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...A.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...A.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...A.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...A.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...A.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...A.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...A.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...A.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...A.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...A.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...A.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...A.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...A.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...A.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...A.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...A.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...A.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...A.errToObj(t)})}nonempty(e){return this.min(1,A.errToObj(e))}trim(){return new he({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new he({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new he({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew he({checks:[],typeName:E.ZodString,coerce:r?.coerce??!1,...S(r)});function rh(r,e){let t=(r.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,n=t>s?t:s,i=Number.parseInt(r.toFixed(n).replace(".","")),a=Number.parseInt(e.toFixed(n).replace(".",""));return i%a/10**n}o(rh,"floatSafeRemainder");var ke=class extends k{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==w.number){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_type,expected:w.number,received:i.parsedType}),_}let s,n=new X;for(let i of this._def.checks)i.kind==="int"?R.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),b(s,{code:y.invalid_type,expected:"integer",received:"float",message:i.message}),n.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),n.dirty()):i.kind==="multipleOf"?rh(e.data,i.value)!==0&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),n.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),b(s,{code:y.not_finite,message:i.message}),n.dirty()):R.assertNever(i);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,A.toString(t))}gt(e,t){return this.setLimit("min",e,!1,A.toString(t))}lte(e,t){return this.setLimit("max",e,!0,A.toString(t))}lt(e,t){return this.setLimit("max",e,!1,A.toString(t))}setLimit(e,t,s,n){return new ke({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:A.toString(n)}]})}_addCheck(e){return new ke({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:A.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:A.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:A.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:A.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:A.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:A.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:A.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:A.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:A.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&R.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.valuenew ke({checks:[],typeName:E.ZodNumber,coerce:r?.coerce||!1,...S(r)});var Re=class extends k{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==w.bigint)return this._getInvalidInput(e);let s,n=new X;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),n.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),n.dirty()):R.assertNever(i);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return b(t,{code:y.invalid_type,expected:w.bigint,received:t.parsedType}),_}gte(e,t){return this.setLimit("min",e,!0,A.toString(t))}gt(e,t){return this.setLimit("min",e,!1,A.toString(t))}lte(e,t){return this.setLimit("max",e,!0,A.toString(t))}lt(e,t){return this.setLimit("max",e,!1,A.toString(t))}setLimit(e,t,s,n){return new Re({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:A.toString(n)}]})}_addCheck(e){return new Re({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:A.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:A.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:A.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:A.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:A.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew Re({checks:[],typeName:E.ZodBigInt,coerce:r?.coerce??!1,...S(r)});var lt=class extends k{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==w.boolean){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.boolean,received:s.parsedType}),_}return oe(e.data)}};o(lt,"ZodBoolean");lt.create=r=>new lt({typeName:E.ZodBoolean,coerce:r?.coerce||!1,...S(r)});var $e=class extends k{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==w.date){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_type,expected:w.date,received:i.parsedType}),_}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_date}),_}let s=new X,n;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(n=this._getOrReturnCtx(e,n),b(n,{code:y.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),s.dirty()):R.assertNever(i);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new $e({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:A.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:A.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew $e({checks:[],coerce:r?.coerce||!1,typeName:E.ZodDate,...S(r)});var Kt=class extends k{_parse(e){if(this._getType(e)!==w.symbol){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.symbol,received:s.parsedType}),_}return oe(e.data)}};o(Kt,"ZodSymbol");Kt.create=r=>new Kt({typeName:E.ZodSymbol,...S(r)});var ct=class extends k{_parse(e){if(this._getType(e)!==w.undefined){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.undefined,received:s.parsedType}),_}return oe(e.data)}};o(ct,"ZodUndefined");ct.create=r=>new ct({typeName:E.ZodUndefined,...S(r)});var dt=class extends k{_parse(e){if(this._getType(e)!==w.null){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.null,received:s.parsedType}),_}return oe(e.data)}};o(dt,"ZodNull");dt.create=r=>new dt({typeName:E.ZodNull,...S(r)});var Xe=class extends k{constructor(){super(...arguments),this._any=!0}_parse(e){return oe(e.data)}};o(Xe,"ZodAny");Xe.create=r=>new Xe({typeName:E.ZodAny,...S(r)});var Le=class extends k{constructor(){super(...arguments),this._unknown=!0}_parse(e){return oe(e.data)}};o(Le,"ZodUnknown");Le.create=r=>new Le({typeName:E.ZodUnknown,...S(r)});var _e=class extends k{_parse(e){let t=this._getOrReturnCtx(e);return b(t,{code:y.invalid_type,expected:w.never,received:t.parsedType}),_}};o(_e,"ZodNever");_e.create=r=>new _e({typeName:E.ZodNever,...S(r)});var Ht=class extends k{_parse(e){if(this._getType(e)!==w.undefined){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.void,received:s.parsedType}),_}return oe(e.data)}};o(Ht,"ZodVoid");Ht.create=r=>new Ht({typeName:E.ZodVoid,...S(r)});var pe=class extends k{_parse(e){let{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==w.array)return b(t,{code:y.invalid_type,expected:w.array,received:t.parsedType}),_;if(n.exactLength!==null){let a=t.data.length>n.exactLength.value,u=t.data.lengthn.maxLength.value&&(b(t,{code:y.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((a,u)=>n.type._parseAsync(new ge(t,a,t.path,u)))).then(a=>X.mergeArray(s,a));let i=[...t.data].map((a,u)=>n.type._parseSync(new ge(t,a,t.path,u)));return X.mergeArray(s,i)}get element(){return this._def.type}min(e,t){return new pe({...this._def,minLength:{value:e,message:A.toString(t)}})}max(e,t){return new pe({...this._def,maxLength:{value:e,message:A.toString(t)}})}length(e,t){return new pe({...this._def,exactLength:{value:e,message:A.toString(t)}})}nonempty(e){return this.min(1,e)}};o(pe,"ZodArray");pe.create=(r,e)=>new pe({type:r,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...S(e)});function Br(r){if(r instanceof P){let e={};for(let t in r.shape){let s=r.shape[t];e[t]=xe.create(Br(s))}return new P({...r._def,shape:()=>e})}else return r instanceof pe?new pe({...r._def,type:Br(r.element)}):r instanceof xe?xe.create(Br(r.unwrap())):r instanceof Be?Be.create(Br(r.unwrap())):r instanceof ye?ye.create(r.items.map(e=>Br(e))):r}o(Br,"deepPartialify");var P=class extends k{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=R.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==w.object){let c=this._getOrReturnCtx(e);return b(c,{code:y.invalid_type,expected:w.object,received:c.parsedType}),_}let{status:s,ctx:n}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),u=[];if(!(this._def.catchall instanceof _e&&this._def.unknownKeys==="strip"))for(let c in n.data)a.includes(c)||u.push(c);let l=[];for(let c of a){let d=i[c],m=n.data[c];l.push({key:{status:"valid",value:c},value:d._parse(new ge(n,m,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof _e){let c=this._def.unknownKeys;if(c==="passthrough")for(let d of u)l.push({key:{status:"valid",value:d},value:{status:"valid",value:n.data[d]}});else if(c==="strict")u.length>0&&(b(n,{code:y.unrecognized_keys,keys:u}),s.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let d of u){let m=n.data[d];l.push({key:{status:"valid",value:d},value:c._parse(new ge(n,m,n.path,d)),alwaysSet:d in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let c=[];for(let d of l){let m=await d.key,x=await d.value;c.push({key:m,value:x,alwaysSet:d.alwaysSet})}return c}).then(c=>X.mergeObjectSync(s,c)):X.mergeObjectSync(s,l)}get shape(){return this._def.shape()}strict(e){return A.errToObj,new P({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{let n=this._def.errorMap?.(t,s).message??s.defaultError;return t.code==="unrecognized_keys"?{message:A.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new P({...this._def,unknownKeys:"strip"})}passthrough(){return new P({...this._def,unknownKeys:"passthrough"})}extend(e){return new P({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new P({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:E.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new P({...this._def,catchall:e})}pick(e){let t={};for(let s of R.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new P({...this._def,shape:()=>t})}omit(e){let t={};for(let s of R.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new P({...this._def,shape:()=>t})}deepPartial(){return Br(this)}partial(e){let t={};for(let s of R.objectKeys(this.shape)){let n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional()}return new P({...this._def,shape:()=>t})}required(e){let t={};for(let s of R.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let i=this.shape[s];for(;i instanceof xe;)i=i._def.innerType;t[s]=i}return new P({...this._def,shape:()=>t})}keyof(){return po(R.objectKeys(this.shape))}};o(P,"ZodObject");P.create=(r,e)=>new P({shape:()=>r,unknownKeys:"strip",catchall:_e.create(),typeName:E.ZodObject,...S(e)});P.strictCreate=(r,e)=>new P({shape:()=>r,unknownKeys:"strict",catchall:_e.create(),typeName:E.ZodObject,...S(e)});P.lazycreate=(r,e)=>new P({shape:r,unknownKeys:"strip",catchall:_e.create(),typeName:E.ZodObject,...S(e)});var ft=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s=this._def.options;function n(i){for(let u of i)if(u.result.status==="valid")return u.result;for(let u of i)if(u.result.status==="dirty")return t.common.issues.push(...u.ctx.common.issues),u.result;let a=i.map(u=>new ne(u.ctx.common.issues));return b(t,{code:y.invalid_union,unionErrors:a}),_}if(o(n,"handleResults"),t.common.async)return Promise.all(s.map(async i=>{let a={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(n);{let i,a=[];for(let l of s){let c={...t,common:{...t.common,issues:[]},parent:null},d=l._parseSync({data:t.data,path:t.path,parent:c});if(d.status==="valid")return d;d.status==="dirty"&&!i&&(i={result:d,ctx:c}),c.common.issues.length&&a.push(c.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;let u=a.map(l=>new ne(l));return b(t,{code:y.invalid_union,unionErrors:u}),_}}get options(){return this._def.options}};o(ft,"ZodUnion");ft.create=(r,e)=>new ft({options:r,typeName:E.ZodUnion,...S(e)});var Ye=o(r=>r instanceof mt?Ye(r.schema):r instanceof be?Ye(r.innerType()):r instanceof gt?[r.value]:r instanceof Oe?r.options:r instanceof yt?R.objectValues(r.enum):r instanceof bt?Ye(r._def.innerType):r instanceof ct?[void 0]:r instanceof dt?[null]:r instanceof xe?[void 0,...Ye(r.unwrap())]:r instanceof Be?[null,...Ye(r.unwrap())]:r instanceof qr||r instanceof wt?Ye(r.unwrap()):r instanceof xt?Ye(r._def.innerType):[],"getDiscriminator"),Qt=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.object)return b(t,{code:y.invalid_type,expected:w.object,received:t.parsedType}),_;let s=this.discriminator,n=t.data[s],i=this.optionsMap.get(n);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(b(t,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),_)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){let n=new Map;for(let i of t){let a=Ye(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let u of a){if(n.has(u))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(u)}`);n.set(u,i)}}return new Qt({typeName:E.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...S(s)})}};o(Qt,"ZodDiscriminatedUnion");function gi(r,e){let t=Me(r),s=Me(e);if(r===e)return{valid:!0,data:r};if(t===w.object&&s===w.object){let n=R.objectKeys(e),i=R.objectKeys(r).filter(u=>n.indexOf(u)!==-1),a={...r,...e};for(let u of i){let l=gi(r[u],e[u]);if(!l.valid)return{valid:!1};a[u]=l.data}return{valid:!0,data:a}}else if(t===w.array&&s===w.array){if(r.length!==e.length)return{valid:!1};let n=[];for(let i=0;i{if(Dn(i)||Dn(a))return _;let u=gi(i.value,a.value);return u.valid?((_n(i)||_n(a))&&t.dirty(),{status:t.value,value:u.data}):(b(s,{code:y.invalid_intersection_types}),_)},"handleParsed");return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([i,a])=>n(i,a)):n(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};o(ht,"ZodIntersection");ht.create=(r,e,t)=>new ht({left:r,right:e,typeName:E.ZodIntersection,...S(t)});var ye=class extends k{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.array)return b(s,{code:y.invalid_type,expected:w.array,received:s.parsedType}),_;if(s.data.lengththis._def.items.length&&(b(s,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let i=[...s.data].map((a,u)=>{let l=this._def.items[u]||this._def.rest;return l?l._parse(new ge(s,a,s.path,u)):null}).filter(a=>!!a);return s.common.async?Promise.all(i).then(a=>X.mergeArray(t,a)):X.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new ye({...this._def,rest:e})}};o(ye,"ZodTuple");ye.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ye({items:r,typeName:E.ZodTuple,rest:null,...S(e)})};var pt=class extends k{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.object)return b(s,{code:y.invalid_type,expected:w.object,received:s.parsedType}),_;let n=[],i=this._def.keyType,a=this._def.valueType;for(let u in s.data)n.push({key:i._parse(new ge(s,u,s.path,u)),value:a._parse(new ge(s,s.data[u],s.path,u)),alwaysSet:u in s.data});return s.common.async?X.mergeObjectAsync(t,n):X.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof k?new pt({keyType:e,valueType:t,typeName:E.ZodRecord,...S(s)}):new pt({keyType:he.create(),valueType:e,typeName:E.ZodRecord,...S(t)})}};o(pt,"ZodRecord");var Gt=class extends k{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.map)return b(s,{code:y.invalid_type,expected:w.map,received:s.parsedType}),_;let n=this._def.keyType,i=this._def.valueType,a=[...s.data.entries()].map(([u,l],c)=>({key:n._parse(new ge(s,u,s.path,[c,"key"])),value:i._parse(new ge(s,l,s.path,[c,"value"]))}));if(s.common.async){let u=new Map;return Promise.resolve().then(async()=>{for(let l of a){let c=await l.key,d=await l.value;if(c.status==="aborted"||d.status==="aborted")return _;(c.status==="dirty"||d.status==="dirty")&&t.dirty(),u.set(c.value,d.value)}return{status:t.value,value:u}})}else{let u=new Map;for(let l of a){let c=l.key,d=l.value;if(c.status==="aborted"||d.status==="aborted")return _;(c.status==="dirty"||d.status==="dirty")&&t.dirty(),u.set(c.value,d.value)}return{status:t.value,value:u}}}};o(Gt,"ZodMap");Gt.create=(r,e,t)=>new Gt({valueType:e,keyType:r,typeName:E.ZodMap,...S(t)});var Pe=class extends k{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.set)return b(s,{code:y.invalid_type,expected:w.set,received:s.parsedType}),_;let n=this._def;n.minSize!==null&&s.data.sizen.maxSize.value&&(b(s,{code:y.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());let i=this._def.valueType;function a(l){let c=new Set;for(let d of l){if(d.status==="aborted")return _;d.status==="dirty"&&t.dirty(),c.add(d.value)}return{status:t.value,value:c}}o(a,"finalizeSet");let u=[...s.data.values()].map((l,c)=>i._parse(new ge(s,l,s.path,c)));return s.common.async?Promise.all(u).then(l=>a(l)):a(u)}min(e,t){return new Pe({...this._def,minSize:{value:e,message:A.toString(t)}})}max(e,t){return new Pe({...this._def,maxSize:{value:e,message:A.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};o(Pe,"ZodSet");Pe.create=(r,e)=>new Pe({valueType:r,minSize:null,maxSize:null,typeName:E.ZodSet,...S(e)});var Ze=class extends k{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.function)return b(t,{code:y.invalid_type,expected:w.function,received:t.parsedType}),_;function s(u,l){return Cs({data:u,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Rr(),Je].filter(c=>!!c),issueData:{code:y.invalid_arguments,argumentsError:l}})}o(s,"makeArgsIssue");function n(u,l){return Cs({data:u,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Rr(),Je].filter(c=>!!c),issueData:{code:y.invalid_return_type,returnTypeError:l}})}o(n,"makeReturnsIssue");let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof et){let u=this;return oe(async function(...l){let c=new ne([]),d=await u._def.args.parseAsync(l,i).catch(N=>{throw c.addIssue(s(l,N)),c}),m=await Reflect.apply(a,this,d);return await u._def.returns._def.type.parseAsync(m,i).catch(N=>{throw c.addIssue(n(m,N)),c})})}else{let u=this;return oe(function(...l){let c=u._def.args.safeParse(l,i);if(!c.success)throw new ne([s(l,c.error)]);let d=Reflect.apply(a,this,c.data),m=u._def.returns.safeParse(d,i);if(!m.success)throw new ne([n(d,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ze({...this._def,args:ye.create(e).rest(Le.create())})}returns(e){return new Ze({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new Ze({args:e||ye.create([]).rest(Le.create()),returns:t||Le.create(),typeName:E.ZodFunction,...S(s)})}};o(Ze,"ZodFunction");var mt=class extends k{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};o(mt,"ZodLazy");mt.create=(r,e)=>new mt({getter:r,typeName:E.ZodLazy,...S(e)});var gt=class extends k{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return b(t,{received:t.data,code:y.invalid_literal,expected:this._def.value}),_}return{status:"valid",value:e.data}}get value(){return this._def.value}};o(gt,"ZodLiteral");gt.create=(r,e)=>new gt({value:r,typeName:E.ZodLiteral,...S(e)});function po(r,e){return new Oe({values:r,typeName:E.ZodEnum,...S(e)})}o(po,"createZodEnum");var Oe=class extends k{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),s=this._def.values;return b(t,{expected:R.joinValues(s),received:t.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),s=this._def.values;return b(t,{received:t.data,code:y.invalid_enum_value,options:s}),_}return oe(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Oe.create(e,{...this._def,...t})}exclude(e,t=this._def){return Oe.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}};o(Oe,"ZodEnum");Oe.create=po;var yt=class extends k{_parse(e){let t=R.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==w.string&&s.parsedType!==w.number){let n=R.objectValues(t);return b(s,{expected:R.joinValues(n),received:s.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(R.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=R.objectValues(t);return b(s,{received:s.data,code:y.invalid_enum_value,options:n}),_}return oe(e.data)}get enum(){return this._def.values}};o(yt,"ZodNativeEnum");yt.create=(r,e)=>new yt({values:r,typeName:E.ZodNativeEnum,...S(e)});var et=class extends k{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.promise&&t.common.async===!1)return b(t,{code:y.invalid_type,expected:w.promise,received:t.parsedType}),_;let s=t.parsedType===w.promise?t.data:Promise.resolve(t.data);return oe(s.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}};o(et,"ZodPromise");et.create=(r,e)=>new et({type:r,typeName:E.ZodPromise,...S(e)});var be=class extends k{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,i={addIssue:a=>{b(s,a),a.fatal?t.abort():t.dirty()},get path(){return s.path}};if(i.addIssue=i.addIssue.bind(i),n.type==="preprocess"){let a=n.transform(s.data,i);if(s.common.async)return Promise.resolve(a).then(async u=>{if(t.value==="aborted")return _;let l=await this._def.schema._parseAsync({data:u,path:s.path,parent:s});return l.status==="aborted"?_:l.status==="dirty"?Vt(l.value):t.value==="dirty"?Vt(l.value):l});{if(t.value==="aborted")return _;let u=this._def.schema._parseSync({data:a,path:s.path,parent:s});return u.status==="aborted"?_:u.status==="dirty"?Vt(u.value):t.value==="dirty"?Vt(u.value):u}}if(n.type==="refinement"){let a=o(u=>{let l=n.refinement(u,i);if(s.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return u},"executeRefinement");if(s.common.async===!1){let u=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return u.status==="aborted"?_:(u.status==="dirty"&&t.dirty(),a(u.value),{status:t.value,value:u.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(u=>u.status==="aborted"?_:(u.status==="dirty"&&t.dirty(),a(u.value).then(()=>({status:t.value,value:u.value}))))}if(n.type==="transform")if(s.common.async===!1){let a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!ut(a))return _;let u=n.transform(a.value,i);if(u instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:u}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>ut(a)?Promise.resolve(n.transform(a.value,i)).then(u=>({status:t.value,value:u})):_);R.assertNever(n)}};o(be,"ZodEffects");be.create=(r,e,t)=>new be({schema:r,typeName:E.ZodEffects,effect:e,...S(t)});be.createWithPreprocess=(r,e,t)=>new be({schema:e,effect:{type:"preprocess",transform:r},typeName:E.ZodEffects,...S(t)});var xe=class extends k{_parse(e){return this._getType(e)===w.undefined?oe(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};o(xe,"ZodOptional");xe.create=(r,e)=>new xe({innerType:r,typeName:E.ZodOptional,...S(e)});var Be=class extends k{_parse(e){return this._getType(e)===w.null?oe(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};o(Be,"ZodNullable");Be.create=(r,e)=>new Be({innerType:r,typeName:E.ZodNullable,...S(e)});var bt=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return t.parsedType===w.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};o(bt,"ZodDefault");bt.create=(r,e)=>new bt({innerType:r,typeName:E.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...S(e)});var xt=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return Or(n)?n.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ne(s.common.issues)},input:s.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new ne(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};o(xt,"ZodCatch");xt.create=(r,e)=>new xt({innerType:r,typeName:E.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...S(e)});var Wt=class extends k{_parse(e){if(this._getType(e)!==w.nan){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.nan,received:s.parsedType}),_}return{status:"valid",value:e.data}}};o(Wt,"ZodNaN");Wt.create=r=>new Wt({typeName:E.ZodNaN,...S(r)});var sh=Symbol("zod_brand"),qr=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}};o(qr,"ZodBranded");var vt=class extends k{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return o(async()=>{let i=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?_:i.status==="dirty"?(t.dirty(),Vt(i.value)):this._def.out._parseAsync({data:i.value,path:s.path,parent:s})},"handleAsync")();{let n=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?_:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:s.path,parent:s})}}static create(e,t){return new vt({in:e,out:t,typeName:E.ZodPipeline})}};o(vt,"ZodPipeline");var wt=class extends k{_parse(e){let t=this._def.innerType._parse(e),s=o(n=>(ut(n)&&(n.value=Object.freeze(n.value)),n),"freeze");return Or(t)?t.then(n=>s(n)):s(t)}unwrap(){return this._def.innerType}};o(wt,"ZodReadonly");wt.create=(r,e)=>new wt({innerType:r,typeName:E.ZodReadonly,...S(e)});function lo(r,e){let t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}o(lo,"cleanParams");function mo(r,e={},t){return r?Xe.create().superRefine((s,n)=>{let i=r(s);if(i instanceof Promise)return i.then(a=>{if(!a){let u=lo(e,s),l=u.fatal??t??!0;n.addIssue({code:"custom",...u,fatal:l})}});if(!i){let a=lo(e,s),u=a.fatal??t??!0;n.addIssue({code:"custom",...a,fatal:u})}}):Xe.create()}o(mo,"custom");var nh={object:P.lazycreate},E;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(E||(E={}));var ih=o((r,e={message:`Input not instance of ${r.name}`})=>mo(t=>t instanceof r,e),"instanceOfType"),Fr=he.create,go=ke.create,ah=Wt.create,oh=Re.create,yo=lt.create,uh=$e.create,lh=Kt.create,ch=ct.create,dh=dt.create,fh=Xe.create,hh=Le.create,ph=_e.create,mh=Ht.create,Jt=pe.create,yi=P.create,gh=P.strictCreate,yh=ft.create,bh=Qt.create,xh=ht.create,vh=ye.create,bi=pt.create,wh=Gt.create,Ah=Pe.create,Dh=Ze.create,_h=mt.create,Eh=gt.create,Ch=Oe.create,Th=yt.create,Sh=et.create,Nh=be.create,kh=xe.create,Rh=Be.create,Oh=be.createWithPreprocess,Bh=vt.create,qh=o(()=>Fr().optional(),"ostring"),Fh=o(()=>go().optional(),"onumber"),jh=o(()=>yo().optional(),"oboolean"),Ih={string:r=>he.create({...r,coerce:!0}),number:r=>ke.create({...r,coerce:!0}),boolean:r=>lt.create({...r,coerce:!0}),bigint:r=>Re.create({...r,coerce:!0}),date:r=>$e.create({...r,coerce:!0})};var Mh=_;var Lh=H.union([H.string(),H.number(),H.boolean(),H.null()]),xi=H.lazy(()=>H.union([Lh,H.array(xi),H.record(xi)]));function En(r,e){let t=ln(r),s=Object.entries(t),n=Object.fromEntries(s.map(([i,a])=>[i,bo(a)]));e&&(n=Object.assign(n,Object.fromEntries(Object.entries(e).map(([i,a])=>[i,typeof a=="function"?a(n):a]))));for(let[i,a]of s)a.notNull?a.hasDefault&&(n[i]=n[i].optional()):n[i]=n[i].nullable().optional();return H.object(n)}o(En,"c");function bo(r){let e;if(function(t){return"enumValues"in t&&Array.isArray(t.enumValues)&&t.enumValues.length>0}(r)&&(e=r.enumValues.length?H.enum(r.enumValues):H.string()),!e){if(g(r,zt))e=H.string().uuid();else if(r.dataType==="custom")e=H.any();else if(r.dataType==="json")e=xi;else if(r.dataType==="array")e=H.array(bo(r.baseColumn));else if(r.dataType==="number")e=H.number();else if(r.dataType==="bigint")e=H.bigint();else if(r.dataType==="boolean")e=H.boolean();else if(r.dataType==="date")e=H.date();else if(r.dataType==="string"){let t=H.string();(g(r,Pt)||g(r,Ut)||g(r,Lt)||g(r,$t)||g(r,Mt)||g(r,Bt))&&typeof r.length=="number"&&(t=t.max(r.length)),e=t}}return e||(e=H.any()),e}o(bo,"p");var Yt=cn("api_keys",{id:I("id").primaryKey(),key:I("key").notNull().unique(),keyPrefix:I("key_prefix").notNull(),name:I("name"),rateLimit:De("rate_limit").default(100),isActive:De("is_active",{mode:"boolean"}).default(!0).notNull(),lastUsedAt:De("last_used_at",{mode:"timestamp"}),expiresAt:De("expires_at",{mode:"timestamp"}),createdAt:De("created_at",{mode:"timestamp"}).notNull(),updatedAt:De("updated_at",{mode:"timestamp"}).notNull()}),ZS=En(Yt),Ts=cn("mailboxes",{id:I("id").primaryKey(),address:I("address").notNull().unique(),domain:I("domain").notNull(),expiresAt:De("expires_at",{mode:"timestamp"}),apiKeyId:I("api_key_id").notNull(),createdAt:De("created_at",{mode:"timestamp"}).notNull(),updatedAt:De("updated_at",{mode:"timestamp"}).notNull()}),e3=En(Ts),U=cn("emails",{id:I("id").primaryKey(),messageFrom:I("message_from").notNull(),messageTo:I("message_to").notNull(),headers:I("headers",{mode:"json"}).$type().notNull(),from:I("from",{mode:"json"}).$type().notNull(),sender:I("sender",{mode:"json"}).$type(),replyTo:I("reply_to",{mode:"json"}).$type(),deliveredTo:I("delivered_to"),returnPath:I("return_path"),to:I("to",{mode:"json"}).$type(),cc:I("cc",{mode:"json"}).$type(),bcc:I("bcc",{mode:"json"}).$type(),subject:I("subject"),messageId:I("message_id").notNull(),inReplyTo:I("in_reply_to"),references:I("references"),date:I("date"),html:I("html"),text:I("text"),createdAt:De("created_at",{mode:"timestamp"}).notNull(),updatedAt:De("updated_at",{mode:"timestamp"}).notNull()}),jr=yi({address:Fr(),name:Fr()}),xo=En(U,{headers:Jt(bi(Fr())),from:jr,sender:jr.optional(),replyTo:Jt(jr).optional(),to:Jt(jr).optional(),cc:Jt(jr).optional(),bcc:Jt(jr).optional()});async function vo(r,e){try{await r.insert(U).values(e).execute()}catch(t){console.error(t)}}o(vo,"insertEmail");async function wo(r,e){try{let t=await r.select().from(U).where(Qe(se(U.id,e))).execute();return t.length!=1?null:t[0]}catch{return null}}o(wo,"findEmailById");async function Ao(r,e){try{return await r.select().from(U).where(se(U.messageTo,e)).orderBy(Xr(U.createdAt)).execute()}catch{return[]}}o(Ao,"getEmailsByMessageTo");async function Do(r,e){if(!e||e.length===0)return{count:0};try{return{count:(await r.delete(U).where(sn(U.id,e))).rowsAffected}}catch(t){return console.error(t),{count:0}}}o(Do,"deleteEmails");async function _o(r,e){try{return{count:(await r.delete(U).where(rn(U.createdAt,e)).execute()).rowsAffected}}catch(t){return console.error("\u6E05\u7406\u8FC7\u671F\u90AE\u4EF6\u5931\u8D25:",t),{count:0}}}o(_o,"deleteExpiredEmails");async function Eo(r,e){try{let t=await r.select().from(Yt).where(se(Yt.key,e)).execute();return t.length===1?t[0]:null}catch(t){return console.error("findApiKeyByKey error:",t),null}}o(Eo,"findApiKeyByKey");async function Co(r,e){try{await r.update(Yt).set({lastUsedAt:new Date,updatedAt:new Date}).where(se(Yt.id,e)).execute()}catch(t){console.error("updateApiKeyLastUsed error:",t)}}o(Co,"updateApiKeyLastUsed");async function To(r,e){try{return await r.insert(Yt).values(e).execute(),e}catch(t){return console.error("insertApiKey error:",t),null}}o(To,"insertApiKey");async function So(r,e){try{return await r.insert(Ts).values(e).execute(),e}catch(t){throw console.error("insertMailbox error:",t),t}}o(So,"insertMailbox");async function Ss(r,e){try{let t=await r.select().from(Ts).where(se(Ts.id,e)).execute();return t.length===1?t[0]:null}catch(t){return console.error("findMailboxById error:",t),null}}o(Ss,"findMailboxById");async function No(r,e,t){try{let s=(t.page-1)*t.limit,n=t.sort==="asc"?nn:Xr,[i,a]=await Promise.all([r.select().from(U).where(se(U.messageTo,e)).orderBy(n(U.createdAt)).limit(t.limit).offset(s).execute(),r.select({count:ni()}).from(U).where(se(U.messageTo,e)).execute()]),u=a[0]?.count||0;return{messages:i,total:u,totalPages:Math.ceil(u/t.limit)}}catch(s){return console.error("getMailboxMessages error:",s),{messages:[],total:0,totalPages:0}}}o(No,"getMailboxMessages");async function ko(r,e,t){try{let s=await r.select().from(U).where(Qe(se(U.id,t),se(U.messageTo,e))).execute();return s.length===1?s[0]:null}catch(s){return console.error("findMailboxMessage error:",s),null}}o(ko,"findMailboxMessage");async function Ro(r,e,t){try{return(await r.delete(U).where(Qe(se(U.id,t),se(U.messageTo,e))).execute()).rowsAffected>0}catch(s){return console.error("deleteMailboxMessage error:",s),!1}}o(Ro,"deleteMailboxMessage");async function Oo(r,e){try{return(await r.select({count:ni()}).from(U).where(se(U.messageTo,e)).execute())[0]?.count||0}catch(t){return console.error("getMailboxMessageCount error:",t),0}}o(Oo,"getMailboxMessageCount");var Ph,Ir=class extends Tr{constructor(e,t,s,n={}){super(t),this.client=e,this.schema=s,this.options=n,this.logger=n.logger??new pr}logger;prepareQuery(e,t,s,n){let i=this.client.prepare(e.sql);return new ks(i,e,this.logger,t,s,n)}async batch(e){let t=[],s=[];for(let i of e){let a=i._prepare(),u=a.getQuery();if(t.push(a),u.params.length>0)s.push(a.stmt.bind(...u.params));else{let l=a.getQuery();s.push(this.client.prepare(l.sql).bind(...l.params))}}return(await this.client.batch(s)).map((i,a)=>t[a].mapResult(i,!0))}extractRawAllValueFromBatchResult(e){return e.results}extractRawGetValueFromBatchResult(e){return e.results[0]}extractRawValuesValueFromBatchResult(e){return vi(e.results)}async transaction(e,t){let s=new Ns("async",this.dialect,this,this.schema);await this.run(f.raw(`begin${t?.behavior?" "+t.behavior:""}`));try{let n=await e(s);return await this.run(f`commit`),n}catch(n){throw await this.run(f`rollback`),n}}};o(Ir,"SQLiteD1Session"),Ph=p,h(Ir,Ph,"SQLiteD1Session");var zh,wi=class extends Sr{async transaction(e){let t=`sp${this.nestedIndex}`,s=new wi("async",this.dialect,this.session,this.schema,this.nestedIndex+1);await this.session.run(f.raw(`savepoint ${t}`));try{let n=await e(s);return await this.session.run(f.raw(`release savepoint ${t}`)),n}catch(n){throw await this.session.run(f.raw(`rollback to savepoint ${t}`)),n}}},Ns=wi;o(Ns,"D1Transaction"),zh=p,h(Ns,zh,"D1Transaction");function vi(r){let e=[];for(let t of r){let s=Object.keys(t).map(n=>t[n]);e.push(s)}return e}o(vi,"d1ToRawMapping");var Uh,ks=class extends Cr{constructor(e,t,s,n,i,a){super("async",i,t),this.logger=s,this.customResultMapper=a,this.fields=n,this.stmt=e}customResultMapper;fields;stmt;run(e){let t=Wr(this.query.params,e??{});return this.logger.logQuery(this.query.sql,t),this.stmt.bind(...t).run()}async all(e){let{fields:t,query:s,logger:n,stmt:i,customResultMapper:a}=this;if(!t&&!a){let l=Wr(s.params,e??{});return n.logQuery(s.sql,l),i.bind(...l).all().then(({results:c})=>this.mapAllResult(c))}let u=await this.values(e);return this.mapAllResult(u)}mapAllResult(e,t){return t&&(e=vi(e.results)),!this.fields&&!this.customResultMapper?e:this.customResultMapper?this.customResultMapper(e):e.map(s=>on(this.fields,s,this.joinsNotNullableMap))}async get(e){let{fields:t,joinsNotNullableMap:s,query:n,logger:i,stmt:a,customResultMapper:u}=this;if(!t&&!u){let c=Wr(n.params,e??{});return i.logQuery(n.sql,c),a.bind(...c).all().then(({results:d})=>d[0])}let l=await this.values(e);if(l[0])return u?u(l):on(t,l[0],s)}mapGetResult(e,t){return t&&(e=vi(e.results)[0]),!this.fields&&!this.customResultMapper?e:this.customResultMapper?this.customResultMapper([e]):on(this.fields,e,this.joinsNotNullableMap)}values(e){let t=Wr(this.query.params,e??{});return this.logger.logQuery(this.query.sql,t),this.stmt.bind(...t).raw()}};o(ks,"D1PreparedQuery"),Uh=p,h(ks,Uh,"D1PreparedQuery");var Vh,Rs=class extends ot{async batch(e){return this.session.batch(e)}};o(Rs,"DrizzleD1Database"),Vh=p,h(Rs,Vh,"LibSQLDatabase");function Bo(r,e={}){let t=new vr,s;e.logger===!0?s=new hr:e.logger!==!1&&(s=e.logger);let n;if(e.schema){let a=Za(e.schema,to);n={fullSchema:e.schema,schema:a.tables,tableNamesMap:a.tableNamesMap}}let i=new Ir(r,t,n,{logger:s});return new Rs("async",t,i,n)}o(Bo,"drizzle");function ce(r){return Bo(r)}o(ce,"getD1DB");var Kh="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Os=o((r=21)=>{let e="",t=r|0;for(;t--;)e+=Kh[Math.random()*64|0];return e},"nanoid");var At=new TextEncoder,qo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",qs=new Uint8Array(256);for(Bs=0;Bs>4,i[s++]=(l&15)<<4|c>>2,i[s++]=(c&3)<<6|d&63}return n}o(Cn,"decodeBase64");function Mr(r){r=r||"utf8";let e;try{e=new TextDecoder(r)}catch{e=new TextDecoder("windows-1252")}return e}o(Mr,"getDecoder");async function Dt(r){if("arrayBuffer"in r)return await r.arrayBuffer();let e=new FileReader;return new Promise((t,s)=>{e.onload=function(n){t(n.target.result)},e.onerror=function(n){s(e.error)},e.readAsArrayBuffer(r)})}o(Dt,"blobToArrayBuffer");function Fo(r){return r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70?String.fromCharCode(r):!1}o(Fo,"getHex");function Hh(r,e,t){let s=r.indexOf("*");s>=0&&(r=r.substr(0,s)),e=e.toUpperCase();let n;if(e==="Q"){t=t.replace(/=\s+([0-9a-fA-F])/g,"=$1").replace(/[_\s]/g," ");let i=At.encode(t),a=[];for(let l=0,c=i.length;le&&a===l&&u.length%4===0&&!/=$/.test(u)?i+"__\0JOIN\0__":n).replace(/(=\?([^?]+)\?[Qq]\?[^?]*\?=)\s*(?==\?([^?]+)\?[Qq]\?[^?]*\?=)/g,(n,i,a,u)=>e&&a===u?i+"__\0JOIN\0__":n).replace(/(\?=)?__\x00JOIN\x00__(=\?([^?]+)\?[QqBb]\?)?/g,"").replace(/(=\?[^?]+\?[QqBb]\?[^?]*\?=)\s+(?==\?[^?]+\?[QqBb]\?[^?]*\?=)/g,"$1").replace(/=\?([\w_\-*]+)\?([QqBb])\?([^?]*)\?=/g,(n,i,a,u)=>Hh(i,a,u));if(e&&s.indexOf("\uFFFD")>=0)e=!1;else return s}}o(Xt,"decodeWords");function Qh(r,e){e=e||"utf-8";let t=[];for(let i=0;i126){a=At.encode(a);for(let u=0;u{let s=t.match(/\*((\d+)\*?)?$/);if(!s)return;let n=t.substr(0,s.index).toLowerCase(),i=Number(s[2])||0,a;e.has(n)?a=e.get(n):(a={charset:!1,values:[]},e.set(n,a));let u=r.params[t];i===0&&s[0].charAt(s[0].length-1)==="*"&&(s=u.match(/^([^']*)'[^']*'(.*)$/))&&(a.charset=s[1]||"utf-8",u=s[2]),a.values.push({nr:i,value:u}),delete r.params[t]}),e.forEach((t,s)=>{r.params[s]=Qh(t.values.sort((n,i)=>n.nr-i.nr).map(n=>n.value).join(""),t.charset)})}o(jo,"decodeParameterValueContinuations");var $r=class{constructor(){this.chunks=[]}update(e){this.chunks.push(e),this.chunks.push(` -`)}finalize(){return Dt(new Blob(this.chunks,{type:"application/octet-stream"}))}};o($r,"PassThroughDecoder");var Lr=class{constructor(e){e=e||{},this.decoder=e.decoder||new TextDecoder,this.maxChunkSize=100*1024,this.chunks=[],this.remainder=""}update(e){let t=this.decoder.decode(e);if(/[^a-zA-Z0-9+\/]/.test(t)&&(t=t.replace(/[^a-zA-Z0-9+\/]+/g,"")),this.remainder+=t,this.remainder.length>=this.maxChunkSize){let s=Math.floor(this.remainder.length/4)*4,n;s===this.remainder.length?(n=this.remainder,this.remainder=""):(n=this.remainder.substr(0,s),this.remainder=this.remainder.substr(s)),n.length&&this.chunks.push(Cn(n))}}finalize(){return this.remainder&&!/^=+$/.test(this.remainder)&&this.chunks.push(Cn(this.remainder)),Dt(new Blob(this.chunks,{type:"application/octet-stream"}))}};o(Lr,"Base64Decoder");var Io=/^=[a-f0-9]{2}$/i,Gh=/(?==[a-f0-9]{2})/i,Wh=/=\r?\n/g,Jh=/=[a-fA-F0-9]?$/,Pr=class{constructor(e){e=e||{},this.decoder=e.decoder||new TextDecoder,this.maxChunkSize=100*1024,this.remainder="",this.chunks=[]}decodeQPBytes(e){let t=new ArrayBuffer(e.length),s=new DataView(t);for(let n=0,i=e.length;n3){let i=n.substr(0,3);Io.test(i)?(s.push(n.substr(1,2)),this.chunks.push(this.decodeQPBytes(s)),s=[],n=n.substr(3),this.chunks.push(n)):(s.length&&(this.chunks.push(this.decodeQPBytes(s)),s=[]),this.chunks.push(n))}}s.length&&(this.chunks.push(this.decodeQPBytes(s)),s=[])}update(e){let t=this.decoder.decode(e)+` -`;if(t=this.remainder+t,t.lengththis.options.maxNestingDepth)throw new Error(`Maximum MIME nesting depth of ${this.options.maxNestingDepth} levels exceeded`);this.options.parentNode.childNodes.push(this)}else this.depth=0;this.state="header",this.headerLines=[],this.headerSize=0,this.contentType={value:"text/plain",default:!0},this.contentTransferEncoding={value:"8bit"},this.contentDisposition={value:""},this.headers=[],this.contentDecoder=!1}setupContentDecoder(e){/base64/i.test(e)?this.contentDecoder=new Lr:/quoted-printable/i.test(e)?this.contentDecoder=new Pr({decoder:Mr(this.contentType.parsed.params.charset)}):this.contentDecoder=new $r}async finalize(){if(this.state==="finished")return;this.state==="header"&&this.processHeaders();let e=this.postalMime.boundaries;for(let t=e.length-1;t>=0;t--)if(e[t].node===this){e.splice(t,1);break}await this.finalizeChildNodes(),this.content=this.contentDecoder?await this.contentDecoder.finalize():null,this.state="finished"}async finalizeChildNodes(){for(let e of this.childNodes)await e.finalize()}parseStructuredHeader(e){let t={value:!1,params:{}},s=!1,n="",i="value",a=!1,u=!1,l;for(let c=0,d=e.length;c/ $/.test(s)&&!/(^|\n)-- $/.test(s)?t?s.slice(0,-1)+n:s+n:s+` -`+n).replace(/^ /gm,"")}getTextContent(){if(!this.content)return"";let e=Mr(this.contentType.parsed.params.charset).decode(this.content);return/^flowed$/i.test(this.contentType.parsed.params.format)&&(e=this.decodeFlowedText(e,/^yes$/i.test(this.contentType.parsed.params.delsp))),e}processHeaders(){for(let e=this.headerLines.length-1;e>=0;e--){let t=this.headerLines[e];if(e&&/^\s/.test(t))this.headerLines[e-1]+=` -`+t,this.headerLines.splice(e,1);else{t=t.replace(/\s+/g," ");let s=t.indexOf(":"),n=s<0?t.trim():t.substr(0,s).trim(),i=s<0?"":t.substr(s+1).trim();switch(this.headers.push({key:n.toLowerCase(),originalKey:n,value:i}),n.toLowerCase()){case"content-type":this.contentType.default&&(this.contentType={value:i,parsed:{}});break;case"content-transfer-encoding":this.contentTransferEncoding={value:i,parsed:{}};break;case"content-disposition":this.contentDisposition={value:i,parsed:{}};break;case"content-id":this.contentId=i;break;case"content-description":this.contentDescription=i;break}}}this.contentType.parsed=this.parseStructuredHeader(this.contentType.value),this.contentType.multipart=/^multipart\//i.test(this.contentType.parsed.value)?this.contentType.parsed.value.substr(this.contentType.parsed.value.indexOf("/")+1):!1,this.contentType.multipart&&this.contentType.parsed.params.boundary&&this.postalMime.boundaries.push({value:At.encode(this.contentType.parsed.params.boundary),node:this}),this.contentDisposition.parsed=this.parseStructuredHeader(this.contentDisposition.value),this.contentTransferEncoding.encoding=this.contentTransferEncoding.value.toLowerCase().split(/[^\w-]/).shift(),this.setupContentDecoder(this.contentTransferEncoding.encoding)}feed(e){switch(this.state){case"header":if(!e.length)return this.state="body",this.processHeaders();if(this.headerSize+=e.length,this.headerSize>this.options.maxHeadersSize)throw new Error(`Maximum header size of ${this.options.maxHeadersSize} bytes exceeded`);this.headerLines.push(Mr().decode(e));break;case"body":this.contentDecoder.update(e)}}};o(Zt,"MimeNode");var Yh={"Æ":"\xC6","Æ":"\xC6","&":"&","&":"&","Á":"\xC1","Á":"\xC1","Ă":"\u0102","Â":"\xC2","Â":"\xC2","А":"\u0410","𝔄":"\u{1D504}","À":"\xC0","À":"\xC0","Α":"\u0391","Ā":"\u0100","⩓":"\u2A53","Ą":"\u0104","𝔸":"\u{1D538}","⁡":"\u2061","Å":"\xC5","Å":"\xC5","𝒜":"\u{1D49C}","≔":"\u2254","Ã":"\xC3","Ã":"\xC3","Ä":"\xC4","Ä":"\xC4","∖":"\u2216","⫧":"\u2AE7","⌆":"\u2306","Б":"\u0411","∵":"\u2235","ℬ":"\u212C","Β":"\u0392","𝔅":"\u{1D505}","𝔹":"\u{1D539}","˘":"\u02D8","ℬ":"\u212C","≎":"\u224E","Ч":"\u0427","©":"\xA9","©":"\xA9","Ć":"\u0106","⋒":"\u22D2","ⅅ":"\u2145","ℭ":"\u212D","Č":"\u010C","Ç":"\xC7","Ç":"\xC7","Ĉ":"\u0108","∰":"\u2230","Ċ":"\u010A","¸":"\xB8","·":"\xB7","ℭ":"\u212D","Χ":"\u03A7","⊙":"\u2299","⊖":"\u2296","⊕":"\u2295","⊗":"\u2297","∲":"\u2232","”":"\u201D","’":"\u2019","∷":"\u2237","⩴":"\u2A74","≡":"\u2261","∯":"\u222F","∮":"\u222E","ℂ":"\u2102","∐":"\u2210","∳":"\u2233","⨯":"\u2A2F","𝒞":"\u{1D49E}","⋓":"\u22D3","≍":"\u224D","ⅅ":"\u2145","⤑":"\u2911","Ђ":"\u0402","Ѕ":"\u0405","Џ":"\u040F","‡":"\u2021","↡":"\u21A1","⫤":"\u2AE4","Ď":"\u010E","Д":"\u0414","∇":"\u2207","Δ":"\u0394","𝔇":"\u{1D507}","´":"\xB4","˙":"\u02D9","˝":"\u02DD","`":"`","˜":"\u02DC","⋄":"\u22C4","ⅆ":"\u2146","𝔻":"\u{1D53B}","¨":"\xA8","⃜":"\u20DC","≐":"\u2250","∯":"\u222F","¨":"\xA8","⇓":"\u21D3","⇐":"\u21D0","⇔":"\u21D4","⫤":"\u2AE4","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","⇒":"\u21D2","⊨":"\u22A8","⇑":"\u21D1","⇕":"\u21D5","∥":"\u2225","↓":"\u2193","⤓":"\u2913","⇵":"\u21F5","̑":"\u0311","⥐":"\u2950","⥞":"\u295E","↽":"\u21BD","⥖":"\u2956","⥟":"\u295F","⇁":"\u21C1","⥗":"\u2957","⊤":"\u22A4","↧":"\u21A7","⇓":"\u21D3","𝒟":"\u{1D49F}","Đ":"\u0110","Ŋ":"\u014A","Ð":"\xD0","Ð":"\xD0","É":"\xC9","É":"\xC9","Ě":"\u011A","Ê":"\xCA","Ê":"\xCA","Э":"\u042D","Ė":"\u0116","𝔈":"\u{1D508}","È":"\xC8","È":"\xC8","∈":"\u2208","Ē":"\u0112","◻":"\u25FB","▫":"\u25AB","Ę":"\u0118","𝔼":"\u{1D53C}","Ε":"\u0395","⩵":"\u2A75","≂":"\u2242","⇌":"\u21CC","ℰ":"\u2130","⩳":"\u2A73","Η":"\u0397","Ë":"\xCB","Ë":"\xCB","∃":"\u2203","ⅇ":"\u2147","Ф":"\u0424","𝔉":"\u{1D509}","◼":"\u25FC","▪":"\u25AA","𝔽":"\u{1D53D}","∀":"\u2200","ℱ":"\u2131","ℱ":"\u2131","Ѓ":"\u0403",">":">",">":">","Γ":"\u0393","Ϝ":"\u03DC","Ğ":"\u011E","Ģ":"\u0122","Ĝ":"\u011C","Г":"\u0413","Ġ":"\u0120","𝔊":"\u{1D50A}","⋙":"\u22D9","𝔾":"\u{1D53E}","≥":"\u2265","⋛":"\u22DB","≧":"\u2267","⪢":"\u2AA2","≷":"\u2277","⩾":"\u2A7E","≳":"\u2273","𝒢":"\u{1D4A2}","≫":"\u226B","Ъ":"\u042A","ˇ":"\u02C7","^":"^","Ĥ":"\u0124","ℌ":"\u210C","ℋ":"\u210B","ℍ":"\u210D","─":"\u2500","ℋ":"\u210B","Ħ":"\u0126","≎":"\u224E","≏":"\u224F","Е":"\u0415","IJ":"\u0132","Ё":"\u0401","Í":"\xCD","Í":"\xCD","Î":"\xCE","Î":"\xCE","И":"\u0418","İ":"\u0130","ℑ":"\u2111","Ì":"\xCC","Ì":"\xCC","ℑ":"\u2111","Ī":"\u012A","ⅈ":"\u2148","⇒":"\u21D2","∬":"\u222C","∫":"\u222B","⋂":"\u22C2","⁣":"\u2063","⁢":"\u2062","Į":"\u012E","𝕀":"\u{1D540}","Ι":"\u0399","ℐ":"\u2110","Ĩ":"\u0128","І":"\u0406","Ï":"\xCF","Ï":"\xCF","Ĵ":"\u0134","Й":"\u0419","𝔍":"\u{1D50D}","𝕁":"\u{1D541}","𝒥":"\u{1D4A5}","Ј":"\u0408","Є":"\u0404","Х":"\u0425","Ќ":"\u040C","Κ":"\u039A","Ķ":"\u0136","К":"\u041A","𝔎":"\u{1D50E}","𝕂":"\u{1D542}","𝒦":"\u{1D4A6}","Љ":"\u0409","<":"<","<":"<","Ĺ":"\u0139","Λ":"\u039B","⟪":"\u27EA","ℒ":"\u2112","↞":"\u219E","Ľ":"\u013D","Ļ":"\u013B","Л":"\u041B","⟨":"\u27E8","←":"\u2190","⇤":"\u21E4","⇆":"\u21C6","⌈":"\u2308","⟦":"\u27E6","⥡":"\u2961","⇃":"\u21C3","⥙":"\u2959","⌊":"\u230A","↔":"\u2194","⥎":"\u294E","⊣":"\u22A3","↤":"\u21A4","⥚":"\u295A","⊲":"\u22B2","⧏":"\u29CF","⊴":"\u22B4","⥑":"\u2951","⥠":"\u2960","↿":"\u21BF","⥘":"\u2958","↼":"\u21BC","⥒":"\u2952","⇐":"\u21D0","⇔":"\u21D4","⋚":"\u22DA","≦":"\u2266","≶":"\u2276","⪡":"\u2AA1","⩽":"\u2A7D","≲":"\u2272","𝔏":"\u{1D50F}","⋘":"\u22D8","⇚":"\u21DA","Ŀ":"\u013F","⟵":"\u27F5","⟷":"\u27F7","⟶":"\u27F6","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","𝕃":"\u{1D543}","↙":"\u2199","↘":"\u2198","ℒ":"\u2112","↰":"\u21B0","Ł":"\u0141","≪":"\u226A","⤅":"\u2905","М":"\u041C"," ":"\u205F","ℳ":"\u2133","𝔐":"\u{1D510}","∓":"\u2213","𝕄":"\u{1D544}","ℳ":"\u2133","Μ":"\u039C","Њ":"\u040A","Ń":"\u0143","Ň":"\u0147","Ņ":"\u0145","Н":"\u041D","​":"\u200B","​":"\u200B","​":"\u200B","​":"\u200B","≫":"\u226B","≪":"\u226A"," ":` -`,"𝔑":"\u{1D511}","⁠":"\u2060"," ":"\xA0","ℕ":"\u2115","⫬":"\u2AEC","≢":"\u2262","≭":"\u226D","∦":"\u2226","∉":"\u2209","≠":"\u2260","≂̸":"\u2242\u0338","∄":"\u2204","≯":"\u226F","≱":"\u2271","≧̸":"\u2267\u0338","≫̸":"\u226B\u0338","≹":"\u2279","⩾̸":"\u2A7E\u0338","≵":"\u2275","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⋪":"\u22EA","⧏̸":"\u29CF\u0338","⋬":"\u22EC","≮":"\u226E","≰":"\u2270","≸":"\u2278","≪̸":"\u226A\u0338","⩽̸":"\u2A7D\u0338","≴":"\u2274","⪢̸":"\u2AA2\u0338","⪡̸":"\u2AA1\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⋠":"\u22E0","∌":"\u220C","⋫":"\u22EB","⧐̸":"\u29D0\u0338","⋭":"\u22ED","⊏̸":"\u228F\u0338","⋢":"\u22E2","⊐̸":"\u2290\u0338","⋣":"\u22E3","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⋡":"\u22E1","≿̸":"\u227F\u0338","⊃⃒":"\u2283\u20D2","⊉":"\u2289","≁":"\u2241","≄":"\u2244","≇":"\u2247","≉":"\u2249","∤":"\u2224","𝒩":"\u{1D4A9}","Ñ":"\xD1","Ñ":"\xD1","Ν":"\u039D","Œ":"\u0152","Ó":"\xD3","Ó":"\xD3","Ô":"\xD4","Ô":"\xD4","О":"\u041E","Ő":"\u0150","𝔒":"\u{1D512}","Ò":"\xD2","Ò":"\xD2","Ō":"\u014C","Ω":"\u03A9","Ο":"\u039F","𝕆":"\u{1D546}","“":"\u201C","‘":"\u2018","⩔":"\u2A54","𝒪":"\u{1D4AA}","Ø":"\xD8","Ø":"\xD8","Õ":"\xD5","Õ":"\xD5","⨷":"\u2A37","Ö":"\xD6","Ö":"\xD6","‾":"\u203E","⏞":"\u23DE","⎴":"\u23B4","⏜":"\u23DC","∂":"\u2202","П":"\u041F","𝔓":"\u{1D513}","Φ":"\u03A6","Π":"\u03A0","±":"\xB1","ℌ":"\u210C","ℙ":"\u2119","⪻":"\u2ABB","≺":"\u227A","⪯":"\u2AAF","≼":"\u227C","≾":"\u227E","″":"\u2033","∏":"\u220F","∷":"\u2237","∝":"\u221D","𝒫":"\u{1D4AB}","Ψ":"\u03A8",""":'"',""":'"',"𝔔":"\u{1D514}","ℚ":"\u211A","𝒬":"\u{1D4AC}","⤐":"\u2910","®":"\xAE","®":"\xAE","Ŕ":"\u0154","⟫":"\u27EB","↠":"\u21A0","⤖":"\u2916","Ř":"\u0158","Ŗ":"\u0156","Р":"\u0420","ℜ":"\u211C","∋":"\u220B","⇋":"\u21CB","⥯":"\u296F","ℜ":"\u211C","Ρ":"\u03A1","⟩":"\u27E9","→":"\u2192","⇥":"\u21E5","⇄":"\u21C4","⌉":"\u2309","⟧":"\u27E7","⥝":"\u295D","⇂":"\u21C2","⥕":"\u2955","⌋":"\u230B","⊢":"\u22A2","↦":"\u21A6","⥛":"\u295B","⊳":"\u22B3","⧐":"\u29D0","⊵":"\u22B5","⥏":"\u294F","⥜":"\u295C","↾":"\u21BE","⥔":"\u2954","⇀":"\u21C0","⥓":"\u2953","⇒":"\u21D2","ℝ":"\u211D","⥰":"\u2970","⇛":"\u21DB","ℛ":"\u211B","↱":"\u21B1","⧴":"\u29F4","Щ":"\u0429","Ш":"\u0428","Ь":"\u042C","Ś":"\u015A","⪼":"\u2ABC","Š":"\u0160","Ş":"\u015E","Ŝ":"\u015C","С":"\u0421","𝔖":"\u{1D516}","↓":"\u2193","←":"\u2190","→":"\u2192","↑":"\u2191","Σ":"\u03A3","∘":"\u2218","𝕊":"\u{1D54A}","√":"\u221A","□":"\u25A1","⊓":"\u2293","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊔":"\u2294","𝒮":"\u{1D4AE}","⋆":"\u22C6","⋐":"\u22D0","⋐":"\u22D0","⊆":"\u2286","≻":"\u227B","⪰":"\u2AB0","≽":"\u227D","≿":"\u227F","∋":"\u220B","∑":"\u2211","⋑":"\u22D1","⊃":"\u2283","⊇":"\u2287","⋑":"\u22D1","Þ":"\xDE","Þ":"\xDE","™":"\u2122","Ћ":"\u040B","Ц":"\u0426"," ":" ","Τ":"\u03A4","Ť":"\u0164","Ţ":"\u0162","Т":"\u0422","𝔗":"\u{1D517}","∴":"\u2234","Θ":"\u0398","  ":"\u205F\u200A"," ":"\u2009","∼":"\u223C","≃":"\u2243","≅":"\u2245","≈":"\u2248","𝕋":"\u{1D54B}","⃛":"\u20DB","𝒯":"\u{1D4AF}","Ŧ":"\u0166","Ú":"\xDA","Ú":"\xDA","↟":"\u219F","⥉":"\u2949","Ў":"\u040E","Ŭ":"\u016C","Û":"\xDB","Û":"\xDB","У":"\u0423","Ű":"\u0170","𝔘":"\u{1D518}","Ù":"\xD9","Ù":"\xD9","Ū":"\u016A","_":"_","⏟":"\u23DF","⎵":"\u23B5","⏝":"\u23DD","⋃":"\u22C3","⊎":"\u228E","Ų":"\u0172","𝕌":"\u{1D54C}","↑":"\u2191","⤒":"\u2912","⇅":"\u21C5","↕":"\u2195","⥮":"\u296E","⊥":"\u22A5","↥":"\u21A5","⇑":"\u21D1","⇕":"\u21D5","↖":"\u2196","↗":"\u2197","ϒ":"\u03D2","Υ":"\u03A5","Ů":"\u016E","𝒰":"\u{1D4B0}","Ũ":"\u0168","Ü":"\xDC","Ü":"\xDC","⊫":"\u22AB","⫫":"\u2AEB","В":"\u0412","⊩":"\u22A9","⫦":"\u2AE6","⋁":"\u22C1","‖":"\u2016","‖":"\u2016","∣":"\u2223","|":"|","❘":"\u2758","≀":"\u2240"," ":"\u200A","𝔙":"\u{1D519}","𝕍":"\u{1D54D}","𝒱":"\u{1D4B1}","⊪":"\u22AA","Ŵ":"\u0174","⋀":"\u22C0","𝔚":"\u{1D51A}","𝕎":"\u{1D54E}","𝒲":"\u{1D4B2}","𝔛":"\u{1D51B}","Ξ":"\u039E","𝕏":"\u{1D54F}","𝒳":"\u{1D4B3}","Я":"\u042F","Ї":"\u0407","Ю":"\u042E","Ý":"\xDD","Ý":"\xDD","Ŷ":"\u0176","Ы":"\u042B","𝔜":"\u{1D51C}","𝕐":"\u{1D550}","𝒴":"\u{1D4B4}","Ÿ":"\u0178","Ж":"\u0416","Ź":"\u0179","Ž":"\u017D","З":"\u0417","Ż":"\u017B","​":"\u200B","Ζ":"\u0396","ℨ":"\u2128","ℤ":"\u2124","𝒵":"\u{1D4B5}","á":"\xE1","á":"\xE1","ă":"\u0103","∾":"\u223E","∾̳":"\u223E\u0333","∿":"\u223F","â":"\xE2","â":"\xE2","´":"\xB4","´":"\xB4","а":"\u0430","æ":"\xE6","æ":"\xE6","⁡":"\u2061","𝔞":"\u{1D51E}","à":"\xE0","à":"\xE0","ℵ":"\u2135","ℵ":"\u2135","α":"\u03B1","ā":"\u0101","⨿":"\u2A3F","&":"&","&":"&","∧":"\u2227","⩕":"\u2A55","⩜":"\u2A5C","⩘":"\u2A58","⩚":"\u2A5A","∠":"\u2220","⦤":"\u29A4","∠":"\u2220","∡":"\u2221","⦨":"\u29A8","⦩":"\u29A9","⦪":"\u29AA","⦫":"\u29AB","⦬":"\u29AC","⦭":"\u29AD","⦮":"\u29AE","⦯":"\u29AF","∟":"\u221F","⊾":"\u22BE","⦝":"\u299D","∢":"\u2222","Å":"\xC5","⍼":"\u237C","ą":"\u0105","𝕒":"\u{1D552}","≈":"\u2248","⩰":"\u2A70","⩯":"\u2A6F","≊":"\u224A","≋":"\u224B","'":"'","≈":"\u2248","≊":"\u224A","å":"\xE5","å":"\xE5","𝒶":"\u{1D4B6}","*":"*","≈":"\u2248","≍":"\u224D","ã":"\xE3","ã":"\xE3","ä":"\xE4","ä":"\xE4","∳":"\u2233","⨑":"\u2A11","⫭":"\u2AED","≌":"\u224C","϶":"\u03F6","‵":"\u2035","∽":"\u223D","⋍":"\u22CD","⊽":"\u22BD","⌅":"\u2305","⌅":"\u2305","⎵":"\u23B5","⎶":"\u23B6","≌":"\u224C","б":"\u0431","„":"\u201E","∵":"\u2235","∵":"\u2235","⦰":"\u29B0","϶":"\u03F6","ℬ":"\u212C","β":"\u03B2","ℶ":"\u2136","≬":"\u226C","𝔟":"\u{1D51F}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","⨀":"\u2A00","⨁":"\u2A01","⨂":"\u2A02","⨆":"\u2A06","★":"\u2605","▽":"\u25BD","△":"\u25B3","⨄":"\u2A04","⋁":"\u22C1","⋀":"\u22C0","⤍":"\u290D","⧫":"\u29EB","▪":"\u25AA","▴":"\u25B4","▾":"\u25BE","◂":"\u25C2","▸":"\u25B8","␣":"\u2423","▒":"\u2592","░":"\u2591","▓":"\u2593","█":"\u2588","=⃥":"=\u20E5","≡⃥":"\u2261\u20E5","⌐":"\u2310","𝕓":"\u{1D553}","⊥":"\u22A5","⊥":"\u22A5","⋈":"\u22C8","╗":"\u2557","╔":"\u2554","╖":"\u2556","╓":"\u2553","═":"\u2550","╦":"\u2566","╩":"\u2569","╤":"\u2564","╧":"\u2567","╝":"\u255D","╚":"\u255A","╜":"\u255C","╙":"\u2559","║":"\u2551","╬":"\u256C","╣":"\u2563","╠":"\u2560","╫":"\u256B","╢":"\u2562","╟":"\u255F","⧉":"\u29C9","╕":"\u2555","╒":"\u2552","┐":"\u2510","┌":"\u250C","─":"\u2500","╥":"\u2565","╨":"\u2568","┬":"\u252C","┴":"\u2534","⊟":"\u229F","⊞":"\u229E","⊠":"\u22A0","╛":"\u255B","╘":"\u2558","┘":"\u2518","└":"\u2514","│":"\u2502","╪":"\u256A","╡":"\u2561","╞":"\u255E","┼":"\u253C","┤":"\u2524","├":"\u251C","‵":"\u2035","˘":"\u02D8","¦":"\xA6","¦":"\xA6","𝒷":"\u{1D4B7}","⁏":"\u204F","∽":"\u223D","⋍":"\u22CD","\":"\\","⧅":"\u29C5","⟈":"\u27C8","•":"\u2022","•":"\u2022","≎":"\u224E","⪮":"\u2AAE","≏":"\u224F","≏":"\u224F","ć":"\u0107","∩":"\u2229","⩄":"\u2A44","⩉":"\u2A49","⩋":"\u2A4B","⩇":"\u2A47","⩀":"\u2A40","∩︀":"\u2229\uFE00","⁁":"\u2041","ˇ":"\u02C7","⩍":"\u2A4D","č":"\u010D","ç":"\xE7","ç":"\xE7","ĉ":"\u0109","⩌":"\u2A4C","⩐":"\u2A50","ċ":"\u010B","¸":"\xB8","¸":"\xB8","⦲":"\u29B2","¢":"\xA2","¢":"\xA2","·":"\xB7","𝔠":"\u{1D520}","ч":"\u0447","✓":"\u2713","✓":"\u2713","χ":"\u03C7","○":"\u25CB","⧃":"\u29C3","ˆ":"\u02C6","≗":"\u2257","↺":"\u21BA","↻":"\u21BB","®":"\xAE","Ⓢ":"\u24C8","⊛":"\u229B","⊚":"\u229A","⊝":"\u229D","≗":"\u2257","⨐":"\u2A10","⫯":"\u2AEF","⧂":"\u29C2","♣":"\u2663","♣":"\u2663",":":":","≔":"\u2254","≔":"\u2254",",":",","@":"@","∁":"\u2201","∘":"\u2218","∁":"\u2201","ℂ":"\u2102","≅":"\u2245","⩭":"\u2A6D","∮":"\u222E","𝕔":"\u{1D554}","∐":"\u2210","©":"\xA9","©":"\xA9","℗":"\u2117","↵":"\u21B5","✗":"\u2717","𝒸":"\u{1D4B8}","⫏":"\u2ACF","⫑":"\u2AD1","⫐":"\u2AD0","⫒":"\u2AD2","⋯":"\u22EF","⤸":"\u2938","⤵":"\u2935","⋞":"\u22DE","⋟":"\u22DF","↶":"\u21B6","⤽":"\u293D","∪":"\u222A","⩈":"\u2A48","⩆":"\u2A46","⩊":"\u2A4A","⊍":"\u228D","⩅":"\u2A45","∪︀":"\u222A\uFE00","↷":"\u21B7","⤼":"\u293C","⋞":"\u22DE","⋟":"\u22DF","⋎":"\u22CE","⋏":"\u22CF","¤":"\xA4","¤":"\xA4","↶":"\u21B6","↷":"\u21B7","⋎":"\u22CE","⋏":"\u22CF","∲":"\u2232","∱":"\u2231","⌭":"\u232D","⇓":"\u21D3","⥥":"\u2965","†":"\u2020","ℸ":"\u2138","↓":"\u2193","‐":"\u2010","⊣":"\u22A3","⤏":"\u290F","˝":"\u02DD","ď":"\u010F","д":"\u0434","ⅆ":"\u2146","‡":"\u2021","⇊":"\u21CA","⩷":"\u2A77","°":"\xB0","°":"\xB0","δ":"\u03B4","⦱":"\u29B1","⥿":"\u297F","𝔡":"\u{1D521}","⇃":"\u21C3","⇂":"\u21C2","⋄":"\u22C4","⋄":"\u22C4","♦":"\u2666","♦":"\u2666","¨":"\xA8","ϝ":"\u03DD","⋲":"\u22F2","÷":"\xF7","÷":"\xF7","÷":"\xF7","⋇":"\u22C7","⋇":"\u22C7","ђ":"\u0452","⌞":"\u231E","⌍":"\u230D","$":"$","𝕕":"\u{1D555}","˙":"\u02D9","≐":"\u2250","≑":"\u2251","∸":"\u2238","∔":"\u2214","⊡":"\u22A1","⌆":"\u2306","↓":"\u2193","⇊":"\u21CA","⇃":"\u21C3","⇂":"\u21C2","⤐":"\u2910","⌟":"\u231F","⌌":"\u230C","𝒹":"\u{1D4B9}","ѕ":"\u0455","⧶":"\u29F6","đ":"\u0111","⋱":"\u22F1","▿":"\u25BF","▾":"\u25BE","⇵":"\u21F5","⥯":"\u296F","⦦":"\u29A6","џ":"\u045F","⟿":"\u27FF","⩷":"\u2A77","≑":"\u2251","é":"\xE9","é":"\xE9","⩮":"\u2A6E","ě":"\u011B","≖":"\u2256","ê":"\xEA","ê":"\xEA","≕":"\u2255","э":"\u044D","ė":"\u0117","ⅇ":"\u2147","≒":"\u2252","𝔢":"\u{1D522}","⪚":"\u2A9A","è":"\xE8","è":"\xE8","⪖":"\u2A96","⪘":"\u2A98","⪙":"\u2A99","⏧":"\u23E7","ℓ":"\u2113","⪕":"\u2A95","⪗":"\u2A97","ē":"\u0113","∅":"\u2205","∅":"\u2205","∅":"\u2205"," ":"\u2004"," ":"\u2005"," ":"\u2003","ŋ":"\u014B"," ":"\u2002","ę":"\u0119","𝕖":"\u{1D556}","⋕":"\u22D5","⧣":"\u29E3","⩱":"\u2A71","ε":"\u03B5","ε":"\u03B5","ϵ":"\u03F5","≖":"\u2256","≕":"\u2255","≂":"\u2242","⪖":"\u2A96","⪕":"\u2A95","=":"=","≟":"\u225F","≡":"\u2261","⩸":"\u2A78","⧥":"\u29E5","≓":"\u2253","⥱":"\u2971","ℯ":"\u212F","≐":"\u2250","≂":"\u2242","η":"\u03B7","ð":"\xF0","ð":"\xF0","ë":"\xEB","ë":"\xEB","€":"\u20AC","!":"!","∃":"\u2203","ℰ":"\u2130","ⅇ":"\u2147","≒":"\u2252","ф":"\u0444","♀":"\u2640","ffi":"\uFB03","ff":"\uFB00","ffl":"\uFB04","𝔣":"\u{1D523}","fi":"\uFB01","fj":"fj","♭":"\u266D","fl":"\uFB02","▱":"\u25B1","ƒ":"\u0192","𝕗":"\u{1D557}","∀":"\u2200","⋔":"\u22D4","⫙":"\u2AD9","⨍":"\u2A0D","½":"\xBD","½":"\xBD","⅓":"\u2153","¼":"\xBC","¼":"\xBC","⅕":"\u2155","⅙":"\u2159","⅛":"\u215B","⅔":"\u2154","⅖":"\u2156","¾":"\xBE","¾":"\xBE","⅗":"\u2157","⅜":"\u215C","⅘":"\u2158","⅚":"\u215A","⅝":"\u215D","⅞":"\u215E","⁄":"\u2044","⌢":"\u2322","𝒻":"\u{1D4BB}","≧":"\u2267","⪌":"\u2A8C","ǵ":"\u01F5","γ":"\u03B3","ϝ":"\u03DD","⪆":"\u2A86","ğ":"\u011F","ĝ":"\u011D","г":"\u0433","ġ":"\u0121","≥":"\u2265","⋛":"\u22DB","≥":"\u2265","≧":"\u2267","⩾":"\u2A7E","⩾":"\u2A7E","⪩":"\u2AA9","⪀":"\u2A80","⪂":"\u2A82","⪄":"\u2A84","⋛︀":"\u22DB\uFE00","⪔":"\u2A94","𝔤":"\u{1D524}","≫":"\u226B","⋙":"\u22D9","ℷ":"\u2137","ѓ":"\u0453","≷":"\u2277","⪒":"\u2A92","⪥":"\u2AA5","⪤":"\u2AA4","≩":"\u2269","⪊":"\u2A8A","⪊":"\u2A8A","⪈":"\u2A88","⪈":"\u2A88","≩":"\u2269","⋧":"\u22E7","𝕘":"\u{1D558}","`":"`","ℊ":"\u210A","≳":"\u2273","⪎":"\u2A8E","⪐":"\u2A90",">":">",">":">","⪧":"\u2AA7","⩺":"\u2A7A","⋗":"\u22D7","⦕":"\u2995","⩼":"\u2A7C","⪆":"\u2A86","⥸":"\u2978","⋗":"\u22D7","⋛":"\u22DB","⪌":"\u2A8C","≷":"\u2277","≳":"\u2273","≩︀":"\u2269\uFE00","≩︀":"\u2269\uFE00","⇔":"\u21D4"," ":"\u200A","½":"\xBD","ℋ":"\u210B","ъ":"\u044A","↔":"\u2194","⥈":"\u2948","↭":"\u21AD","ℏ":"\u210F","ĥ":"\u0125","♥":"\u2665","♥":"\u2665","…":"\u2026","⊹":"\u22B9","𝔥":"\u{1D525}","⤥":"\u2925","⤦":"\u2926","⇿":"\u21FF","∻":"\u223B","↩":"\u21A9","↪":"\u21AA","𝕙":"\u{1D559}","―":"\u2015","𝒽":"\u{1D4BD}","ℏ":"\u210F","ħ":"\u0127","⁃":"\u2043","‐":"\u2010","í":"\xED","í":"\xED","⁣":"\u2063","î":"\xEE","î":"\xEE","и":"\u0438","е":"\u0435","¡":"\xA1","¡":"\xA1","⇔":"\u21D4","𝔦":"\u{1D526}","ì":"\xEC","ì":"\xEC","ⅈ":"\u2148","⨌":"\u2A0C","∭":"\u222D","⧜":"\u29DC","℩":"\u2129","ij":"\u0133","ī":"\u012B","ℑ":"\u2111","ℐ":"\u2110","ℑ":"\u2111","ı":"\u0131","⊷":"\u22B7","Ƶ":"\u01B5","∈":"\u2208","℅":"\u2105","∞":"\u221E","⧝":"\u29DD","ı":"\u0131","∫":"\u222B","⊺":"\u22BA","ℤ":"\u2124","⊺":"\u22BA","⨗":"\u2A17","⨼":"\u2A3C","ё":"\u0451","į":"\u012F","𝕚":"\u{1D55A}","ι":"\u03B9","⨼":"\u2A3C","¿":"\xBF","¿":"\xBF","𝒾":"\u{1D4BE}","∈":"\u2208","⋹":"\u22F9","⋵":"\u22F5","⋴":"\u22F4","⋳":"\u22F3","∈":"\u2208","⁢":"\u2062","ĩ":"\u0129","і":"\u0456","ï":"\xEF","ï":"\xEF","ĵ":"\u0135","й":"\u0439","𝔧":"\u{1D527}","ȷ":"\u0237","𝕛":"\u{1D55B}","𝒿":"\u{1D4BF}","ј":"\u0458","є":"\u0454","κ":"\u03BA","ϰ":"\u03F0","ķ":"\u0137","к":"\u043A","𝔨":"\u{1D528}","ĸ":"\u0138","х":"\u0445","ќ":"\u045C","𝕜":"\u{1D55C}","𝓀":"\u{1D4C0}","⇚":"\u21DA","⇐":"\u21D0","⤛":"\u291B","⤎":"\u290E","≦":"\u2266","⪋":"\u2A8B","⥢":"\u2962","ĺ":"\u013A","⦴":"\u29B4","ℒ":"\u2112","λ":"\u03BB","⟨":"\u27E8","⦑":"\u2991","⟨":"\u27E8","⪅":"\u2A85","«":"\xAB","«":"\xAB","←":"\u2190","⇤":"\u21E4","⤟":"\u291F","⤝":"\u291D","↩":"\u21A9","↫":"\u21AB","⤹":"\u2939","⥳":"\u2973","↢":"\u21A2","⪫":"\u2AAB","⤙":"\u2919","⪭":"\u2AAD","⪭︀":"\u2AAD\uFE00","⤌":"\u290C","❲":"\u2772","{":"{","[":"[","⦋":"\u298B","⦏":"\u298F","⦍":"\u298D","ľ":"\u013E","ļ":"\u013C","⌈":"\u2308","{":"{","л":"\u043B","⤶":"\u2936","“":"\u201C","„":"\u201E","⥧":"\u2967","⥋":"\u294B","↲":"\u21B2","≤":"\u2264","←":"\u2190","↢":"\u21A2","↽":"\u21BD","↼":"\u21BC","⇇":"\u21C7","↔":"\u2194","⇆":"\u21C6","⇋":"\u21CB","↭":"\u21AD","⋋":"\u22CB","⋚":"\u22DA","≤":"\u2264","≦":"\u2266","⩽":"\u2A7D","⩽":"\u2A7D","⪨":"\u2AA8","⩿":"\u2A7F","⪁":"\u2A81","⪃":"\u2A83","⋚︀":"\u22DA\uFE00","⪓":"\u2A93","⪅":"\u2A85","⋖":"\u22D6","⋚":"\u22DA","⪋":"\u2A8B","≶":"\u2276","≲":"\u2272","⥼":"\u297C","⌊":"\u230A","𝔩":"\u{1D529}","≶":"\u2276","⪑":"\u2A91","↽":"\u21BD","↼":"\u21BC","⥪":"\u296A","▄":"\u2584","љ":"\u0459","≪":"\u226A","⇇":"\u21C7","⌞":"\u231E","⥫":"\u296B","◺":"\u25FA","ŀ":"\u0140","⎰":"\u23B0","⎰":"\u23B0","≨":"\u2268","⪉":"\u2A89","⪉":"\u2A89","⪇":"\u2A87","⪇":"\u2A87","≨":"\u2268","⋦":"\u22E6","⟬":"\u27EC","⇽":"\u21FD","⟦":"\u27E6","⟵":"\u27F5","⟷":"\u27F7","⟼":"\u27FC","⟶":"\u27F6","↫":"\u21AB","↬":"\u21AC","⦅":"\u2985","𝕝":"\u{1D55D}","⨭":"\u2A2D","⨴":"\u2A34","∗":"\u2217","_":"_","◊":"\u25CA","◊":"\u25CA","⧫":"\u29EB","(":"(","⦓":"\u2993","⇆":"\u21C6","⌟":"\u231F","⇋":"\u21CB","⥭":"\u296D","‎":"\u200E","⊿":"\u22BF","‹":"\u2039","𝓁":"\u{1D4C1}","↰":"\u21B0","≲":"\u2272","⪍":"\u2A8D","⪏":"\u2A8F","[":"[","‘":"\u2018","‚":"\u201A","ł":"\u0142","<":"<","<":"<","⪦":"\u2AA6","⩹":"\u2A79","⋖":"\u22D6","⋋":"\u22CB","⋉":"\u22C9","⥶":"\u2976","⩻":"\u2A7B","⦖":"\u2996","◃":"\u25C3","⊴":"\u22B4","◂":"\u25C2","⥊":"\u294A","⥦":"\u2966","≨︀":"\u2268\uFE00","≨︀":"\u2268\uFE00","∺":"\u223A","¯":"\xAF","¯":"\xAF","♂":"\u2642","✠":"\u2720","✠":"\u2720","↦":"\u21A6","↦":"\u21A6","↧":"\u21A7","↤":"\u21A4","↥":"\u21A5","▮":"\u25AE","⨩":"\u2A29","м":"\u043C","—":"\u2014","∡":"\u2221","𝔪":"\u{1D52A}","℧":"\u2127","µ":"\xB5","µ":"\xB5","∣":"\u2223","*":"*","⫰":"\u2AF0","·":"\xB7","·":"\xB7","−":"\u2212","⊟":"\u229F","∸":"\u2238","⨪":"\u2A2A","⫛":"\u2ADB","…":"\u2026","∓":"\u2213","⊧":"\u22A7","𝕞":"\u{1D55E}","∓":"\u2213","𝓂":"\u{1D4C2}","∾":"\u223E","μ":"\u03BC","⊸":"\u22B8","⊸":"\u22B8","⋙̸":"\u22D9\u0338","≫⃒":"\u226B\u20D2","≫̸":"\u226B\u0338","⇍":"\u21CD","⇎":"\u21CE","⋘̸":"\u22D8\u0338","≪⃒":"\u226A\u20D2","≪̸":"\u226A\u0338","⇏":"\u21CF","⊯":"\u22AF","⊮":"\u22AE","∇":"\u2207","ń":"\u0144","∠⃒":"\u2220\u20D2","≉":"\u2249","⩰̸":"\u2A70\u0338","≋̸":"\u224B\u0338","ʼn":"\u0149","≉":"\u2249","♮":"\u266E","♮":"\u266E","ℕ":"\u2115"," ":"\xA0"," ":"\xA0","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⩃":"\u2A43","ň":"\u0148","ņ":"\u0146","≇":"\u2247","⩭̸":"\u2A6D\u0338","⩂":"\u2A42","н":"\u043D","–":"\u2013","≠":"\u2260","⇗":"\u21D7","⤤":"\u2924","↗":"\u2197","↗":"\u2197","≐̸":"\u2250\u0338","≢":"\u2262","⤨":"\u2928","≂̸":"\u2242\u0338","∄":"\u2204","∄":"\u2204","𝔫":"\u{1D52B}","≧̸":"\u2267\u0338","≱":"\u2271","≱":"\u2271","≧̸":"\u2267\u0338","⩾̸":"\u2A7E\u0338","⩾̸":"\u2A7E\u0338","≵":"\u2275","≯":"\u226F","≯":"\u226F","⇎":"\u21CE","↮":"\u21AE","⫲":"\u2AF2","∋":"\u220B","⋼":"\u22FC","⋺":"\u22FA","∋":"\u220B","њ":"\u045A","⇍":"\u21CD","≦̸":"\u2266\u0338","↚":"\u219A","‥":"\u2025","≰":"\u2270","↚":"\u219A","↮":"\u21AE","≰":"\u2270","≦̸":"\u2266\u0338","⩽̸":"\u2A7D\u0338","⩽̸":"\u2A7D\u0338","≮":"\u226E","≴":"\u2274","≮":"\u226E","⋪":"\u22EA","⋬":"\u22EC","∤":"\u2224","𝕟":"\u{1D55F}","¬":"\xAC","¬":"\xAC","∉":"\u2209","⋹̸":"\u22F9\u0338","⋵̸":"\u22F5\u0338","∉":"\u2209","⋷":"\u22F7","⋶":"\u22F6","∌":"\u220C","∌":"\u220C","⋾":"\u22FE","⋽":"\u22FD","∦":"\u2226","∦":"\u2226","⫽⃥":"\u2AFD\u20E5","∂̸":"\u2202\u0338","⨔":"\u2A14","⊀":"\u2280","⋠":"\u22E0","⪯̸":"\u2AAF\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⇏":"\u21CF","↛":"\u219B","⤳̸":"\u2933\u0338","↝̸":"\u219D\u0338","↛":"\u219B","⋫":"\u22EB","⋭":"\u22ED","⊁":"\u2281","⋡":"\u22E1","⪰̸":"\u2AB0\u0338","𝓃":"\u{1D4C3}","∤":"\u2224","∦":"\u2226","≁":"\u2241","≄":"\u2244","≄":"\u2244","∤":"\u2224","∦":"\u2226","⋢":"\u22E2","⋣":"\u22E3","⊄":"\u2284","⫅̸":"\u2AC5\u0338","⊈":"\u2288","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⫅̸":"\u2AC5\u0338","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⊅":"\u2285","⫆̸":"\u2AC6\u0338","⊉":"\u2289","⊃⃒":"\u2283\u20D2","⊉":"\u2289","⫆̸":"\u2AC6\u0338","≹":"\u2279","ñ":"\xF1","ñ":"\xF1","≸":"\u2278","⋪":"\u22EA","⋬":"\u22EC","⋫":"\u22EB","⋭":"\u22ED","ν":"\u03BD","#":"#","№":"\u2116"," ":"\u2007","⊭":"\u22AD","⤄":"\u2904","≍⃒":"\u224D\u20D2","⊬":"\u22AC","≥⃒":"\u2265\u20D2",">⃒":">\u20D2","⧞":"\u29DE","⤂":"\u2902","≤⃒":"\u2264\u20D2","<⃒":"<\u20D2","⊴⃒":"\u22B4\u20D2","⤃":"\u2903","⊵⃒":"\u22B5\u20D2","∼⃒":"\u223C\u20D2","⇖":"\u21D6","⤣":"\u2923","↖":"\u2196","↖":"\u2196","⤧":"\u2927","Ⓢ":"\u24C8","ó":"\xF3","ó":"\xF3","⊛":"\u229B","⊚":"\u229A","ô":"\xF4","ô":"\xF4","о":"\u043E","⊝":"\u229D","ő":"\u0151","⨸":"\u2A38","⊙":"\u2299","⦼":"\u29BC","œ":"\u0153","⦿":"\u29BF","𝔬":"\u{1D52C}","˛":"\u02DB","ò":"\xF2","ò":"\xF2","⧁":"\u29C1","⦵":"\u29B5","Ω":"\u03A9","∮":"\u222E","↺":"\u21BA","⦾":"\u29BE","⦻":"\u29BB","‾":"\u203E","⧀":"\u29C0","ō":"\u014D","ω":"\u03C9","ο":"\u03BF","⦶":"\u29B6","⊖":"\u2296","𝕠":"\u{1D560}","⦷":"\u29B7","⦹":"\u29B9","⊕":"\u2295","∨":"\u2228","↻":"\u21BB","⩝":"\u2A5D","ℴ":"\u2134","ℴ":"\u2134","ª":"\xAA","ª":"\xAA","º":"\xBA","º":"\xBA","⊶":"\u22B6","⩖":"\u2A56","⩗":"\u2A57","⩛":"\u2A5B","ℴ":"\u2134","ø":"\xF8","ø":"\xF8","⊘":"\u2298","õ":"\xF5","õ":"\xF5","⊗":"\u2297","⨶":"\u2A36","ö":"\xF6","ö":"\xF6","⌽":"\u233D","∥":"\u2225","¶":"\xB6","¶":"\xB6","∥":"\u2225","⫳":"\u2AF3","⫽":"\u2AFD","∂":"\u2202","п":"\u043F","%":"%",".":".","‰":"\u2030","⊥":"\u22A5","‱":"\u2031","𝔭":"\u{1D52D}","φ":"\u03C6","ϕ":"\u03D5","ℳ":"\u2133","☎":"\u260E","π":"\u03C0","⋔":"\u22D4","ϖ":"\u03D6","ℏ":"\u210F","ℎ":"\u210E","ℏ":"\u210F","+":"+","⨣":"\u2A23","⊞":"\u229E","⨢":"\u2A22","∔":"\u2214","⨥":"\u2A25","⩲":"\u2A72","±":"\xB1","±":"\xB1","⨦":"\u2A26","⨧":"\u2A27","±":"\xB1","⨕":"\u2A15","𝕡":"\u{1D561}","£":"\xA3","£":"\xA3","≺":"\u227A","⪳":"\u2AB3","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","≺":"\u227A","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","⪹":"\u2AB9","⪵":"\u2AB5","⋨":"\u22E8","≾":"\u227E","′":"\u2032","ℙ":"\u2119","⪵":"\u2AB5","⪹":"\u2AB9","⋨":"\u22E8","∏":"\u220F","⌮":"\u232E","⌒":"\u2312","⌓":"\u2313","∝":"\u221D","∝":"\u221D","≾":"\u227E","⊰":"\u22B0","𝓅":"\u{1D4C5}","ψ":"\u03C8"," ":"\u2008","𝔮":"\u{1D52E}","⨌":"\u2A0C","𝕢":"\u{1D562}","⁗":"\u2057","𝓆":"\u{1D4C6}","ℍ":"\u210D","⨖":"\u2A16","?":"?","≟":"\u225F",""":'"',""":'"',"⇛":"\u21DB","⇒":"\u21D2","⤜":"\u291C","⤏":"\u290F","⥤":"\u2964","∽̱":"\u223D\u0331","ŕ":"\u0155","√":"\u221A","⦳":"\u29B3","⟩":"\u27E9","⦒":"\u2992","⦥":"\u29A5","⟩":"\u27E9","»":"\xBB","»":"\xBB","→":"\u2192","⥵":"\u2975","⇥":"\u21E5","⤠":"\u2920","⤳":"\u2933","⤞":"\u291E","↪":"\u21AA","↬":"\u21AC","⥅":"\u2945","⥴":"\u2974","↣":"\u21A3","↝":"\u219D","⤚":"\u291A","∶":"\u2236","ℚ":"\u211A","⤍":"\u290D","❳":"\u2773","}":"}","]":"]","⦌":"\u298C","⦎":"\u298E","⦐":"\u2990","ř":"\u0159","ŗ":"\u0157","⌉":"\u2309","}":"}","р":"\u0440","⤷":"\u2937","⥩":"\u2969","”":"\u201D","”":"\u201D","↳":"\u21B3","ℜ":"\u211C","ℛ":"\u211B","ℜ":"\u211C","ℝ":"\u211D","▭":"\u25AD","®":"\xAE","®":"\xAE","⥽":"\u297D","⌋":"\u230B","𝔯":"\u{1D52F}","⇁":"\u21C1","⇀":"\u21C0","⥬":"\u296C","ρ":"\u03C1","ϱ":"\u03F1","→":"\u2192","↣":"\u21A3","⇁":"\u21C1","⇀":"\u21C0","⇄":"\u21C4","⇌":"\u21CC","⇉":"\u21C9","↝":"\u219D","⋌":"\u22CC","˚":"\u02DA","≓":"\u2253","⇄":"\u21C4","⇌":"\u21CC","‏":"\u200F","⎱":"\u23B1","⎱":"\u23B1","⫮":"\u2AEE","⟭":"\u27ED","⇾":"\u21FE","⟧":"\u27E7","⦆":"\u2986","𝕣":"\u{1D563}","⨮":"\u2A2E","⨵":"\u2A35",")":")","⦔":"\u2994","⨒":"\u2A12","⇉":"\u21C9","›":"\u203A","𝓇":"\u{1D4C7}","↱":"\u21B1","]":"]","’":"\u2019","’":"\u2019","⋌":"\u22CC","⋊":"\u22CA","▹":"\u25B9","⊵":"\u22B5","▸":"\u25B8","⧎":"\u29CE","⥨":"\u2968","℞":"\u211E","ś":"\u015B","‚":"\u201A","≻":"\u227B","⪴":"\u2AB4","⪸":"\u2AB8","š":"\u0161","≽":"\u227D","⪰":"\u2AB0","ş":"\u015F","ŝ":"\u015D","⪶":"\u2AB6","⪺":"\u2ABA","⋩":"\u22E9","⨓":"\u2A13","≿":"\u227F","с":"\u0441","⋅":"\u22C5","⊡":"\u22A1","⩦":"\u2A66","⇘":"\u21D8","⤥":"\u2925","↘":"\u2198","↘":"\u2198","§":"\xA7","§":"\xA7",";":";","⤩":"\u2929","∖":"\u2216","∖":"\u2216","✶":"\u2736","𝔰":"\u{1D530}","⌢":"\u2322","♯":"\u266F","щ":"\u0449","ш":"\u0448","∣":"\u2223","∥":"\u2225","­":"\xAD","­":"\xAD","σ":"\u03C3","ς":"\u03C2","ς":"\u03C2","∼":"\u223C","⩪":"\u2A6A","≃":"\u2243","≃":"\u2243","⪞":"\u2A9E","⪠":"\u2AA0","⪝":"\u2A9D","⪟":"\u2A9F","≆":"\u2246","⨤":"\u2A24","⥲":"\u2972","←":"\u2190","∖":"\u2216","⨳":"\u2A33","⧤":"\u29E4","∣":"\u2223","⌣":"\u2323","⪪":"\u2AAA","⪬":"\u2AAC","⪬︀":"\u2AAC\uFE00","ь":"\u044C","/":"/","⧄":"\u29C4","⌿":"\u233F","𝕤":"\u{1D564}","♠":"\u2660","♠":"\u2660","∥":"\u2225","⊓":"\u2293","⊓︀":"\u2293\uFE00","⊔":"\u2294","⊔︀":"\u2294\uFE00","⊏":"\u228F","⊑":"\u2291","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊐":"\u2290","⊒":"\u2292","□":"\u25A1","□":"\u25A1","▪":"\u25AA","▪":"\u25AA","→":"\u2192","𝓈":"\u{1D4C8}","∖":"\u2216","⌣":"\u2323","⋆":"\u22C6","☆":"\u2606","★":"\u2605","ϵ":"\u03F5","ϕ":"\u03D5","¯":"\xAF","⊂":"\u2282","⫅":"\u2AC5","⪽":"\u2ABD","⊆":"\u2286","⫃":"\u2AC3","⫁":"\u2AC1","⫋":"\u2ACB","⊊":"\u228A","⪿":"\u2ABF","⥹":"\u2979","⊂":"\u2282","⊆":"\u2286","⫅":"\u2AC5","⊊":"\u228A","⫋":"\u2ACB","⫇":"\u2AC7","⫕":"\u2AD5","⫓":"\u2AD3","≻":"\u227B","⪸":"\u2AB8","≽":"\u227D","⪰":"\u2AB0","⪺":"\u2ABA","⪶":"\u2AB6","⋩":"\u22E9","≿":"\u227F","∑":"\u2211","♪":"\u266A","¹":"\xB9","¹":"\xB9","²":"\xB2","²":"\xB2","³":"\xB3","³":"\xB3","⊃":"\u2283","⫆":"\u2AC6","⪾":"\u2ABE","⫘":"\u2AD8","⊇":"\u2287","⫄":"\u2AC4","⟉":"\u27C9","⫗":"\u2AD7","⥻":"\u297B","⫂":"\u2AC2","⫌":"\u2ACC","⊋":"\u228B","⫀":"\u2AC0","⊃":"\u2283","⊇":"\u2287","⫆":"\u2AC6","⊋":"\u228B","⫌":"\u2ACC","⫈":"\u2AC8","⫔":"\u2AD4","⫖":"\u2AD6","⇙":"\u21D9","⤦":"\u2926","↙":"\u2199","↙":"\u2199","⤪":"\u292A","ß":"\xDF","ß":"\xDF","⌖":"\u2316","τ":"\u03C4","⎴":"\u23B4","ť":"\u0165","ţ":"\u0163","т":"\u0442","⃛":"\u20DB","⌕":"\u2315","𝔱":"\u{1D531}","∴":"\u2234","∴":"\u2234","θ":"\u03B8","ϑ":"\u03D1","ϑ":"\u03D1","≈":"\u2248","∼":"\u223C"," ":"\u2009","≈":"\u2248","∼":"\u223C","þ":"\xFE","þ":"\xFE","˜":"\u02DC","×":"\xD7","×":"\xD7","⊠":"\u22A0","⨱":"\u2A31","⨰":"\u2A30","∭":"\u222D","⤨":"\u2928","⊤":"\u22A4","⌶":"\u2336","⫱":"\u2AF1","𝕥":"\u{1D565}","⫚":"\u2ADA","⤩":"\u2929","‴":"\u2034","™":"\u2122","▵":"\u25B5","▿":"\u25BF","◃":"\u25C3","⊴":"\u22B4","≜":"\u225C","▹":"\u25B9","⊵":"\u22B5","◬":"\u25EC","≜":"\u225C","⨺":"\u2A3A","⨹":"\u2A39","⧍":"\u29CD","⨻":"\u2A3B","⏢":"\u23E2","𝓉":"\u{1D4C9}","ц":"\u0446","ћ":"\u045B","ŧ":"\u0167","≬":"\u226C","↞":"\u219E","↠":"\u21A0","⇑":"\u21D1","⥣":"\u2963","ú":"\xFA","ú":"\xFA","↑":"\u2191","ў":"\u045E","ŭ":"\u016D","û":"\xFB","û":"\xFB","у":"\u0443","⇅":"\u21C5","ű":"\u0171","⥮":"\u296E","⥾":"\u297E","𝔲":"\u{1D532}","ù":"\xF9","ù":"\xF9","↿":"\u21BF","↾":"\u21BE","▀":"\u2580","⌜":"\u231C","⌜":"\u231C","⌏":"\u230F","◸":"\u25F8","ū":"\u016B","¨":"\xA8","¨":"\xA8","ų":"\u0173","𝕦":"\u{1D566}","↑":"\u2191","↕":"\u2195","↿":"\u21BF","↾":"\u21BE","⊎":"\u228E","υ":"\u03C5","ϒ":"\u03D2","υ":"\u03C5","⇈":"\u21C8","⌝":"\u231D","⌝":"\u231D","⌎":"\u230E","ů":"\u016F","◹":"\u25F9","𝓊":"\u{1D4CA}","⋰":"\u22F0","ũ":"\u0169","▵":"\u25B5","▴":"\u25B4","⇈":"\u21C8","ü":"\xFC","ü":"\xFC","⦧":"\u29A7","⇕":"\u21D5","⫨":"\u2AE8","⫩":"\u2AE9","⊨":"\u22A8","⦜":"\u299C","ϵ":"\u03F5","ϰ":"\u03F0","∅":"\u2205","ϕ":"\u03D5","ϖ":"\u03D6","∝":"\u221D","↕":"\u2195","ϱ":"\u03F1","ς":"\u03C2","⊊︀":"\u228A\uFE00","⫋︀":"\u2ACB\uFE00","⊋︀":"\u228B\uFE00","⫌︀":"\u2ACC\uFE00","ϑ":"\u03D1","⊲":"\u22B2","⊳":"\u22B3","в":"\u0432","⊢":"\u22A2","∨":"\u2228","⊻":"\u22BB","≚":"\u225A","⋮":"\u22EE","|":"|","|":"|","𝔳":"\u{1D533}","⊲":"\u22B2","⊂⃒":"\u2282\u20D2","⊃⃒":"\u2283\u20D2","𝕧":"\u{1D567}","∝":"\u221D","⊳":"\u22B3","𝓋":"\u{1D4CB}","⫋︀":"\u2ACB\uFE00","⊊︀":"\u228A\uFE00","⫌︀":"\u2ACC\uFE00","⊋︀":"\u228B\uFE00","⦚":"\u299A","ŵ":"\u0175","⩟":"\u2A5F","∧":"\u2227","≙":"\u2259","℘":"\u2118","𝔴":"\u{1D534}","𝕨":"\u{1D568}","℘":"\u2118","≀":"\u2240","≀":"\u2240","𝓌":"\u{1D4CC}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","▽":"\u25BD","𝔵":"\u{1D535}","⟺":"\u27FA","⟷":"\u27F7","ξ":"\u03BE","⟸":"\u27F8","⟵":"\u27F5","⟼":"\u27FC","⋻":"\u22FB","⨀":"\u2A00","𝕩":"\u{1D569}","⨁":"\u2A01","⨂":"\u2A02","⟹":"\u27F9","⟶":"\u27F6","𝓍":"\u{1D4CD}","⨆":"\u2A06","⨄":"\u2A04","△":"\u25B3","⋁":"\u22C1","⋀":"\u22C0","ý":"\xFD","ý":"\xFD","я":"\u044F","ŷ":"\u0177","ы":"\u044B","¥":"\xA5","¥":"\xA5","𝔶":"\u{1D536}","ї":"\u0457","𝕪":"\u{1D56A}","𝓎":"\u{1D4CE}","ю":"\u044E","ÿ":"\xFF","ÿ":"\xFF","ź":"\u017A","ž":"\u017E","з":"\u0437","ż":"\u017C","ℨ":"\u2128","ζ":"\u03B6","𝔷":"\u{1D537}","ж":"\u0436","⇝":"\u21DD","𝕫":"\u{1D56B}","𝓏":"\u{1D4CF}","‍":"\u200D","‌":"\u200C"},Ai=Yh;function Xh(r){return r.replace(/&(#\d+|#x[a-f0-9]+|[a-z]+\d*);?/gi,(e,t)=>{if(typeof Ai[e]=="string")return Ai[e];if(t.charAt(0)!=="#"||e.charAt(e.length-1)!==";")return e;let s;t.charAt(1)==="x"?s=parseInt(t.substr(2),16):s=parseInt(t.substr(1),10);var n="";return s>=55296&&s<=57343||s>1114111?"\uFFFD":(s>65535&&(s-=65536,n+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),n+=String.fromCharCode(s),n)})}o(Xh,"decodeHTMLEntities");function er(r){return r.trim().replace(/[<>"'?&]/g,e=>{let t=e.charCodeAt(0).toString(16);return t.length<2&&(t="0"+t),"&#x"+t.toUpperCase()+";"})}o(er,"escapeHtml");function Mo(r){return"
"+er(r).replace(/\n/g,"
")+"
"}o(Mo,"textToHtml");function $o(r){return r=r.replace(/\r?\n/g,"").replace(/<\!\-\-.*?\-\->/gi," ").replace(/]*>/gi,` + `;await t.run(i);let u=(await t.values(f`SELECT id, hash, created_at FROM ${f.identifier(n)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await t.transaction(async l=>{for(let c of e)if(!u||Number(u[2])[n,e[n]])):g(e,ot)?s=e[X].selectedFields:g(e,D)?s={}:s=fn(e),new _r({table:e,fields:s,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};o(pe,"SQLiteSelectBuilder"),Qd=p,h(pe,Qd,"SQLiteSelectBuilder");var Gd,bs=class extends Dr{_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:e,fields:t,isPartialSelect:s,session:n,dialect:i,withList:a,distinct:u}){super(),this.config={withList:a,table:e,fields:{...t},distinct:u,setOperators:[]},this.isPartialSelect=s,this.session=n,this.dialect=i,this._={selectedFields:t},this.tableName=li(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{}}createJoin(e){return(t,s)=>{let n=this.tableName,i=li(t);if(typeof i=="string"&&this.config.joins?.some(a=>a.alias===i))throw new Error(`Alias "${i}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof n=="string"&&(this.config.fields={[n]:this.config.fields}),typeof i=="string"&&!g(t,D))){let a=g(t,te)?t[Y].selection:g(t,fe)?t[X].selectedFields:t[v.Symbol.Columns];this.config.fields[i]=a}if(typeof s=="function"&&(s=s(new Proxy(this.config.fields,new oe({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:s,table:t,joinType:e,alias:i}),typeof i=="string")switch(e){case"left":{this.joinsNotNullableMap[i]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[i]=!0;break}case"inner":{this.joinsNotNullableMap[i]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[i]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(e,t){return s=>{let n=typeof s=="function"?s(zd()):s;if(!ui(this.getSelectedFields(),n.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:n}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new oe({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new oe({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new oe({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new oe({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),s=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=s:this.config.orderBy=s}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){return new Proxy(new te(this.getSQL(),this.config.fields,e),new oe({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new oe({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};o(bs,"SQLiteSelectQueryBuilderBase"),Gd=p,h(bs,Gd,"SQLiteSelectQueryBuilder");var Wd,_r=class extends bs{_prepare(e=!0){if(!this.session)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let t=_e(this.config.fields),s=this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),t,"all");return s.joinsNotNullableMap=this.joinsNotNullableMap,s}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.all()}};o(_r,"SQLiteSelectBase"),Wd=p,h(_r,Wd,"SQLiteSelect");ao(_r,[se]);function pn(r,e){return(t,s,...n)=>{let i=[s,...n].map(a=>({type:r,isAll:e,rightSelect:a}));for(let a of i)if(!ui(t.getSelectedFields(),a.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return t.addSetOperators(i)}}o(pn,"createSetOperator");var zd=o(()=>({union:Kd,unionAll:Ud,intersect:Vd,except:Hd}),"getSQLiteSetOperators"),Kd=pn("union",!1),Ud=pn("union",!0),Vd=pn("intersect",!1),Hd=pn("except",!1);var Jd,Er=class{dialect;$with(e){let t=this;return{as(s){return typeof s=="function"&&(s=s(t)),new Proxy(new nt(s.getSQL(),s.getSelectedFields(),e,!0),new oe({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...e){let t=this;function s(i){return new pe({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e})}o(s,"select");function n(i){return new pe({fields:i??void 0,session:void 0,dialect:t.getDialect(),withList:e,distinct:!0})}return o(n,"selectDistinct"),{select:s,selectDistinct:n}}select(e){return new pe({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new pe({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new wr),this.dialect}};o(Er,"QueryBuilder"),Jd=p,h(Er,Jd,"SQLiteQueryBuilder");var Yd,It=class{constructor(e,t,s,n){this.table=e,this.session=t,this.dialect=s,this.withList=n}set(e){return new xs(this.table,dn(this.table,e),this.session,this.dialect,this.withList)}};o(It,"SQLiteUpdateBuilder"),Yd=p,h(It,Yd,"SQLiteUpdateBuilder");var Xd,xs=class extends se{constructor(e,t,s,n,i){super(),this.session=s,this.dialect=n,this.config={set:t,table:e,withList:i}}config;where(e){return this.config.where=e,this}returning(e=this.config.table[V.Symbol.Columns]){return this.config.returning=_e(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e=!0){return this.session[e?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run")}prepare(){return this._prepare(!1)}run=e=>this._prepare().run(e);all=e=>this._prepare().all(e);get=e=>this._prepare().get(e);values=e=>this._prepare().values(e);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}};o(xs,"SQLiteUpdateBase"),Xd=p,h(xs,Xd,"SQLiteUpdate");var Zd,Cr=class{constructor(e,t,s,n,i,a,u,l){this.mode=e,this.fullSchema=t,this.schema=s,this.tableNamesMap=n,this.table=i,this.tableConfig=a,this.dialect=u,this.session=l}findMany(e){return this.mode==="sync"?new Sr(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many"):new $t(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return this.mode==="sync"?new Sr(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first"):new $t(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}};o(Cr,"RelationalQueryBuilder"),Zd=p,h(Cr,Zd,"SQLiteAsyncRelationalQueryBuilder");var ef,$t=class extends se{constructor(e,t,s,n,i,a,u,l,c){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=s,this.table=n,this.tableConfig=i,this.dialect=a,this.session=u,this.config=l,this.mode=c}mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(e=!1){let{query:t,builtQuery:s}=this._toSQL();return this.session[e?"prepareOneTimeQuery":"prepareQuery"](s,void 0,this.mode==="first"?"get":"all",(n,i)=>{let a=n.map(u=>ln(this.schema,this.tableConfig,u,t.selection,i));return this.mode==="first"?a[0]:a})}prepare(){return this._prepare(!1)}_toSQL(){let e=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return this.mode==="first"?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}};o($t,"SQLiteRelationalQuery"),ef=p,h($t,ef,"SQLiteAsyncRelationalQuery");var tf,Sr=class extends $t{sync(){return this.executeRaw()}};o(Sr,"SQLiteSyncRelationalQuery"),tf=p,h(Sr,tf,"SQLiteSyncRelationalQuery");var rf,Je=class extends se{constructor(e,t,s,n,i){super(),this.execute=e,this.getSQL=t,this.dialect=n,this.mapBatchResult=i,this.config={action:s}}config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}};o(Je,"SQLiteRaw"),rf=p,h(Je,rf,"SQLiteRaw");var sf,ut=class{constructor(e,t,s,n){this.resultKind=e,this.dialect=t,this.session=s,this._=n?{schema:n.schema,tableNamesMap:n.tableNamesMap}:{schema:void 0,tableNamesMap:{}},this.query={};let i=this.query;if(this._.schema)for(let[a,u]of Object.entries(this._.schema))i[a]=new Cr(e,n.fullSchema,this._.schema,this._.tableNamesMap,n.fullSchema[a],u,t,s)}query;$with(e){return{as(t){return typeof t=="function"&&(t=t(new Er)),new Proxy(new nt(t.getSQL(),t.getSelectedFields(),e,!0),new oe({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}}with(...e){let t=this;function s(l){return new pe({fields:l??void 0,session:t.session,dialect:t.dialect,withList:e})}o(s,"select");function n(l){return new pe({fields:l??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}o(n,"selectDistinct");function i(l){return new It(l,t.session,t.dialect,e)}o(i,"update");function a(l){return new jt(l,t.session,t.dialect,e)}o(a,"insert");function u(l){return new Ft(l,t.session,t.dialect,e)}return o(u,"delete_"),{select:s,selectDistinct:n,update:i,insert:a,delete:u}}select(e){return new pe({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new pe({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(e){return new It(e,this.session,this.dialect)}insert(e){return new jt(e,this.session,this.dialect)}delete(e){return new Ft(e,this.session,this.dialect)}run(e){let t=e.getSQL();return this.resultKind==="async"?new Je(async()=>this.session.run(t),()=>t,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(t)}all(e){let t=e.getSQL();return this.resultKind==="async"?new Je(async()=>this.session.all(t),()=>t,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(t)}get(e){let t=e.getSQL();return this.resultKind==="async"?new Je(async()=>this.session.get(t),()=>t,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(t)}values(e){let t=e.getSQL();return this.resultKind==="async"?new Je(async()=>this.session.values(t),()=>t,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(t)}transaction(e,t){return this.session.transaction(e,t)}};o(ut,"BaseSQLiteDatabase"),sf=p,h(ut,sf,"BaseSQLiteDatabase");var nf,vs=class extends se{constructor(e){super(),this.resultCb=e}async execute(){return this.resultCb()}sync(){return this.resultCb()}};o(vs,"ExecuteResultSync"),nf=p,h(vs,nf,"ExecuteResultSync");var af,Tr=class{constructor(e,t,s){this.mode=e,this.executeMethod=t,this.query=s}joinsNotNullableMap;getQuery(){return this.query}mapRunResult(e,t){return e}mapAllResult(e,t){throw new Error("Not implemented")}mapGetResult(e,t){throw new Error("Not implemented")}execute(e){return this.mode==="async"?this[this.executeMethod](e):new vs(()=>this[this.executeMethod](e))}mapResult(e,t){switch(this.executeMethod){case"run":return this.mapRunResult(e,t);case"all":return this.mapAllResult(e,t);case"get":return this.mapGetResult(e,t)}}};o(Tr,"SQLitePreparedQuery"),af=p,h(Tr,af,"PreparedQuery");var of,Nr=class{constructor(e){this.dialect=e}prepareOneTimeQuery(e,t,s){return this.prepareQuery(e,t,s)}run(e){let t=this.dialect.sqlToQuery(e);try{return this.prepareOneTimeQuery(t,void 0,"run").run()}catch(s){throw new Qe({cause:s,message:`Failed to run the query '${t.sql}'`})}}extractRawRunValueFromBatchResult(e){return e}all(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run").all()}extractRawAllValueFromBatchResult(e){throw new Error("Not implemented")}get(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run").get()}extractRawGetValueFromBatchResult(e){throw new Error("Not implemented")}values(e){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(e),void 0,"run").values()}extractRawValuesValueFromBatchResult(e){throw new Error("Not implemented")}};o(Nr,"SQLiteSession"),of=p,h(Nr,of,"SQLiteSession");var uf,kr=class extends ut{constructor(e,t,s,n,i=0){super(e,t,s,n),this.schema=n,this.nestedIndex=i}rollback(){throw new pr}};o(kr,"SQLiteTransaction"),uf=p,h(kr,uf,"SQLiteTransaction");var oo=Symbol.for("drizzle:MySqlInlineForeignKeys"),lf,$e=class extends v{[(lf=p,v.Symbol.Columns)];[oo]=[];[v.Symbol.ExtraConfigBuilder]=void 0};o($e,"MySqlTable"),h($e,lf,"MySqlTable"),h($e,"Symbol",Object.assign({},v.Symbol,{InlineForeignKeys:oo}));var cf,Rr=class{reference;_onUpdate;_onDelete;constructor(e,t){this.reference=()=>{let{name:s,columns:n,foreignColumns:i}=e();return{name:s,columns:n,foreignTable:i[0].table,foreignColumns:i}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e,this}onDelete(e){return this._onDelete=e,this}build(e){return new ws(e,this)}};o(Rr,"ForeignKeyBuilder"),cf=p,h(Rr,cf,"MySqlForeignKeyBuilder");var df,ws=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),n=t.map(u=>u.name),i=s.map(u=>u.name),a=[this.table[$e.Symbol.Name],...n,s[0].table[$e.Symbol.Name],...i];return e??`${a.join("_")}_fk`}};o(ws,"ForeignKey"),df=p,h(ws,df,"MySqlForeignKey");function hi(r,e){return`${r[$e.Symbol.Name]}_${e.join("_")}_unique`}o(hi,"uniqueKeyName");var ff,As=class{constructor(e,t){this.name=t,this.columns=e}columns;build(e){return new Ds(e,this.columns,this.name)}};o(As,"UniqueConstraintBuilder"),ff=p,h(As,ff,"MySqlUniqueConstraintBuilder");var hf,mn=class{name;constructor(e){this.name=e}on(...e){return new As(e,this.name)}};o(mn,"UniqueOnConstraintBuilder"),hf=p,h(mn,hf,"MySqlUniqueOnConstraintBuilder");var pf,Ds=class{constructor(e,t,s){this.table=e,this.columns=t,this.name=s??hi(this.table,this.columns.map(n=>n.name))}columns;name;nullsNotDistinct=!1;getName(){return this.name}};o(Ds,"UniqueConstraint"),pf=p,h(Ds,pf,"MySqlUniqueConstraint");var mf,Se=class extends je{foreignKeyConfigs=[];references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e){return this.config.isUnique=!0,this.config.uniqueName=e,this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:n})=>((i,a)=>{let u=new Rr(()=>{let l=i();return{columns:[e],foreignColumns:[l]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)})(s,n))}};o(Se,"MySqlColumnBuilder"),mf=p,h(Se,mf,"MySqlColumnBuilder");var gf,Te=class extends B{constructor(e,t){t.uniqueName||(t.uniqueName=hi(e,[t.name])),super(e,t),this.table=e}};o(Te,"MySqlColumn"),gf=p,h(Te,gf,"MySqlColumn");var yf,gn=class extends Se{constructor(e,t,s){super(e,t,s),this.config.autoIncrement=!1}autoincrement(){return this.config.autoIncrement=!0,this.config.hasDefault=!0,this}};o(gn,"MySqlColumnBuilderWithAutoIncrement"),yf=p,h(gn,yf,"MySqlColumnBuilderWithAutoIncrement");var bf,yn=class extends Te{autoIncrement=this.config.autoIncrement};o(yn,"MySqlColumnWithAutoIncrement"),bf=p,h(yn,bf,"MySqlColumnWithAutoIncrement");var xf,bn=class extends Se{constructor(e,t){super(e,"string","MySqlChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new Mt(e,this.config)}};o(bn,"MySqlCharBuilder"),xf=p,h(bn,xf,"MySqlCharBuilder");var vf,Mt=class extends Te{length=this.config.length;enumValues=this.config.enum;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}};o(Mt,"MySqlChar"),vf=p,h(Mt,vf,"MySqlChar");var wf,xn=class extends Se{constructor(e,t){super(e,"string","MySqlVarBinary"),this.config.length=t?.length}build(e){return new Lt(e,this.config)}};o(xn,"MySqlVarBinaryBuilder"),wf=p,h(xn,wf,"MySqlVarBinaryBuilder");var Af,Lt=class extends Te{length=this.config.length;getSQLType(){return this.length===void 0?"varbinary":`varbinary(${this.length})`}};o(Lt,"MySqlVarBinary"),Af=p,h(Lt,Af,"MySqlVarBinary");var Df,vn=class extends Se{constructor(e,t){super(e,"string","MySqlVarChar"),this.config.length=t.length,this.config.enum=t.enum}build(e){return new Pt(e,this.config)}};o(vn,"MySqlVarCharBuilder"),Df=p,h(vn,Df,"MySqlVarCharBuilder");var _f,Pt=class extends Te{length=this.config.length;enumValues=this.config.enum;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};o(Pt,"MySqlVarChar"),_f=p,h(Pt,_f,"MySqlVarChar");var Ef,Or=class{reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:s,columns:n,foreignColumns:i}=e();return{name:s,columns:n,foreignTable:i[0].table,foreignColumns:i}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new _s(e,this)}};o(Or,"ForeignKeyBuilder"),Ef=p,h(Or,Ef,"PgForeignKeyBuilder");var Cf,_s=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:s}=this.reference(),n=t.map(u=>u.name),i=s.map(u=>u.name),a=[this.table[De.Symbol.Name],...n,s[0].table[De.Symbol.Name],...i];return e??`${a.join("_")}_fk`}};o(_s,"ForeignKey"),Cf=p,h(_s,Cf,"PgForeignKey");function pi(r,e){return`${r[De.Symbol.Name]}_${e.join("_")}_unique`}o(pi,"uniqueKeyName");var Sf,Es=class{constructor(e,t){this.name=t,this.columns=e}columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new Cs(e,this.columns,this.nullsNotDistinctConfig,this.name)}};o(Es,"UniqueConstraintBuilder"),Sf=p,h(Es,Sf,"PgUniqueConstraintBuilder");var Tf,wn=class{name;constructor(e){this.name=e}on(...e){return new Es(e,this.name)}};o(wn,"UniqueOnConstraintBuilder"),Tf=p,h(wn,Tf,"PgUniqueOnConstraintBuilder");var Nf,Cs=class{constructor(e,t,s,n){this.table=e,this.columns=t,this.name=n??pi(this.table,this.columns.map(i=>i.name)),this.nullsNotDistinct=s}columns;name;nullsNotDistinct=!1;getName(){return this.name}};o(Cs,"UniqueConstraint"),Nf=p,h(Cs,Nf,"PgUniqueConstraint");function uo(r,e,t){for(let s=e;sArray.isArray(e)?mi(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}o(mi,"makePgArray");var kf,Ne=class extends je{foreignKeyConfigs=[];array(e){return new Ss(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:s,actions:n})=>tn((i,a)=>{let u=new Or(()=>{let l=i();return{columns:[e],foreignColumns:[l]}});return a.onUpdate&&u.onUpdate(a.onUpdate),a.onDelete&&u.onDelete(a.onDelete),u.build(t)},s,n))}};o(Ne,"PgColumnBuilder"),kf=p,h(Ne,kf,"PgColumnBuilder");var Rf,ke=class extends B{constructor(e,t){t.uniqueName||(t.uniqueName=pi(e,[t.name])),super(e,t),this.table=e}};o(ke,"PgColumn"),Rf=p,h(ke,Rf,"PgColumn");var Of,Ss=class extends Ne{constructor(e,t,s){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=s}build(e){let t=this.config.baseBuilder.build(e);return new Ts(e,this.config,t)}};o(Ss,"PgArrayBuilder"),Of=p,h(Ss,Of,"PgArrayBuilder");var Bf,gi=class extends ke{constructor(e,t,s,n){super(e,t),this.baseColumn=s,this.range=n,this.size=t.size}size;getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size=="number"?this.size:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=co(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapToDriverValue(e,t=!1){let s=e.map(n=>n===null?null:g(this.baseColumn,gi)?this.baseColumn.mapToDriverValue(n,!0):this.baseColumn.mapToDriverValue(n));return t?s:mi(s)}},Ts=gi;o(Ts,"PgArray"),Bf=p,h(Ts,Bf,"PgArray");var qf,An=class extends Ne{constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new zt(e,this.config)}};o(An,"PgCharBuilder"),qf=p,h(An,qf,"PgCharBuilder");var Ff,zt=class extends ke{length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}};o(zt,"PgChar"),Ff=p,h(zt,Ff,"PgChar");var jf,Dn=class extends Ne{constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(f`gen_random_uuid()`)}build(e){return new Kt(e,this.config)}};o(Dn,"PgUUIDBuilder"),jf=p,h(Dn,jf,"PgUUIDBuilder");var If,Kt=class extends ke{getSQLType(){return"uuid"}};o(Kt,"PgUUID"),If=p,h(Kt,If,"PgUUID");var $f,_n=class extends Ne{constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Ut(e,this.config)}};o(_n,"PgVarcharBuilder"),$f=p,h(_n,$f,"PgVarcharBuilder");var Mf,Ut=class extends ke{length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};o(Ut,"PgVarchar"),Mf=p,h(Ut,Mf,"PgVarchar");var H={};lu(H,{BRAND:()=>dh,DIRTY:()=>Vt,EMPTY_PATH:()=>Kf,INVALID:()=>_,NEVER:()=>Hh,OK:()=>ue,ParseStatus:()=>Z,Schema:()=>k,ZodAny:()=>Ze,ZodArray:()=>ge,ZodBigInt:()=>Oe,ZodBoolean:()=>ct,ZodBranded:()=>jr,ZodCatch:()=>vt,ZodDate:()=>Le,ZodDefault:()=>xt,ZodDiscriminatedUnion:()=>Gt,ZodEffects:()=>ve,ZodEnum:()=>Be,ZodError:()=>ie,ZodFirstPartyTypeKind:()=>E,ZodFunction:()=>et,ZodIntersection:()=>pt,ZodIssueCode:()=>y,ZodLazy:()=>gt,ZodLiteral:()=>yt,ZodMap:()=>Wt,ZodNaN:()=>Jt,ZodNativeEnum:()=>bt,ZodNever:()=>Ee,ZodNull:()=>ft,ZodNullable:()=>qe,ZodNumber:()=>Re,ZodObject:()=>P,ZodOptional:()=>we,ZodParsedType:()=>w,ZodPipeline:()=>wt,ZodPromise:()=>tt,ZodReadonly:()=>At,ZodRecord:()=>mt,ZodSchema:()=>k,ZodSet:()=>ze,ZodString:()=>me,ZodSymbol:()=>Ht,ZodTransformer:()=>ve,ZodTuple:()=>xe,ZodType:()=>k,ZodUndefined:()=>dt,ZodUnion:()=>ht,ZodUnknown:()=>Pe,ZodVoid:()=>Qt,addIssueToContext:()=>b,any:()=>vh,array:()=>Yt,bigint:()=>mh,boolean:()=>wo,coerce:()=>Vh,custom:()=>xo,date:()=>gh,datetimeRegex:()=>yo,defaultErrorMap:()=>Ye,discriminatedUnion:()=>Ch,effect:()=>Ih,enum:()=>qh,function:()=>Rh,getErrorMap:()=>Br,getParsedType:()=>Me,instanceof:()=>hh,intersection:()=>Sh,isAborted:()=>En,isAsync:()=>qr,isDirty:()=>Cn,isValid:()=>lt,late:()=>fh,lazy:()=>Oh,literal:()=>Bh,makeIssue:()=>Ns,map:()=>Nh,nan:()=>ph,nativeEnum:()=>Fh,never:()=>Ah,null:()=>xh,nullable:()=>Mh,number:()=>vo,object:()=>vi,objectUtil:()=>yi,oboolean:()=>Uh,onumber:()=>Kh,optional:()=>$h,ostring:()=>zh,pipeline:()=>Ph,preprocess:()=>Lh,promise:()=>jh,quotelessJson:()=>Lf,record:()=>wi,set:()=>kh,setErrorMap:()=>zf,strictObject:()=>_h,string:()=>Ir,symbol:()=>yh,transformer:()=>Ih,tuple:()=>Th,undefined:()=>bh,union:()=>Eh,unknown:()=>wh,util:()=>R,void:()=>Dh});var R;(function(r){r.assertEqual=n=>{};function e(n){}o(e,"assertIs"),r.assertIs=e;function t(n){throw new Error}o(t,"assertNever"),r.assertNever=t,r.arrayToEnum=n=>{let i={};for(let a of n)i[a]=a;return i},r.getValidEnumValues=n=>{let i=r.objectKeys(n).filter(u=>typeof n[n[u]]!="number"),a={};for(let u of i)a[u]=n[u];return r.objectValues(a)},r.objectValues=n=>r.objectKeys(n).map(function(i){return n[i]}),r.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let i=[];for(let a in n)Object.prototype.hasOwnProperty.call(n,a)&&i.push(a);return i},r.find=(n,i)=>{for(let a of n)if(i(a))return a},r.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function s(n,i=" | "){return n.map(a=>typeof a=="string"?`'${a}'`:a).join(i)}o(s,"joinValues"),r.joinValues=s,r.jsonStringifyReplacer=(n,i)=>typeof i=="bigint"?i.toString():i})(R||(R={}));var yi;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(yi||(yi={}));var w=R.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Me=o(r=>{switch(typeof r){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(r)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(r)?w.array:r===null?w.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?w.promise:typeof Map<"u"&&r instanceof Map?w.map:typeof Set<"u"&&r instanceof Set?w.set:typeof Date<"u"&&r instanceof Date?w.date:w.object;default:return w.unknown}},"getParsedType");var y=R.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Lf=o(r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),"quotelessJson"),ie=class extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){let t=e||function(i){return i.message},s={_errors:[]},n=o(i=>{for(let a of i.issues)if(a.code==="invalid_union")a.unionErrors.map(n);else if(a.code==="invalid_return_type")n(a.returnTypeError);else if(a.code==="invalid_arguments")n(a.argumentsError);else if(a.path.length===0)s._errors.push(t(a));else{let u=s,l=0;for(;lt.message){let t={},s=[];for(let n of this.issues)if(n.path.length>0){let i=n.path[0];t[i]=t[i]||[],t[i].push(e(n))}else s.push(e(n));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}};o(ie,"ZodError");ie.create=r=>new ie(r);var Pf=o((r,e)=>{let t;switch(r.code){case y.invalid_type:r.received===w.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case y.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,R.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:t=`Unrecognized key(s) in object: ${R.joinValues(r.keys,", ")}`;break;case y.invalid_union:t="Invalid input";break;case y.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${R.joinValues(r.options)}`;break;case y.invalid_enum_value:t=`Invalid enum value. Expected ${R.joinValues(r.options)}, received '${r.received}'`;break;case y.invalid_arguments:t="Invalid function arguments";break;case y.invalid_return_type:t="Invalid function return type";break;case y.invalid_date:t="Invalid date";break;case y.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:R.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case y.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case y.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case y.custom:t="Invalid input";break;case y.invalid_intersection_types:t="Intersection results could not be merged";break;case y.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case y.not_finite:t="Number must be finite";break;default:t=e.defaultError,R.assertNever(r)}return{message:t}},"errorMap"),Ye=Pf;var fo=Ye;function zf(r){fo=r}o(zf,"setErrorMap");function Br(){return fo}o(Br,"getErrorMap");var Ns=o(r=>{let{data:e,path:t,errorMaps:s,issueData:n}=r,i=[...t,...n.path||[]],a={...n,path:i};if(n.message!==void 0)return{...n,path:i,message:n.message};let u="",l=s.filter(c=>!!c).slice().reverse();for(let c of l)u=c(a,{data:e,defaultError:u}).message;return{...n,path:i,message:u}},"makeIssue"),Kf=[];function b(r,e){let t=Br(),s=Ns({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===Ye?void 0:Ye].filter(n=>!!n)});r.common.issues.push(s)}o(b,"addIssueToContext");var Z=class{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){let s=[];for(let n of t){if(n.status==="aborted")return _;n.status==="dirty"&&e.dirty(),s.push(n.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){let s=[];for(let n of t){let i=await n.key,a=await n.value;s.push({key:i,value:a})}return Z.mergeObjectSync(e,s)}static mergeObjectSync(e,t){let s={};for(let n of t){let{key:i,value:a}=n;if(i.status==="aborted"||a.status==="aborted")return _;i.status==="dirty"&&e.dirty(),a.status==="dirty"&&e.dirty(),i.value!=="__proto__"&&(typeof a.value<"u"||n.alwaysSet)&&(s[i.value]=a.value)}return{status:e.value,value:s}}};o(Z,"ParseStatus");var _=Object.freeze({status:"aborted"}),Vt=o(r=>({status:"dirty",value:r}),"DIRTY"),ue=o(r=>({status:"valid",value:r}),"OK"),En=o(r=>r.status==="aborted","isAborted"),Cn=o(r=>r.status==="dirty","isDirty"),lt=o(r=>r.status==="valid","isValid"),qr=o(r=>typeof Promise<"u"&&r instanceof Promise,"isAsync");var A;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(A||(A={}));var be=class{constructor(e,t,s,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=n}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}};o(be,"ParseInputLazyPath");var ho=o((r,e)=>{if(lt(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let t=new ie(r.common.issues);return this._error=t,this._error}}},"handleResult");function T(r){if(!r)return{};let{errorMap:e,invalid_type_error:t,required_error:s,description:n}=r;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:o((a,u)=>{let{message:l}=r;return a.code==="invalid_enum_value"?{message:l??u.defaultError}:typeof u.data>"u"?{message:l??s??u.defaultError}:a.code!=="invalid_type"?{message:u.defaultError}:{message:l??t??u.defaultError}},"customMap"),description:n}}o(T,"processCreateParams");var k=class{get description(){return this._def.description}_getType(e){return Me(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Me(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new Z,ctx:{common:e.parent.common,data:e.data,parsedType:Me(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(qr(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){let s={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Me(e)},n=this._parseSync({data:e,path:s.path,parent:s});return ho(s,n)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Me(e)};if(!this["~standard"].async)try{let s=this._parseSync({data:e,path:[],parent:t});return lt(s)?{value:s.value}:{issues:t.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>lt(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){let s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){let s={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Me(e)},n=this._parse({data:e,path:s.path,parent:s}),i=await(qr(n)?n:Promise.resolve(n));return ho(s,i)}refine(e,t){let s=o(n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t,"getIssueProperties");return this._refinement((n,i)=>{let a=e(n),u=o(()=>i.addIssue({code:y.custom,...s(n)}),"setError");return typeof Promise<"u"&&a instanceof Promise?a.then(l=>l?!0:(u(),!1)):a?!0:(u(),!1)})}refinement(e,t){return this._refinement((s,n)=>e(s)?!0:(n.addIssue(typeof t=="function"?t(s,n):t),!1))}_refinement(e){return new ve({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return we.create(this,this._def)}nullable(){return qe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ge.create(this)}promise(){return tt.create(this,this._def)}or(e){return ht.create([this,e],this._def)}and(e){return pt.create(this,e,this._def)}transform(e){return new ve({...T(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new xt({...T(this._def),innerType:this,defaultValue:t,typeName:E.ZodDefault})}brand(){return new jr({typeName:E.ZodBranded,type:this,...T(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new vt({...T(this._def),innerType:this,catchValue:t,typeName:E.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return wt.create(this,e)}readonly(){return At.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}};o(k,"ZodType");var Uf=/^c[^\s-]{8,}$/i,Vf=/^[0-9a-z]+$/,Hf=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Qf=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Gf=/^[a-z0-9_-]{21}$/i,Wf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Jf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Yf=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Xf="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",bi,Zf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,eh=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,th=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,rh=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,sh=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nh=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,mo="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",ih=new RegExp(`^${mo}$`);function go(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let t=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}o(go,"timeRegexSource");function ah(r){return new RegExp(`^${go(r)}$`)}o(ah,"timeRegex");function yo(r){let e=`${mo}T${go(r)}`,t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}o(yo,"datetimeRegex");function oh(r,e){return!!((e==="v4"||!e)&&Zf.test(r)||(e==="v6"||!e)&&th.test(r))}o(oh,"isValidIP");function uh(r,e){if(!Wf.test(r))return!1;try{let[t]=r.split(".");if(!t)return!1;let s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(s));return!(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return!1}}o(uh,"isValidJWT");function lh(r,e){return!!((e==="v4"||!e)&&eh.test(r)||(e==="v6"||!e)&&rh.test(r))}o(lh,"isValidCidr");var me=class extends k{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==w.string){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_type,expected:w.string,received:i.parsedType}),_}let s=new Z,n;for(let i of this._def.checks)if(i.kind==="min")e.data.lengthi.value&&(n=this._getOrReturnCtx(e,n),b(n,{code:y.too_big,maximum:i.value,type:"string",inclusive:!0,exact:!1,message:i.message}),s.dirty());else if(i.kind==="length"){let a=e.data.length>i.value,u=e.data.lengthe.test(n),{validation:t,code:y.invalid_string,...A.errToObj(s)})}_addCheck(e){return new me({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...A.errToObj(e)})}url(e){return this._addCheck({kind:"url",...A.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...A.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...A.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...A.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...A.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...A.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...A.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...A.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...A.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...A.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...A.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...A.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...A.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...A.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...A.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...A.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...A.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...A.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...A.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...A.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...A.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...A.errToObj(t)})}nonempty(e){return this.min(1,A.errToObj(e))}trim(){return new me({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new me({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new me({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew me({checks:[],typeName:E.ZodString,coerce:r?.coerce??!1,...T(r)});function ch(r,e){let t=(r.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,n=t>s?t:s,i=Number.parseInt(r.toFixed(n).replace(".","")),a=Number.parseInt(e.toFixed(n).replace(".",""));return i%a/10**n}o(ch,"floatSafeRemainder");var Re=class extends k{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==w.number){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_type,expected:w.number,received:i.parsedType}),_}let s,n=new Z;for(let i of this._def.checks)i.kind==="int"?R.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),b(s,{code:y.invalid_type,expected:"integer",received:"float",message:i.message}),n.dirty()):i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.too_big,maximum:i.value,type:"number",inclusive:i.inclusive,exact:!1,message:i.message}),n.dirty()):i.kind==="multipleOf"?ch(e.data,i.value)!==0&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),n.dirty()):i.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),b(s,{code:y.not_finite,message:i.message}),n.dirty()):R.assertNever(i);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,A.toString(t))}gt(e,t){return this.setLimit("min",e,!1,A.toString(t))}lte(e,t){return this.setLimit("max",e,!0,A.toString(t))}lt(e,t){return this.setLimit("max",e,!1,A.toString(t))}setLimit(e,t,s,n){return new Re({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:A.toString(n)}]})}_addCheck(e){return new Re({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:A.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:A.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:A.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:A.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:A.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:A.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:A.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:A.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:A.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&R.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.valuenew Re({checks:[],typeName:E.ZodNumber,coerce:r?.coerce||!1,...T(r)});var Oe=class extends k{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==w.bigint)return this._getInvalidInput(e);let s,n=new Z;for(let i of this._def.checks)i.kind==="min"?(i.inclusive?e.datai.value:e.data>=i.value)&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.too_big,type:"bigint",maximum:i.value,inclusive:i.inclusive,message:i.message}),n.dirty()):i.kind==="multipleOf"?e.data%i.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),b(s,{code:y.not_multiple_of,multipleOf:i.value,message:i.message}),n.dirty()):R.assertNever(i);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return b(t,{code:y.invalid_type,expected:w.bigint,received:t.parsedType}),_}gte(e,t){return this.setLimit("min",e,!0,A.toString(t))}gt(e,t){return this.setLimit("min",e,!1,A.toString(t))}lte(e,t){return this.setLimit("max",e,!0,A.toString(t))}lt(e,t){return this.setLimit("max",e,!1,A.toString(t))}setLimit(e,t,s,n){return new Oe({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:A.toString(n)}]})}_addCheck(e){return new Oe({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:A.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:A.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:A.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:A.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:A.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew Oe({checks:[],typeName:E.ZodBigInt,coerce:r?.coerce??!1,...T(r)});var ct=class extends k{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==w.boolean){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.boolean,received:s.parsedType}),_}return ue(e.data)}};o(ct,"ZodBoolean");ct.create=r=>new ct({typeName:E.ZodBoolean,coerce:r?.coerce||!1,...T(r)});var Le=class extends k{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==w.date){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_type,expected:w.date,received:i.parsedType}),_}if(Number.isNaN(e.data.getTime())){let i=this._getOrReturnCtx(e);return b(i,{code:y.invalid_date}),_}let s=new Z,n;for(let i of this._def.checks)i.kind==="min"?e.data.getTime()i.value&&(n=this._getOrReturnCtx(e,n),b(n,{code:y.too_big,message:i.message,inclusive:!0,exact:!1,maximum:i.value,type:"date"}),s.dirty()):R.assertNever(i);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Le({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:A.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:A.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.valuenew Le({checks:[],coerce:r?.coerce||!1,typeName:E.ZodDate,...T(r)});var Ht=class extends k{_parse(e){if(this._getType(e)!==w.symbol){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.symbol,received:s.parsedType}),_}return ue(e.data)}};o(Ht,"ZodSymbol");Ht.create=r=>new Ht({typeName:E.ZodSymbol,...T(r)});var dt=class extends k{_parse(e){if(this._getType(e)!==w.undefined){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.undefined,received:s.parsedType}),_}return ue(e.data)}};o(dt,"ZodUndefined");dt.create=r=>new dt({typeName:E.ZodUndefined,...T(r)});var ft=class extends k{_parse(e){if(this._getType(e)!==w.null){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.null,received:s.parsedType}),_}return ue(e.data)}};o(ft,"ZodNull");ft.create=r=>new ft({typeName:E.ZodNull,...T(r)});var Ze=class extends k{constructor(){super(...arguments),this._any=!0}_parse(e){return ue(e.data)}};o(Ze,"ZodAny");Ze.create=r=>new Ze({typeName:E.ZodAny,...T(r)});var Pe=class extends k{constructor(){super(...arguments),this._unknown=!0}_parse(e){return ue(e.data)}};o(Pe,"ZodUnknown");Pe.create=r=>new Pe({typeName:E.ZodUnknown,...T(r)});var Ee=class extends k{_parse(e){let t=this._getOrReturnCtx(e);return b(t,{code:y.invalid_type,expected:w.never,received:t.parsedType}),_}};o(Ee,"ZodNever");Ee.create=r=>new Ee({typeName:E.ZodNever,...T(r)});var Qt=class extends k{_parse(e){if(this._getType(e)!==w.undefined){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.void,received:s.parsedType}),_}return ue(e.data)}};o(Qt,"ZodVoid");Qt.create=r=>new Qt({typeName:E.ZodVoid,...T(r)});var ge=class extends k{_parse(e){let{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==w.array)return b(t,{code:y.invalid_type,expected:w.array,received:t.parsedType}),_;if(n.exactLength!==null){let a=t.data.length>n.exactLength.value,u=t.data.lengthn.maxLength.value&&(b(t,{code:y.too_big,maximum:n.maxLength.value,type:"array",inclusive:!0,exact:!1,message:n.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((a,u)=>n.type._parseAsync(new be(t,a,t.path,u)))).then(a=>Z.mergeArray(s,a));let i=[...t.data].map((a,u)=>n.type._parseSync(new be(t,a,t.path,u)));return Z.mergeArray(s,i)}get element(){return this._def.type}min(e,t){return new ge({...this._def,minLength:{value:e,message:A.toString(t)}})}max(e,t){return new ge({...this._def,maxLength:{value:e,message:A.toString(t)}})}length(e,t){return new ge({...this._def,exactLength:{value:e,message:A.toString(t)}})}nonempty(e){return this.min(1,e)}};o(ge,"ZodArray");ge.create=(r,e)=>new ge({type:r,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...T(e)});function Fr(r){if(r instanceof P){let e={};for(let t in r.shape){let s=r.shape[t];e[t]=we.create(Fr(s))}return new P({...r._def,shape:()=>e})}else return r instanceof ge?new ge({...r._def,type:Fr(r.element)}):r instanceof we?we.create(Fr(r.unwrap())):r instanceof qe?qe.create(Fr(r.unwrap())):r instanceof xe?xe.create(r.items.map(e=>Fr(e))):r}o(Fr,"deepPartialify");var P=class extends k{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=R.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==w.object){let c=this._getOrReturnCtx(e);return b(c,{code:y.invalid_type,expected:w.object,received:c.parsedType}),_}let{status:s,ctx:n}=this._processInputParams(e),{shape:i,keys:a}=this._getCached(),u=[];if(!(this._def.catchall instanceof Ee&&this._def.unknownKeys==="strip"))for(let c in n.data)a.includes(c)||u.push(c);let l=[];for(let c of a){let d=i[c],m=n.data[c];l.push({key:{status:"valid",value:c},value:d._parse(new be(n,m,n.path,c)),alwaysSet:c in n.data})}if(this._def.catchall instanceof Ee){let c=this._def.unknownKeys;if(c==="passthrough")for(let d of u)l.push({key:{status:"valid",value:d},value:{status:"valid",value:n.data[d]}});else if(c==="strict")u.length>0&&(b(n,{code:y.unrecognized_keys,keys:u}),s.dirty());else if(c!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let c=this._def.catchall;for(let d of u){let m=n.data[d];l.push({key:{status:"valid",value:d},value:c._parse(new be(n,m,n.path,d)),alwaysSet:d in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let c=[];for(let d of l){let m=await d.key,x=await d.value;c.push({key:m,value:x,alwaysSet:d.alwaysSet})}return c}).then(c=>Z.mergeObjectSync(s,c)):Z.mergeObjectSync(s,l)}get shape(){return this._def.shape()}strict(e){return A.errToObj,new P({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{let n=this._def.errorMap?.(t,s).message??s.defaultError;return t.code==="unrecognized_keys"?{message:A.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new P({...this._def,unknownKeys:"strip"})}passthrough(){return new P({...this._def,unknownKeys:"passthrough"})}extend(e){return new P({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new P({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:E.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new P({...this._def,catchall:e})}pick(e){let t={};for(let s of R.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new P({...this._def,shape:()=>t})}omit(e){let t={};for(let s of R.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new P({...this._def,shape:()=>t})}deepPartial(){return Fr(this)}partial(e){let t={};for(let s of R.objectKeys(this.shape)){let n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional()}return new P({...this._def,shape:()=>t})}required(e){let t={};for(let s of R.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let i=this.shape[s];for(;i instanceof we;)i=i._def.innerType;t[s]=i}return new P({...this._def,shape:()=>t})}keyof(){return bo(R.objectKeys(this.shape))}};o(P,"ZodObject");P.create=(r,e)=>new P({shape:()=>r,unknownKeys:"strip",catchall:Ee.create(),typeName:E.ZodObject,...T(e)});P.strictCreate=(r,e)=>new P({shape:()=>r,unknownKeys:"strict",catchall:Ee.create(),typeName:E.ZodObject,...T(e)});P.lazycreate=(r,e)=>new P({shape:r,unknownKeys:"strip",catchall:Ee.create(),typeName:E.ZodObject,...T(e)});var ht=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s=this._def.options;function n(i){for(let u of i)if(u.result.status==="valid")return u.result;for(let u of i)if(u.result.status==="dirty")return t.common.issues.push(...u.ctx.common.issues),u.result;let a=i.map(u=>new ie(u.ctx.common.issues));return b(t,{code:y.invalid_union,unionErrors:a}),_}if(o(n,"handleResults"),t.common.async)return Promise.all(s.map(async i=>{let a={...t,common:{...t.common,issues:[]},parent:null};return{result:await i._parseAsync({data:t.data,path:t.path,parent:a}),ctx:a}})).then(n);{let i,a=[];for(let l of s){let c={...t,common:{...t.common,issues:[]},parent:null},d=l._parseSync({data:t.data,path:t.path,parent:c});if(d.status==="valid")return d;d.status==="dirty"&&!i&&(i={result:d,ctx:c}),c.common.issues.length&&a.push(c.common.issues)}if(i)return t.common.issues.push(...i.ctx.common.issues),i.result;let u=a.map(l=>new ie(l));return b(t,{code:y.invalid_union,unionErrors:u}),_}}get options(){return this._def.options}};o(ht,"ZodUnion");ht.create=(r,e)=>new ht({options:r,typeName:E.ZodUnion,...T(e)});var Xe=o(r=>r instanceof gt?Xe(r.schema):r instanceof ve?Xe(r.innerType()):r instanceof yt?[r.value]:r instanceof Be?r.options:r instanceof bt?R.objectValues(r.enum):r instanceof xt?Xe(r._def.innerType):r instanceof dt?[void 0]:r instanceof ft?[null]:r instanceof we?[void 0,...Xe(r.unwrap())]:r instanceof qe?[null,...Xe(r.unwrap())]:r instanceof jr||r instanceof At?Xe(r.unwrap()):r instanceof vt?Xe(r._def.innerType):[],"getDiscriminator"),Gt=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.object)return b(t,{code:y.invalid_type,expected:w.object,received:t.parsedType}),_;let s=this.discriminator,n=t.data[s],i=this.optionsMap.get(n);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(b(t,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),_)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){let n=new Map;for(let i of t){let a=Xe(i.shape[e]);if(!a.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let u of a){if(n.has(u))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(u)}`);n.set(u,i)}}return new Gt({typeName:E.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...T(s)})}};o(Gt,"ZodDiscriminatedUnion");function xi(r,e){let t=Me(r),s=Me(e);if(r===e)return{valid:!0,data:r};if(t===w.object&&s===w.object){let n=R.objectKeys(e),i=R.objectKeys(r).filter(u=>n.indexOf(u)!==-1),a={...r,...e};for(let u of i){let l=xi(r[u],e[u]);if(!l.valid)return{valid:!1};a[u]=l.data}return{valid:!0,data:a}}else if(t===w.array&&s===w.array){if(r.length!==e.length)return{valid:!1};let n=[];for(let i=0;i{if(En(i)||En(a))return _;let u=xi(i.value,a.value);return u.valid?((Cn(i)||Cn(a))&&t.dirty(),{status:t.value,value:u.data}):(b(s,{code:y.invalid_intersection_types}),_)},"handleParsed");return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([i,a])=>n(i,a)):n(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};o(pt,"ZodIntersection");pt.create=(r,e,t)=>new pt({left:r,right:e,typeName:E.ZodIntersection,...T(t)});var xe=class extends k{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.array)return b(s,{code:y.invalid_type,expected:w.array,received:s.parsedType}),_;if(s.data.lengththis._def.items.length&&(b(s,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());let i=[...s.data].map((a,u)=>{let l=this._def.items[u]||this._def.rest;return l?l._parse(new be(s,a,s.path,u)):null}).filter(a=>!!a);return s.common.async?Promise.all(i).then(a=>Z.mergeArray(t,a)):Z.mergeArray(t,i)}get items(){return this._def.items}rest(e){return new xe({...this._def,rest:e})}};o(xe,"ZodTuple");xe.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new xe({items:r,typeName:E.ZodTuple,rest:null,...T(e)})};var mt=class extends k{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.object)return b(s,{code:y.invalid_type,expected:w.object,received:s.parsedType}),_;let n=[],i=this._def.keyType,a=this._def.valueType;for(let u in s.data)n.push({key:i._parse(new be(s,u,s.path,u)),value:a._parse(new be(s,s.data[u],s.path,u)),alwaysSet:u in s.data});return s.common.async?Z.mergeObjectAsync(t,n):Z.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof k?new mt({keyType:e,valueType:t,typeName:E.ZodRecord,...T(s)}):new mt({keyType:me.create(),valueType:e,typeName:E.ZodRecord,...T(t)})}};o(mt,"ZodRecord");var Wt=class extends k{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.map)return b(s,{code:y.invalid_type,expected:w.map,received:s.parsedType}),_;let n=this._def.keyType,i=this._def.valueType,a=[...s.data.entries()].map(([u,l],c)=>({key:n._parse(new be(s,u,s.path,[c,"key"])),value:i._parse(new be(s,l,s.path,[c,"value"]))}));if(s.common.async){let u=new Map;return Promise.resolve().then(async()=>{for(let l of a){let c=await l.key,d=await l.value;if(c.status==="aborted"||d.status==="aborted")return _;(c.status==="dirty"||d.status==="dirty")&&t.dirty(),u.set(c.value,d.value)}return{status:t.value,value:u}})}else{let u=new Map;for(let l of a){let c=l.key,d=l.value;if(c.status==="aborted"||d.status==="aborted")return _;(c.status==="dirty"||d.status==="dirty")&&t.dirty(),u.set(c.value,d.value)}return{status:t.value,value:u}}}};o(Wt,"ZodMap");Wt.create=(r,e,t)=>new Wt({valueType:e,keyType:r,typeName:E.ZodMap,...T(t)});var ze=class extends k{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==w.set)return b(s,{code:y.invalid_type,expected:w.set,received:s.parsedType}),_;let n=this._def;n.minSize!==null&&s.data.sizen.maxSize.value&&(b(s,{code:y.too_big,maximum:n.maxSize.value,type:"set",inclusive:!0,exact:!1,message:n.maxSize.message}),t.dirty());let i=this._def.valueType;function a(l){let c=new Set;for(let d of l){if(d.status==="aborted")return _;d.status==="dirty"&&t.dirty(),c.add(d.value)}return{status:t.value,value:c}}o(a,"finalizeSet");let u=[...s.data.values()].map((l,c)=>i._parse(new be(s,l,s.path,c)));return s.common.async?Promise.all(u).then(l=>a(l)):a(u)}min(e,t){return new ze({...this._def,minSize:{value:e,message:A.toString(t)}})}max(e,t){return new ze({...this._def,maxSize:{value:e,message:A.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};o(ze,"ZodSet");ze.create=(r,e)=>new ze({valueType:r,minSize:null,maxSize:null,typeName:E.ZodSet,...T(e)});var et=class extends k{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.function)return b(t,{code:y.invalid_type,expected:w.function,received:t.parsedType}),_;function s(u,l){return Ns({data:u,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Br(),Ye].filter(c=>!!c),issueData:{code:y.invalid_arguments,argumentsError:l}})}o(s,"makeArgsIssue");function n(u,l){return Ns({data:u,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Br(),Ye].filter(c=>!!c),issueData:{code:y.invalid_return_type,returnTypeError:l}})}o(n,"makeReturnsIssue");let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof tt){let u=this;return ue(async function(...l){let c=new ie([]),d=await u._def.args.parseAsync(l,i).catch(N=>{throw c.addIssue(s(l,N)),c}),m=await Reflect.apply(a,this,d);return await u._def.returns._def.type.parseAsync(m,i).catch(N=>{throw c.addIssue(n(m,N)),c})})}else{let u=this;return ue(function(...l){let c=u._def.args.safeParse(l,i);if(!c.success)throw new ie([s(l,c.error)]);let d=Reflect.apply(a,this,c.data),m=u._def.returns.safeParse(d,i);if(!m.success)throw new ie([n(d,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new et({...this._def,args:xe.create(e).rest(Pe.create())})}returns(e){return new et({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new et({args:e||xe.create([]).rest(Pe.create()),returns:t||Pe.create(),typeName:E.ZodFunction,...T(s)})}};o(et,"ZodFunction");var gt=class extends k{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};o(gt,"ZodLazy");gt.create=(r,e)=>new gt({getter:r,typeName:E.ZodLazy,...T(e)});var yt=class extends k{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return b(t,{received:t.data,code:y.invalid_literal,expected:this._def.value}),_}return{status:"valid",value:e.data}}get value(){return this._def.value}};o(yt,"ZodLiteral");yt.create=(r,e)=>new yt({value:r,typeName:E.ZodLiteral,...T(e)});function bo(r,e){return new Be({values:r,typeName:E.ZodEnum,...T(e)})}o(bo,"createZodEnum");var Be=class extends k{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),s=this._def.values;return b(t,{expected:R.joinValues(s),received:t.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),s=this._def.values;return b(t,{received:t.data,code:y.invalid_enum_value,options:s}),_}return ue(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Be.create(e,{...this._def,...t})}exclude(e,t=this._def){return Be.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}};o(Be,"ZodEnum");Be.create=bo;var bt=class extends k{_parse(e){let t=R.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==w.string&&s.parsedType!==w.number){let n=R.objectValues(t);return b(s,{expected:R.joinValues(n),received:s.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(R.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=R.objectValues(t);return b(s,{received:s.data,code:y.invalid_enum_value,options:n}),_}return ue(e.data)}get enum(){return this._def.values}};o(bt,"ZodNativeEnum");bt.create=(r,e)=>new bt({values:r,typeName:E.ZodNativeEnum,...T(e)});var tt=class extends k{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==w.promise&&t.common.async===!1)return b(t,{code:y.invalid_type,expected:w.promise,received:t.parsedType}),_;let s=t.parsedType===w.promise?t.data:Promise.resolve(t.data);return ue(s.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}};o(tt,"ZodPromise");tt.create=(r,e)=>new tt({type:r,typeName:E.ZodPromise,...T(e)});var ve=class extends k{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,i={addIssue:a=>{b(s,a),a.fatal?t.abort():t.dirty()},get path(){return s.path}};if(i.addIssue=i.addIssue.bind(i),n.type==="preprocess"){let a=n.transform(s.data,i);if(s.common.async)return Promise.resolve(a).then(async u=>{if(t.value==="aborted")return _;let l=await this._def.schema._parseAsync({data:u,path:s.path,parent:s});return l.status==="aborted"?_:l.status==="dirty"?Vt(l.value):t.value==="dirty"?Vt(l.value):l});{if(t.value==="aborted")return _;let u=this._def.schema._parseSync({data:a,path:s.path,parent:s});return u.status==="aborted"?_:u.status==="dirty"?Vt(u.value):t.value==="dirty"?Vt(u.value):u}}if(n.type==="refinement"){let a=o(u=>{let l=n.refinement(u,i);if(s.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return u},"executeRefinement");if(s.common.async===!1){let u=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return u.status==="aborted"?_:(u.status==="dirty"&&t.dirty(),a(u.value),{status:t.value,value:u.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(u=>u.status==="aborted"?_:(u.status==="dirty"&&t.dirty(),a(u.value).then(()=>({status:t.value,value:u.value}))))}if(n.type==="transform")if(s.common.async===!1){let a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!lt(a))return _;let u=n.transform(a.value,i);if(u instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:u}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>lt(a)?Promise.resolve(n.transform(a.value,i)).then(u=>({status:t.value,value:u})):_);R.assertNever(n)}};o(ve,"ZodEffects");ve.create=(r,e,t)=>new ve({schema:r,typeName:E.ZodEffects,effect:e,...T(t)});ve.createWithPreprocess=(r,e,t)=>new ve({schema:e,effect:{type:"preprocess",transform:r},typeName:E.ZodEffects,...T(t)});var we=class extends k{_parse(e){return this._getType(e)===w.undefined?ue(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};o(we,"ZodOptional");we.create=(r,e)=>new we({innerType:r,typeName:E.ZodOptional,...T(e)});var qe=class extends k{_parse(e){return this._getType(e)===w.null?ue(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};o(qe,"ZodNullable");qe.create=(r,e)=>new qe({innerType:r,typeName:E.ZodNullable,...T(e)});var xt=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return t.parsedType===w.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};o(xt,"ZodDefault");xt.create=(r,e)=>new xt({innerType:r,typeName:E.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...T(e)});var vt=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return qr(n)?n.then(i=>({status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ie(s.common.issues)},input:s.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new ie(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};o(vt,"ZodCatch");vt.create=(r,e)=>new vt({innerType:r,typeName:E.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...T(e)});var Jt=class extends k{_parse(e){if(this._getType(e)!==w.nan){let s=this._getOrReturnCtx(e);return b(s,{code:y.invalid_type,expected:w.nan,received:s.parsedType}),_}return{status:"valid",value:e.data}}};o(Jt,"ZodNaN");Jt.create=r=>new Jt({typeName:E.ZodNaN,...T(r)});var dh=Symbol("zod_brand"),jr=class extends k{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}};o(jr,"ZodBranded");var wt=class extends k{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return o(async()=>{let i=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?_:i.status==="dirty"?(t.dirty(),Vt(i.value)):this._def.out._parseAsync({data:i.value,path:s.path,parent:s})},"handleAsync")();{let n=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?_:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:s.path,parent:s})}}static create(e,t){return new wt({in:e,out:t,typeName:E.ZodPipeline})}};o(wt,"ZodPipeline");var At=class extends k{_parse(e){let t=this._def.innerType._parse(e),s=o(n=>(lt(n)&&(n.value=Object.freeze(n.value)),n),"freeze");return qr(t)?t.then(n=>s(n)):s(t)}unwrap(){return this._def.innerType}};o(At,"ZodReadonly");At.create=(r,e)=>new At({innerType:r,typeName:E.ZodReadonly,...T(e)});function po(r,e){let t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}o(po,"cleanParams");function xo(r,e={},t){return r?Ze.create().superRefine((s,n)=>{let i=r(s);if(i instanceof Promise)return i.then(a=>{if(!a){let u=po(e,s),l=u.fatal??t??!0;n.addIssue({code:"custom",...u,fatal:l})}});if(!i){let a=po(e,s),u=a.fatal??t??!0;n.addIssue({code:"custom",...a,fatal:u})}}):Ze.create()}o(xo,"custom");var fh={object:P.lazycreate},E;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(E||(E={}));var hh=o((r,e={message:`Input not instance of ${r.name}`})=>xo(t=>t instanceof r,e),"instanceOfType"),Ir=me.create,vo=Re.create,ph=Jt.create,mh=Oe.create,wo=ct.create,gh=Le.create,yh=Ht.create,bh=dt.create,xh=ft.create,vh=Ze.create,wh=Pe.create,Ah=Ee.create,Dh=Qt.create,Yt=ge.create,vi=P.create,_h=P.strictCreate,Eh=ht.create,Ch=Gt.create,Sh=pt.create,Th=xe.create,wi=mt.create,Nh=Wt.create,kh=ze.create,Rh=et.create,Oh=gt.create,Bh=yt.create,qh=Be.create,Fh=bt.create,jh=tt.create,Ih=ve.create,$h=we.create,Mh=qe.create,Lh=ve.createWithPreprocess,Ph=wt.create,zh=o(()=>Ir().optional(),"ostring"),Kh=o(()=>vo().optional(),"onumber"),Uh=o(()=>wo().optional(),"oboolean"),Vh={string:r=>me.create({...r,coerce:!0}),number:r=>Re.create({...r,coerce:!0}),boolean:r=>ct.create({...r,coerce:!0}),bigint:r=>Oe.create({...r,coerce:!0}),date:r=>Le.create({...r,coerce:!0})};var Hh=_;var Gh=H.union([H.string(),H.number(),H.boolean(),H.null()]),Ai=H.lazy(()=>H.union([Gh,H.array(Ai),H.record(Ai)]));function Sn(r,e){let t=fn(r),s=Object.entries(t),n=Object.fromEntries(s.map(([i,a])=>[i,Ao(a)]));e&&(n=Object.assign(n,Object.fromEntries(Object.entries(e).map(([i,a])=>[i,typeof a=="function"?a(n):a]))));for(let[i,a]of s)a.notNull?a.hasDefault&&(n[i]=n[i].optional()):n[i]=n[i].nullable().optional();return H.object(n)}o(Sn,"c");function Ao(r){let e;if(function(t){return"enumValues"in t&&Array.isArray(t.enumValues)&&t.enumValues.length>0}(r)&&(e=r.enumValues.length?H.enum(r.enumValues):H.string()),!e){if(g(r,Kt))e=H.string().uuid();else if(r.dataType==="custom")e=H.any();else if(r.dataType==="json")e=Ai;else if(r.dataType==="array")e=H.array(Ao(r.baseColumn));else if(r.dataType==="number")e=H.number();else if(r.dataType==="bigint")e=H.bigint();else if(r.dataType==="boolean")e=H.boolean();else if(r.dataType==="date")e=H.date();else if(r.dataType==="string"){let t=H.string();(g(r,zt)||g(r,Ut)||g(r,Pt)||g(r,Lt)||g(r,Mt)||g(r,qt))&&typeof r.length=="number"&&(t=t.max(r.length)),e=t}}return e||(e=H.any()),e}o(Ao,"p");var Xt=ns("api_keys",{id:I("id").primaryKey(),key:I("key").notNull().unique(),keyPrefix:I("key_prefix").notNull(),name:I("name"),rateLimit:ne("rate_limit").default(100),isActive:ne("is_active",{mode:"boolean"}).default(!0).notNull(),lastUsedAt:ne("last_used_at",{mode:"timestamp"}),expiresAt:ne("expires_at",{mode:"timestamp"}),createdAt:ne("created_at",{mode:"timestamp"}).notNull(),updatedAt:ne("updated_at",{mode:"timestamp"}).notNull()}),o3=Sn(Xt),ks=ns("mailboxes",{id:I("id").primaryKey(),address:I("address").notNull().unique(),domain:I("domain").notNull(),expiresAt:ne("expires_at",{mode:"timestamp"}),apiKeyId:I("api_key_id").notNull(),createdAt:ne("created_at",{mode:"timestamp"}).notNull(),updatedAt:ne("updated_at",{mode:"timestamp"}).notNull()}),u3=Sn(ks),K=ns("emails",{id:I("id").primaryKey(),messageFrom:I("message_from").notNull(),messageTo:I("message_to").notNull(),headers:I("headers",{mode:"json"}).$type().notNull(),from:I("from",{mode:"json"}).$type().notNull(),sender:I("sender",{mode:"json"}).$type(),replyTo:I("reply_to",{mode:"json"}).$type(),deliveredTo:I("delivered_to"),returnPath:I("return_path"),to:I("to",{mode:"json"}).$type(),cc:I("cc",{mode:"json"}).$type(),bcc:I("bcc",{mode:"json"}).$type(),subject:I("subject"),messageId:I("message_id").notNull(),inReplyTo:I("in_reply_to"),references:I("references"),date:I("date"),html:I("html"),text:I("text"),createdAt:ne("created_at",{mode:"timestamp"}).notNull(),updatedAt:ne("updated_at",{mode:"timestamp"}).notNull()}),$r=vi({address:Ir(),name:Ir()}),Do=Sn(K,{headers:Yt(wi(Ir())),from:$r,sender:$r.optional(),replyTo:Yt($r).optional(),to:Yt($r).optional(),cc:Yt($r).optional(),bcc:Yt($r).optional()}),le=ns("site_stats",{id:I("id").primaryKey(),totalAddressesCreated:ne("total_addresses_created").default(0).notNull(),totalEmailsReceived:ne("total_emails_received").default(0).notNull(),totalApiCalls:ne("total_api_calls").default(0).notNull(),totalApiKeysCreated:ne("total_api_keys_created").default(0).notNull(),updatedAt:ne("updated_at",{mode:"timestamp"}).notNull()});async function _o(r,e){try{await r.insert(K).values(e).execute()}catch(t){console.error(t)}}o(_o,"insertEmail");async function Eo(r,e){try{let t=await r.select().from(K).where(Ge(W(K.id,e))).execute();return t.length!=1?null:t[0]}catch{return null}}o(Eo,"findEmailById");async function Co(r,e){try{return await r.select().from(K).where(W(K.messageTo,e)).orderBy(es(K.createdAt)).execute()}catch{return[]}}o(Co,"getEmailsByMessageTo");async function So(r,e){if(!e||e.length===0)return{count:0};try{return{count:(await r.delete(K).where(on(K.id,e))).rowsAffected}}catch(t){return console.error(t),{count:0}}}o(So,"deleteEmails");async function To(r,e){try{return{count:(await r.delete(K).where(an(K.createdAt,e)).execute()).rowsAffected}}catch(t){return console.error("\u6E05\u7406\u8FC7\u671F\u90AE\u4EF6\u5931\u8D25:",t),{count:0}}}o(To,"deleteExpiredEmails");async function No(r,e){try{let t=await r.select().from(Xt).where(W(Xt.key,e)).execute();return t.length===1?t[0]:null}catch(t){return console.error("findApiKeyByKey error:",t),null}}o(No,"findApiKeyByKey");async function ko(r,e){try{await r.update(Xt).set({lastUsedAt:new Date,updatedAt:new Date}).where(W(Xt.id,e)).execute()}catch(t){console.error("updateApiKeyLastUsed error:",t)}}o(ko,"updateApiKeyLastUsed");async function Ro(r,e){try{return await r.insert(Xt).values(e).execute(),e}catch(t){return console.error("insertApiKey error:",t),null}}o(Ro,"insertApiKey");async function Oo(r,e){try{return await r.insert(ks).values(e).execute(),e}catch(t){throw console.error("insertMailbox error:",t),t}}o(Oo,"insertMailbox");async function Rs(r,e){try{let t=await r.select().from(ks).where(W(ks.id,e)).execute();return t.length===1?t[0]:null}catch(t){return console.error("findMailboxById error:",t),null}}o(Rs,"findMailboxById");async function Bo(r,e,t){try{let s=(t.page-1)*t.limit,n=t.sort==="asc"?un:es,[i,a]=await Promise.all([r.select().from(K).where(W(K.messageTo,e)).orderBy(n(K.createdAt)).limit(t.limit).offset(s).execute(),r.select({count:oi()}).from(K).where(W(K.messageTo,e)).execute()]),u=a[0]?.count||0;return{messages:i,total:u,totalPages:Math.ceil(u/t.limit)}}catch(s){return console.error("getMailboxMessages error:",s),{messages:[],total:0,totalPages:0}}}o(Bo,"getMailboxMessages");async function qo(r,e,t){try{let s=await r.select().from(K).where(Ge(W(K.id,t),W(K.messageTo,e))).execute();return s.length===1?s[0]:null}catch(s){return console.error("findMailboxMessage error:",s),null}}o(qo,"findMailboxMessage");async function Fo(r,e,t){try{return(await r.delete(K).where(Ge(W(K.id,t),W(K.messageTo,e))).execute()).rowsAffected>0}catch(s){return console.error("deleteMailboxMessage error:",s),!1}}o(Fo,"deleteMailboxMessage");async function jo(r,e){try{return(await r.select({count:oi()}).from(K).where(W(K.messageTo,e)).execute())[0]?.count||0}catch(t){return console.error("getMailboxMessageCount error:",t),0}}o(jo,"getMailboxMessageCount");var Mr="global";async function Di(r){try{let e=await r.select().from(le).where(W(le.id,Mr)).execute();return e.length===1?e[0]:null}catch(e){return console.error("getSiteStats error:",e),null}}o(Di,"getSiteStats");async function Tn(r){try{await Di(r)||await r.insert(le).values({id:Mr,totalAddressesCreated:0,totalEmailsReceived:0,totalApiCalls:0,totalApiKeysCreated:0,updatedAt:new Date}).execute()}catch(e){console.error("initSiteStats error:",e)}}o(Tn,"initSiteStats");async function Io(r,e=1){try{await Tn(r),await r.update(le).set({totalEmailsReceived:f`${le.totalEmailsReceived} + ${e}`,updatedAt:new Date}).where(W(le.id,Mr)).execute()}catch(t){console.error("incrementEmailsReceived error:",t)}}o(Io,"incrementEmailsReceived");async function $o(r,e=1){try{await Tn(r),await r.update(le).set({totalAddressesCreated:f`${le.totalAddressesCreated} + ${e}`,updatedAt:new Date}).where(W(le.id,Mr)).execute()}catch(t){console.error("incrementAddressesCreated error:",t)}}o($o,"incrementAddressesCreated");async function Mo(r,e=1){try{await Tn(r),await r.update(le).set({totalApiKeysCreated:f`${le.totalApiKeysCreated} + ${e}`,updatedAt:new Date}).where(W(le.id,Mr)).execute()}catch(t){console.error("incrementApiKeysCreated error:",t)}}o(Mo,"incrementApiKeysCreated");async function Lo(r,e=1){try{await Tn(r),await r.update(le).set({totalApiCalls:f`${le.totalApiCalls} + ${e}`,updatedAt:new Date}).where(W(le.id,Mr)).execute()}catch(t){console.error("incrementApiCalls error:",t)}}o(Lo,"incrementApiCalls");var Wh,Lr=class extends Nr{constructor(e,t,s,n={}){super(t),this.client=e,this.schema=s,this.options=n,this.logger=n.logger??new gr}logger;prepareQuery(e,t,s,n){let i=this.client.prepare(e.sql);return new Bs(i,e,this.logger,t,s,n)}async batch(e){let t=[],s=[];for(let i of e){let a=i._prepare(),u=a.getQuery();if(t.push(a),u.params.length>0)s.push(a.stmt.bind(...u.params));else{let l=a.getQuery();s.push(this.client.prepare(l.sql).bind(...l.params))}}return(await this.client.batch(s)).map((i,a)=>t[a].mapResult(i,!0))}extractRawAllValueFromBatchResult(e){return e.results}extractRawGetValueFromBatchResult(e){return e.results[0]}extractRawValuesValueFromBatchResult(e){return _i(e.results)}async transaction(e,t){let s=new Os("async",this.dialect,this,this.schema);await this.run(f.raw(`begin${t?.behavior?" "+t.behavior:""}`));try{let n=await e(s);return await this.run(f`commit`),n}catch(n){throw await this.run(f`rollback`),n}}};o(Lr,"SQLiteD1Session"),Wh=p,h(Lr,Wh,"SQLiteD1Session");var Jh,Ei=class extends kr{async transaction(e){let t=`sp${this.nestedIndex}`,s=new Ei("async",this.dialect,this.session,this.schema,this.nestedIndex+1);await this.session.run(f.raw(`savepoint ${t}`));try{let n=await e(s);return await this.session.run(f.raw(`release savepoint ${t}`)),n}catch(n){throw await this.session.run(f.raw(`rollback to savepoint ${t}`)),n}}},Os=Ei;o(Os,"D1Transaction"),Jh=p,h(Os,Jh,"D1Transaction");function _i(r){let e=[];for(let t of r){let s=Object.keys(t).map(n=>t[n]);e.push(s)}return e}o(_i,"d1ToRawMapping");var Yh,Bs=class extends Tr{constructor(e,t,s,n,i,a){super("async",i,t),this.logger=s,this.customResultMapper=a,this.fields=n,this.stmt=e}customResultMapper;fields;stmt;run(e){let t=Yr(this.query.params,e??{});return this.logger.logQuery(this.query.sql,t),this.stmt.bind(...t).run()}async all(e){let{fields:t,query:s,logger:n,stmt:i,customResultMapper:a}=this;if(!t&&!a){let l=Yr(s.params,e??{});return n.logQuery(s.sql,l),i.bind(...l).all().then(({results:c})=>this.mapAllResult(c))}let u=await this.values(e);return this.mapAllResult(u)}mapAllResult(e,t){return t&&(e=_i(e.results)),!this.fields&&!this.customResultMapper?e:this.customResultMapper?this.customResultMapper(e):e.map(s=>cn(this.fields,s,this.joinsNotNullableMap))}async get(e){let{fields:t,joinsNotNullableMap:s,query:n,logger:i,stmt:a,customResultMapper:u}=this;if(!t&&!u){let c=Yr(n.params,e??{});return i.logQuery(n.sql,c),a.bind(...c).all().then(({results:d})=>d[0])}let l=await this.values(e);if(l[0])return u?u(l):cn(t,l[0],s)}mapGetResult(e,t){return t&&(e=_i(e.results)[0]),!this.fields&&!this.customResultMapper?e:this.customResultMapper?this.customResultMapper([e]):cn(this.fields,e,this.joinsNotNullableMap)}values(e){let t=Yr(this.query.params,e??{});return this.logger.logQuery(this.query.sql,t),this.stmt.bind(...t).raw()}};o(Bs,"D1PreparedQuery"),Yh=p,h(Bs,Yh,"D1PreparedQuery");var Xh,qs=class extends ut{async batch(e){return this.session.batch(e)}};o(qs,"DrizzleD1Database"),Xh=p,h(qs,Xh,"LibSQLDatabase");function Po(r,e={}){let t=new Ar,s;e.logger===!0?s=new mr:e.logger!==!1&&(s=e.logger);let n;if(e.schema){let a=so(e.schema,io);n={fullSchema:e.schema,schema:a.tables,tableNamesMap:a.tableNamesMap}}let i=new Lr(r,t,n,{logger:s});return new qs("async",t,i,n)}o(Po,"drizzle");function ce(r){return Po(r)}o(ce,"getD1DB");var Zh="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Fs=o((r=21)=>{let e="",t=r|0;for(;t--;)e+=Zh[Math.random()*64|0];return e},"nanoid");var Dt=new TextEncoder,zo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Is=new Uint8Array(256);for(js=0;js>4,i[s++]=(l&15)<<4|c>>2,i[s++]=(c&3)<<6|d&63}return n}o(Nn,"decodeBase64");function Pr(r){r=r||"utf8";let e;try{e=new TextDecoder(r)}catch{e=new TextDecoder("windows-1252")}return e}o(Pr,"getDecoder");async function _t(r){if("arrayBuffer"in r)return await r.arrayBuffer();let e=new FileReader;return new Promise((t,s)=>{e.onload=function(n){t(n.target.result)},e.onerror=function(n){s(e.error)},e.readAsArrayBuffer(r)})}o(_t,"blobToArrayBuffer");function Ko(r){return r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70?String.fromCharCode(r):!1}o(Ko,"getHex");function ep(r,e,t){let s=r.indexOf("*");s>=0&&(r=r.substr(0,s)),e=e.toUpperCase();let n;if(e==="Q"){t=t.replace(/=\s+([0-9a-fA-F])/g,"=$1").replace(/[_\s]/g," ");let i=Dt.encode(t),a=[];for(let l=0,c=i.length;le&&a===l&&u.length%4===0&&!/=$/.test(u)?i+"__\0JOIN\0__":n).replace(/(=\?([^?]+)\?[Qq]\?[^?]*\?=)\s*(?==\?([^?]+)\?[Qq]\?[^?]*\?=)/g,(n,i,a,u)=>e&&a===u?i+"__\0JOIN\0__":n).replace(/(\?=)?__\x00JOIN\x00__(=\?([^?]+)\?[QqBb]\?)?/g,"").replace(/(=\?[^?]+\?[QqBb]\?[^?]*\?=)\s+(?==\?[^?]+\?[QqBb]\?[^?]*\?=)/g,"$1").replace(/=\?([\w_\-*]+)\?([QqBb])\?([^?]*)\?=/g,(n,i,a,u)=>ep(i,a,u));if(e&&s.indexOf("\uFFFD")>=0)e=!1;else return s}}o(Zt,"decodeWords");function tp(r,e){e=e||"utf-8";let t=[];for(let i=0;i126){a=Dt.encode(a);for(let u=0;u{let s=t.match(/\*((\d+)\*?)?$/);if(!s)return;let n=t.substr(0,s.index).toLowerCase(),i=Number(s[2])||0,a;e.has(n)?a=e.get(n):(a={charset:!1,values:[]},e.set(n,a));let u=r.params[t];i===0&&s[0].charAt(s[0].length-1)==="*"&&(s=u.match(/^([^']*)'[^']*'(.*)$/))&&(a.charset=s[1]||"utf-8",u=s[2]),a.values.push({nr:i,value:u}),delete r.params[t]}),e.forEach((t,s)=>{r.params[s]=tp(t.values.sort((n,i)=>n.nr-i.nr).map(n=>n.value).join(""),t.charset)})}o(Uo,"decodeParameterValueContinuations");var zr=class{constructor(){this.chunks=[]}update(e){this.chunks.push(e),this.chunks.push(` +`)}finalize(){return _t(new Blob(this.chunks,{type:"application/octet-stream"}))}};o(zr,"PassThroughDecoder");var Kr=class{constructor(e){e=e||{},this.decoder=e.decoder||new TextDecoder,this.maxChunkSize=100*1024,this.chunks=[],this.remainder=""}update(e){let t=this.decoder.decode(e);if(/[^a-zA-Z0-9+\/]/.test(t)&&(t=t.replace(/[^a-zA-Z0-9+\/]+/g,"")),this.remainder+=t,this.remainder.length>=this.maxChunkSize){let s=Math.floor(this.remainder.length/4)*4,n;s===this.remainder.length?(n=this.remainder,this.remainder=""):(n=this.remainder.substr(0,s),this.remainder=this.remainder.substr(s)),n.length&&this.chunks.push(Nn(n))}}finalize(){return this.remainder&&!/^=+$/.test(this.remainder)&&this.chunks.push(Nn(this.remainder)),_t(new Blob(this.chunks,{type:"application/octet-stream"}))}};o(Kr,"Base64Decoder");var Vo=/^=[a-f0-9]{2}$/i,rp=/(?==[a-f0-9]{2})/i,sp=/=\r?\n/g,np=/=[a-fA-F0-9]?$/,Ur=class{constructor(e){e=e||{},this.decoder=e.decoder||new TextDecoder,this.maxChunkSize=100*1024,this.remainder="",this.chunks=[]}decodeQPBytes(e){let t=new ArrayBuffer(e.length),s=new DataView(t);for(let n=0,i=e.length;n3){let i=n.substr(0,3);Vo.test(i)?(s.push(n.substr(1,2)),this.chunks.push(this.decodeQPBytes(s)),s=[],n=n.substr(3),this.chunks.push(n)):(s.length&&(this.chunks.push(this.decodeQPBytes(s)),s=[]),this.chunks.push(n))}}s.length&&(this.chunks.push(this.decodeQPBytes(s)),s=[])}update(e){let t=this.decoder.decode(e)+` +`;if(t=this.remainder+t,t.lengththis.options.maxNestingDepth)throw new Error(`Maximum MIME nesting depth of ${this.options.maxNestingDepth} levels exceeded`);this.options.parentNode.childNodes.push(this)}else this.depth=0;this.state="header",this.headerLines=[],this.headerSize=0,this.contentType={value:"text/plain",default:!0},this.contentTransferEncoding={value:"8bit"},this.contentDisposition={value:""},this.headers=[],this.contentDecoder=!1}setupContentDecoder(e){/base64/i.test(e)?this.contentDecoder=new Kr:/quoted-printable/i.test(e)?this.contentDecoder=new Ur({decoder:Pr(this.contentType.parsed.params.charset)}):this.contentDecoder=new zr}async finalize(){if(this.state==="finished")return;this.state==="header"&&this.processHeaders();let e=this.postalMime.boundaries;for(let t=e.length-1;t>=0;t--)if(e[t].node===this){e.splice(t,1);break}await this.finalizeChildNodes(),this.content=this.contentDecoder?await this.contentDecoder.finalize():null,this.state="finished"}async finalizeChildNodes(){for(let e of this.childNodes)await e.finalize()}parseStructuredHeader(e){let t={value:!1,params:{}},s=!1,n="",i="value",a=!1,u=!1,l;for(let c=0,d=e.length;c/ $/.test(s)&&!/(^|\n)-- $/.test(s)?t?s.slice(0,-1)+n:s+n:s+` +`+n).replace(/^ /gm,"")}getTextContent(){if(!this.content)return"";let e=Pr(this.contentType.parsed.params.charset).decode(this.content);return/^flowed$/i.test(this.contentType.parsed.params.format)&&(e=this.decodeFlowedText(e,/^yes$/i.test(this.contentType.parsed.params.delsp))),e}processHeaders(){for(let e=this.headerLines.length-1;e>=0;e--){let t=this.headerLines[e];if(e&&/^\s/.test(t))this.headerLines[e-1]+=` +`+t,this.headerLines.splice(e,1);else{t=t.replace(/\s+/g," ");let s=t.indexOf(":"),n=s<0?t.trim():t.substr(0,s).trim(),i=s<0?"":t.substr(s+1).trim();switch(this.headers.push({key:n.toLowerCase(),originalKey:n,value:i}),n.toLowerCase()){case"content-type":this.contentType.default&&(this.contentType={value:i,parsed:{}});break;case"content-transfer-encoding":this.contentTransferEncoding={value:i,parsed:{}};break;case"content-disposition":this.contentDisposition={value:i,parsed:{}};break;case"content-id":this.contentId=i;break;case"content-description":this.contentDescription=i;break}}}this.contentType.parsed=this.parseStructuredHeader(this.contentType.value),this.contentType.multipart=/^multipart\//i.test(this.contentType.parsed.value)?this.contentType.parsed.value.substr(this.contentType.parsed.value.indexOf("/")+1):!1,this.contentType.multipart&&this.contentType.parsed.params.boundary&&this.postalMime.boundaries.push({value:Dt.encode(this.contentType.parsed.params.boundary),node:this}),this.contentDisposition.parsed=this.parseStructuredHeader(this.contentDisposition.value),this.contentTransferEncoding.encoding=this.contentTransferEncoding.value.toLowerCase().split(/[^\w-]/).shift(),this.setupContentDecoder(this.contentTransferEncoding.encoding)}feed(e){switch(this.state){case"header":if(!e.length)return this.state="body",this.processHeaders();if(this.headerSize+=e.length,this.headerSize>this.options.maxHeadersSize)throw new Error(`Maximum header size of ${this.options.maxHeadersSize} bytes exceeded`);this.headerLines.push(Pr().decode(e));break;case"body":this.contentDecoder.update(e)}}};o(er,"MimeNode");var ip={"Æ":"\xC6","Æ":"\xC6","&":"&","&":"&","Á":"\xC1","Á":"\xC1","Ă":"\u0102","Â":"\xC2","Â":"\xC2","А":"\u0410","𝔄":"\u{1D504}","À":"\xC0","À":"\xC0","Α":"\u0391","Ā":"\u0100","⩓":"\u2A53","Ą":"\u0104","𝔸":"\u{1D538}","⁡":"\u2061","Å":"\xC5","Å":"\xC5","𝒜":"\u{1D49C}","≔":"\u2254","Ã":"\xC3","Ã":"\xC3","Ä":"\xC4","Ä":"\xC4","∖":"\u2216","⫧":"\u2AE7","⌆":"\u2306","Б":"\u0411","∵":"\u2235","ℬ":"\u212C","Β":"\u0392","𝔅":"\u{1D505}","𝔹":"\u{1D539}","˘":"\u02D8","ℬ":"\u212C","≎":"\u224E","Ч":"\u0427","©":"\xA9","©":"\xA9","Ć":"\u0106","⋒":"\u22D2","ⅅ":"\u2145","ℭ":"\u212D","Č":"\u010C","Ç":"\xC7","Ç":"\xC7","Ĉ":"\u0108","∰":"\u2230","Ċ":"\u010A","¸":"\xB8","·":"\xB7","ℭ":"\u212D","Χ":"\u03A7","⊙":"\u2299","⊖":"\u2296","⊕":"\u2295","⊗":"\u2297","∲":"\u2232","”":"\u201D","’":"\u2019","∷":"\u2237","⩴":"\u2A74","≡":"\u2261","∯":"\u222F","∮":"\u222E","ℂ":"\u2102","∐":"\u2210","∳":"\u2233","⨯":"\u2A2F","𝒞":"\u{1D49E}","⋓":"\u22D3","≍":"\u224D","ⅅ":"\u2145","⤑":"\u2911","Ђ":"\u0402","Ѕ":"\u0405","Џ":"\u040F","‡":"\u2021","↡":"\u21A1","⫤":"\u2AE4","Ď":"\u010E","Д":"\u0414","∇":"\u2207","Δ":"\u0394","𝔇":"\u{1D507}","´":"\xB4","˙":"\u02D9","˝":"\u02DD","`":"`","˜":"\u02DC","⋄":"\u22C4","ⅆ":"\u2146","𝔻":"\u{1D53B}","¨":"\xA8","⃜":"\u20DC","≐":"\u2250","∯":"\u222F","¨":"\xA8","⇓":"\u21D3","⇐":"\u21D0","⇔":"\u21D4","⫤":"\u2AE4","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","⇒":"\u21D2","⊨":"\u22A8","⇑":"\u21D1","⇕":"\u21D5","∥":"\u2225","↓":"\u2193","⤓":"\u2913","⇵":"\u21F5","̑":"\u0311","⥐":"\u2950","⥞":"\u295E","↽":"\u21BD","⥖":"\u2956","⥟":"\u295F","⇁":"\u21C1","⥗":"\u2957","⊤":"\u22A4","↧":"\u21A7","⇓":"\u21D3","𝒟":"\u{1D49F}","Đ":"\u0110","Ŋ":"\u014A","Ð":"\xD0","Ð":"\xD0","É":"\xC9","É":"\xC9","Ě":"\u011A","Ê":"\xCA","Ê":"\xCA","Э":"\u042D","Ė":"\u0116","𝔈":"\u{1D508}","È":"\xC8","È":"\xC8","∈":"\u2208","Ē":"\u0112","◻":"\u25FB","▫":"\u25AB","Ę":"\u0118","𝔼":"\u{1D53C}","Ε":"\u0395","⩵":"\u2A75","≂":"\u2242","⇌":"\u21CC","ℰ":"\u2130","⩳":"\u2A73","Η":"\u0397","Ë":"\xCB","Ë":"\xCB","∃":"\u2203","ⅇ":"\u2147","Ф":"\u0424","𝔉":"\u{1D509}","◼":"\u25FC","▪":"\u25AA","𝔽":"\u{1D53D}","∀":"\u2200","ℱ":"\u2131","ℱ":"\u2131","Ѓ":"\u0403",">":">",">":">","Γ":"\u0393","Ϝ":"\u03DC","Ğ":"\u011E","Ģ":"\u0122","Ĝ":"\u011C","Г":"\u0413","Ġ":"\u0120","𝔊":"\u{1D50A}","⋙":"\u22D9","𝔾":"\u{1D53E}","≥":"\u2265","⋛":"\u22DB","≧":"\u2267","⪢":"\u2AA2","≷":"\u2277","⩾":"\u2A7E","≳":"\u2273","𝒢":"\u{1D4A2}","≫":"\u226B","Ъ":"\u042A","ˇ":"\u02C7","^":"^","Ĥ":"\u0124","ℌ":"\u210C","ℋ":"\u210B","ℍ":"\u210D","─":"\u2500","ℋ":"\u210B","Ħ":"\u0126","≎":"\u224E","≏":"\u224F","Е":"\u0415","IJ":"\u0132","Ё":"\u0401","Í":"\xCD","Í":"\xCD","Î":"\xCE","Î":"\xCE","И":"\u0418","İ":"\u0130","ℑ":"\u2111","Ì":"\xCC","Ì":"\xCC","ℑ":"\u2111","Ī":"\u012A","ⅈ":"\u2148","⇒":"\u21D2","∬":"\u222C","∫":"\u222B","⋂":"\u22C2","⁣":"\u2063","⁢":"\u2062","Į":"\u012E","𝕀":"\u{1D540}","Ι":"\u0399","ℐ":"\u2110","Ĩ":"\u0128","І":"\u0406","Ï":"\xCF","Ï":"\xCF","Ĵ":"\u0134","Й":"\u0419","𝔍":"\u{1D50D}","𝕁":"\u{1D541}","𝒥":"\u{1D4A5}","Ј":"\u0408","Є":"\u0404","Х":"\u0425","Ќ":"\u040C","Κ":"\u039A","Ķ":"\u0136","К":"\u041A","𝔎":"\u{1D50E}","𝕂":"\u{1D542}","𝒦":"\u{1D4A6}","Љ":"\u0409","<":"<","<":"<","Ĺ":"\u0139","Λ":"\u039B","⟪":"\u27EA","ℒ":"\u2112","↞":"\u219E","Ľ":"\u013D","Ļ":"\u013B","Л":"\u041B","⟨":"\u27E8","←":"\u2190","⇤":"\u21E4","⇆":"\u21C6","⌈":"\u2308","⟦":"\u27E6","⥡":"\u2961","⇃":"\u21C3","⥙":"\u2959","⌊":"\u230A","↔":"\u2194","⥎":"\u294E","⊣":"\u22A3","↤":"\u21A4","⥚":"\u295A","⊲":"\u22B2","⧏":"\u29CF","⊴":"\u22B4","⥑":"\u2951","⥠":"\u2960","↿":"\u21BF","⥘":"\u2958","↼":"\u21BC","⥒":"\u2952","⇐":"\u21D0","⇔":"\u21D4","⋚":"\u22DA","≦":"\u2266","≶":"\u2276","⪡":"\u2AA1","⩽":"\u2A7D","≲":"\u2272","𝔏":"\u{1D50F}","⋘":"\u22D8","⇚":"\u21DA","Ŀ":"\u013F","⟵":"\u27F5","⟷":"\u27F7","⟶":"\u27F6","⟸":"\u27F8","⟺":"\u27FA","⟹":"\u27F9","𝕃":"\u{1D543}","↙":"\u2199","↘":"\u2198","ℒ":"\u2112","↰":"\u21B0","Ł":"\u0141","≪":"\u226A","⤅":"\u2905","М":"\u041C"," ":"\u205F","ℳ":"\u2133","𝔐":"\u{1D510}","∓":"\u2213","𝕄":"\u{1D544}","ℳ":"\u2133","Μ":"\u039C","Њ":"\u040A","Ń":"\u0143","Ň":"\u0147","Ņ":"\u0145","Н":"\u041D","​":"\u200B","​":"\u200B","​":"\u200B","​":"\u200B","≫":"\u226B","≪":"\u226A"," ":` +`,"𝔑":"\u{1D511}","⁠":"\u2060"," ":"\xA0","ℕ":"\u2115","⫬":"\u2AEC","≢":"\u2262","≭":"\u226D","∦":"\u2226","∉":"\u2209","≠":"\u2260","≂̸":"\u2242\u0338","∄":"\u2204","≯":"\u226F","≱":"\u2271","≧̸":"\u2267\u0338","≫̸":"\u226B\u0338","≹":"\u2279","⩾̸":"\u2A7E\u0338","≵":"\u2275","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⋪":"\u22EA","⧏̸":"\u29CF\u0338","⋬":"\u22EC","≮":"\u226E","≰":"\u2270","≸":"\u2278","≪̸":"\u226A\u0338","⩽̸":"\u2A7D\u0338","≴":"\u2274","⪢̸":"\u2AA2\u0338","⪡̸":"\u2AA1\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⋠":"\u22E0","∌":"\u220C","⋫":"\u22EB","⧐̸":"\u29D0\u0338","⋭":"\u22ED","⊏̸":"\u228F\u0338","⋢":"\u22E2","⊐̸":"\u2290\u0338","⋣":"\u22E3","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⋡":"\u22E1","≿̸":"\u227F\u0338","⊃⃒":"\u2283\u20D2","⊉":"\u2289","≁":"\u2241","≄":"\u2244","≇":"\u2247","≉":"\u2249","∤":"\u2224","𝒩":"\u{1D4A9}","Ñ":"\xD1","Ñ":"\xD1","Ν":"\u039D","Œ":"\u0152","Ó":"\xD3","Ó":"\xD3","Ô":"\xD4","Ô":"\xD4","О":"\u041E","Ő":"\u0150","𝔒":"\u{1D512}","Ò":"\xD2","Ò":"\xD2","Ō":"\u014C","Ω":"\u03A9","Ο":"\u039F","𝕆":"\u{1D546}","“":"\u201C","‘":"\u2018","⩔":"\u2A54","𝒪":"\u{1D4AA}","Ø":"\xD8","Ø":"\xD8","Õ":"\xD5","Õ":"\xD5","⨷":"\u2A37","Ö":"\xD6","Ö":"\xD6","‾":"\u203E","⏞":"\u23DE","⎴":"\u23B4","⏜":"\u23DC","∂":"\u2202","П":"\u041F","𝔓":"\u{1D513}","Φ":"\u03A6","Π":"\u03A0","±":"\xB1","ℌ":"\u210C","ℙ":"\u2119","⪻":"\u2ABB","≺":"\u227A","⪯":"\u2AAF","≼":"\u227C","≾":"\u227E","″":"\u2033","∏":"\u220F","∷":"\u2237","∝":"\u221D","𝒫":"\u{1D4AB}","Ψ":"\u03A8",""":'"',""":'"',"𝔔":"\u{1D514}","ℚ":"\u211A","𝒬":"\u{1D4AC}","⤐":"\u2910","®":"\xAE","®":"\xAE","Ŕ":"\u0154","⟫":"\u27EB","↠":"\u21A0","⤖":"\u2916","Ř":"\u0158","Ŗ":"\u0156","Р":"\u0420","ℜ":"\u211C","∋":"\u220B","⇋":"\u21CB","⥯":"\u296F","ℜ":"\u211C","Ρ":"\u03A1","⟩":"\u27E9","→":"\u2192","⇥":"\u21E5","⇄":"\u21C4","⌉":"\u2309","⟧":"\u27E7","⥝":"\u295D","⇂":"\u21C2","⥕":"\u2955","⌋":"\u230B","⊢":"\u22A2","↦":"\u21A6","⥛":"\u295B","⊳":"\u22B3","⧐":"\u29D0","⊵":"\u22B5","⥏":"\u294F","⥜":"\u295C","↾":"\u21BE","⥔":"\u2954","⇀":"\u21C0","⥓":"\u2953","⇒":"\u21D2","ℝ":"\u211D","⥰":"\u2970","⇛":"\u21DB","ℛ":"\u211B","↱":"\u21B1","⧴":"\u29F4","Щ":"\u0429","Ш":"\u0428","Ь":"\u042C","Ś":"\u015A","⪼":"\u2ABC","Š":"\u0160","Ş":"\u015E","Ŝ":"\u015C","С":"\u0421","𝔖":"\u{1D516}","↓":"\u2193","←":"\u2190","→":"\u2192","↑":"\u2191","Σ":"\u03A3","∘":"\u2218","𝕊":"\u{1D54A}","√":"\u221A","□":"\u25A1","⊓":"\u2293","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊔":"\u2294","𝒮":"\u{1D4AE}","⋆":"\u22C6","⋐":"\u22D0","⋐":"\u22D0","⊆":"\u2286","≻":"\u227B","⪰":"\u2AB0","≽":"\u227D","≿":"\u227F","∋":"\u220B","∑":"\u2211","⋑":"\u22D1","⊃":"\u2283","⊇":"\u2287","⋑":"\u22D1","Þ":"\xDE","Þ":"\xDE","™":"\u2122","Ћ":"\u040B","Ц":"\u0426"," ":" ","Τ":"\u03A4","Ť":"\u0164","Ţ":"\u0162","Т":"\u0422","𝔗":"\u{1D517}","∴":"\u2234","Θ":"\u0398","  ":"\u205F\u200A"," ":"\u2009","∼":"\u223C","≃":"\u2243","≅":"\u2245","≈":"\u2248","𝕋":"\u{1D54B}","⃛":"\u20DB","𝒯":"\u{1D4AF}","Ŧ":"\u0166","Ú":"\xDA","Ú":"\xDA","↟":"\u219F","⥉":"\u2949","Ў":"\u040E","Ŭ":"\u016C","Û":"\xDB","Û":"\xDB","У":"\u0423","Ű":"\u0170","𝔘":"\u{1D518}","Ù":"\xD9","Ù":"\xD9","Ū":"\u016A","_":"_","⏟":"\u23DF","⎵":"\u23B5","⏝":"\u23DD","⋃":"\u22C3","⊎":"\u228E","Ų":"\u0172","𝕌":"\u{1D54C}","↑":"\u2191","⤒":"\u2912","⇅":"\u21C5","↕":"\u2195","⥮":"\u296E","⊥":"\u22A5","↥":"\u21A5","⇑":"\u21D1","⇕":"\u21D5","↖":"\u2196","↗":"\u2197","ϒ":"\u03D2","Υ":"\u03A5","Ů":"\u016E","𝒰":"\u{1D4B0}","Ũ":"\u0168","Ü":"\xDC","Ü":"\xDC","⊫":"\u22AB","⫫":"\u2AEB","В":"\u0412","⊩":"\u22A9","⫦":"\u2AE6","⋁":"\u22C1","‖":"\u2016","‖":"\u2016","∣":"\u2223","|":"|","❘":"\u2758","≀":"\u2240"," ":"\u200A","𝔙":"\u{1D519}","𝕍":"\u{1D54D}","𝒱":"\u{1D4B1}","⊪":"\u22AA","Ŵ":"\u0174","⋀":"\u22C0","𝔚":"\u{1D51A}","𝕎":"\u{1D54E}","𝒲":"\u{1D4B2}","𝔛":"\u{1D51B}","Ξ":"\u039E","𝕏":"\u{1D54F}","𝒳":"\u{1D4B3}","Я":"\u042F","Ї":"\u0407","Ю":"\u042E","Ý":"\xDD","Ý":"\xDD","Ŷ":"\u0176","Ы":"\u042B","𝔜":"\u{1D51C}","𝕐":"\u{1D550}","𝒴":"\u{1D4B4}","Ÿ":"\u0178","Ж":"\u0416","Ź":"\u0179","Ž":"\u017D","З":"\u0417","Ż":"\u017B","​":"\u200B","Ζ":"\u0396","ℨ":"\u2128","ℤ":"\u2124","𝒵":"\u{1D4B5}","á":"\xE1","á":"\xE1","ă":"\u0103","∾":"\u223E","∾̳":"\u223E\u0333","∿":"\u223F","â":"\xE2","â":"\xE2","´":"\xB4","´":"\xB4","а":"\u0430","æ":"\xE6","æ":"\xE6","⁡":"\u2061","𝔞":"\u{1D51E}","à":"\xE0","à":"\xE0","ℵ":"\u2135","ℵ":"\u2135","α":"\u03B1","ā":"\u0101","⨿":"\u2A3F","&":"&","&":"&","∧":"\u2227","⩕":"\u2A55","⩜":"\u2A5C","⩘":"\u2A58","⩚":"\u2A5A","∠":"\u2220","⦤":"\u29A4","∠":"\u2220","∡":"\u2221","⦨":"\u29A8","⦩":"\u29A9","⦪":"\u29AA","⦫":"\u29AB","⦬":"\u29AC","⦭":"\u29AD","⦮":"\u29AE","⦯":"\u29AF","∟":"\u221F","⊾":"\u22BE","⦝":"\u299D","∢":"\u2222","Å":"\xC5","⍼":"\u237C","ą":"\u0105","𝕒":"\u{1D552}","≈":"\u2248","⩰":"\u2A70","⩯":"\u2A6F","≊":"\u224A","≋":"\u224B","'":"'","≈":"\u2248","≊":"\u224A","å":"\xE5","å":"\xE5","𝒶":"\u{1D4B6}","*":"*","≈":"\u2248","≍":"\u224D","ã":"\xE3","ã":"\xE3","ä":"\xE4","ä":"\xE4","∳":"\u2233","⨑":"\u2A11","⫭":"\u2AED","≌":"\u224C","϶":"\u03F6","‵":"\u2035","∽":"\u223D","⋍":"\u22CD","⊽":"\u22BD","⌅":"\u2305","⌅":"\u2305","⎵":"\u23B5","⎶":"\u23B6","≌":"\u224C","б":"\u0431","„":"\u201E","∵":"\u2235","∵":"\u2235","⦰":"\u29B0","϶":"\u03F6","ℬ":"\u212C","β":"\u03B2","ℶ":"\u2136","≬":"\u226C","𝔟":"\u{1D51F}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","⨀":"\u2A00","⨁":"\u2A01","⨂":"\u2A02","⨆":"\u2A06","★":"\u2605","▽":"\u25BD","△":"\u25B3","⨄":"\u2A04","⋁":"\u22C1","⋀":"\u22C0","⤍":"\u290D","⧫":"\u29EB","▪":"\u25AA","▴":"\u25B4","▾":"\u25BE","◂":"\u25C2","▸":"\u25B8","␣":"\u2423","▒":"\u2592","░":"\u2591","▓":"\u2593","█":"\u2588","=⃥":"=\u20E5","≡⃥":"\u2261\u20E5","⌐":"\u2310","𝕓":"\u{1D553}","⊥":"\u22A5","⊥":"\u22A5","⋈":"\u22C8","╗":"\u2557","╔":"\u2554","╖":"\u2556","╓":"\u2553","═":"\u2550","╦":"\u2566","╩":"\u2569","╤":"\u2564","╧":"\u2567","╝":"\u255D","╚":"\u255A","╜":"\u255C","╙":"\u2559","║":"\u2551","╬":"\u256C","╣":"\u2563","╠":"\u2560","╫":"\u256B","╢":"\u2562","╟":"\u255F","⧉":"\u29C9","╕":"\u2555","╒":"\u2552","┐":"\u2510","┌":"\u250C","─":"\u2500","╥":"\u2565","╨":"\u2568","┬":"\u252C","┴":"\u2534","⊟":"\u229F","⊞":"\u229E","⊠":"\u22A0","╛":"\u255B","╘":"\u2558","┘":"\u2518","└":"\u2514","│":"\u2502","╪":"\u256A","╡":"\u2561","╞":"\u255E","┼":"\u253C","┤":"\u2524","├":"\u251C","‵":"\u2035","˘":"\u02D8","¦":"\xA6","¦":"\xA6","𝒷":"\u{1D4B7}","⁏":"\u204F","∽":"\u223D","⋍":"\u22CD","\":"\\","⧅":"\u29C5","⟈":"\u27C8","•":"\u2022","•":"\u2022","≎":"\u224E","⪮":"\u2AAE","≏":"\u224F","≏":"\u224F","ć":"\u0107","∩":"\u2229","⩄":"\u2A44","⩉":"\u2A49","⩋":"\u2A4B","⩇":"\u2A47","⩀":"\u2A40","∩︀":"\u2229\uFE00","⁁":"\u2041","ˇ":"\u02C7","⩍":"\u2A4D","č":"\u010D","ç":"\xE7","ç":"\xE7","ĉ":"\u0109","⩌":"\u2A4C","⩐":"\u2A50","ċ":"\u010B","¸":"\xB8","¸":"\xB8","⦲":"\u29B2","¢":"\xA2","¢":"\xA2","·":"\xB7","𝔠":"\u{1D520}","ч":"\u0447","✓":"\u2713","✓":"\u2713","χ":"\u03C7","○":"\u25CB","⧃":"\u29C3","ˆ":"\u02C6","≗":"\u2257","↺":"\u21BA","↻":"\u21BB","®":"\xAE","Ⓢ":"\u24C8","⊛":"\u229B","⊚":"\u229A","⊝":"\u229D","≗":"\u2257","⨐":"\u2A10","⫯":"\u2AEF","⧂":"\u29C2","♣":"\u2663","♣":"\u2663",":":":","≔":"\u2254","≔":"\u2254",",":",","@":"@","∁":"\u2201","∘":"\u2218","∁":"\u2201","ℂ":"\u2102","≅":"\u2245","⩭":"\u2A6D","∮":"\u222E","𝕔":"\u{1D554}","∐":"\u2210","©":"\xA9","©":"\xA9","℗":"\u2117","↵":"\u21B5","✗":"\u2717","𝒸":"\u{1D4B8}","⫏":"\u2ACF","⫑":"\u2AD1","⫐":"\u2AD0","⫒":"\u2AD2","⋯":"\u22EF","⤸":"\u2938","⤵":"\u2935","⋞":"\u22DE","⋟":"\u22DF","↶":"\u21B6","⤽":"\u293D","∪":"\u222A","⩈":"\u2A48","⩆":"\u2A46","⩊":"\u2A4A","⊍":"\u228D","⩅":"\u2A45","∪︀":"\u222A\uFE00","↷":"\u21B7","⤼":"\u293C","⋞":"\u22DE","⋟":"\u22DF","⋎":"\u22CE","⋏":"\u22CF","¤":"\xA4","¤":"\xA4","↶":"\u21B6","↷":"\u21B7","⋎":"\u22CE","⋏":"\u22CF","∲":"\u2232","∱":"\u2231","⌭":"\u232D","⇓":"\u21D3","⥥":"\u2965","†":"\u2020","ℸ":"\u2138","↓":"\u2193","‐":"\u2010","⊣":"\u22A3","⤏":"\u290F","˝":"\u02DD","ď":"\u010F","д":"\u0434","ⅆ":"\u2146","‡":"\u2021","⇊":"\u21CA","⩷":"\u2A77","°":"\xB0","°":"\xB0","δ":"\u03B4","⦱":"\u29B1","⥿":"\u297F","𝔡":"\u{1D521}","⇃":"\u21C3","⇂":"\u21C2","⋄":"\u22C4","⋄":"\u22C4","♦":"\u2666","♦":"\u2666","¨":"\xA8","ϝ":"\u03DD","⋲":"\u22F2","÷":"\xF7","÷":"\xF7","÷":"\xF7","⋇":"\u22C7","⋇":"\u22C7","ђ":"\u0452","⌞":"\u231E","⌍":"\u230D","$":"$","𝕕":"\u{1D555}","˙":"\u02D9","≐":"\u2250","≑":"\u2251","∸":"\u2238","∔":"\u2214","⊡":"\u22A1","⌆":"\u2306","↓":"\u2193","⇊":"\u21CA","⇃":"\u21C3","⇂":"\u21C2","⤐":"\u2910","⌟":"\u231F","⌌":"\u230C","𝒹":"\u{1D4B9}","ѕ":"\u0455","⧶":"\u29F6","đ":"\u0111","⋱":"\u22F1","▿":"\u25BF","▾":"\u25BE","⇵":"\u21F5","⥯":"\u296F","⦦":"\u29A6","џ":"\u045F","⟿":"\u27FF","⩷":"\u2A77","≑":"\u2251","é":"\xE9","é":"\xE9","⩮":"\u2A6E","ě":"\u011B","≖":"\u2256","ê":"\xEA","ê":"\xEA","≕":"\u2255","э":"\u044D","ė":"\u0117","ⅇ":"\u2147","≒":"\u2252","𝔢":"\u{1D522}","⪚":"\u2A9A","è":"\xE8","è":"\xE8","⪖":"\u2A96","⪘":"\u2A98","⪙":"\u2A99","⏧":"\u23E7","ℓ":"\u2113","⪕":"\u2A95","⪗":"\u2A97","ē":"\u0113","∅":"\u2205","∅":"\u2205","∅":"\u2205"," ":"\u2004"," ":"\u2005"," ":"\u2003","ŋ":"\u014B"," ":"\u2002","ę":"\u0119","𝕖":"\u{1D556}","⋕":"\u22D5","⧣":"\u29E3","⩱":"\u2A71","ε":"\u03B5","ε":"\u03B5","ϵ":"\u03F5","≖":"\u2256","≕":"\u2255","≂":"\u2242","⪖":"\u2A96","⪕":"\u2A95","=":"=","≟":"\u225F","≡":"\u2261","⩸":"\u2A78","⧥":"\u29E5","≓":"\u2253","⥱":"\u2971","ℯ":"\u212F","≐":"\u2250","≂":"\u2242","η":"\u03B7","ð":"\xF0","ð":"\xF0","ë":"\xEB","ë":"\xEB","€":"\u20AC","!":"!","∃":"\u2203","ℰ":"\u2130","ⅇ":"\u2147","≒":"\u2252","ф":"\u0444","♀":"\u2640","ffi":"\uFB03","ff":"\uFB00","ffl":"\uFB04","𝔣":"\u{1D523}","fi":"\uFB01","fj":"fj","♭":"\u266D","fl":"\uFB02","▱":"\u25B1","ƒ":"\u0192","𝕗":"\u{1D557}","∀":"\u2200","⋔":"\u22D4","⫙":"\u2AD9","⨍":"\u2A0D","½":"\xBD","½":"\xBD","⅓":"\u2153","¼":"\xBC","¼":"\xBC","⅕":"\u2155","⅙":"\u2159","⅛":"\u215B","⅔":"\u2154","⅖":"\u2156","¾":"\xBE","¾":"\xBE","⅗":"\u2157","⅜":"\u215C","⅘":"\u2158","⅚":"\u215A","⅝":"\u215D","⅞":"\u215E","⁄":"\u2044","⌢":"\u2322","𝒻":"\u{1D4BB}","≧":"\u2267","⪌":"\u2A8C","ǵ":"\u01F5","γ":"\u03B3","ϝ":"\u03DD","⪆":"\u2A86","ğ":"\u011F","ĝ":"\u011D","г":"\u0433","ġ":"\u0121","≥":"\u2265","⋛":"\u22DB","≥":"\u2265","≧":"\u2267","⩾":"\u2A7E","⩾":"\u2A7E","⪩":"\u2AA9","⪀":"\u2A80","⪂":"\u2A82","⪄":"\u2A84","⋛︀":"\u22DB\uFE00","⪔":"\u2A94","𝔤":"\u{1D524}","≫":"\u226B","⋙":"\u22D9","ℷ":"\u2137","ѓ":"\u0453","≷":"\u2277","⪒":"\u2A92","⪥":"\u2AA5","⪤":"\u2AA4","≩":"\u2269","⪊":"\u2A8A","⪊":"\u2A8A","⪈":"\u2A88","⪈":"\u2A88","≩":"\u2269","⋧":"\u22E7","𝕘":"\u{1D558}","`":"`","ℊ":"\u210A","≳":"\u2273","⪎":"\u2A8E","⪐":"\u2A90",">":">",">":">","⪧":"\u2AA7","⩺":"\u2A7A","⋗":"\u22D7","⦕":"\u2995","⩼":"\u2A7C","⪆":"\u2A86","⥸":"\u2978","⋗":"\u22D7","⋛":"\u22DB","⪌":"\u2A8C","≷":"\u2277","≳":"\u2273","≩︀":"\u2269\uFE00","≩︀":"\u2269\uFE00","⇔":"\u21D4"," ":"\u200A","½":"\xBD","ℋ":"\u210B","ъ":"\u044A","↔":"\u2194","⥈":"\u2948","↭":"\u21AD","ℏ":"\u210F","ĥ":"\u0125","♥":"\u2665","♥":"\u2665","…":"\u2026","⊹":"\u22B9","𝔥":"\u{1D525}","⤥":"\u2925","⤦":"\u2926","⇿":"\u21FF","∻":"\u223B","↩":"\u21A9","↪":"\u21AA","𝕙":"\u{1D559}","―":"\u2015","𝒽":"\u{1D4BD}","ℏ":"\u210F","ħ":"\u0127","⁃":"\u2043","‐":"\u2010","í":"\xED","í":"\xED","⁣":"\u2063","î":"\xEE","î":"\xEE","и":"\u0438","е":"\u0435","¡":"\xA1","¡":"\xA1","⇔":"\u21D4","𝔦":"\u{1D526}","ì":"\xEC","ì":"\xEC","ⅈ":"\u2148","⨌":"\u2A0C","∭":"\u222D","⧜":"\u29DC","℩":"\u2129","ij":"\u0133","ī":"\u012B","ℑ":"\u2111","ℐ":"\u2110","ℑ":"\u2111","ı":"\u0131","⊷":"\u22B7","Ƶ":"\u01B5","∈":"\u2208","℅":"\u2105","∞":"\u221E","⧝":"\u29DD","ı":"\u0131","∫":"\u222B","⊺":"\u22BA","ℤ":"\u2124","⊺":"\u22BA","⨗":"\u2A17","⨼":"\u2A3C","ё":"\u0451","į":"\u012F","𝕚":"\u{1D55A}","ι":"\u03B9","⨼":"\u2A3C","¿":"\xBF","¿":"\xBF","𝒾":"\u{1D4BE}","∈":"\u2208","⋹":"\u22F9","⋵":"\u22F5","⋴":"\u22F4","⋳":"\u22F3","∈":"\u2208","⁢":"\u2062","ĩ":"\u0129","і":"\u0456","ï":"\xEF","ï":"\xEF","ĵ":"\u0135","й":"\u0439","𝔧":"\u{1D527}","ȷ":"\u0237","𝕛":"\u{1D55B}","𝒿":"\u{1D4BF}","ј":"\u0458","є":"\u0454","κ":"\u03BA","ϰ":"\u03F0","ķ":"\u0137","к":"\u043A","𝔨":"\u{1D528}","ĸ":"\u0138","х":"\u0445","ќ":"\u045C","𝕜":"\u{1D55C}","𝓀":"\u{1D4C0}","⇚":"\u21DA","⇐":"\u21D0","⤛":"\u291B","⤎":"\u290E","≦":"\u2266","⪋":"\u2A8B","⥢":"\u2962","ĺ":"\u013A","⦴":"\u29B4","ℒ":"\u2112","λ":"\u03BB","⟨":"\u27E8","⦑":"\u2991","⟨":"\u27E8","⪅":"\u2A85","«":"\xAB","«":"\xAB","←":"\u2190","⇤":"\u21E4","⤟":"\u291F","⤝":"\u291D","↩":"\u21A9","↫":"\u21AB","⤹":"\u2939","⥳":"\u2973","↢":"\u21A2","⪫":"\u2AAB","⤙":"\u2919","⪭":"\u2AAD","⪭︀":"\u2AAD\uFE00","⤌":"\u290C","❲":"\u2772","{":"{","[":"[","⦋":"\u298B","⦏":"\u298F","⦍":"\u298D","ľ":"\u013E","ļ":"\u013C","⌈":"\u2308","{":"{","л":"\u043B","⤶":"\u2936","“":"\u201C","„":"\u201E","⥧":"\u2967","⥋":"\u294B","↲":"\u21B2","≤":"\u2264","←":"\u2190","↢":"\u21A2","↽":"\u21BD","↼":"\u21BC","⇇":"\u21C7","↔":"\u2194","⇆":"\u21C6","⇋":"\u21CB","↭":"\u21AD","⋋":"\u22CB","⋚":"\u22DA","≤":"\u2264","≦":"\u2266","⩽":"\u2A7D","⩽":"\u2A7D","⪨":"\u2AA8","⩿":"\u2A7F","⪁":"\u2A81","⪃":"\u2A83","⋚︀":"\u22DA\uFE00","⪓":"\u2A93","⪅":"\u2A85","⋖":"\u22D6","⋚":"\u22DA","⪋":"\u2A8B","≶":"\u2276","≲":"\u2272","⥼":"\u297C","⌊":"\u230A","𝔩":"\u{1D529}","≶":"\u2276","⪑":"\u2A91","↽":"\u21BD","↼":"\u21BC","⥪":"\u296A","▄":"\u2584","љ":"\u0459","≪":"\u226A","⇇":"\u21C7","⌞":"\u231E","⥫":"\u296B","◺":"\u25FA","ŀ":"\u0140","⎰":"\u23B0","⎰":"\u23B0","≨":"\u2268","⪉":"\u2A89","⪉":"\u2A89","⪇":"\u2A87","⪇":"\u2A87","≨":"\u2268","⋦":"\u22E6","⟬":"\u27EC","⇽":"\u21FD","⟦":"\u27E6","⟵":"\u27F5","⟷":"\u27F7","⟼":"\u27FC","⟶":"\u27F6","↫":"\u21AB","↬":"\u21AC","⦅":"\u2985","𝕝":"\u{1D55D}","⨭":"\u2A2D","⨴":"\u2A34","∗":"\u2217","_":"_","◊":"\u25CA","◊":"\u25CA","⧫":"\u29EB","(":"(","⦓":"\u2993","⇆":"\u21C6","⌟":"\u231F","⇋":"\u21CB","⥭":"\u296D","‎":"\u200E","⊿":"\u22BF","‹":"\u2039","𝓁":"\u{1D4C1}","↰":"\u21B0","≲":"\u2272","⪍":"\u2A8D","⪏":"\u2A8F","[":"[","‘":"\u2018","‚":"\u201A","ł":"\u0142","<":"<","<":"<","⪦":"\u2AA6","⩹":"\u2A79","⋖":"\u22D6","⋋":"\u22CB","⋉":"\u22C9","⥶":"\u2976","⩻":"\u2A7B","⦖":"\u2996","◃":"\u25C3","⊴":"\u22B4","◂":"\u25C2","⥊":"\u294A","⥦":"\u2966","≨︀":"\u2268\uFE00","≨︀":"\u2268\uFE00","∺":"\u223A","¯":"\xAF","¯":"\xAF","♂":"\u2642","✠":"\u2720","✠":"\u2720","↦":"\u21A6","↦":"\u21A6","↧":"\u21A7","↤":"\u21A4","↥":"\u21A5","▮":"\u25AE","⨩":"\u2A29","м":"\u043C","—":"\u2014","∡":"\u2221","𝔪":"\u{1D52A}","℧":"\u2127","µ":"\xB5","µ":"\xB5","∣":"\u2223","*":"*","⫰":"\u2AF0","·":"\xB7","·":"\xB7","−":"\u2212","⊟":"\u229F","∸":"\u2238","⨪":"\u2A2A","⫛":"\u2ADB","…":"\u2026","∓":"\u2213","⊧":"\u22A7","𝕞":"\u{1D55E}","∓":"\u2213","𝓂":"\u{1D4C2}","∾":"\u223E","μ":"\u03BC","⊸":"\u22B8","⊸":"\u22B8","⋙̸":"\u22D9\u0338","≫⃒":"\u226B\u20D2","≫̸":"\u226B\u0338","⇍":"\u21CD","⇎":"\u21CE","⋘̸":"\u22D8\u0338","≪⃒":"\u226A\u20D2","≪̸":"\u226A\u0338","⇏":"\u21CF","⊯":"\u22AF","⊮":"\u22AE","∇":"\u2207","ń":"\u0144","∠⃒":"\u2220\u20D2","≉":"\u2249","⩰̸":"\u2A70\u0338","≋̸":"\u224B\u0338","ʼn":"\u0149","≉":"\u2249","♮":"\u266E","♮":"\u266E","ℕ":"\u2115"," ":"\xA0"," ":"\xA0","≎̸":"\u224E\u0338","≏̸":"\u224F\u0338","⩃":"\u2A43","ň":"\u0148","ņ":"\u0146","≇":"\u2247","⩭̸":"\u2A6D\u0338","⩂":"\u2A42","н":"\u043D","–":"\u2013","≠":"\u2260","⇗":"\u21D7","⤤":"\u2924","↗":"\u2197","↗":"\u2197","≐̸":"\u2250\u0338","≢":"\u2262","⤨":"\u2928","≂̸":"\u2242\u0338","∄":"\u2204","∄":"\u2204","𝔫":"\u{1D52B}","≧̸":"\u2267\u0338","≱":"\u2271","≱":"\u2271","≧̸":"\u2267\u0338","⩾̸":"\u2A7E\u0338","⩾̸":"\u2A7E\u0338","≵":"\u2275","≯":"\u226F","≯":"\u226F","⇎":"\u21CE","↮":"\u21AE","⫲":"\u2AF2","∋":"\u220B","⋼":"\u22FC","⋺":"\u22FA","∋":"\u220B","њ":"\u045A","⇍":"\u21CD","≦̸":"\u2266\u0338","↚":"\u219A","‥":"\u2025","≰":"\u2270","↚":"\u219A","↮":"\u21AE","≰":"\u2270","≦̸":"\u2266\u0338","⩽̸":"\u2A7D\u0338","⩽̸":"\u2A7D\u0338","≮":"\u226E","≴":"\u2274","≮":"\u226E","⋪":"\u22EA","⋬":"\u22EC","∤":"\u2224","𝕟":"\u{1D55F}","¬":"\xAC","¬":"\xAC","∉":"\u2209","⋹̸":"\u22F9\u0338","⋵̸":"\u22F5\u0338","∉":"\u2209","⋷":"\u22F7","⋶":"\u22F6","∌":"\u220C","∌":"\u220C","⋾":"\u22FE","⋽":"\u22FD","∦":"\u2226","∦":"\u2226","⫽⃥":"\u2AFD\u20E5","∂̸":"\u2202\u0338","⨔":"\u2A14","⊀":"\u2280","⋠":"\u22E0","⪯̸":"\u2AAF\u0338","⊀":"\u2280","⪯̸":"\u2AAF\u0338","⇏":"\u21CF","↛":"\u219B","⤳̸":"\u2933\u0338","↝̸":"\u219D\u0338","↛":"\u219B","⋫":"\u22EB","⋭":"\u22ED","⊁":"\u2281","⋡":"\u22E1","⪰̸":"\u2AB0\u0338","𝓃":"\u{1D4C3}","∤":"\u2224","∦":"\u2226","≁":"\u2241","≄":"\u2244","≄":"\u2244","∤":"\u2224","∦":"\u2226","⋢":"\u22E2","⋣":"\u22E3","⊄":"\u2284","⫅̸":"\u2AC5\u0338","⊈":"\u2288","⊂⃒":"\u2282\u20D2","⊈":"\u2288","⫅̸":"\u2AC5\u0338","⊁":"\u2281","⪰̸":"\u2AB0\u0338","⊅":"\u2285","⫆̸":"\u2AC6\u0338","⊉":"\u2289","⊃⃒":"\u2283\u20D2","⊉":"\u2289","⫆̸":"\u2AC6\u0338","≹":"\u2279","ñ":"\xF1","ñ":"\xF1","≸":"\u2278","⋪":"\u22EA","⋬":"\u22EC","⋫":"\u22EB","⋭":"\u22ED","ν":"\u03BD","#":"#","№":"\u2116"," ":"\u2007","⊭":"\u22AD","⤄":"\u2904","≍⃒":"\u224D\u20D2","⊬":"\u22AC","≥⃒":"\u2265\u20D2",">⃒":">\u20D2","⧞":"\u29DE","⤂":"\u2902","≤⃒":"\u2264\u20D2","<⃒":"<\u20D2","⊴⃒":"\u22B4\u20D2","⤃":"\u2903","⊵⃒":"\u22B5\u20D2","∼⃒":"\u223C\u20D2","⇖":"\u21D6","⤣":"\u2923","↖":"\u2196","↖":"\u2196","⤧":"\u2927","Ⓢ":"\u24C8","ó":"\xF3","ó":"\xF3","⊛":"\u229B","⊚":"\u229A","ô":"\xF4","ô":"\xF4","о":"\u043E","⊝":"\u229D","ő":"\u0151","⨸":"\u2A38","⊙":"\u2299","⦼":"\u29BC","œ":"\u0153","⦿":"\u29BF","𝔬":"\u{1D52C}","˛":"\u02DB","ò":"\xF2","ò":"\xF2","⧁":"\u29C1","⦵":"\u29B5","Ω":"\u03A9","∮":"\u222E","↺":"\u21BA","⦾":"\u29BE","⦻":"\u29BB","‾":"\u203E","⧀":"\u29C0","ō":"\u014D","ω":"\u03C9","ο":"\u03BF","⦶":"\u29B6","⊖":"\u2296","𝕠":"\u{1D560}","⦷":"\u29B7","⦹":"\u29B9","⊕":"\u2295","∨":"\u2228","↻":"\u21BB","⩝":"\u2A5D","ℴ":"\u2134","ℴ":"\u2134","ª":"\xAA","ª":"\xAA","º":"\xBA","º":"\xBA","⊶":"\u22B6","⩖":"\u2A56","⩗":"\u2A57","⩛":"\u2A5B","ℴ":"\u2134","ø":"\xF8","ø":"\xF8","⊘":"\u2298","õ":"\xF5","õ":"\xF5","⊗":"\u2297","⨶":"\u2A36","ö":"\xF6","ö":"\xF6","⌽":"\u233D","∥":"\u2225","¶":"\xB6","¶":"\xB6","∥":"\u2225","⫳":"\u2AF3","⫽":"\u2AFD","∂":"\u2202","п":"\u043F","%":"%",".":".","‰":"\u2030","⊥":"\u22A5","‱":"\u2031","𝔭":"\u{1D52D}","φ":"\u03C6","ϕ":"\u03D5","ℳ":"\u2133","☎":"\u260E","π":"\u03C0","⋔":"\u22D4","ϖ":"\u03D6","ℏ":"\u210F","ℎ":"\u210E","ℏ":"\u210F","+":"+","⨣":"\u2A23","⊞":"\u229E","⨢":"\u2A22","∔":"\u2214","⨥":"\u2A25","⩲":"\u2A72","±":"\xB1","±":"\xB1","⨦":"\u2A26","⨧":"\u2A27","±":"\xB1","⨕":"\u2A15","𝕡":"\u{1D561}","£":"\xA3","£":"\xA3","≺":"\u227A","⪳":"\u2AB3","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","≺":"\u227A","⪷":"\u2AB7","≼":"\u227C","⪯":"\u2AAF","⪹":"\u2AB9","⪵":"\u2AB5","⋨":"\u22E8","≾":"\u227E","′":"\u2032","ℙ":"\u2119","⪵":"\u2AB5","⪹":"\u2AB9","⋨":"\u22E8","∏":"\u220F","⌮":"\u232E","⌒":"\u2312","⌓":"\u2313","∝":"\u221D","∝":"\u221D","≾":"\u227E","⊰":"\u22B0","𝓅":"\u{1D4C5}","ψ":"\u03C8"," ":"\u2008","𝔮":"\u{1D52E}","⨌":"\u2A0C","𝕢":"\u{1D562}","⁗":"\u2057","𝓆":"\u{1D4C6}","ℍ":"\u210D","⨖":"\u2A16","?":"?","≟":"\u225F",""":'"',""":'"',"⇛":"\u21DB","⇒":"\u21D2","⤜":"\u291C","⤏":"\u290F","⥤":"\u2964","∽̱":"\u223D\u0331","ŕ":"\u0155","√":"\u221A","⦳":"\u29B3","⟩":"\u27E9","⦒":"\u2992","⦥":"\u29A5","⟩":"\u27E9","»":"\xBB","»":"\xBB","→":"\u2192","⥵":"\u2975","⇥":"\u21E5","⤠":"\u2920","⤳":"\u2933","⤞":"\u291E","↪":"\u21AA","↬":"\u21AC","⥅":"\u2945","⥴":"\u2974","↣":"\u21A3","↝":"\u219D","⤚":"\u291A","∶":"\u2236","ℚ":"\u211A","⤍":"\u290D","❳":"\u2773","}":"}","]":"]","⦌":"\u298C","⦎":"\u298E","⦐":"\u2990","ř":"\u0159","ŗ":"\u0157","⌉":"\u2309","}":"}","р":"\u0440","⤷":"\u2937","⥩":"\u2969","”":"\u201D","”":"\u201D","↳":"\u21B3","ℜ":"\u211C","ℛ":"\u211B","ℜ":"\u211C","ℝ":"\u211D","▭":"\u25AD","®":"\xAE","®":"\xAE","⥽":"\u297D","⌋":"\u230B","𝔯":"\u{1D52F}","⇁":"\u21C1","⇀":"\u21C0","⥬":"\u296C","ρ":"\u03C1","ϱ":"\u03F1","→":"\u2192","↣":"\u21A3","⇁":"\u21C1","⇀":"\u21C0","⇄":"\u21C4","⇌":"\u21CC","⇉":"\u21C9","↝":"\u219D","⋌":"\u22CC","˚":"\u02DA","≓":"\u2253","⇄":"\u21C4","⇌":"\u21CC","‏":"\u200F","⎱":"\u23B1","⎱":"\u23B1","⫮":"\u2AEE","⟭":"\u27ED","⇾":"\u21FE","⟧":"\u27E7","⦆":"\u2986","𝕣":"\u{1D563}","⨮":"\u2A2E","⨵":"\u2A35",")":")","⦔":"\u2994","⨒":"\u2A12","⇉":"\u21C9","›":"\u203A","𝓇":"\u{1D4C7}","↱":"\u21B1","]":"]","’":"\u2019","’":"\u2019","⋌":"\u22CC","⋊":"\u22CA","▹":"\u25B9","⊵":"\u22B5","▸":"\u25B8","⧎":"\u29CE","⥨":"\u2968","℞":"\u211E","ś":"\u015B","‚":"\u201A","≻":"\u227B","⪴":"\u2AB4","⪸":"\u2AB8","š":"\u0161","≽":"\u227D","⪰":"\u2AB0","ş":"\u015F","ŝ":"\u015D","⪶":"\u2AB6","⪺":"\u2ABA","⋩":"\u22E9","⨓":"\u2A13","≿":"\u227F","с":"\u0441","⋅":"\u22C5","⊡":"\u22A1","⩦":"\u2A66","⇘":"\u21D8","⤥":"\u2925","↘":"\u2198","↘":"\u2198","§":"\xA7","§":"\xA7",";":";","⤩":"\u2929","∖":"\u2216","∖":"\u2216","✶":"\u2736","𝔰":"\u{1D530}","⌢":"\u2322","♯":"\u266F","щ":"\u0449","ш":"\u0448","∣":"\u2223","∥":"\u2225","­":"\xAD","­":"\xAD","σ":"\u03C3","ς":"\u03C2","ς":"\u03C2","∼":"\u223C","⩪":"\u2A6A","≃":"\u2243","≃":"\u2243","⪞":"\u2A9E","⪠":"\u2AA0","⪝":"\u2A9D","⪟":"\u2A9F","≆":"\u2246","⨤":"\u2A24","⥲":"\u2972","←":"\u2190","∖":"\u2216","⨳":"\u2A33","⧤":"\u29E4","∣":"\u2223","⌣":"\u2323","⪪":"\u2AAA","⪬":"\u2AAC","⪬︀":"\u2AAC\uFE00","ь":"\u044C","/":"/","⧄":"\u29C4","⌿":"\u233F","𝕤":"\u{1D564}","♠":"\u2660","♠":"\u2660","∥":"\u2225","⊓":"\u2293","⊓︀":"\u2293\uFE00","⊔":"\u2294","⊔︀":"\u2294\uFE00","⊏":"\u228F","⊑":"\u2291","⊏":"\u228F","⊑":"\u2291","⊐":"\u2290","⊒":"\u2292","⊐":"\u2290","⊒":"\u2292","□":"\u25A1","□":"\u25A1","▪":"\u25AA","▪":"\u25AA","→":"\u2192","𝓈":"\u{1D4C8}","∖":"\u2216","⌣":"\u2323","⋆":"\u22C6","☆":"\u2606","★":"\u2605","ϵ":"\u03F5","ϕ":"\u03D5","¯":"\xAF","⊂":"\u2282","⫅":"\u2AC5","⪽":"\u2ABD","⊆":"\u2286","⫃":"\u2AC3","⫁":"\u2AC1","⫋":"\u2ACB","⊊":"\u228A","⪿":"\u2ABF","⥹":"\u2979","⊂":"\u2282","⊆":"\u2286","⫅":"\u2AC5","⊊":"\u228A","⫋":"\u2ACB","⫇":"\u2AC7","⫕":"\u2AD5","⫓":"\u2AD3","≻":"\u227B","⪸":"\u2AB8","≽":"\u227D","⪰":"\u2AB0","⪺":"\u2ABA","⪶":"\u2AB6","⋩":"\u22E9","≿":"\u227F","∑":"\u2211","♪":"\u266A","¹":"\xB9","¹":"\xB9","²":"\xB2","²":"\xB2","³":"\xB3","³":"\xB3","⊃":"\u2283","⫆":"\u2AC6","⪾":"\u2ABE","⫘":"\u2AD8","⊇":"\u2287","⫄":"\u2AC4","⟉":"\u27C9","⫗":"\u2AD7","⥻":"\u297B","⫂":"\u2AC2","⫌":"\u2ACC","⊋":"\u228B","⫀":"\u2AC0","⊃":"\u2283","⊇":"\u2287","⫆":"\u2AC6","⊋":"\u228B","⫌":"\u2ACC","⫈":"\u2AC8","⫔":"\u2AD4","⫖":"\u2AD6","⇙":"\u21D9","⤦":"\u2926","↙":"\u2199","↙":"\u2199","⤪":"\u292A","ß":"\xDF","ß":"\xDF","⌖":"\u2316","τ":"\u03C4","⎴":"\u23B4","ť":"\u0165","ţ":"\u0163","т":"\u0442","⃛":"\u20DB","⌕":"\u2315","𝔱":"\u{1D531}","∴":"\u2234","∴":"\u2234","θ":"\u03B8","ϑ":"\u03D1","ϑ":"\u03D1","≈":"\u2248","∼":"\u223C"," ":"\u2009","≈":"\u2248","∼":"\u223C","þ":"\xFE","þ":"\xFE","˜":"\u02DC","×":"\xD7","×":"\xD7","⊠":"\u22A0","⨱":"\u2A31","⨰":"\u2A30","∭":"\u222D","⤨":"\u2928","⊤":"\u22A4","⌶":"\u2336","⫱":"\u2AF1","𝕥":"\u{1D565}","⫚":"\u2ADA","⤩":"\u2929","‴":"\u2034","™":"\u2122","▵":"\u25B5","▿":"\u25BF","◃":"\u25C3","⊴":"\u22B4","≜":"\u225C","▹":"\u25B9","⊵":"\u22B5","◬":"\u25EC","≜":"\u225C","⨺":"\u2A3A","⨹":"\u2A39","⧍":"\u29CD","⨻":"\u2A3B","⏢":"\u23E2","𝓉":"\u{1D4C9}","ц":"\u0446","ћ":"\u045B","ŧ":"\u0167","≬":"\u226C","↞":"\u219E","↠":"\u21A0","⇑":"\u21D1","⥣":"\u2963","ú":"\xFA","ú":"\xFA","↑":"\u2191","ў":"\u045E","ŭ":"\u016D","û":"\xFB","û":"\xFB","у":"\u0443","⇅":"\u21C5","ű":"\u0171","⥮":"\u296E","⥾":"\u297E","𝔲":"\u{1D532}","ù":"\xF9","ù":"\xF9","↿":"\u21BF","↾":"\u21BE","▀":"\u2580","⌜":"\u231C","⌜":"\u231C","⌏":"\u230F","◸":"\u25F8","ū":"\u016B","¨":"\xA8","¨":"\xA8","ų":"\u0173","𝕦":"\u{1D566}","↑":"\u2191","↕":"\u2195","↿":"\u21BF","↾":"\u21BE","⊎":"\u228E","υ":"\u03C5","ϒ":"\u03D2","υ":"\u03C5","⇈":"\u21C8","⌝":"\u231D","⌝":"\u231D","⌎":"\u230E","ů":"\u016F","◹":"\u25F9","𝓊":"\u{1D4CA}","⋰":"\u22F0","ũ":"\u0169","▵":"\u25B5","▴":"\u25B4","⇈":"\u21C8","ü":"\xFC","ü":"\xFC","⦧":"\u29A7","⇕":"\u21D5","⫨":"\u2AE8","⫩":"\u2AE9","⊨":"\u22A8","⦜":"\u299C","ϵ":"\u03F5","ϰ":"\u03F0","∅":"\u2205","ϕ":"\u03D5","ϖ":"\u03D6","∝":"\u221D","↕":"\u2195","ϱ":"\u03F1","ς":"\u03C2","⊊︀":"\u228A\uFE00","⫋︀":"\u2ACB\uFE00","⊋︀":"\u228B\uFE00","⫌︀":"\u2ACC\uFE00","ϑ":"\u03D1","⊲":"\u22B2","⊳":"\u22B3","в":"\u0432","⊢":"\u22A2","∨":"\u2228","⊻":"\u22BB","≚":"\u225A","⋮":"\u22EE","|":"|","|":"|","𝔳":"\u{1D533}","⊲":"\u22B2","⊂⃒":"\u2282\u20D2","⊃⃒":"\u2283\u20D2","𝕧":"\u{1D567}","∝":"\u221D","⊳":"\u22B3","𝓋":"\u{1D4CB}","⫋︀":"\u2ACB\uFE00","⊊︀":"\u228A\uFE00","⫌︀":"\u2ACC\uFE00","⊋︀":"\u228B\uFE00","⦚":"\u299A","ŵ":"\u0175","⩟":"\u2A5F","∧":"\u2227","≙":"\u2259","℘":"\u2118","𝔴":"\u{1D534}","𝕨":"\u{1D568}","℘":"\u2118","≀":"\u2240","≀":"\u2240","𝓌":"\u{1D4CC}","⋂":"\u22C2","◯":"\u25EF","⋃":"\u22C3","▽":"\u25BD","𝔵":"\u{1D535}","⟺":"\u27FA","⟷":"\u27F7","ξ":"\u03BE","⟸":"\u27F8","⟵":"\u27F5","⟼":"\u27FC","⋻":"\u22FB","⨀":"\u2A00","𝕩":"\u{1D569}","⨁":"\u2A01","⨂":"\u2A02","⟹":"\u27F9","⟶":"\u27F6","𝓍":"\u{1D4CD}","⨆":"\u2A06","⨄":"\u2A04","△":"\u25B3","⋁":"\u22C1","⋀":"\u22C0","ý":"\xFD","ý":"\xFD","я":"\u044F","ŷ":"\u0177","ы":"\u044B","¥":"\xA5","¥":"\xA5","𝔶":"\u{1D536}","ї":"\u0457","𝕪":"\u{1D56A}","𝓎":"\u{1D4CE}","ю":"\u044E","ÿ":"\xFF","ÿ":"\xFF","ź":"\u017A","ž":"\u017E","з":"\u0437","ż":"\u017C","ℨ":"\u2128","ζ":"\u03B6","𝔷":"\u{1D537}","ж":"\u0436","⇝":"\u21DD","𝕫":"\u{1D56B}","𝓏":"\u{1D4CF}","‍":"\u200D","‌":"\u200C"},Ci=ip;function ap(r){return r.replace(/&(#\d+|#x[a-f0-9]+|[a-z]+\d*);?/gi,(e,t)=>{if(typeof Ci[e]=="string")return Ci[e];if(t.charAt(0)!=="#"||e.charAt(e.length-1)!==";")return e;let s;t.charAt(1)==="x"?s=parseInt(t.substr(2),16):s=parseInt(t.substr(1),10);var n="";return s>=55296&&s<=57343||s>1114111?"\uFFFD":(s>65535&&(s-=65536,n+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),n+=String.fromCharCode(s),n)})}o(ap,"decodeHTMLEntities");function tr(r){return r.trim().replace(/[<>"'?&]/g,e=>{let t=e.charCodeAt(0).toString(16);return t.length<2&&(t="0"+t),"&#x"+t.toUpperCase()+";"})}o(tr,"escapeHtml");function Ho(r){return"
"+tr(r).replace(/\n/g,"
")+"
"}o(Ho,"textToHtml");function Qo(r){return r=r.replace(/\r?\n/g,"").replace(/<\!\-\-.*?\-\->/gi," ").replace(/]*>/gi,` `).replace(/<\/?(p|div|table|tr|td|th)\b[^>]*>/gi,` `).replace(/]*>.*?<\/script\b[^>]*>/gi," ").replace(/^.*]*>/i,"").replace(/^.*<\/head\b[^>]*>/i,"").replace(/^.*<\!doctype\b[^>]*>/i,"").replace(/<\/body\b[^>]*>.*$/i,"").replace(/<\/html\b[^>]*>.*$/i,"").replace(/]*href\s*=\s*["']?([^\s"']+)[^>]*>/gi," ($1) ").replace(/<\/?(span|em|i|strong|b|u|a)\b[^>]*>/gi,"").replace(/]*>[\n\u0001\s]*/gi,"* ").replace(/]*>/g,` @@ -25,17 +25,17 @@ var Rn=Object.defineProperty;var eu=(r,e,t)=>e in r?Rn(r,e,{enumerable:!0,config `).replace(/^\n+/,` `).replace(/\n+$/,` -`),r=Xh(r),r}o($o,"htmlToText");function Lo(r){return[].concat(r.name||[]).concat(r.name?`<${r.address}>`:r.address).join(" ")}o(Lo,"formatTextAddress");function Di(r){let e=[],t=o((s,n)=>{if(n&&e.push(", "),s.group){let i=`${s.name}:`,a=";";e.push(i),s.group.forEach(t),e.push(a)}else e.push(Lo(s))},"processAddress");return r.forEach(t),e.join("")}o(Di,"formatTextAddresses");function Po(r){return``}o(Po,"formatHtmlAddress");function _i(r){let e=[],t=o((s,n)=>{if(n&&e.push(''),s.group){let i=``,a='';e.push(i),s.group.forEach(t),e.push(a)}else e.push(Po(s))},"processAddress");return r.forEach(t),e.join(" ")}o(_i,"formatHtmlAddresses");function Zh(r,e,t){r=(r||"").toString(),e=e||76;let s=0,n=r.length,i="",a,u;for(;s"u"?r.date:new Intl.DateTimeFormat("default",a).format(new Date(r.date));e.push({key:"Date",val:u})}r.to&&r.to.length&&e.push({key:"To",val:Di(r.to)}),r.cc&&r.cc.length&&e.push({key:"Cc",val:Di(r.cc)}),r.bcc&&r.bcc.length&&e.push({key:"Bcc",val:Di(r.bcc)});let t=e.map(a=>a.key.length).reduce((a,u)=>u>a?u:a,0);e=e.flatMap(a=>{let u=t-a.key.length,l=`${a.key}: ${" ".repeat(u)}`,c=`${" ".repeat(a.key.length+1)} ${" ".repeat(u)}`;return Zh(a.val,80,!0).split(/\r?\n/).map(m=>m.trim()).map((m,x)=>`${x?c:l}${m}`)});let s=e.map(a=>a.length).reduce((a,u)=>u>a?u:a,0),n="-".repeat(s);return` +`),r=ap(r),r}o(Qo,"htmlToText");function Go(r){return[].concat(r.name||[]).concat(r.name?`<${r.address}>`:r.address).join(" ")}o(Go,"formatTextAddress");function Si(r){let e=[],t=o((s,n)=>{if(n&&e.push(", "),s.group){let i=`${s.name}:`,a=";";e.push(i),s.group.forEach(t),e.push(a)}else e.push(Go(s))},"processAddress");return r.forEach(t),e.join("")}o(Si,"formatTextAddresses");function Wo(r){return``}o(Wo,"formatHtmlAddress");function Ti(r){let e=[],t=o((s,n)=>{if(n&&e.push(''),s.group){let i=``,a='';e.push(i),s.group.forEach(t),e.push(a)}else e.push(Wo(s))},"processAddress");return r.forEach(t),e.join(" ")}o(Ti,"formatHtmlAddresses");function op(r,e,t){r=(r||"").toString(),e=e||76;let s=0,n=r.length,i="",a,u;for(;s"u"?r.date:new Intl.DateTimeFormat("default",a).format(new Date(r.date));e.push({key:"Date",val:u})}r.to&&r.to.length&&e.push({key:"To",val:Si(r.to)}),r.cc&&r.cc.length&&e.push({key:"Cc",val:Si(r.cc)}),r.bcc&&r.bcc.length&&e.push({key:"Bcc",val:Si(r.bcc)});let t=e.map(a=>a.key.length).reduce((a,u)=>u>a?u:a,0);e=e.flatMap(a=>{let u=t-a.key.length,l=`${a.key}: ${" ".repeat(u)}`,c=`${" ".repeat(a.key.length+1)} ${" ".repeat(u)}`;return op(a.val,80,!0).split(/\r?\n/).map(m=>m.trim()).map((m,x)=>`${x?c:l}${m}`)});let s=e.map(a=>a.length).reduce((a,u)=>u>a?u:a,0),n="-".repeat(s);return` ${n} ${e.join(` `)} ${n} -`}o(Ei,"formatTextHeader");function Ci(r){let e=[];if(r.from&&e.push(``),r.subject&&e.push(``),r.date){let s={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1},n=typeof Intl>"u"?r.date:new Intl.DateTimeFormat("default",s).format(new Date(r.date));e.push(``)}return r.to&&r.to.length&&e.push(``),r.cc&&r.cc.length&&e.push(``),r.bcc&&r.bcc.length&&e.push(``),``}o(Ci,"formatHtmlHeader");function ep(r){let e=!1,t="text",s,n=[],i={address:[],comment:[],group:[],text:[],textWasQuoted:[]},a,u,l=!1;for(a=0,u=r.length;a{m.group?c=c.concat(m.group):c.push(m)}),n.push({name:Xt(i.text||s&&s.name),group:c})}else{if(!i.address.length&&i.text.length){for(a=i.text.length-1;a>=0;a--)if(!i.textWasQuoted[a]&&i.text[a].match(/^[^@\s]+@[^@\s]+$/)){i.address=i.text.splice(a,1),i.textWasQuoted.splice(a,1);break}let c=o(function(d){return i.address.length?d:(i.address=[d.trim()]," ")},"_regexHandler");if(!i.address.length)for(a=i.text.length-1;a>=0&&!(!i.textWasQuoted[a]&&(i.text[a]=i.text[a].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,c).trim(),i.address.length));a--);}if(!i.text.length&&i.comment.length&&(i.text=i.comment,i.comment=[]),i.address.length>1&&(i.text=i.text.concat(i.address.splice(1))),i.text=i.text.join(" "),i.address=i.address.join(" "),!i.address&&/^=\?[^=]+?=$/.test(i.text.trim())){let c=Ti(Xt(i.text));if(c&&c.length)return c}if(!i.address&&e)return[];s={address:i.address||i.text||"",name:Xt(i.text||i.address||"")},s.address===s.name&&((s.address||"").match(/@/)?s.name="":s.address=""),n.push(s)}return n}o(ep,"_handleAddress");var Tn=class{constructor(e){this.str=(e||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let e=[];for(let t=0,s=this.str.length;t{t.value=(t.value||"").toString().trim(),t.value&&e.push(t)}),e}checkChar(e,t){if(!this.escaped){if(e===this.operatorExpecting){this.node={type:"operator",value:e},t&&![" "," ","\r",` +`}o(Ni,"formatTextHeader");function ki(r){let e=[];if(r.from&&e.push(``),r.subject&&e.push(``),r.date){let s={year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1},n=typeof Intl>"u"?r.date:new Intl.DateTimeFormat("default",s).format(new Date(r.date));e.push(``)}return r.to&&r.to.length&&e.push(``),r.cc&&r.cc.length&&e.push(``),r.bcc&&r.bcc.length&&e.push(``),``}o(ki,"formatHtmlHeader");function up(r){let e=!1,t="text",s,n=[],i={address:[],comment:[],group:[],text:[],textWasQuoted:[]},a,u,l=!1;for(a=0,u=r.length;a{m.group?c=c.concat(m.group):c.push(m)}),n.push({name:Zt(i.text||s&&s.name),group:c})}else{if(!i.address.length&&i.text.length){for(a=i.text.length-1;a>=0;a--)if(!i.textWasQuoted[a]&&i.text[a].match(/^[^@\s]+@[^@\s]+$/)){i.address=i.text.splice(a,1),i.textWasQuoted.splice(a,1);break}let c=o(function(d){return i.address.length?d:(i.address=[d.trim()]," ")},"_regexHandler");if(!i.address.length)for(a=i.text.length-1;a>=0&&!(!i.textWasQuoted[a]&&(i.text[a]=i.text[a].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,c).trim(),i.address.length));a--);}if(!i.text.length&&i.comment.length&&(i.text=i.comment,i.comment=[]),i.address.length>1&&(i.text=i.text.concat(i.address.splice(1))),i.text=i.text.join(" "),i.address=i.address.join(" "),!i.address&&/^=\?[^=]+?=$/.test(i.text.trim())){let c=Ri(Zt(i.text));if(c&&c.length)return c}if(!i.address&&e)return[];s={address:i.address||i.text||"",name:Zt(i.text||i.address||"")},s.address===s.name&&((s.address||"").match(/@/)?s.name="":s.address=""),n.push(s)}return n}o(up,"_handleAddress");var kn=class{constructor(e){this.str=(e||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let e=[];for(let t=0,s=this.str.length;t{t.value=(t.value||"").toString().trim(),t.value&&e.push(t)}),e}checkChar(e,t){if(!this.escaped){if(e===this.operatorExpecting){this.node={type:"operator",value:e},t&&![" "," ","\r",` `,",",";"].includes(t)&&(this.node.noBreak=!0),this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&e in this.operators){this.node={type:"operator",value:e},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[e],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&e==="\\"){this.escaped=!0;return}}this.node||(this.node={type:"text",value:""},this.list.push(this.node)),e===` -`&&(e=" "),(e.charCodeAt(0)>=33||[" "," "].includes(e))&&(this.node.value+=e),this.escaped=!1}};o(Tn,"Tokenizer");function Ti(r,e){e=e||{};let s=new Tn(r).tokenize(),n=[],i=[],a=[];if(s.forEach(u=>{u.type==="operator"&&(u.value===","||u.value===";")?(i.length&&n.push(i),i=[]):i.push(u)}),i.length&&n.push(i),n.forEach(u=>{u=ep(u),u.length&&(a=a.concat(u))}),e.flatten){let u=[],l=o(c=>{c.forEach(d=>{if(d.group)return l(d.group);u.push(d)})},"walkAddressList");return l(a),u}return a}o(Ti,"addressParser");var Sn=Ti;function zo(r){for(var e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=new Uint8Array(r),n=s.byteLength,i=n%3,a=n-i,u,l,c,d,m,x=0;x>18,l=(m&258048)>>12,c=(m&4032)>>6,d=m&63,e+=t[u]+t[l]+t[c]+t[d];return i==1?(m=s[a],u=(m&252)>>2,l=(m&3)<<4,e+=t[u]+t[l]+"=="):i==2&&(m=s[a]<<8|s[a+1],u=(m&64512)>>10,l=(m&1008)>>4,c=(m&15)<<2,e+=t[u]+t[l]+t[c]+"="),e}o(zo,"base64ArrayBuffer");var tp=256,rp=2*1024*1024,tt=class{static parse(e,t){return new tt(t).parse(e)}constructor(e){this.options=e||{},this.mimeOptions={maxNestingDepth:this.options.maxNestingDepth||tp,maxHeadersSize:this.options.maxHeadersSize||rp},this.root=this.currentNode=new Zt({postalMime:this,...this.mimeOptions}),this.boundaries=[],this.textContent={},this.attachments=[],this.attachmentEncoding=(this.options.attachmentEncoding||"").toString().replace(/[-_\s]/g,"").trim().toLowerCase()||"arraybuffer",this.started=!1}async finalize(){await this.root.finalize()}async processLine(e,t){let s=this.boundaries;if(s.length&&e.length>2&&e[0]===45&&e[1]===45)for(let n=s.length-1;n>=0;n--){let i=s[n];if(e.length!==i.value.length+2&&e.length!==i.value.length+4)continue;let a=e.length===i.value.length+4;if(a&&(e[e.length-2]!==45||e[e.length-1]!==45))continue;let u=!0;for(let l=0;l({bytes:new Uint8Array(this.buf,e,t-e),done:this.readPos>=this.av.length}),"res");for(;this.readPos{if(u=u||!1,l=l||!1,a.contentType.multipart)a.contentType.multipart==="alternative"?u=a:a.contentType.multipart==="related"&&(l=a);else if(this.isInlineMessageRfc822(a)&&!n){let c=new tt;a.subMessage=await c.parse(a.content),s.has(a)||s.set(a,{});let d=s.get(a);(a.subMessage.text||!a.subMessage.html)&&(d.plain=d.plain||[],d.plain.push({type:"subMessage",value:a.subMessage}),t.add("plain")),a.subMessage.html&&(d.html=d.html||[],d.html.push({type:"subMessage",value:a.subMessage}),t.add("html")),c.textMap&&c.textMap.forEach((m,x)=>{s.set(x,m)});for(let m of a.subMessage.attachments||[])this.attachments.push(m)}else if(this.isInlineTextNode(a)){let c=a.contentType.parsed.value.substr(a.contentType.parsed.value.indexOf("/")+1),d=u||a;s.has(d)||s.set(d,{});let m=s.get(d);m[c]=m[c]||[],m[c].push({type:"text",value:a.getTextContent()}),t.add(c)}else if(a.content){let c=a.contentDisposition.parsed.params.filename||a.contentType.parsed.params.name||null,d={filename:c?Xt(c):null,mimeType:a.contentType.parsed.value,disposition:a.contentDisposition.parsed.value||null};switch(l&&a.contentId&&(d.related=!0),a.contentDescription&&(d.description=a.contentDescription),a.contentId&&(d.contentId=a.contentId),a.contentType.parsed.value){case"text/calendar":case"application/ics":{a.contentType.parsed.params.method&&(d.method=a.contentType.parsed.params.method.toString().toUpperCase().trim());let m=a.getTextContent().replace(/\r?\n/g,` +`&&(e=" "),(e.charCodeAt(0)>=33||[" "," "].includes(e))&&(this.node.value+=e),this.escaped=!1}};o(kn,"Tokenizer");function Ri(r,e){e=e||{};let s=new kn(r).tokenize(),n=[],i=[],a=[];if(s.forEach(u=>{u.type==="operator"&&(u.value===","||u.value===";")?(i.length&&n.push(i),i=[]):i.push(u)}),i.length&&n.push(i),n.forEach(u=>{u=up(u),u.length&&(a=a.concat(u))}),e.flatten){let u=[],l=o(c=>{c.forEach(d=>{if(d.group)return l(d.group);u.push(d)})},"walkAddressList");return l(a),u}return a}o(Ri,"addressParser");var Rn=Ri;function Jo(r){for(var e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=new Uint8Array(r),n=s.byteLength,i=n%3,a=n-i,u,l,c,d,m,x=0;x>18,l=(m&258048)>>12,c=(m&4032)>>6,d=m&63,e+=t[u]+t[l]+t[c]+t[d];return i==1?(m=s[a],u=(m&252)>>2,l=(m&3)<<4,e+=t[u]+t[l]+"=="):i==2&&(m=s[a]<<8|s[a+1],u=(m&64512)>>10,l=(m&1008)>>4,c=(m&15)<<2,e+=t[u]+t[l]+t[c]+"="),e}o(Jo,"base64ArrayBuffer");var lp=256,cp=2*1024*1024,rt=class{static parse(e,t){return new rt(t).parse(e)}constructor(e){this.options=e||{},this.mimeOptions={maxNestingDepth:this.options.maxNestingDepth||lp,maxHeadersSize:this.options.maxHeadersSize||cp},this.root=this.currentNode=new er({postalMime:this,...this.mimeOptions}),this.boundaries=[],this.textContent={},this.attachments=[],this.attachmentEncoding=(this.options.attachmentEncoding||"").toString().replace(/[-_\s]/g,"").trim().toLowerCase()||"arraybuffer",this.started=!1}async finalize(){await this.root.finalize()}async processLine(e,t){let s=this.boundaries;if(s.length&&e.length>2&&e[0]===45&&e[1]===45)for(let n=s.length-1;n>=0;n--){let i=s[n];if(e.length!==i.value.length+2&&e.length!==i.value.length+4)continue;let a=e.length===i.value.length+4;if(a&&(e[e.length-2]!==45||e[e.length-1]!==45))continue;let u=!0;for(let l=0;l({bytes:new Uint8Array(this.buf,e,t-e),done:this.readPos>=this.av.length}),"res");for(;this.readPos{if(u=u||!1,l=l||!1,a.contentType.multipart)a.contentType.multipart==="alternative"?u=a:a.contentType.multipart==="related"&&(l=a);else if(this.isInlineMessageRfc822(a)&&!n){let c=new rt;a.subMessage=await c.parse(a.content),s.has(a)||s.set(a,{});let d=s.get(a);(a.subMessage.text||!a.subMessage.html)&&(d.plain=d.plain||[],d.plain.push({type:"subMessage",value:a.subMessage}),t.add("plain")),a.subMessage.html&&(d.html=d.html||[],d.html.push({type:"subMessage",value:a.subMessage}),t.add("html")),c.textMap&&c.textMap.forEach((m,x)=>{s.set(x,m)});for(let m of a.subMessage.attachments||[])this.attachments.push(m)}else if(this.isInlineTextNode(a)){let c=a.contentType.parsed.value.substr(a.contentType.parsed.value.indexOf("/")+1),d=u||a;s.has(d)||s.set(d,{});let m=s.get(d);m[c]=m[c]||[],m[c].push({type:"text",value:a.getTextContent()}),t.add(c)}else if(a.content){let c=a.contentDisposition.parsed.params.filename||a.contentType.parsed.params.name||null,d={filename:c?Zt(c):null,mimeType:a.contentType.parsed.value,disposition:a.contentDisposition.parsed.value||null};switch(l&&a.contentId&&(d.related=!0),a.contentDescription&&(d.description=a.contentDescription),a.contentId&&(d.contentId=a.contentId),a.contentType.parsed.value){case"text/calendar":case"application/ics":{a.contentType.parsed.params.method&&(d.method=a.contentType.parsed.params.method.toString().toUpperCase().trim());let m=a.getTextContent().replace(/\r?\n/g,` `).replace(/\n*$/,` -`);d.content=At.encode(m);break}default:d.content=a.content}this.attachments.push(d)}for(let c of a.childNodes)await i(c,u,l)},"walk");await i(this.root,!1,[]),s.forEach(a=>{t.forEach(u=>{if(e[u]||(e[u]=[]),a[u])a[u].forEach(l=>{switch(l.type){case"text":e[u].push(l.value);break;case"subMessage":switch(u){case"html":e[u].push(Ci(l.value));break;case"plain":e[u].push(Ei(l.value));break}break}});else{let l;switch(u){case"html":l="plain";break;case"plain":l="html";break}(a[l]||[]).forEach(c=>{switch(c.type){case"text":switch(u){case"html":e[u].push(Mo(c.value));break;case"plain":e[u].push($o(c.value));break}break;case"subMessage":switch(u){case"html":e[u].push(Ci(c.value));break;case"plain":e[u].push(Ei(c.value));break}break}})}})}),Object.keys(e).forEach(a=>{e[a]=e[a].join(` -`)}),this.textContent=e}isInlineTextNode(e){if(e.contentDisposition.parsed.value==="attachment")return!1;switch(e.contentType.parsed.value){case"text/html":case"text/plain":return!0;case"text/calendar":case"text/csv":default:return!1}}isInlineMessageRfc822(e){return e.contentType.parsed.value!=="message/rfc822"?!1:(e.contentDisposition.parsed.value||(this.options.rfc822Attachments?"attachment":"inline"))==="inline"}forceRfc822Attachments(){if(this.options.forceRfc822Attachments)return!0;let e=!1,t=o(s=>{s.contentType.multipart||["message/delivery-status","message/feedback-report"].includes(s.contentType.parsed.value)&&(e=!0);for(let n of s.childNodes)t(n)},"walk");return t(this.root),e}async resolveStream(e){let t=0,s=[],n=e.getReader();for(;;){let{done:u,value:l}=await n.read();if(u)break;s.push(l),t+=l.length}let i=new Uint8Array(t),a=0;for(let u of s)i.set(u,a),a+=u.length;return i}async parse(e){if(this.started)throw new Error("Can not reuse parser, create a new PostalMime object");for(this.started=!0,e&&typeof e.getReader=="function"&&(e=await this.resolveStream(e)),e=e||new ArrayBuffer(0),typeof e=="string"&&(e=At.encode(e)),(e instanceof Blob||Object.prototype.toString.call(e)==="[object Blob]")&&(e=await Dt(e)),e.buffer instanceof ArrayBuffer&&(e=new Uint8Array(e).buffer),this.buf=e,this.av=new Uint8Array(e),this.readPos=0;this.readPos({key:n.key,value:n.value})).reverse()};for(let n of["from","sender"]){let i=this.root.headers.find(a=>a.key===n);if(i&&i.value){let a=Sn(i.value);a&&a.length&&(t[n]=a[0])}}for(let n of["delivered-to","return-path"]){let i=this.root.headers.find(a=>a.key===n);if(i&&i.value){let a=Sn(i.value);if(a&&a.length&&a[0].address){let u=n.replace(/\-(.)/g,(l,c)=>c.toUpperCase());t[u]=a[0].address}}}for(let n of["to","cc","bcc","reply-to"]){let i=this.root.headers.filter(u=>u.key===n),a=[];if(i.filter(u=>u&&u.value).map(u=>Sn(u.value)).forEach(u=>a=a.concat(u||[])),a&&a.length){let u=n.replace(/\-(.)/g,(l,c)=>c.toUpperCase());t[u]=a}}for(let n of["subject","message-id","in-reply-to","references"]){let i=this.root.headers.find(a=>a.key===n);if(i&&i.value){let a=n.replace(/\-(.)/g,(u,l)=>l.toUpperCase());t[a]=Xt(i.value)}}let s=this.root.headers.find(n=>n.key==="date");if(s){let n=new Date(s.value);!n||n.toString()==="Invalid Date"?n=s.value:n=n.toISOString(),t.date=n}switch(this.textContent?.html&&(t.html=this.textContent.html),this.textContent?.plain&&(t.text=this.textContent.plain),t.attachments=this.attachments,this.attachmentEncoding){case"arraybuffer":break;case"base64":for(let i of t.attachments||[])i?.content&&(i.content=zo(i.content),i.encoding="base64");break;case"utf8":let n=new TextDecoder("utf8");for(let i of t.attachments||[])i?.content&&(i.content=n.decode(i.content),i.encoding="utf8");break;default:throw new Error("Unknwon attachment encoding")}return t}};o(tt,"PostalMime");function Uo(r,e){let t=atob(r),s="";for(let n=0;n{let t=r.req.header("X-API-Key");if(!t){let i=r.req.header("Authorization");i?.startsWith("Bearer ")&&(t=i.substring(7))}if(!t)return r.json({error:{code:"UNAUTHORIZED",message:"Missing API Key. Provide it via X-API-Key header or Authorization: Bearer "}},401);let s=ce(r.env.DB),n=await Eo(s,t);if(!n)return r.json({error:{code:"UNAUTHORIZED",message:"Invalid API Key"}},401);if(!n.isActive)return r.json({error:{code:"FORBIDDEN",message:"API Key is disabled"}},403);if(n.expiresAt&&n.expiresAt{let e=ce(r.env.DB),t=r.get("apiKey"),s={};try{s=await r.req.json()}catch{}let n=r.env.EMAIL_DOMAIN?r.env.EMAIL_DOMAIN.split(",").map(x=>x.trim()):[];if(n.length===0)return r.json({error:{code:"CONFIGURATION_ERROR",message:"No email domains configured"}},500);let i=s.domain||n[0];if(!n.includes(i))return r.json({error:{code:"VALIDATION_ERROR",message:`Invalid domain. Available domains: ${n.join(", ")}`,details:{field:"domain",allowed:n}}},400);let u=`${s.localPart||sp()}@${i}`,l=s.expiresIn||24*60*60,c=new Date(Date.now()+l*1e3),d=new Date,m={id:Os(),address:u,domain:i,expiresAt:c,apiKeyId:t.id,createdAt:d,updatedAt:d};try{return await So(e,m),r.json({data:{id:m.id,address:m.address,domain:m.domain,expiresAt:m.expiresAt.toISOString(),createdAt:m.createdAt.toISOString()}},201)}catch(x){return x.message?.includes("UNIQUE constraint failed")?r.json({error:{code:"CONFLICT",message:"Email address already exists"}},409):(console.error("Create mailbox error:",x),r.json({error:{code:"INTERNAL_ERROR",message:"Failed to create mailbox"}},500))}});zr.get("/:id",async r=>{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s}=r.req.param(),n=await Ss(e,s);if(!n)return r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404);if(n.apiKeyId!==t.id)return r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403);let i=await Oo(e,n.address);return r.json({data:{id:n.id,address:n.address,domain:n.domain,expiresAt:n.expiresAt?.toISOString()||null,createdAt:n.createdAt.toISOString(),messageCount:i}})});zr.get("/:id/messages",async r=>{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s}=r.req.param(),n=await Ss(e,s);if(!n)return r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404);if(n.apiKeyId!==t.id)return r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403);let i=Math.max(1,parseInt(r.req.query("page")||"1",10)),a=Math.min(100,Math.max(1,parseInt(r.req.query("limit")||"20",10))),u=r.req.query("sort")==="asc"?"asc":"desc",{messages:l,total:c,totalPages:d}=await No(e,n.address,{page:i,limit:a,sort:u});return r.json({data:l.map(m=>({id:m.id,from:m.from,subject:m.subject,preview:m.text?.substring(0,100)||null,receivedAt:m.createdAt.toISOString()})),pagination:{page:i,limit:a,total:c,totalPages:d,hasMore:i{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s,messageId:n}=r.req.param(),i=await Ss(e,s);if(!i)return r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404);if(i.apiKeyId!==t.id)return r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403);let a=await ko(e,i.address,n);return a?r.json({data:{id:a.id,messageId:a.messageId,from:a.from,to:a.to,cc:a.cc,bcc:a.bcc,replyTo:a.replyTo,subject:a.subject,text:a.text,html:a.html,headers:a.headers,receivedAt:a.createdAt.toISOString()}}):r.json({error:{code:"NOT_FOUND",message:"Message not found"}},404)});zr.delete("/:id/messages/:messageId",async r=>{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s,messageId:n}=r.req.param(),i=await Ss(e,s);return i?i.apiKeyId!==t.id?r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403):await Ro(e,i.address,n)?r.json({data:{deleted:!0,id:n}}):r.json({error:{code:"NOT_FOUND",message:"Message not found"}},404):r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404)});var Ko=zr;var Nn=new St;Nn.use("/*",Ys());Nn.use("/*",Vo);Nn.route("/mailboxes",Ko);var Ho=Nn;var tr=new St;tr.use("/api/*",Ys());var Qo=o(async(r,e)=>{let t;try{t=await r.req.json()}catch(l){return console.error("\u8BF7\u6C42\u4F53\u89E3\u6790\u4E3AJSON\u65F6\u51FA\u9519:",l),r.json({message:"\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002"},400)}r.set("parsedBody",t);let s=t.token||r.req.header("cf-turnstile-token"),n=r.req.header("CF-Connecting-IP");if(!s)return r.json({message:"\u7F3A\u5C11 turnstile token"},400);let i=new URLSearchParams;i.append("secret",r.env.TURNSTILE_SECRET),i.append("response",s),n&&i.append("remoteip",n);let u=await(await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString()})).json();if(!u.success)return console.error("Turnstile \u9A8C\u8BC1\u5931\u8D25:",u["error-codes"]),r.json({message:"token \u65E0\u6548"},400);await e()},"turnstile"),Ur=tr.basePath("/api");Ur.post("/verify",Qo,async r=>r.json({success:!0}));function np(){let r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e="vmail_";for(let t=0;t<32;t++)e+=r.charAt(Math.floor(Math.random()*r.length));return e}o(np,"generateApiKey");Ur.post("/api-keys",Qo,async r=>{let e=ce(r.env.DB),t=r.get("parsedBody"),s=new Date,n=np(),i=n.substring(0,12)+"...",a={id:Os(),key:n,keyPrefix:i,name:t?.name||null,rateLimit:100,isActive:!0,lastUsedAt:null,expiresAt:null,createdAt:s,updatedAt:s};try{return await To(e,a),r.json({data:{id:a.id,key:n,keyPrefix:i,name:a.name,createdAt:s.toISOString()},message:"API Key created successfully. Please save it now, it will not be shown again!"},201)}catch(u){return console.error("Create API Key error:",u),r.json({error:{code:"INTERNAL_ERROR",message:"Failed to create API Key"}},500)}});Ur.post("/emails",async r=>{let e=ce(r.env.DB),t;try{t=await r.req.json()}catch{return r.json({message:"\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002"},400)}let s=t?.address;if(!s)return r.json({message:"address is required"},400);let n=await Ao(e,s);return r.json(n)});Ur.get("/emails/:id",async r=>{let e=ce(r.env.DB),{id:t}=r.req.param(),s=await wo(e,t);return s?r.json(s):r.json({message:"Email not found"},404)});Ur.post("/delete-emails",async r=>{let e=ce(r.env.DB),s=(await r.req.json())?.ids;if(!s||!Array.isArray(s)||s.length===0)return r.json({message:"ids are required"},400);let n=await Do(e,s);return r.json(n)});Ur.post("/login",async r=>{let t=(await r.req.json())?.password;if(!t)return r.json({message:"Password is required"},400);try{let s=Uo(t,r.env.COOKIES_SECRET);return!s||typeof s!="string"||!s.includes("@")?(console.error("\u89E3\u5BC6\u540E\u7684\u5730\u5740\u683C\u5F0F\u65E0\u6548:",s),r.json({message:"Invalid password"},400)):r.json({address:s})}catch(s){return console.error("Login error:",s),r.json({message:"Invalid password"},400)}});tr.get("/config",r=>{let e=r.env.EMAIL_DOMAIN?r.env.EMAIL_DOMAIN.split(",").map(t=>t.trim()):[];return r.json({emailDomain:e,turnstileKey:r.env.TURNSTILE_KEY,cookiesSecret:r.env.COOKIES_SECRET})});tr.route("/api/v1",Ho);tr.get("/*",Js({root:"./"}));tr.get("/assets/*",Js({root:"./"}));var Go={async email(r,e,t){try{let s=ce(e.DB),n=await new Response(r.raw).text(),i=await new tt().parse(n),a=new Date,u={id:Os(),messageFrom:r.from,messageTo:r.to,headers:i.headers||[],from:i.from,sender:i.sender,replyTo:i.replyTo,deliveredTo:i.deliveredTo,returnPath:i.returnPath,to:i.to,cc:i.cc,bcc:i.bcc,subject:i.subject,messageId:i.messageId,inReplyTo:i.inReplyTo,references:i.references,date:i.date,html:i.html,text:i.text,createdAt:a,updatedAt:a},l=xo.parse(u);await vo(s,l)}catch(s){console.error("\u5904\u7406\u90AE\u4EF6\u5931\u8D25:",s),r.setReject(`\u90AE\u4EF6\u5904\u7406\u5931\u8D25: ${s.message}`)}},async fetch(r,e,t){let s=new URL(r.url);if(s.pathname.startsWith("/api/")||s.pathname==="/config")return tr.fetch(r,e,t);let n=await e.ASSETS.fetch(r);if(n.status===404){let i=new Request(new URL("/",r.url).toString(),r);return e.ASSETS.fetch(i)}return n},async scheduled(r,e,t){let s=ce(e.DB),n=new Date(Date.now()-1e3*60*60*24);await _o(s,n),console.log(`\u5DF2\u6E05\u7406 ${n.toISOString()} \u4E4B\u524D\u7684\u8FC7\u671F\u90AE\u4EF6`)}};var ip=o(async(r,e,t,s)=>{try{return await s.next(r,e)}finally{try{if(r.body!==null&&!r.bodyUsed){let n=r.body.getReader();for(;!(await n.read()).done;);}}catch(n){console.error("Failed to drain the unused request body.",n)}}},"drainBody"),Wo=ip;function Jo(r){return{name:r?.name,message:r?.message??String(r),stack:r?.stack,cause:r?.cause===void 0?void 0:Jo(r.cause)}}o(Jo,"reduceError");var op=o(async(r,e,t,s)=>{try{return await s.next(r,e)}catch(n){let i=Jo(n);return Response.json(i,{status:500,headers:{"MF-Experimental-Error-Stack":"true"}})}},"jsonError"),Yo=op;var rr=[Wo,Yo],Fs=Go;var Xo=[];function Si(...r){Xo.push(...r.flat())}o(Si,"__facade_register__");function Zo(r,e,t,s,n){let[i,...a]=n;return i(r,e,t,{dispatch:s,next(l,c){return Zo(l,c,t,s,a)}})}o(Zo,"__facade_invokeChain__");function Ni(r,e,t,s,n){return Zo(r,e,t,s,[...Xo,n])}o(Ni,"__facade_invoke__");var sr=class{constructor(e,t,s){this.scheduledTime=e;this.cron=t;this.#e=s}#e;noRetry(){if(!(this instanceof sr))throw new TypeError("Illegal invocation");this.#e()}};o(sr,"__Facade_ScheduledController__");function lp(r){if(rr===void 0||rr.length===0)return r;for(let t of rr)Si(t);let e=o(function(t,s,n){if(r.fetch===void 0)throw new Error("Handler does not export a fetch() function.");return r.fetch(t,s,n)},"fetchDispatcher");return{...r,fetch(t,s,n){return Ni(t,s,n,o(function(a,u){if(a==="scheduled"&&r.scheduled!==void 0){let l=new sr(Date.now(),u.cron??"",()=>{});return r.scheduled(l,s,n)}},"dispatcher"),e)}}}o(lp,"wrapExportedHandler");function cp(r){if(rr===void 0||rr.length===0)return r;for(let e of rr)Si(e);return class extends r{#e=(e,t,s)=>{if(this.env=t,this.ctx=s,super.fetch===void 0)throw new Error("Entrypoint class does not define a fetch() function.");return super.fetch(e)};#t=(e,t)=>{if(e==="scheduled"&&super.scheduled!==void 0){let s=new sr(Date.now(),t.cron??"",()=>{});return super.scheduled(s)}};fetch(e){return Ni(e,this.env,this.ctx,this.#t,this.#e)}}}o(cp,"wrapWorkerEntrypoint");var ki;typeof Fs=="object"?ki=lp(Fs):typeof Fs=="function"&&(ki=cp(Fs));var zR=ki;export{rr as __INTERNAL_WRANGLER_MIDDLEWARE__,zR as default}; +`);d.content=Dt.encode(m);break}default:d.content=a.content}this.attachments.push(d)}for(let c of a.childNodes)await i(c,u,l)},"walk");await i(this.root,!1,[]),s.forEach(a=>{t.forEach(u=>{if(e[u]||(e[u]=[]),a[u])a[u].forEach(l=>{switch(l.type){case"text":e[u].push(l.value);break;case"subMessage":switch(u){case"html":e[u].push(ki(l.value));break;case"plain":e[u].push(Ni(l.value));break}break}});else{let l;switch(u){case"html":l="plain";break;case"plain":l="html";break}(a[l]||[]).forEach(c=>{switch(c.type){case"text":switch(u){case"html":e[u].push(Ho(c.value));break;case"plain":e[u].push(Qo(c.value));break}break;case"subMessage":switch(u){case"html":e[u].push(ki(c.value));break;case"plain":e[u].push(Ni(c.value));break}break}})}})}),Object.keys(e).forEach(a=>{e[a]=e[a].join(` +`)}),this.textContent=e}isInlineTextNode(e){if(e.contentDisposition.parsed.value==="attachment")return!1;switch(e.contentType.parsed.value){case"text/html":case"text/plain":return!0;case"text/calendar":case"text/csv":default:return!1}}isInlineMessageRfc822(e){return e.contentType.parsed.value!=="message/rfc822"?!1:(e.contentDisposition.parsed.value||(this.options.rfc822Attachments?"attachment":"inline"))==="inline"}forceRfc822Attachments(){if(this.options.forceRfc822Attachments)return!0;let e=!1,t=o(s=>{s.contentType.multipart||["message/delivery-status","message/feedback-report"].includes(s.contentType.parsed.value)&&(e=!0);for(let n of s.childNodes)t(n)},"walk");return t(this.root),e}async resolveStream(e){let t=0,s=[],n=e.getReader();for(;;){let{done:u,value:l}=await n.read();if(u)break;s.push(l),t+=l.length}let i=new Uint8Array(t),a=0;for(let u of s)i.set(u,a),a+=u.length;return i}async parse(e){if(this.started)throw new Error("Can not reuse parser, create a new PostalMime object");for(this.started=!0,e&&typeof e.getReader=="function"&&(e=await this.resolveStream(e)),e=e||new ArrayBuffer(0),typeof e=="string"&&(e=Dt.encode(e)),(e instanceof Blob||Object.prototype.toString.call(e)==="[object Blob]")&&(e=await _t(e)),e.buffer instanceof ArrayBuffer&&(e=new Uint8Array(e).buffer),this.buf=e,this.av=new Uint8Array(e),this.readPos=0;this.readPos({key:n.key,value:n.value})).reverse()};for(let n of["from","sender"]){let i=this.root.headers.find(a=>a.key===n);if(i&&i.value){let a=Rn(i.value);a&&a.length&&(t[n]=a[0])}}for(let n of["delivered-to","return-path"]){let i=this.root.headers.find(a=>a.key===n);if(i&&i.value){let a=Rn(i.value);if(a&&a.length&&a[0].address){let u=n.replace(/\-(.)/g,(l,c)=>c.toUpperCase());t[u]=a[0].address}}}for(let n of["to","cc","bcc","reply-to"]){let i=this.root.headers.filter(u=>u.key===n),a=[];if(i.filter(u=>u&&u.value).map(u=>Rn(u.value)).forEach(u=>a=a.concat(u||[])),a&&a.length){let u=n.replace(/\-(.)/g,(l,c)=>c.toUpperCase());t[u]=a}}for(let n of["subject","message-id","in-reply-to","references"]){let i=this.root.headers.find(a=>a.key===n);if(i&&i.value){let a=n.replace(/\-(.)/g,(u,l)=>l.toUpperCase());t[a]=Zt(i.value)}}let s=this.root.headers.find(n=>n.key==="date");if(s){let n=new Date(s.value);!n||n.toString()==="Invalid Date"?n=s.value:n=n.toISOString(),t.date=n}switch(this.textContent?.html&&(t.html=this.textContent.html),this.textContent?.plain&&(t.text=this.textContent.plain),t.attachments=this.attachments,this.attachmentEncoding){case"arraybuffer":break;case"base64":for(let i of t.attachments||[])i?.content&&(i.content=Jo(i.content),i.encoding="base64");break;case"utf8":let n=new TextDecoder("utf8");for(let i of t.attachments||[])i?.content&&(i.content=n.decode(i.content),i.encoding="utf8");break;default:throw new Error("Unknwon attachment encoding")}return t}};o(rt,"PostalMime");function Yo(r,e){let t=atob(r),s="";for(let n=0;n{let t=r.req.header("X-API-Key");if(!t){let i=r.req.header("Authorization");i?.startsWith("Bearer ")&&(t=i.substring(7))}if(!t)return r.json({error:{code:"UNAUTHORIZED",message:"Missing API Key. Provide it via X-API-Key header or Authorization: Bearer "}},401);let s=ce(r.env.DB),n=await No(s,t);if(!n)return r.json({error:{code:"UNAUTHORIZED",message:"Invalid API Key"}},401);if(!n.isActive)return r.json({error:{code:"FORBIDDEN",message:"API Key is disabled"}},403);if(n.expiresAt&&n.expiresAt{let e=ce(r.env.DB),t=r.get("apiKey"),s={};try{s=await r.req.json()}catch{}let n=r.env.EMAIL_DOMAIN?r.env.EMAIL_DOMAIN.split(",").map(x=>x.trim()):[];if(n.length===0)return r.json({error:{code:"CONFIGURATION_ERROR",message:"No email domains configured"}},500);let i=s.domain||n[0];if(!n.includes(i))return r.json({error:{code:"VALIDATION_ERROR",message:`Invalid domain. Available domains: ${n.join(", ")}`,details:{field:"domain",allowed:n}}},400);let u=`${s.localPart||dp()}@${i}`,l=s.expiresIn||24*60*60,c=new Date(Date.now()+l*1e3),d=new Date,m={id:Fs(),address:u,domain:i,expiresAt:c,apiKeyId:t.id,createdAt:d,updatedAt:d};try{return await Oo(e,m),await $o(e),r.json({data:{id:m.id,address:m.address,domain:m.domain,expiresAt:m.expiresAt.toISOString(),createdAt:m.createdAt.toISOString()}},201)}catch(x){return x.message?.includes("UNIQUE constraint failed")?r.json({error:{code:"CONFLICT",message:"Email address already exists"}},409):(console.error("Create mailbox error:",x),r.json({error:{code:"INTERNAL_ERROR",message:"Failed to create mailbox"}},500))}});Vr.get("/:id",async r=>{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s}=r.req.param(),n=await Rs(e,s);if(!n)return r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404);if(n.apiKeyId!==t.id)return r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403);let i=await jo(e,n.address);return r.json({data:{id:n.id,address:n.address,domain:n.domain,expiresAt:n.expiresAt?.toISOString()||null,createdAt:n.createdAt.toISOString(),messageCount:i}})});Vr.get("/:id/messages",async r=>{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s}=r.req.param(),n=await Rs(e,s);if(!n)return r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404);if(n.apiKeyId!==t.id)return r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403);let i=Math.max(1,parseInt(r.req.query("page")||"1",10)),a=Math.min(100,Math.max(1,parseInt(r.req.query("limit")||"20",10))),u=r.req.query("sort")==="asc"?"asc":"desc",{messages:l,total:c,totalPages:d}=await Bo(e,n.address,{page:i,limit:a,sort:u});return r.json({data:l.map(m=>({id:m.id,from:m.from,subject:m.subject,preview:m.text?.substring(0,100)||null,receivedAt:m.createdAt.toISOString()})),pagination:{page:i,limit:a,total:c,totalPages:d,hasMore:i{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s,messageId:n}=r.req.param(),i=await Rs(e,s);if(!i)return r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404);if(i.apiKeyId!==t.id)return r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403);let a=await qo(e,i.address,n);return a?r.json({data:{id:a.id,messageId:a.messageId,from:a.from,to:a.to,cc:a.cc,bcc:a.bcc,replyTo:a.replyTo,subject:a.subject,text:a.text,html:a.html,headers:a.headers,receivedAt:a.createdAt.toISOString()}}):r.json({error:{code:"NOT_FOUND",message:"Message not found"}},404)});Vr.delete("/:id/messages/:messageId",async r=>{let e=ce(r.env.DB),t=r.get("apiKey"),{id:s,messageId:n}=r.req.param(),i=await Rs(e,s);return i?i.apiKeyId!==t.id?r.json({error:{code:"FORBIDDEN",message:"You do not have access to this mailbox"}},403):await Fo(e,i.address,n)?r.json({data:{deleted:!0,id:n}}):r.json({error:{code:"NOT_FOUND",message:"Message not found"}},404):r.json({error:{code:"NOT_FOUND",message:"Mailbox not found"}},404)});var Zo=Vr;var On=new Nt;On.use("/*",en());On.use("/*",Xo);On.route("/mailboxes",Zo);var eu=On;var rr=new Nt;rr.use("/api/*",en());var tu=o(async(r,e)=>{let t;try{t=await r.req.json()}catch(l){return console.error("\u8BF7\u6C42\u4F53\u89E3\u6790\u4E3AJSON\u65F6\u51FA\u9519:",l),r.json({message:"\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002"},400)}r.set("parsedBody",t);let s=t.token||r.req.header("cf-turnstile-token"),n=r.req.header("CF-Connecting-IP");if(!s)return r.json({message:"\u7F3A\u5C11 turnstile token"},400);let i=new URLSearchParams;i.append("secret",r.env.TURNSTILE_SECRET),i.append("response",s),n&&i.append("remoteip",n);let u=await(await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:i.toString()})).json();if(!u.success)return console.error("Turnstile \u9A8C\u8BC1\u5931\u8D25:",u["error-codes"]),r.json({message:"token \u65E0\u6548"},400);await e()},"turnstile"),sr=rr.basePath("/api");sr.post("/verify",tu,async r=>r.json({success:!0}));function fp(){let r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e="vmail_";for(let t=0;t<32;t++)e+=r.charAt(Math.floor(Math.random()*r.length));return e}o(fp,"generateApiKey");sr.post("/api-keys",tu,async r=>{let e=ce(r.env.DB),t=r.get("parsedBody"),s=new Date,n=fp(),i=n.substring(0,12)+"...",a={id:Fs(),key:n,keyPrefix:i,name:t?.name||null,rateLimit:100,isActive:!0,lastUsedAt:null,expiresAt:null,createdAt:s,updatedAt:s};try{return await Ro(e,a),await Mo(e),r.json({data:{id:a.id,key:n,keyPrefix:i,name:a.name,createdAt:s.toISOString()},message:"API Key created successfully. Please save it now, it will not be shown again!"},201)}catch(u){return console.error("Create API Key error:",u),r.json({error:{code:"INTERNAL_ERROR",message:"Failed to create API Key"}},500)}});sr.post("/emails",async r=>{let e=ce(r.env.DB),t;try{t=await r.req.json()}catch{return r.json({message:"\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002"},400)}let s=t?.address;if(!s)return r.json({message:"address is required"},400);let n=await Co(e,s);return r.json(n)});sr.get("/emails/:id",async r=>{let e=ce(r.env.DB),{id:t}=r.req.param(),s=await Eo(e,t);return s?r.json(s):r.json({message:"Email not found"},404)});sr.post("/delete-emails",async r=>{let e=ce(r.env.DB),s=(await r.req.json())?.ids;if(!s||!Array.isArray(s)||s.length===0)return r.json({message:"ids are required"},400);let n=await So(e,s);return r.json(n)});sr.post("/login",async r=>{let t=(await r.req.json())?.password;if(!t)return r.json({message:"Password is required"},400);try{let s=Yo(t,r.env.COOKIES_SECRET);return!s||typeof s!="string"||!s.includes("@")?(console.error("\u89E3\u5BC6\u540E\u7684\u5730\u5740\u683C\u5F0F\u65E0\u6548:",s),r.json({message:"Invalid password"},400)):r.json({address:s})}catch(s){return console.error("Login error:",s),r.json({message:"Invalid password"},400)}});rr.get("/config",r=>{let e=r.env.EMAIL_DOMAIN?r.env.EMAIL_DOMAIN.split(",").map(t=>t.trim()):[];return r.json({emailDomain:e,turnstileKey:r.env.TURNSTILE_KEY,cookiesSecret:r.env.COOKIES_SECRET})});sr.get("/stats",async r=>{let e=ce(r.env.DB),t=await Di(e);return t?r.json({totalAddressesCreated:t.totalAddressesCreated,totalEmailsReceived:t.totalEmailsReceived,totalApiCalls:t.totalApiCalls,totalApiKeysCreated:t.totalApiKeysCreated}):r.json({totalAddressesCreated:0,totalEmailsReceived:0,totalApiCalls:0,totalApiKeysCreated:0})});rr.route("/api/v1",eu);rr.get("/*",Zs({root:"./"}));rr.get("/assets/*",Zs({root:"./"}));var ru={async email(r,e,t){try{let s=ce(e.DB),n=await new Response(r.raw).text(),i=await new rt().parse(n),a=new Date,u={id:Fs(),messageFrom:r.from,messageTo:r.to,headers:i.headers||[],from:i.from,sender:i.sender,replyTo:i.replyTo,deliveredTo:i.deliveredTo,returnPath:i.returnPath,to:i.to,cc:i.cc,bcc:i.bcc,subject:i.subject,messageId:i.messageId,inReplyTo:i.inReplyTo,references:i.references,date:i.date,html:i.html,text:i.text,createdAt:a,updatedAt:a},l=Do.parse(u);await _o(s,l),await Io(s)}catch(s){console.error("\u5904\u7406\u90AE\u4EF6\u5931\u8D25:",s),r.setReject(`\u90AE\u4EF6\u5904\u7406\u5931\u8D25: ${s.message}`)}},async fetch(r,e,t){let s=new URL(r.url);if(s.pathname.startsWith("/api/")||s.pathname==="/config")return rr.fetch(r,e,t);let n=await e.ASSETS.fetch(r);if(n.status===404){let i=new Request(new URL("/",r.url).toString(),r);return e.ASSETS.fetch(i)}return n},async scheduled(r,e,t){let s=ce(e.DB),n=new Date(Date.now()-1e3*60*60*24);await To(s,n),console.log(`\u5DF2\u6E05\u7406 ${n.toISOString()} \u4E4B\u524D\u7684\u8FC7\u671F\u90AE\u4EF6`)}};var hp=o(async(r,e,t,s)=>{try{return await s.next(r,e)}finally{try{if(r.body!==null&&!r.bodyUsed){let n=r.body.getReader();for(;!(await n.read()).done;);}}catch(n){console.error("Failed to drain the unused request body.",n)}}},"drainBody"),su=hp;function nu(r){return{name:r?.name,message:r?.message??String(r),stack:r?.stack,cause:r?.cause===void 0?void 0:nu(r.cause)}}o(nu,"reduceError");var mp=o(async(r,e,t,s)=>{try{return await s.next(r,e)}catch(n){let i=nu(n);return Response.json(i,{status:500,headers:{"MF-Experimental-Error-Stack":"true"}})}},"jsonError"),iu=mp;var nr=[su,iu],$s=ru;var au=[];function Oi(...r){au.push(...r.flat())}o(Oi,"__facade_register__");function ou(r,e,t,s,n){let[i,...a]=n;return i(r,e,t,{dispatch:s,next(l,c){return ou(l,c,t,s,a)}})}o(ou,"__facade_invokeChain__");function Bi(r,e,t,s,n){return ou(r,e,t,s,[...au,n])}o(Bi,"__facade_invoke__");var ir=class{constructor(e,t,s){this.scheduledTime=e;this.cron=t;this.#e=s}#e;noRetry(){if(!(this instanceof ir))throw new TypeError("Illegal invocation");this.#e()}};o(ir,"__Facade_ScheduledController__");function yp(r){if(nr===void 0||nr.length===0)return r;for(let t of nr)Oi(t);let e=o(function(t,s,n){if(r.fetch===void 0)throw new Error("Handler does not export a fetch() function.");return r.fetch(t,s,n)},"fetchDispatcher");return{...r,fetch(t,s,n){return Bi(t,s,n,o(function(a,u){if(a==="scheduled"&&r.scheduled!==void 0){let l=new ir(Date.now(),u.cron??"",()=>{});return r.scheduled(l,s,n)}},"dispatcher"),e)}}}o(yp,"wrapExportedHandler");function bp(r){if(nr===void 0||nr.length===0)return r;for(let e of nr)Oi(e);return class extends r{#e=(e,t,s)=>{if(this.env=t,this.ctx=s,super.fetch===void 0)throw new Error("Entrypoint class does not define a fetch() function.");return super.fetch(e)};#t=(e,t)=>{if(e==="scheduled"&&super.scheduled!==void 0){let s=new ir(Date.now(),t.cron??"",()=>{});return super.scheduled(s)}};fetch(e){return Bi(e,this.env,this.ctx,this.#t,this.#e)}}}o(bp,"wrapWorkerEntrypoint");var qi;typeof $s=="object"?qi=yp($s):typeof $s=="function"&&(qi=bp($s));var XR=qi;export{nr as __INTERNAL_WRANGLER_MIDDLEWARE__,XR as default}; //# sourceMappingURL=index.js.map diff --git a/.wrangler/tmp/dev-LPc0CX/index.js.map b/.wrangler/tmp/dev-PnrrLK/index.js.map similarity index 74% rename from .wrangler/tmp/dev-LPc0CX/index.js.map rename to .wrangler/tmp/dev-PnrrLK/index.js.map index 8d70cc4..687c3fe 100644 --- a/.wrangler/tmp/dev-LPc0CX/index.js.map +++ b/.wrangler/tmp/dev-PnrrLK/index.js.map @@ -1,8 +1,8 @@ { "version": 3, - "sources": ["../bundle-5rCH3B/strip-cf-connecting-ip-header.js", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/_internal/utils.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/perf_hooks/performance.mjs", "../../../node_modules/.pnpm/@cloudflare+unenv-preset@2.0.2_unenv@2.0.0-rc.14_workerd@1.20250718.0/node_modules/@cloudflare/unenv-preset/dist/runtime/polyfill/performance.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/console.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/mock/noop.mjs", "../../../node_modules/.pnpm/@cloudflare+unenv-preset@2.0.2_unenv@2.0.0-rc.14_workerd@1.20250718.0/node_modules/@cloudflare/unenv-preset/dist/runtime/node/console.mjs", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/_virtual_unenv_global_polyfill-@cloudflare-unenv-preset-node-console", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/process/hrtime.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/process/process.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/tty/read-stream.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/tty/write-stream.mjs", "../../../node_modules/.pnpm/@cloudflare+unenv-preset@2.0.2_unenv@2.0.0-rc.14_workerd@1.20250718.0/node_modules/@cloudflare/unenv-preset/dist/runtime/node/process.mjs", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/_virtual_unenv_global_polyfill-@cloudflare-unenv-preset-node-process", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/compose.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/request/constants.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/body.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/url.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/request.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/html.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/context.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/constants.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/hono-base.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/matcher.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/node.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/trie.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/smart-router/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/trie-router/node.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/trie-router/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/hono.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/compress.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/mime.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/middleware/serve-static/path.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/middleware/serve-static/index.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/utils.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/helper/websocket/index.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/middleware/cors/index.js", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/entity.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/column.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/subquery.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/tracing-utils.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/drizzle-orm/version.js", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/tracing.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/view-common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/sql.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/alias.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/column-builder.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/errors.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/expressions/conditions.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/expressions/select.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/logger.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/query-promise.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/primary-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/relations.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/functions/aggregate.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/utils.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/foreign-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/unique-constraint.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/columns/common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/columns/integer.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/columns/text.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/selection-proxy.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/delete.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/insert.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/view-base.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/dialect.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/query-builders/query-builder.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/select.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/query-builder.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/update.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/query.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/raw.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/db.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/session.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/foreign-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/unique-constraint.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/char.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/varbinary.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/varchar.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/foreign-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/unique-constraint.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/utils/array.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/char.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/uuid.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/varchar.ts", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js", "../../../node_modules/.pnpm/drizzle-zod@0.5.1_drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0__zod@3.25.76/node_modules/src/index.ts", "../../../worker/src/database/schema.ts", "../../../worker/src/database/dao.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/d1/session.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/d1/driver.ts", "../../../worker/src/database/db.ts", "../../../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/non-secure/index.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/decode-strings.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/pass-through-decoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/base64-decoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/qp-decoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/mime-node.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/html-entities.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/text-format.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/address-parser.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/base64-encoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/postal-mime.js", "../../../worker/src/utils.ts", "../../../worker/src/api/v1/middleware/apiKeyAuth.ts", "../../../worker/src/api/v1/routes/mailboxes.ts", "../../../worker/src/api/v1/index.ts", "../../../worker/src/index.ts", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts", "../bundle-5rCH3B/middleware-insertion-facade.js", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts", "../bundle-5rCH3B/middleware-loader.entry.ts"], - "sourceRoot": "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/dev-LPc0CX", - "sourcesContent": ["function stripCfConnectingIPHeader(input, init) {\n\tconst request = new Request(input, init);\n\trequest.headers.delete(\"CF-Connecting-IP\");\n\treturn request;\n}\n\nglobalThis.fetch = new Proxy(globalThis.fetch, {\n\tapply(target, thisArg, argArray) {\n\t\treturn Reflect.apply(target, thisArg, [\n\t\t\tstripCfConnectingIPHeader.apply(null, argArray),\n\t\t]);\n\t},\n});\n", "/*@__NO_SIDE_EFFECTS__*/ export function rawHeaders(headers) {\n\tconst rawHeaders = [];\n\tfor (const key in headers) {\n\t\tif (Array.isArray(headers[key])) {\n\t\t\tfor (const h of headers[key]) {\n\t\t\t\trawHeaders.push(key, h);\n\t\t\t}\n\t\t} else {\n\t\t\trawHeaders.push(key, headers[key]);\n\t\t}\n\t}\n\treturn rawHeaders;\n}\n/*@__NO_SIDE_EFFECTS__*/ export function mergeFns(...functions) {\n\treturn function(...args) {\n\t\tfor (const fn of functions) {\n\t\t\tfn(...args);\n\t\t}\n\t};\n}\n/*@__NO_SIDE_EFFECTS__*/ export function createNotImplementedError(name) {\n\treturn new Error(`[unenv] ${name} is not implemented yet!`);\n}\n/*@__NO_SIDE_EFFECTS__*/ export function notImplemented(name) {\n\tconst fn = () => {\n\t\tthrow createNotImplementedError(name);\n\t};\n\treturn Object.assign(fn, { __unenv__: true });\n}\n/*@__NO_SIDE_EFFECTS__*/ export function notImplementedAsync(name) {\n\tconst fn = notImplemented(name);\n\tfn.__promisify__ = () => notImplemented(name + \".__promisify__\");\n\tfn.native = fn;\n\treturn fn;\n}\n/*@__NO_SIDE_EFFECTS__*/ export function notImplementedClass(name) {\n\treturn class {\n\t\t__unenv__ = true;\n\t\tconstructor() {\n\t\t\tthrow new Error(`[unenv] ${name} is not implemented yet!`);\n\t\t}\n\t};\n}\n", "import { createNotImplementedError } from \"../../../_internal/utils.mjs\";\nconst _timeOrigin = globalThis.performance?.timeOrigin ?? Date.now();\nconst _performanceNow = globalThis.performance?.now ? globalThis.performance.now.bind(globalThis.performance) : () => Date.now() - _timeOrigin;\nconst nodeTiming = {\n\tname: \"node\",\n\tentryType: \"node\",\n\tstartTime: 0,\n\tduration: 0,\n\tnodeStart: 0,\n\tv8Start: 0,\n\tbootstrapComplete: 0,\n\tenvironment: 0,\n\tloopStart: 0,\n\tloopExit: 0,\n\tidleTime: 0,\n\tuvMetricsInfo: {\n\t\tloopCount: 0,\n\t\tevents: 0,\n\t\teventsWaiting: 0\n\t},\n\tdetail: undefined,\n\ttoJSON() {\n\t\treturn this;\n\t}\n};\nexport class PerformanceEntry {\n\t__unenv__ = true;\n\tdetail;\n\tentryType = \"event\";\n\tname;\n\tstartTime;\n\tconstructor(name, options) {\n\t\tthis.name = name;\n\t\tthis.startTime = options?.startTime || _performanceNow();\n\t\tthis.detail = options?.detail;\n\t}\n\tget duration() {\n\t\treturn _performanceNow() - this.startTime;\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tentryType: this.entryType,\n\t\t\tstartTime: this.startTime,\n\t\t\tduration: this.duration,\n\t\t\tdetail: this.detail\n\t\t};\n\t}\n}\nexport const PerformanceMark = class PerformanceMark extends PerformanceEntry {\n\tentryType = \"mark\";\n\tconstructor() {\n\t\tsuper(...arguments);\n\t}\n\tget duration() {\n\t\treturn 0;\n\t}\n};\nexport class PerformanceMeasure extends PerformanceEntry {\n\tentryType = \"measure\";\n}\nexport class PerformanceResourceTiming extends PerformanceEntry {\n\tentryType = \"resource\";\n\tserverTiming = [];\n\tconnectEnd = 0;\n\tconnectStart = 0;\n\tdecodedBodySize = 0;\n\tdomainLookupEnd = 0;\n\tdomainLookupStart = 0;\n\tencodedBodySize = 0;\n\tfetchStart = 0;\n\tinitiatorType = \"\";\n\tname = \"\";\n\tnextHopProtocol = \"\";\n\tredirectEnd = 0;\n\tredirectStart = 0;\n\trequestStart = 0;\n\tresponseEnd = 0;\n\tresponseStart = 0;\n\tsecureConnectionStart = 0;\n\tstartTime = 0;\n\ttransferSize = 0;\n\tworkerStart = 0;\n\tresponseStatus = 0;\n}\nexport class PerformanceObserverEntryList {\n\t__unenv__ = true;\n\tgetEntries() {\n\t\treturn [];\n\t}\n\tgetEntriesByName(_name, _type) {\n\t\treturn [];\n\t}\n\tgetEntriesByType(type) {\n\t\treturn [];\n\t}\n}\nexport class Performance {\n\t__unenv__ = true;\n\ttimeOrigin = _timeOrigin;\n\teventCounts = new Map();\n\t_entries = [];\n\t_resourceTimingBufferSize = 0;\n\tnavigation = undefined;\n\ttiming = undefined;\n\ttimerify(_fn, _options) {\n\t\tthrow createNotImplementedError(\"Performance.timerify\");\n\t}\n\tget nodeTiming() {\n\t\treturn nodeTiming;\n\t}\n\teventLoopUtilization() {\n\t\treturn {};\n\t}\n\tmarkResourceTiming() {\n\t\treturn new PerformanceResourceTiming(\"\");\n\t}\n\tonresourcetimingbufferfull = null;\n\tnow() {\n\t\tif (this.timeOrigin === _timeOrigin) {\n\t\t\treturn _performanceNow();\n\t\t}\n\t\treturn Date.now() - this.timeOrigin;\n\t}\n\tclearMarks(markName) {\n\t\tthis._entries = markName ? this._entries.filter((e) => e.name !== markName) : this._entries.filter((e) => e.entryType !== \"mark\");\n\t}\n\tclearMeasures(measureName) {\n\t\tthis._entries = measureName ? this._entries.filter((e) => e.name !== measureName) : this._entries.filter((e) => e.entryType !== \"measure\");\n\t}\n\tclearResourceTimings() {\n\t\tthis._entries = this._entries.filter((e) => e.entryType !== \"resource\" || e.entryType !== \"navigation\");\n\t}\n\tgetEntries() {\n\t\treturn this._entries;\n\t}\n\tgetEntriesByName(name, type) {\n\t\treturn this._entries.filter((e) => e.name === name && (!type || e.entryType === type));\n\t}\n\tgetEntriesByType(type) {\n\t\treturn this._entries.filter((e) => e.entryType === type);\n\t}\n\tmark(name, options) {\n\t\tconst entry = new PerformanceMark(name, options);\n\t\tthis._entries.push(entry);\n\t\treturn entry;\n\t}\n\tmeasure(measureName, startOrMeasureOptions, endMark) {\n\t\tlet start;\n\t\tlet end;\n\t\tif (typeof startOrMeasureOptions === \"string\") {\n\t\t\tstart = this.getEntriesByName(startOrMeasureOptions, \"mark\")[0]?.startTime;\n\t\t\tend = this.getEntriesByName(endMark, \"mark\")[0]?.startTime;\n\t\t} else {\n\t\t\tstart = Number.parseFloat(startOrMeasureOptions?.start) || this.now();\n\t\t\tend = Number.parseFloat(startOrMeasureOptions?.end) || this.now();\n\t\t}\n\t\tconst entry = new PerformanceMeasure(measureName, {\n\t\t\tstartTime: start,\n\t\t\tdetail: {\n\t\t\t\tstart,\n\t\t\t\tend\n\t\t\t}\n\t\t});\n\t\tthis._entries.push(entry);\n\t\treturn entry;\n\t}\n\tsetResourceTimingBufferSize(maxSize) {\n\t\tthis._resourceTimingBufferSize = maxSize;\n\t}\n\taddEventListener(type, listener, options) {\n\t\tthrow createNotImplementedError(\"Performance.addEventListener\");\n\t}\n\tremoveEventListener(type, listener, options) {\n\t\tthrow createNotImplementedError(\"Performance.removeEventListener\");\n\t}\n\tdispatchEvent(event) {\n\t\tthrow createNotImplementedError(\"Performance.dispatchEvent\");\n\t}\n\ttoJSON() {\n\t\treturn this;\n\t}\n}\nexport class PerformanceObserver {\n\t__unenv__ = true;\n\tstatic supportedEntryTypes = [];\n\t_callback = null;\n\tconstructor(callback) {\n\t\tthis._callback = callback;\n\t}\n\ttakeRecords() {\n\t\treturn [];\n\t}\n\tdisconnect() {\n\t\tthrow createNotImplementedError(\"PerformanceObserver.disconnect\");\n\t}\n\tobserve(options) {\n\t\tthrow createNotImplementedError(\"PerformanceObserver.observe\");\n\t}\n\tbind(fn) {\n\t\treturn fn;\n\t}\n\trunInAsyncScope(fn, thisArg, ...args) {\n\t\treturn fn.call(thisArg, ...args);\n\t}\n\tasyncId() {\n\t\treturn 0;\n\t}\n\ttriggerAsyncId() {\n\t\treturn 0;\n\t}\n\temitDestroy() {\n\t\treturn this;\n\t}\n}\nexport const performance = globalThis.performance && \"addEventListener\" in globalThis.performance ? globalThis.performance : new Performance();\n", "import {\n performance,\n Performance,\n PerformanceEntry,\n PerformanceMark,\n PerformanceMeasure,\n PerformanceObserver,\n PerformanceObserverEntryList,\n PerformanceResourceTiming\n} from \"node:perf_hooks\";\nglobalThis.performance = performance;\nglobalThis.Performance = Performance;\nglobalThis.PerformanceEntry = PerformanceEntry;\nglobalThis.PerformanceMark = PerformanceMark;\nglobalThis.PerformanceMeasure = PerformanceMeasure;\nglobalThis.PerformanceObserver = PerformanceObserver;\nglobalThis.PerformanceObserverEntryList = PerformanceObserverEntryList;\nglobalThis.PerformanceResourceTiming = PerformanceResourceTiming;\n", "import { Writable } from \"node:stream\";\nimport noop from \"../mock/noop.mjs\";\nimport { notImplemented, notImplementedClass } from \"../_internal/utils.mjs\";\nconst _console = globalThis.console;\nexport const _ignoreErrors = true;\nexport const _stderr = new Writable();\nexport const _stdout = new Writable();\nexport const log = _console?.log ?? noop;\nexport const info = _console?.info ?? log;\nexport const trace = _console?.trace ?? info;\nexport const debug = _console?.debug ?? log;\nexport const table = _console?.table ?? log;\nexport const error = _console?.error ?? log;\nexport const warn = _console?.warn ?? error;\nexport const createTask = _console?.createTask ?? /*@__PURE__*/ notImplemented(\"console.createTask\");\nexport const assert = /*@__PURE__*/ notImplemented(\"console.assert\");\nexport const clear = _console?.clear ?? noop;\nexport const count = _console?.count ?? noop;\nexport const countReset = _console?.countReset ?? noop;\nexport const dir = _console?.dir ?? noop;\nexport const dirxml = _console?.dirxml ?? noop;\nexport const group = _console?.group ?? noop;\nexport const groupEnd = _console?.groupEnd ?? noop;\nexport const groupCollapsed = _console?.groupCollapsed ?? noop;\nexport const profile = _console?.profile ?? noop;\nexport const profileEnd = _console?.profileEnd ?? noop;\nexport const time = _console?.time ?? noop;\nexport const timeEnd = _console?.timeEnd ?? noop;\nexport const timeLog = _console?.timeLog ?? noop;\nexport const timeStamp = _console?.timeStamp ?? noop;\nexport const Console = _console?.Console ?? /*@__PURE__*/ notImplementedClass(\"console.Console\");\nexport const _times = /*@__PURE__*/ new Map();\nexport function context() {\n\treturn _console;\n}\nexport const _stdoutErrorHandler = noop;\nexport const _stderrErrorHandler = noop;\nexport default {\n\t_times,\n\t_ignoreErrors,\n\t_stdoutErrorHandler,\n\t_stderrErrorHandler,\n\t_stdout,\n\t_stderr,\n\tassert,\n\tclear,\n\tConsole,\n\tcount,\n\tcountReset,\n\tdebug,\n\tdir,\n\tdirxml,\n\terror,\n\tcontext,\n\tcreateTask,\n\tgroup,\n\tgroupEnd,\n\tgroupCollapsed,\n\tinfo,\n\tlog,\n\tprofile,\n\tprofileEnd,\n\ttable,\n\ttime,\n\ttimeEnd,\n\ttimeLog,\n\ttimeStamp,\n\ttrace,\n\twarn\n};\n", "export default Object.assign(() => {}, { __unenv__: true });\n", "import {\n _ignoreErrors,\n _stderr,\n _stderrErrorHandler,\n _stdout,\n _stdoutErrorHandler,\n _times,\n Console\n} from \"unenv/node/console\";\nexport {\n Console,\n _ignoreErrors,\n _stderr,\n _stderrErrorHandler,\n _stdout,\n _stdoutErrorHandler,\n _times\n} from \"unenv/node/console\";\nconst workerdConsole = globalThis[\"console\"];\nexport const {\n assert,\n clear,\n // @ts-expect-error undocumented public API\n context,\n count,\n countReset,\n // @ts-expect-error undocumented public API\n createTask,\n debug,\n dir,\n dirxml,\n error,\n group,\n groupCollapsed,\n groupEnd,\n info,\n log,\n profile,\n profileEnd,\n table,\n time,\n timeEnd,\n timeLog,\n timeStamp,\n trace,\n warn\n} = workerdConsole;\nObject.assign(workerdConsole, {\n Console,\n _ignoreErrors,\n _stderr,\n _stderrErrorHandler,\n _stdout,\n _stdoutErrorHandler,\n _times\n});\nexport default workerdConsole;\n", "import { default as defaultExport } from \"@cloudflare/unenv-preset/node/console\";\nglobalThis.console = defaultExport;", "export const hrtime = /*@__PURE__*/ Object.assign(function hrtime(startTime) {\n\tconst now = Date.now();\n\tconst seconds = Math.trunc(now / 1e3);\n\tconst nanos = now % 1e3 * 1e6;\n\tif (startTime) {\n\t\tlet diffSeconds = seconds - startTime[0];\n\t\tlet diffNanos = nanos - startTime[0];\n\t\tif (diffNanos < 0) {\n\t\t\tdiffSeconds = diffSeconds - 1;\n\t\t\tdiffNanos = 1e9 + diffNanos;\n\t\t}\n\t\treturn [diffSeconds, diffNanos];\n\t}\n\treturn [seconds, nanos];\n}, { bigint: function bigint() {\n\treturn BigInt(Date.now() * 1e6);\n} });\n", "import { EventEmitter } from \"node:events\";\nimport { ReadStream, WriteStream } from \"node:tty\";\nimport { notImplemented, createNotImplementedError } from \"../../../_internal/utils.mjs\";\nexport class Process extends EventEmitter {\n\tenv;\n\thrtime;\n\tnextTick;\n\tconstructor(impl) {\n\t\tsuper();\n\t\tthis.env = impl.env;\n\t\tthis.hrtime = impl.hrtime;\n\t\tthis.nextTick = impl.nextTick;\n\t\tfor (const prop of [...Object.getOwnPropertyNames(Process.prototype), ...Object.getOwnPropertyNames(EventEmitter.prototype)]) {\n\t\t\tconst value = this[prop];\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tthis[prop] = value.bind(this);\n\t\t\t}\n\t\t}\n\t}\n\temitWarning(warning, type, code) {\n\t\tconsole.warn(`${code ? `[${code}] ` : \"\"}${type ? `${type}: ` : \"\"}${warning}`);\n\t}\n\temit(...args) {\n\t\treturn super.emit(...args);\n\t}\n\tlisteners(eventName) {\n\t\treturn super.listeners(eventName);\n\t}\n\t#stdin;\n\t#stdout;\n\t#stderr;\n\tget stdin() {\n\t\treturn this.#stdin ??= new ReadStream(0);\n\t}\n\tget stdout() {\n\t\treturn this.#stdout ??= new WriteStream(1);\n\t}\n\tget stderr() {\n\t\treturn this.#stderr ??= new WriteStream(2);\n\t}\n\t#cwd = \"/\";\n\tchdir(cwd) {\n\t\tthis.#cwd = cwd;\n\t}\n\tcwd() {\n\t\treturn this.#cwd;\n\t}\n\tarch = \"\";\n\tplatform = \"\";\n\targv = [];\n\targv0 = \"\";\n\texecArgv = [];\n\texecPath = \"\";\n\ttitle = \"\";\n\tpid = 200;\n\tppid = 100;\n\tget version() {\n\t\treturn \"\";\n\t}\n\tget versions() {\n\t\treturn {};\n\t}\n\tget allowedNodeEnvironmentFlags() {\n\t\treturn new Set();\n\t}\n\tget sourceMapsEnabled() {\n\t\treturn false;\n\t}\n\tget debugPort() {\n\t\treturn 0;\n\t}\n\tget throwDeprecation() {\n\t\treturn false;\n\t}\n\tget traceDeprecation() {\n\t\treturn false;\n\t}\n\tget features() {\n\t\treturn {};\n\t}\n\tget release() {\n\t\treturn {};\n\t}\n\tget connected() {\n\t\treturn false;\n\t}\n\tget config() {\n\t\treturn {};\n\t}\n\tget moduleLoadList() {\n\t\treturn [];\n\t}\n\tconstrainedMemory() {\n\t\treturn 0;\n\t}\n\tavailableMemory() {\n\t\treturn 0;\n\t}\n\tuptime() {\n\t\treturn 0;\n\t}\n\tresourceUsage() {\n\t\treturn {};\n\t}\n\tref() {}\n\tunref() {}\n\tumask() {\n\t\tthrow createNotImplementedError(\"process.umask\");\n\t}\n\tgetBuiltinModule() {\n\t\treturn undefined;\n\t}\n\tgetActiveResourcesInfo() {\n\t\tthrow createNotImplementedError(\"process.getActiveResourcesInfo\");\n\t}\n\texit() {\n\t\tthrow createNotImplementedError(\"process.exit\");\n\t}\n\treallyExit() {\n\t\tthrow createNotImplementedError(\"process.reallyExit\");\n\t}\n\tkill() {\n\t\tthrow createNotImplementedError(\"process.kill\");\n\t}\n\tabort() {\n\t\tthrow createNotImplementedError(\"process.abort\");\n\t}\n\tdlopen() {\n\t\tthrow createNotImplementedError(\"process.dlopen\");\n\t}\n\tsetSourceMapsEnabled() {\n\t\tthrow createNotImplementedError(\"process.setSourceMapsEnabled\");\n\t}\n\tloadEnvFile() {\n\t\tthrow createNotImplementedError(\"process.loadEnvFile\");\n\t}\n\tdisconnect() {\n\t\tthrow createNotImplementedError(\"process.disconnect\");\n\t}\n\tcpuUsage() {\n\t\tthrow createNotImplementedError(\"process.cpuUsage\");\n\t}\n\tsetUncaughtExceptionCaptureCallback() {\n\t\tthrow createNotImplementedError(\"process.setUncaughtExceptionCaptureCallback\");\n\t}\n\thasUncaughtExceptionCaptureCallback() {\n\t\tthrow createNotImplementedError(\"process.hasUncaughtExceptionCaptureCallback\");\n\t}\n\tinitgroups() {\n\t\tthrow createNotImplementedError(\"process.initgroups\");\n\t}\n\topenStdin() {\n\t\tthrow createNotImplementedError(\"process.openStdin\");\n\t}\n\tassert() {\n\t\tthrow createNotImplementedError(\"process.assert\");\n\t}\n\tbinding() {\n\t\tthrow createNotImplementedError(\"process.binding\");\n\t}\n\tpermission = { has: /*@__PURE__*/ notImplemented(\"process.permission.has\") };\n\treport = {\n\t\tdirectory: \"\",\n\t\tfilename: \"\",\n\t\tsignal: \"SIGUSR2\",\n\t\tcompact: false,\n\t\treportOnFatalError: false,\n\t\treportOnSignal: false,\n\t\treportOnUncaughtException: false,\n\t\tgetReport: /*@__PURE__*/ notImplemented(\"process.report.getReport\"),\n\t\twriteReport: /*@__PURE__*/ notImplemented(\"process.report.writeReport\")\n\t};\n\tfinalization = {\n\t\tregister: /*@__PURE__*/ notImplemented(\"process.finalization.register\"),\n\t\tunregister: /*@__PURE__*/ notImplemented(\"process.finalization.unregister\"),\n\t\tregisterBeforeExit: /*@__PURE__*/ notImplemented(\"process.finalization.registerBeforeExit\")\n\t};\n\tmemoryUsage = Object.assign(() => ({\n\t\tarrayBuffers: 0,\n\t\trss: 0,\n\t\texternal: 0,\n\t\theapTotal: 0,\n\t\theapUsed: 0\n\t}), { rss: () => 0 });\n\tmainModule = undefined;\n\tdomain = undefined;\n\tsend = undefined;\n\texitCode = undefined;\n\tchannel = undefined;\n\tgetegid = undefined;\n\tgeteuid = undefined;\n\tgetgid = undefined;\n\tgetgroups = undefined;\n\tgetuid = undefined;\n\tsetegid = undefined;\n\tseteuid = undefined;\n\tsetgid = undefined;\n\tsetgroups = undefined;\n\tsetuid = undefined;\n\t_events = undefined;\n\t_eventsCount = undefined;\n\t_exiting = undefined;\n\t_maxListeners = undefined;\n\t_debugEnd = undefined;\n\t_debugProcess = undefined;\n\t_fatalException = undefined;\n\t_getActiveHandles = undefined;\n\t_getActiveRequests = undefined;\n\t_kill = undefined;\n\t_preload_modules = undefined;\n\t_rawDebug = undefined;\n\t_startProfilerIdleNotifier = undefined;\n\t_stopProfilerIdleNotifier = undefined;\n\t_tickCallback = undefined;\n\t_disconnect = undefined;\n\t_handleQueue = undefined;\n\t_pendingMessage = undefined;\n\t_channel = undefined;\n\t_send = undefined;\n\t_linkedBinding = undefined;\n}\n", "import { Socket } from \"node:net\";\nexport class ReadStream extends Socket {\n\tfd;\n\tconstructor(fd) {\n\t\tsuper();\n\t\tthis.fd = fd;\n\t}\n\tisRaw = false;\n\tsetRawMode(mode) {\n\t\tthis.isRaw = mode;\n\t\treturn this;\n\t}\n\tisTTY = false;\n}\n", "import { Socket } from \"node:net\";\nexport class WriteStream extends Socket {\n\tfd;\n\tconstructor(fd) {\n\t\tsuper();\n\t\tthis.fd = fd;\n\t}\n\tclearLine(dir, callback) {\n\t\tcallback && callback();\n\t\treturn false;\n\t}\n\tclearScreenDown(callback) {\n\t\tcallback && callback();\n\t\treturn false;\n\t}\n\tcursorTo(x, y, callback) {\n\t\tcallback && typeof callback === \"function\" && callback();\n\t\treturn false;\n\t}\n\tmoveCursor(dx, dy, callback) {\n\t\tcallback && callback();\n\t\treturn false;\n\t}\n\tgetColorDepth(env) {\n\t\treturn 1;\n\t}\n\thasColors(count, env) {\n\t\treturn false;\n\t}\n\tgetWindowSize() {\n\t\treturn [this.columns, this.rows];\n\t}\n\tcolumns = 80;\n\trows = 24;\n\tisTTY = false;\n}\n", "import { hrtime as UnenvHrTime } from \"unenv/node/internal/process/hrtime\";\nimport { Process as UnenvProcess } from \"unenv/node/internal/process/process\";\nconst globalProcess = globalThis[\"process\"];\nexport const getBuiltinModule = globalProcess.getBuiltinModule;\nexport const { exit, platform, nextTick } = getBuiltinModule(\n \"node:process\"\n);\nconst unenvProcess = new UnenvProcess({\n env: globalProcess.env,\n hrtime: UnenvHrTime,\n nextTick\n});\nexport const {\n abort,\n addListener,\n allowedNodeEnvironmentFlags,\n hasUncaughtExceptionCaptureCallback,\n setUncaughtExceptionCaptureCallback,\n loadEnvFile,\n sourceMapsEnabled,\n arch,\n argv,\n argv0,\n chdir,\n config,\n connected,\n constrainedMemory,\n availableMemory,\n cpuUsage,\n cwd,\n debugPort,\n dlopen,\n disconnect,\n emit,\n emitWarning,\n env,\n eventNames,\n execArgv,\n execPath,\n finalization,\n features,\n getActiveResourcesInfo,\n getMaxListeners,\n hrtime,\n kill,\n listeners,\n listenerCount,\n memoryUsage,\n on,\n off,\n once,\n pid,\n ppid,\n prependListener,\n prependOnceListener,\n rawListeners,\n release,\n removeAllListeners,\n removeListener,\n report,\n resourceUsage,\n setMaxListeners,\n setSourceMapsEnabled,\n stderr,\n stdin,\n stdout,\n title,\n throwDeprecation,\n traceDeprecation,\n umask,\n uptime,\n version,\n versions,\n domain,\n initgroups,\n moduleLoadList,\n reallyExit,\n openStdin,\n assert,\n binding,\n send,\n exitCode,\n channel,\n getegid,\n geteuid,\n getgid,\n getgroups,\n getuid,\n setegid,\n seteuid,\n setgid,\n setgroups,\n setuid,\n permission,\n mainModule,\n _events,\n _eventsCount,\n _exiting,\n _maxListeners,\n _debugEnd,\n _debugProcess,\n _fatalException,\n _getActiveHandles,\n _getActiveRequests,\n _kill,\n _preload_modules,\n _rawDebug,\n _startProfilerIdleNotifier,\n _stopProfilerIdleNotifier,\n _tickCallback,\n _disconnect,\n _handleQueue,\n _pendingMessage,\n _channel,\n _send,\n _linkedBinding\n} = unenvProcess;\nconst _process = {\n abort,\n addListener,\n allowedNodeEnvironmentFlags,\n hasUncaughtExceptionCaptureCallback,\n setUncaughtExceptionCaptureCallback,\n loadEnvFile,\n sourceMapsEnabled,\n arch,\n argv,\n argv0,\n chdir,\n config,\n connected,\n constrainedMemory,\n availableMemory,\n cpuUsage,\n cwd,\n debugPort,\n dlopen,\n disconnect,\n emit,\n emitWarning,\n env,\n eventNames,\n execArgv,\n execPath,\n exit,\n finalization,\n features,\n getBuiltinModule,\n getActiveResourcesInfo,\n getMaxListeners,\n hrtime,\n kill,\n listeners,\n listenerCount,\n memoryUsage,\n nextTick,\n on,\n off,\n once,\n pid,\n platform,\n ppid,\n prependListener,\n prependOnceListener,\n rawListeners,\n release,\n removeAllListeners,\n removeListener,\n report,\n resourceUsage,\n setMaxListeners,\n setSourceMapsEnabled,\n stderr,\n stdin,\n stdout,\n title,\n throwDeprecation,\n traceDeprecation,\n umask,\n uptime,\n version,\n versions,\n // @ts-expect-error old API\n domain,\n initgroups,\n moduleLoadList,\n reallyExit,\n openStdin,\n assert,\n binding,\n send,\n exitCode,\n channel,\n getegid,\n geteuid,\n getgid,\n getgroups,\n getuid,\n setegid,\n seteuid,\n setgid,\n setgroups,\n setuid,\n permission,\n mainModule,\n _events,\n _eventsCount,\n _exiting,\n _maxListeners,\n _debugEnd,\n _debugProcess,\n _fatalException,\n _getActiveHandles,\n _getActiveRequests,\n _kill,\n _preload_modules,\n _rawDebug,\n _startProfilerIdleNotifier,\n _stopProfilerIdleNotifier,\n _tickCallback,\n _disconnect,\n _handleQueue,\n _pendingMessage,\n _channel,\n _send,\n _linkedBinding\n};\nexport default _process;\n", "import { default as defaultExport } from \"@cloudflare/unenv-preset/node/process\";\nglobalThis.process = defaultExport;", "// src/compose.ts\nvar compose = (middleware, onError, onNotFound) => {\n return (context, next) => {\n let index = -1;\n return dispatch(0);\n async function dispatch(i) {\n if (i <= index) {\n throw new Error(\"next() called multiple times\");\n }\n index = i;\n let res;\n let isError = false;\n let handler;\n if (middleware[i]) {\n handler = middleware[i][0][0];\n context.req.routeIndex = i;\n } else {\n handler = i === middleware.length && next || void 0;\n }\n if (handler) {\n try {\n res = await handler(context, () => dispatch(i + 1));\n } catch (err) {\n if (err instanceof Error && onError) {\n context.error = err;\n res = await onError(err, context);\n isError = true;\n } else {\n throw err;\n }\n }\n } else {\n if (context.finalized === false && onNotFound) {\n res = await onNotFound(context);\n }\n }\n if (res && (context.finalized === false || isError)) {\n context.res = res;\n }\n return context;\n }\n };\n};\nexport {\n compose\n};\n", "// src/request/constants.ts\nvar GET_MATCH_RESULT = Symbol();\nexport {\n GET_MATCH_RESULT\n};\n", "// src/utils/body.ts\nimport { HonoRequest } from \"../request.js\";\nvar parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {\n const { all = false, dot = false } = options;\n const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;\n const contentType = headers.get(\"Content-Type\");\n if (contentType?.startsWith(\"multipart/form-data\") || contentType?.startsWith(\"application/x-www-form-urlencoded\")) {\n return parseFormData(request, { all, dot });\n }\n return {};\n};\nasync function parseFormData(request, options) {\n const formData = await request.formData();\n if (formData) {\n return convertFormDataToBodyData(formData, options);\n }\n return {};\n}\nfunction convertFormDataToBodyData(formData, options) {\n const form = /* @__PURE__ */ Object.create(null);\n formData.forEach((value, key) => {\n const shouldParseAllValues = options.all || key.endsWith(\"[]\");\n if (!shouldParseAllValues) {\n form[key] = value;\n } else {\n handleParsingAllValues(form, key, value);\n }\n });\n if (options.dot) {\n Object.entries(form).forEach(([key, value]) => {\n const shouldParseDotValues = key.includes(\".\");\n if (shouldParseDotValues) {\n handleParsingNestedValues(form, key, value);\n delete form[key];\n }\n });\n }\n return form;\n}\nvar handleParsingAllValues = (form, key, value) => {\n if (form[key] !== void 0) {\n if (Array.isArray(form[key])) {\n ;\n form[key].push(value);\n } else {\n form[key] = [form[key], value];\n }\n } else {\n if (!key.endsWith(\"[]\")) {\n form[key] = value;\n } else {\n form[key] = [value];\n }\n }\n};\nvar handleParsingNestedValues = (form, key, value) => {\n let nestedForm = form;\n const keys = key.split(\".\");\n keys.forEach((key2, index) => {\n if (index === keys.length - 1) {\n nestedForm[key2] = value;\n } else {\n if (!nestedForm[key2] || typeof nestedForm[key2] !== \"object\" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) {\n nestedForm[key2] = /* @__PURE__ */ Object.create(null);\n }\n nestedForm = nestedForm[key2];\n }\n });\n};\nexport {\n parseBody\n};\n", "// src/utils/url.ts\nvar splitPath = (path) => {\n const paths = path.split(\"/\");\n if (paths[0] === \"\") {\n paths.shift();\n }\n return paths;\n};\nvar splitRoutingPath = (routePath) => {\n const { groups, path } = extractGroupsFromPath(routePath);\n const paths = splitPath(path);\n return replaceGroupMarks(paths, groups);\n};\nvar extractGroupsFromPath = (path) => {\n const groups = [];\n path = path.replace(/\\{[^}]+\\}/g, (match, index) => {\n const mark = `@${index}`;\n groups.push([mark, match]);\n return mark;\n });\n return { groups, path };\n};\nvar replaceGroupMarks = (paths, groups) => {\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = paths.length - 1; j >= 0; j--) {\n if (paths[j].includes(mark)) {\n paths[j] = paths[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n return paths;\n};\nvar patternCache = {};\nvar getPattern = (label, next) => {\n if (label === \"*\") {\n return \"*\";\n }\n const match = label.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n if (match) {\n const cacheKey = `${label}#${next}`;\n if (!patternCache[cacheKey]) {\n if (match[2]) {\n patternCache[cacheKey] = next && next[0] !== \":\" && next[0] !== \"*\" ? [cacheKey, match[1], new RegExp(`^${match[2]}(?=/${next})`)] : [label, match[1], new RegExp(`^${match[2]}$`)];\n } else {\n patternCache[cacheKey] = [label, match[1], true];\n }\n }\n return patternCache[cacheKey];\n }\n return null;\n};\nvar tryDecode = (str, decoder) => {\n try {\n return decoder(str);\n } catch {\n return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match) => {\n try {\n return decoder(match);\n } catch {\n return match;\n }\n });\n }\n};\nvar tryDecodeURI = (str) => tryDecode(str, decodeURI);\nvar getPath = (request) => {\n const url = request.url;\n const start = url.indexOf(\"/\", url.indexOf(\":\") + 4);\n let i = start;\n for (; i < url.length; i++) {\n const charCode = url.charCodeAt(i);\n if (charCode === 37) {\n const queryIndex = url.indexOf(\"?\", i);\n const path = url.slice(start, queryIndex === -1 ? void 0 : queryIndex);\n return tryDecodeURI(path.includes(\"%25\") ? path.replace(/%25/g, \"%2525\") : path);\n } else if (charCode === 63) {\n break;\n }\n }\n return url.slice(start, i);\n};\nvar getQueryStrings = (url) => {\n const queryIndex = url.indexOf(\"?\", 8);\n return queryIndex === -1 ? \"\" : \"?\" + url.slice(queryIndex + 1);\n};\nvar getPathNoStrict = (request) => {\n const result = getPath(request);\n return result.length > 1 && result.at(-1) === \"/\" ? result.slice(0, -1) : result;\n};\nvar mergePath = (base, sub, ...rest) => {\n if (rest.length) {\n sub = mergePath(sub, ...rest);\n }\n return `${base?.[0] === \"/\" ? \"\" : \"/\"}${base}${sub === \"/\" ? \"\" : `${base?.at(-1) === \"/\" ? \"\" : \"/\"}${sub?.[0] === \"/\" ? sub.slice(1) : sub}`}`;\n};\nvar checkOptionalParameter = (path) => {\n if (path.charCodeAt(path.length - 1) !== 63 || !path.includes(\":\")) {\n return null;\n }\n const segments = path.split(\"/\");\n const results = [];\n let basePath = \"\";\n segments.forEach((segment) => {\n if (segment !== \"\" && !/\\:/.test(segment)) {\n basePath += \"/\" + segment;\n } else if (/\\:/.test(segment)) {\n if (/\\?/.test(segment)) {\n if (results.length === 0 && basePath === \"\") {\n results.push(\"/\");\n } else {\n results.push(basePath);\n }\n const optionalSegment = segment.replace(\"?\", \"\");\n basePath += \"/\" + optionalSegment;\n results.push(basePath);\n } else {\n basePath += \"/\" + segment;\n }\n }\n });\n return results.filter((v, i, a) => a.indexOf(v) === i);\n};\nvar _decodeURI = (value) => {\n if (!/[%+]/.test(value)) {\n return value;\n }\n if (value.indexOf(\"+\") !== -1) {\n value = value.replace(/\\+/g, \" \");\n }\n return value.indexOf(\"%\") !== -1 ? tryDecode(value, decodeURIComponent_) : value;\n};\nvar _getQueryParam = (url, key, multiple) => {\n let encoded;\n if (!multiple && key && !/[%+]/.test(key)) {\n let keyIndex2 = url.indexOf(`?${key}`, 8);\n if (keyIndex2 === -1) {\n keyIndex2 = url.indexOf(`&${key}`, 8);\n }\n while (keyIndex2 !== -1) {\n const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1);\n if (trailingKeyCode === 61) {\n const valueIndex = keyIndex2 + key.length + 2;\n const endIndex = url.indexOf(\"&\", valueIndex);\n return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));\n } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) {\n return \"\";\n }\n keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1);\n }\n encoded = /[%+]/.test(url);\n if (!encoded) {\n return void 0;\n }\n }\n const results = {};\n encoded ??= /[%+]/.test(url);\n let keyIndex = url.indexOf(\"?\", 8);\n while (keyIndex !== -1) {\n const nextKeyIndex = url.indexOf(\"&\", keyIndex + 1);\n let valueIndex = url.indexOf(\"=\", keyIndex);\n if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) {\n valueIndex = -1;\n }\n let name = url.slice(\n keyIndex + 1,\n valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex\n );\n if (encoded) {\n name = _decodeURI(name);\n }\n keyIndex = nextKeyIndex;\n if (name === \"\") {\n continue;\n }\n let value;\n if (valueIndex === -1) {\n value = \"\";\n } else {\n value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex);\n if (encoded) {\n value = _decodeURI(value);\n }\n }\n if (multiple) {\n if (!(results[name] && Array.isArray(results[name]))) {\n results[name] = [];\n }\n ;\n results[name].push(value);\n } else {\n results[name] ??= value;\n }\n }\n return key ? results[key] : results;\n};\nvar getQueryParam = _getQueryParam;\nvar getQueryParams = (url, key) => {\n return _getQueryParam(url, key, true);\n};\nvar decodeURIComponent_ = decodeURIComponent;\nexport {\n checkOptionalParameter,\n decodeURIComponent_,\n getPath,\n getPathNoStrict,\n getPattern,\n getQueryParam,\n getQueryParams,\n getQueryStrings,\n mergePath,\n splitPath,\n splitRoutingPath,\n tryDecode\n};\n", "// src/request.ts\nimport { GET_MATCH_RESULT } from \"./request/constants.js\";\nimport { parseBody } from \"./utils/body.js\";\nimport { decodeURIComponent_, getQueryParam, getQueryParams, tryDecode } from \"./utils/url.js\";\nvar tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);\nvar HonoRequest = class {\n raw;\n #validatedData;\n #matchResult;\n routeIndex = 0;\n path;\n bodyCache = {};\n constructor(request, path = \"/\", matchResult = [[]]) {\n this.raw = request;\n this.path = path;\n this.#matchResult = matchResult;\n this.#validatedData = {};\n }\n param(key) {\n return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();\n }\n #getDecodedParam(key) {\n const paramKey = this.#matchResult[0][this.routeIndex][1][key];\n const param = this.#getParamValue(paramKey);\n return param && /\\%/.test(param) ? tryDecodeURIComponent(param) : param;\n }\n #getAllDecodedParams() {\n const decoded = {};\n const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]);\n for (const key of keys) {\n const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);\n if (value !== void 0) {\n decoded[key] = /\\%/.test(value) ? tryDecodeURIComponent(value) : value;\n }\n }\n return decoded;\n }\n #getParamValue(paramKey) {\n return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey;\n }\n query(key) {\n return getQueryParam(this.url, key);\n }\n queries(key) {\n return getQueryParams(this.url, key);\n }\n header(name) {\n if (name) {\n return this.raw.headers.get(name) ?? void 0;\n }\n const headerData = {};\n this.raw.headers.forEach((value, key) => {\n headerData[key] = value;\n });\n return headerData;\n }\n async parseBody(options) {\n return this.bodyCache.parsedBody ??= await parseBody(this, options);\n }\n #cachedBody = (key) => {\n const { bodyCache, raw } = this;\n const cachedBody = bodyCache[key];\n if (cachedBody) {\n return cachedBody;\n }\n const anyCachedKey = Object.keys(bodyCache)[0];\n if (anyCachedKey) {\n return bodyCache[anyCachedKey].then((body) => {\n if (anyCachedKey === \"json\") {\n body = JSON.stringify(body);\n }\n return new Response(body)[key]();\n });\n }\n return bodyCache[key] = raw[key]();\n };\n json() {\n return this.#cachedBody(\"text\").then((text) => JSON.parse(text));\n }\n text() {\n return this.#cachedBody(\"text\");\n }\n arrayBuffer() {\n return this.#cachedBody(\"arrayBuffer\");\n }\n blob() {\n return this.#cachedBody(\"blob\");\n }\n formData() {\n return this.#cachedBody(\"formData\");\n }\n addValidatedData(target, data) {\n this.#validatedData[target] = data;\n }\n valid(target) {\n return this.#validatedData[target];\n }\n get url() {\n return this.raw.url;\n }\n get method() {\n return this.raw.method;\n }\n get [GET_MATCH_RESULT]() {\n return this.#matchResult;\n }\n get matchedRoutes() {\n return this.#matchResult[0].map(([[, route]]) => route);\n }\n get routePath() {\n return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path;\n }\n};\nexport {\n HonoRequest\n};\n", "// src/utils/html.ts\nvar HtmlEscapedCallbackPhase = {\n Stringify: 1,\n BeforeStream: 2,\n Stream: 3\n};\nvar raw = (value, callbacks) => {\n const escapedString = new String(value);\n escapedString.isEscaped = true;\n escapedString.callbacks = callbacks;\n return escapedString;\n};\nvar escapeRe = /[&<>'\"]/;\nvar stringBufferToString = async (buffer, callbacks) => {\n let str = \"\";\n callbacks ||= [];\n const resolvedBuffer = await Promise.all(buffer);\n for (let i = resolvedBuffer.length - 1; ; i--) {\n str += resolvedBuffer[i];\n i--;\n if (i < 0) {\n break;\n }\n let r = resolvedBuffer[i];\n if (typeof r === \"object\") {\n callbacks.push(...r.callbacks || []);\n }\n const isEscaped = r.isEscaped;\n r = await (typeof r === \"object\" ? r.toString() : r);\n if (typeof r === \"object\") {\n callbacks.push(...r.callbacks || []);\n }\n if (r.isEscaped ?? isEscaped) {\n str += r;\n } else {\n const buf = [str];\n escapeToBuffer(r, buf);\n str = buf[0];\n }\n }\n return raw(str, callbacks);\n};\nvar escapeToBuffer = (str, buffer) => {\n const match = str.search(escapeRe);\n if (match === -1) {\n buffer[0] += str;\n return;\n }\n let escape;\n let index;\n let lastIndex = 0;\n for (index = match; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escape = \""\";\n break;\n case 39:\n escape = \"'\";\n break;\n case 38:\n escape = \"&\";\n break;\n case 60:\n escape = \"<\";\n break;\n case 62:\n escape = \">\";\n break;\n default:\n continue;\n }\n buffer[0] += str.substring(lastIndex, index) + escape;\n lastIndex = index + 1;\n }\n buffer[0] += str.substring(lastIndex, index);\n};\nvar resolveCallbackSync = (str) => {\n const callbacks = str.callbacks;\n if (!callbacks?.length) {\n return str;\n }\n const buffer = [str];\n const context = {};\n callbacks.forEach((c) => c({ phase: HtmlEscapedCallbackPhase.Stringify, buffer, context }));\n return buffer[0];\n};\nvar resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => {\n if (typeof str === \"object\" && !(str instanceof String)) {\n if (!(str instanceof Promise)) {\n str = str.toString();\n }\n if (str instanceof Promise) {\n str = await str;\n }\n }\n const callbacks = str.callbacks;\n if (!callbacks?.length) {\n return Promise.resolve(str);\n }\n if (buffer) {\n buffer[0] += str;\n } else {\n buffer = [str];\n }\n const resStr = Promise.all(callbacks.map((c) => c({ phase, buffer, context }))).then(\n (res) => Promise.all(\n res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer))\n ).then(() => buffer[0])\n );\n if (preserveCallbacks) {\n return raw(await resStr, callbacks);\n } else {\n return resStr;\n }\n};\nexport {\n HtmlEscapedCallbackPhase,\n escapeToBuffer,\n raw,\n resolveCallback,\n resolveCallbackSync,\n stringBufferToString\n};\n", "// src/context.ts\nimport { HonoRequest } from \"./request.js\";\nimport { HtmlEscapedCallbackPhase, resolveCallback } from \"./utils/html.js\";\nvar TEXT_PLAIN = \"text/plain; charset=UTF-8\";\nvar setDefaultContentType = (contentType, headers) => {\n return {\n \"Content-Type\": contentType,\n ...headers\n };\n};\nvar Context = class {\n #rawRequest;\n #req;\n env = {};\n #var;\n finalized = false;\n error;\n #status;\n #executionCtx;\n #res;\n #layout;\n #renderer;\n #notFoundHandler;\n #preparedHeaders;\n #matchResult;\n #path;\n constructor(req, options) {\n this.#rawRequest = req;\n if (options) {\n this.#executionCtx = options.executionCtx;\n this.env = options.env;\n this.#notFoundHandler = options.notFoundHandler;\n this.#path = options.path;\n this.#matchResult = options.matchResult;\n }\n }\n get req() {\n this.#req ??= new HonoRequest(this.#rawRequest, this.#path, this.#matchResult);\n return this.#req;\n }\n get event() {\n if (this.#executionCtx && \"respondWith\" in this.#executionCtx) {\n return this.#executionCtx;\n } else {\n throw Error(\"This context has no FetchEvent\");\n }\n }\n get executionCtx() {\n if (this.#executionCtx) {\n return this.#executionCtx;\n } else {\n throw Error(\"This context has no ExecutionContext\");\n }\n }\n get res() {\n return this.#res ||= new Response(null, {\n headers: this.#preparedHeaders ??= new Headers()\n });\n }\n set res(_res) {\n if (this.#res && _res) {\n _res = new Response(_res.body, _res);\n for (const [k, v] of this.#res.headers.entries()) {\n if (k === \"content-type\") {\n continue;\n }\n if (k === \"set-cookie\") {\n const cookies = this.#res.headers.getSetCookie();\n _res.headers.delete(\"set-cookie\");\n for (const cookie of cookies) {\n _res.headers.append(\"set-cookie\", cookie);\n }\n } else {\n _res.headers.set(k, v);\n }\n }\n }\n this.#res = _res;\n this.finalized = true;\n }\n render = (...args) => {\n this.#renderer ??= (content) => this.html(content);\n return this.#renderer(...args);\n };\n setLayout = (layout) => this.#layout = layout;\n getLayout = () => this.#layout;\n setRenderer = (renderer) => {\n this.#renderer = renderer;\n };\n header = (name, value, options) => {\n if (this.finalized) {\n this.#res = new Response(this.#res.body, this.#res);\n }\n const headers = this.#res ? this.#res.headers : this.#preparedHeaders ??= new Headers();\n if (value === void 0) {\n headers.delete(name);\n } else if (options?.append) {\n headers.append(name, value);\n } else {\n headers.set(name, value);\n }\n };\n status = (status) => {\n this.#status = status;\n };\n set = (key, value) => {\n this.#var ??= /* @__PURE__ */ new Map();\n this.#var.set(key, value);\n };\n get = (key) => {\n return this.#var ? this.#var.get(key) : void 0;\n };\n get var() {\n if (!this.#var) {\n return {};\n }\n return Object.fromEntries(this.#var);\n }\n #newResponse(data, arg, headers) {\n const responseHeaders = this.#res ? new Headers(this.#res.headers) : this.#preparedHeaders ?? new Headers();\n if (typeof arg === \"object\" && \"headers\" in arg) {\n const argHeaders = arg.headers instanceof Headers ? arg.headers : new Headers(arg.headers);\n for (const [key, value] of argHeaders) {\n if (key.toLowerCase() === \"set-cookie\") {\n responseHeaders.append(key, value);\n } else {\n responseHeaders.set(key, value);\n }\n }\n }\n if (headers) {\n for (const [k, v] of Object.entries(headers)) {\n if (typeof v === \"string\") {\n responseHeaders.set(k, v);\n } else {\n responseHeaders.delete(k);\n for (const v2 of v) {\n responseHeaders.append(k, v2);\n }\n }\n }\n }\n const status = typeof arg === \"number\" ? arg : arg?.status ?? this.#status;\n return new Response(data, { status, headers: responseHeaders });\n }\n newResponse = (...args) => this.#newResponse(...args);\n body = (data, arg, headers) => this.#newResponse(data, arg, headers);\n text = (text, arg, headers) => {\n return !this.#preparedHeaders && !this.#status && !arg && !headers && !this.finalized ? new Response(text) : this.#newResponse(\n text,\n arg,\n setDefaultContentType(TEXT_PLAIN, headers)\n );\n };\n json = (object, arg, headers) => {\n return this.#newResponse(\n JSON.stringify(object),\n arg,\n setDefaultContentType(\"application/json\", headers)\n );\n };\n html = (html, arg, headers) => {\n const res = (html2) => this.#newResponse(html2, arg, setDefaultContentType(\"text/html; charset=UTF-8\", headers));\n return typeof html === \"object\" ? resolveCallback(html, HtmlEscapedCallbackPhase.Stringify, false, {}).then(res) : res(html);\n };\n redirect = (location, status) => {\n const locationString = String(location);\n this.header(\n \"Location\",\n !/[^\\x00-\\xFF]/.test(locationString) ? locationString : encodeURI(locationString)\n );\n return this.newResponse(null, status ?? 302);\n };\n notFound = () => {\n this.#notFoundHandler ??= () => new Response();\n return this.#notFoundHandler(this);\n };\n};\nexport {\n Context,\n TEXT_PLAIN\n};\n", "// src/router.ts\nvar METHOD_NAME_ALL = \"ALL\";\nvar METHOD_NAME_ALL_LOWERCASE = \"all\";\nvar METHODS = [\"get\", \"post\", \"put\", \"delete\", \"options\", \"patch\"];\nvar MESSAGE_MATCHER_IS_ALREADY_BUILT = \"Can not add a route since the matcher is already built.\";\nvar UnsupportedPathError = class extends Error {\n};\nexport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHODS,\n METHOD_NAME_ALL,\n METHOD_NAME_ALL_LOWERCASE,\n UnsupportedPathError\n};\n", "// src/utils/constants.ts\nvar COMPOSED_HANDLER = \"__COMPOSED_HANDLER\";\nexport {\n COMPOSED_HANDLER\n};\n", "// src/hono-base.ts\nimport { compose } from \"./compose.js\";\nimport { Context } from \"./context.js\";\nimport { METHODS, METHOD_NAME_ALL, METHOD_NAME_ALL_LOWERCASE } from \"./router.js\";\nimport { COMPOSED_HANDLER } from \"./utils/constants.js\";\nimport { getPath, getPathNoStrict, mergePath } from \"./utils/url.js\";\nvar notFoundHandler = (c) => {\n return c.text(\"404 Not Found\", 404);\n};\nvar errorHandler = (err, c) => {\n if (\"getResponse\" in err) {\n const res = err.getResponse();\n return c.newResponse(res.body, res);\n }\n console.error(err);\n return c.text(\"Internal Server Error\", 500);\n};\nvar Hono = class {\n get;\n post;\n put;\n delete;\n options;\n patch;\n all;\n on;\n use;\n router;\n getPath;\n _basePath = \"/\";\n #path = \"/\";\n routes = [];\n constructor(options = {}) {\n const allMethods = [...METHODS, METHOD_NAME_ALL_LOWERCASE];\n allMethods.forEach((method) => {\n this[method] = (args1, ...args) => {\n if (typeof args1 === \"string\") {\n this.#path = args1;\n } else {\n this.#addRoute(method, this.#path, args1);\n }\n args.forEach((handler) => {\n this.#addRoute(method, this.#path, handler);\n });\n return this;\n };\n });\n this.on = (method, path, ...handlers) => {\n for (const p of [path].flat()) {\n this.#path = p;\n for (const m of [method].flat()) {\n handlers.map((handler) => {\n this.#addRoute(m.toUpperCase(), this.#path, handler);\n });\n }\n }\n return this;\n };\n this.use = (arg1, ...handlers) => {\n if (typeof arg1 === \"string\") {\n this.#path = arg1;\n } else {\n this.#path = \"*\";\n handlers.unshift(arg1);\n }\n handlers.forEach((handler) => {\n this.#addRoute(METHOD_NAME_ALL, this.#path, handler);\n });\n return this;\n };\n const { strict, ...optionsWithoutStrict } = options;\n Object.assign(this, optionsWithoutStrict);\n this.getPath = strict ?? true ? options.getPath ?? getPath : getPathNoStrict;\n }\n #clone() {\n const clone = new Hono({\n router: this.router,\n getPath: this.getPath\n });\n clone.errorHandler = this.errorHandler;\n clone.#notFoundHandler = this.#notFoundHandler;\n clone.routes = this.routes;\n return clone;\n }\n #notFoundHandler = notFoundHandler;\n errorHandler = errorHandler;\n route(path, app) {\n const subApp = this.basePath(path);\n app.routes.map((r) => {\n let handler;\n if (app.errorHandler === errorHandler) {\n handler = r.handler;\n } else {\n handler = async (c, next) => (await compose([], app.errorHandler)(c, () => r.handler(c, next))).res;\n handler[COMPOSED_HANDLER] = r.handler;\n }\n subApp.#addRoute(r.method, r.path, handler);\n });\n return this;\n }\n basePath(path) {\n const subApp = this.#clone();\n subApp._basePath = mergePath(this._basePath, path);\n return subApp;\n }\n onError = (handler) => {\n this.errorHandler = handler;\n return this;\n };\n notFound = (handler) => {\n this.#notFoundHandler = handler;\n return this;\n };\n mount(path, applicationHandler, options) {\n let replaceRequest;\n let optionHandler;\n if (options) {\n if (typeof options === \"function\") {\n optionHandler = options;\n } else {\n optionHandler = options.optionHandler;\n if (options.replaceRequest === false) {\n replaceRequest = (request) => request;\n } else {\n replaceRequest = options.replaceRequest;\n }\n }\n }\n const getOptions = optionHandler ? (c) => {\n const options2 = optionHandler(c);\n return Array.isArray(options2) ? options2 : [options2];\n } : (c) => {\n let executionContext = void 0;\n try {\n executionContext = c.executionCtx;\n } catch {\n }\n return [c.env, executionContext];\n };\n replaceRequest ||= (() => {\n const mergedPath = mergePath(this._basePath, path);\n const pathPrefixLength = mergedPath === \"/\" ? 0 : mergedPath.length;\n return (request) => {\n const url = new URL(request.url);\n url.pathname = url.pathname.slice(pathPrefixLength) || \"/\";\n return new Request(url, request);\n };\n })();\n const handler = async (c, next) => {\n const res = await applicationHandler(replaceRequest(c.req.raw), ...getOptions(c));\n if (res) {\n return res;\n }\n await next();\n };\n this.#addRoute(METHOD_NAME_ALL, mergePath(path, \"*\"), handler);\n return this;\n }\n #addRoute(method, path, handler) {\n method = method.toUpperCase();\n path = mergePath(this._basePath, path);\n const r = { basePath: this._basePath, path, method, handler };\n this.router.add(method, path, [handler, r]);\n this.routes.push(r);\n }\n #handleError(err, c) {\n if (err instanceof Error) {\n return this.errorHandler(err, c);\n }\n throw err;\n }\n #dispatch(request, executionCtx, env, method) {\n if (method === \"HEAD\") {\n return (async () => new Response(null, await this.#dispatch(request, executionCtx, env, \"GET\")))();\n }\n const path = this.getPath(request, { env });\n const matchResult = this.router.match(method, path);\n const c = new Context(request, {\n path,\n matchResult,\n env,\n executionCtx,\n notFoundHandler: this.#notFoundHandler\n });\n if (matchResult[0].length === 1) {\n let res;\n try {\n res = matchResult[0][0][0][0](c, async () => {\n c.res = await this.#notFoundHandler(c);\n });\n } catch (err) {\n return this.#handleError(err, c);\n }\n return res instanceof Promise ? res.then(\n (resolved) => resolved || (c.finalized ? c.res : this.#notFoundHandler(c))\n ).catch((err) => this.#handleError(err, c)) : res ?? this.#notFoundHandler(c);\n }\n const composed = compose(matchResult[0], this.errorHandler, this.#notFoundHandler);\n return (async () => {\n try {\n const context = await composed(c);\n if (!context.finalized) {\n throw new Error(\n \"Context is not finalized. Did you forget to return a Response object or `await next()`?\"\n );\n }\n return context.res;\n } catch (err) {\n return this.#handleError(err, c);\n }\n })();\n }\n fetch = (request, ...rest) => {\n return this.#dispatch(request, rest[1], rest[0], request.method);\n };\n request = (input, requestInit, Env, executionCtx) => {\n if (input instanceof Request) {\n return this.fetch(requestInit ? new Request(input, requestInit) : input, Env, executionCtx);\n }\n input = input.toString();\n return this.fetch(\n new Request(\n /^https?:\\/\\//.test(input) ? input : `http://localhost${mergePath(\"/\", input)}`,\n requestInit\n ),\n Env,\n executionCtx\n );\n };\n fire = () => {\n addEventListener(\"fetch\", (event) => {\n event.respondWith(this.#dispatch(event.request, event, void 0, event.request.method));\n });\n };\n};\nexport {\n Hono as HonoBase\n};\n", "// src/router/reg-exp-router/matcher.ts\nimport { METHOD_NAME_ALL } from \"../../router.js\";\nvar emptyParam = [];\nfunction match(method, path) {\n const matchers = this.buildAllMatchers();\n const match2 = (method2, path2) => {\n const matcher = matchers[method2] || matchers[METHOD_NAME_ALL];\n const staticMatch = matcher[2][path2];\n if (staticMatch) {\n return staticMatch;\n }\n const match3 = path2.match(matcher[0]);\n if (!match3) {\n return [[], emptyParam];\n }\n const index = match3.indexOf(\"\", 1);\n return [matcher[1][index], match3];\n };\n this.match = match2;\n return match2(method, path);\n}\nexport {\n emptyParam,\n match\n};\n", "// src/router/reg-exp-router/node.ts\nvar LABEL_REG_EXP_STR = \"[^/]+\";\nvar ONLY_WILDCARD_REG_EXP_STR = \".*\";\nvar TAIL_WILDCARD_REG_EXP_STR = \"(?:|/.*)\";\nvar PATH_ERROR = Symbol();\nvar regExpMetaChars = new Set(\".\\\\+*[^]$()\");\nfunction compareKey(a, b) {\n if (a.length === 1) {\n return b.length === 1 ? a < b ? -1 : 1 : -1;\n }\n if (b.length === 1) {\n return 1;\n }\n if (a === ONLY_WILDCARD_REG_EXP_STR || a === TAIL_WILDCARD_REG_EXP_STR) {\n return 1;\n } else if (b === ONLY_WILDCARD_REG_EXP_STR || b === TAIL_WILDCARD_REG_EXP_STR) {\n return -1;\n }\n if (a === LABEL_REG_EXP_STR) {\n return 1;\n } else if (b === LABEL_REG_EXP_STR) {\n return -1;\n }\n return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length;\n}\nvar Node = class {\n #index;\n #varIndex;\n #children = /* @__PURE__ */ Object.create(null);\n insert(tokens, index, paramMap, context, pathErrorCheckOnly) {\n if (tokens.length === 0) {\n if (this.#index !== void 0) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n this.#index = index;\n return;\n }\n const [token, ...restTokens] = tokens;\n const pattern = token === \"*\" ? restTokens.length === 0 ? [\"\", \"\", ONLY_WILDCARD_REG_EXP_STR] : [\"\", \"\", LABEL_REG_EXP_STR] : token === \"/*\" ? [\"\", \"\", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n let node;\n if (pattern) {\n const name = pattern[1];\n let regexpStr = pattern[2] || LABEL_REG_EXP_STR;\n if (name && pattern[2]) {\n if (regexpStr === \".*\") {\n throw PATH_ERROR;\n }\n regexpStr = regexpStr.replace(/^\\((?!\\?:)(?=[^)]+\\)$)/, \"(?:\");\n if (/\\((?!\\?:)/.test(regexpStr)) {\n throw PATH_ERROR;\n }\n }\n node = this.#children[regexpStr];\n if (!node) {\n if (Object.keys(this.#children).some(\n (k) => k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.#children[regexpStr] = new Node();\n if (name !== \"\") {\n node.#varIndex = context.varIndex++;\n }\n }\n if (!pathErrorCheckOnly && name !== \"\") {\n paramMap.push([name, node.#varIndex]);\n }\n } else {\n node = this.#children[token];\n if (!node) {\n if (Object.keys(this.#children).some(\n (k) => k.length > 1 && k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.#children[token] = new Node();\n }\n }\n node.insert(restTokens, index, paramMap, context, pathErrorCheckOnly);\n }\n buildRegExpStr() {\n const childKeys = Object.keys(this.#children).sort(compareKey);\n const strList = childKeys.map((k) => {\n const c = this.#children[k];\n return (typeof c.#varIndex === \"number\" ? `(${k})@${c.#varIndex}` : regExpMetaChars.has(k) ? `\\\\${k}` : k) + c.buildRegExpStr();\n });\n if (typeof this.#index === \"number\") {\n strList.unshift(`#${this.#index}`);\n }\n if (strList.length === 0) {\n return \"\";\n }\n if (strList.length === 1) {\n return strList[0];\n }\n return \"(?:\" + strList.join(\"|\") + \")\";\n }\n};\nexport {\n Node,\n PATH_ERROR\n};\n", "// src/router/reg-exp-router/trie.ts\nimport { Node } from \"./node.js\";\nvar Trie = class {\n #context = { varIndex: 0 };\n #root = new Node();\n insert(path, index, pathErrorCheckOnly) {\n const paramAssoc = [];\n const groups = [];\n for (let i = 0; ; ) {\n let replaced = false;\n path = path.replace(/\\{[^}]+\\}/g, (m) => {\n const mark = `@\\\\${i}`;\n groups[i] = [mark, m];\n i++;\n replaced = true;\n return mark;\n });\n if (!replaced) {\n break;\n }\n }\n const tokens = path.match(/(?::[^\\/]+)|(?:\\/\\*$)|./g) || [];\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = tokens.length - 1; j >= 0; j--) {\n if (tokens[j].indexOf(mark) !== -1) {\n tokens[j] = tokens[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n this.#root.insert(tokens, index, paramAssoc, this.#context, pathErrorCheckOnly);\n return paramAssoc;\n }\n buildRegExp() {\n let regexp = this.#root.buildRegExpStr();\n if (regexp === \"\") {\n return [/^$/, [], []];\n }\n let captureIndex = 0;\n const indexReplacementMap = [];\n const paramReplacementMap = [];\n regexp = regexp.replace(/#(\\d+)|@(\\d+)|\\.\\*\\$/g, (_, handlerIndex, paramIndex) => {\n if (handlerIndex !== void 0) {\n indexReplacementMap[++captureIndex] = Number(handlerIndex);\n return \"$()\";\n }\n if (paramIndex !== void 0) {\n paramReplacementMap[Number(paramIndex)] = ++captureIndex;\n return \"\";\n }\n return \"\";\n });\n return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap];\n }\n};\nexport {\n Trie\n};\n", "// src/router/reg-exp-router/router.ts\nimport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHOD_NAME_ALL,\n UnsupportedPathError\n} from \"../../router.js\";\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { match, emptyParam } from \"./matcher.js\";\nimport { PATH_ERROR } from \"./node.js\";\nimport { Trie } from \"./trie.js\";\nvar nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];\nvar wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\nfunction buildWildcardRegExp(path) {\n return wildcardRegExpCache[path] ??= new RegExp(\n path === \"*\" ? \"\" : `^${path.replace(\n /\\/\\*$|([.\\\\+*[^\\]$()])/g,\n (_, metaChar) => metaChar ? `\\\\${metaChar}` : \"(?:|/.*)\"\n )}$`\n );\n}\nfunction clearWildcardRegExpCache() {\n wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\n}\nfunction buildMatcherFromPreprocessedRoutes(routes) {\n const trie = new Trie();\n const handlerData = [];\n if (routes.length === 0) {\n return nullMatcher;\n }\n const routesWithStaticPathFlag = routes.map(\n (route) => [!/\\*|\\/:/.test(route[0]), ...route]\n ).sort(\n ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length\n );\n const staticMap = /* @__PURE__ */ Object.create(null);\n for (let i = 0, j = -1, len = routesWithStaticPathFlag.length; i < len; i++) {\n const [pathErrorCheckOnly, path, handlers] = routesWithStaticPathFlag[i];\n if (pathErrorCheckOnly) {\n staticMap[path] = [handlers.map(([h]) => [h, /* @__PURE__ */ Object.create(null)]), emptyParam];\n } else {\n j++;\n }\n let paramAssoc;\n try {\n paramAssoc = trie.insert(path, j, pathErrorCheckOnly);\n } catch (e) {\n throw e === PATH_ERROR ? new UnsupportedPathError(path) : e;\n }\n if (pathErrorCheckOnly) {\n continue;\n }\n handlerData[j] = handlers.map(([h, paramCount]) => {\n const paramIndexMap = /* @__PURE__ */ Object.create(null);\n paramCount -= 1;\n for (; paramCount >= 0; paramCount--) {\n const [key, value] = paramAssoc[paramCount];\n paramIndexMap[key] = value;\n }\n return [h, paramIndexMap];\n });\n }\n const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();\n for (let i = 0, len = handlerData.length; i < len; i++) {\n for (let j = 0, len2 = handlerData[i].length; j < len2; j++) {\n const map = handlerData[i][j]?.[1];\n if (!map) {\n continue;\n }\n const keys = Object.keys(map);\n for (let k = 0, len3 = keys.length; k < len3; k++) {\n map[keys[k]] = paramReplacementMap[map[keys[k]]];\n }\n }\n }\n const handlerMap = [];\n for (const i in indexReplacementMap) {\n handlerMap[i] = handlerData[indexReplacementMap[i]];\n }\n return [regexp, handlerMap, staticMap];\n}\nfunction findMiddleware(middleware, path) {\n if (!middleware) {\n return void 0;\n }\n for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) {\n if (buildWildcardRegExp(k).test(path)) {\n return [...middleware[k]];\n }\n }\n return void 0;\n}\nvar RegExpRouter = class {\n name = \"RegExpRouter\";\n #middleware;\n #routes;\n constructor() {\n this.#middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n this.#routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n }\n add(method, path, handler) {\n const middleware = this.#middleware;\n const routes = this.#routes;\n if (!middleware || !routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n if (!middleware[method]) {\n ;\n [middleware, routes].forEach((handlerMap) => {\n handlerMap[method] = /* @__PURE__ */ Object.create(null);\n Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p) => {\n handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]];\n });\n });\n }\n if (path === \"/*\") {\n path = \"*\";\n }\n const paramCount = (path.match(/\\/:/g) || []).length;\n if (/\\*$/.test(path)) {\n const re = buildWildcardRegExp(path);\n if (method === METHOD_NAME_ALL) {\n Object.keys(middleware).forEach((m) => {\n middleware[m][path] ||= findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n });\n } else {\n middleware[method][path] ||= findMiddleware(middleware[method], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n }\n Object.keys(middleware).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(middleware[m]).forEach((p) => {\n re.test(p) && middleware[m][p].push([handler, paramCount]);\n });\n }\n });\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(routes[m]).forEach(\n (p) => re.test(p) && routes[m][p].push([handler, paramCount])\n );\n }\n });\n return;\n }\n const paths = checkOptionalParameter(path) || [path];\n for (let i = 0, len = paths.length; i < len; i++) {\n const path2 = paths[i];\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n routes[m][path2] ||= [\n ...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || []\n ];\n routes[m][path2].push([handler, paramCount - len + i + 1]);\n }\n });\n }\n }\n match = match;\n buildAllMatchers() {\n const matchers = /* @__PURE__ */ Object.create(null);\n Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach((method) => {\n matchers[method] ||= this.#buildMatcher(method);\n });\n this.#middleware = this.#routes = void 0;\n clearWildcardRegExpCache();\n return matchers;\n }\n #buildMatcher(method) {\n const routes = [];\n let hasOwnRoute = method === METHOD_NAME_ALL;\n [this.#middleware, this.#routes].forEach((r) => {\n const ownRoute = r[method] ? Object.keys(r[method]).map((path) => [path, r[method][path]]) : [];\n if (ownRoute.length !== 0) {\n hasOwnRoute ||= true;\n routes.push(...ownRoute);\n } else if (method !== METHOD_NAME_ALL) {\n routes.push(\n ...Object.keys(r[METHOD_NAME_ALL]).map((path) => [path, r[METHOD_NAME_ALL][path]])\n );\n }\n });\n if (!hasOwnRoute) {\n return null;\n } else {\n return buildMatcherFromPreprocessedRoutes(routes);\n }\n }\n};\nexport {\n RegExpRouter\n};\n", "// src/router/smart-router/router.ts\nimport { MESSAGE_MATCHER_IS_ALREADY_BUILT, UnsupportedPathError } from \"../../router.js\";\nvar SmartRouter = class {\n name = \"SmartRouter\";\n #routers = [];\n #routes = [];\n constructor(init) {\n this.#routers = init.routers;\n }\n add(method, path, handler) {\n if (!this.#routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n this.#routes.push([method, path, handler]);\n }\n match(method, path) {\n if (!this.#routes) {\n throw new Error(\"Fatal error\");\n }\n const routers = this.#routers;\n const routes = this.#routes;\n const len = routers.length;\n let i = 0;\n let res;\n for (; i < len; i++) {\n const router = routers[i];\n try {\n for (let i2 = 0, len2 = routes.length; i2 < len2; i2++) {\n router.add(...routes[i2]);\n }\n res = router.match(method, path);\n } catch (e) {\n if (e instanceof UnsupportedPathError) {\n continue;\n }\n throw e;\n }\n this.match = router.match.bind(router);\n this.#routers = [router];\n this.#routes = void 0;\n break;\n }\n if (i === len) {\n throw new Error(\"Fatal error\");\n }\n this.name = `SmartRouter + ${this.activeRouter.name}`;\n return res;\n }\n get activeRouter() {\n if (this.#routes || this.#routers.length !== 1) {\n throw new Error(\"No active router has been determined yet.\");\n }\n return this.#routers[0];\n }\n};\nexport {\n SmartRouter\n};\n", "// src/router/trie-router/node.ts\nimport { METHOD_NAME_ALL } from \"../../router.js\";\nimport { getPattern, splitPath, splitRoutingPath } from \"../../utils/url.js\";\nvar emptyParams = /* @__PURE__ */ Object.create(null);\nvar Node = class {\n #methods;\n #children;\n #patterns;\n #order = 0;\n #params = emptyParams;\n constructor(method, handler, children) {\n this.#children = children || /* @__PURE__ */ Object.create(null);\n this.#methods = [];\n if (method && handler) {\n const m = /* @__PURE__ */ Object.create(null);\n m[method] = { handler, possibleKeys: [], score: 0 };\n this.#methods = [m];\n }\n this.#patterns = [];\n }\n insert(method, path, handler) {\n this.#order = ++this.#order;\n let curNode = this;\n const parts = splitRoutingPath(path);\n const possibleKeys = [];\n for (let i = 0, len = parts.length; i < len; i++) {\n const p = parts[i];\n const nextP = parts[i + 1];\n const pattern = getPattern(p, nextP);\n const key = Array.isArray(pattern) ? pattern[0] : p;\n if (key in curNode.#children) {\n curNode = curNode.#children[key];\n if (pattern) {\n possibleKeys.push(pattern[1]);\n }\n continue;\n }\n curNode.#children[key] = new Node();\n if (pattern) {\n curNode.#patterns.push(pattern);\n possibleKeys.push(pattern[1]);\n }\n curNode = curNode.#children[key];\n }\n curNode.#methods.push({\n [method]: {\n handler,\n possibleKeys: possibleKeys.filter((v, i, a) => a.indexOf(v) === i),\n score: this.#order\n }\n });\n return curNode;\n }\n #getHandlerSets(node, method, nodeParams, params) {\n const handlerSets = [];\n for (let i = 0, len = node.#methods.length; i < len; i++) {\n const m = node.#methods[i];\n const handlerSet = m[method] || m[METHOD_NAME_ALL];\n const processedSet = {};\n if (handlerSet !== void 0) {\n handlerSet.params = /* @__PURE__ */ Object.create(null);\n handlerSets.push(handlerSet);\n if (nodeParams !== emptyParams || params && params !== emptyParams) {\n for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {\n const key = handlerSet.possibleKeys[i2];\n const processed = processedSet[handlerSet.score];\n handlerSet.params[key] = params?.[key] && !processed ? params[key] : nodeParams[key] ?? params?.[key];\n processedSet[handlerSet.score] = true;\n }\n }\n }\n }\n return handlerSets;\n }\n search(method, path) {\n const handlerSets = [];\n this.#params = emptyParams;\n const curNode = this;\n let curNodes = [curNode];\n const parts = splitPath(path);\n const curNodesQueue = [];\n for (let i = 0, len = parts.length; i < len; i++) {\n const part = parts[i];\n const isLast = i === len - 1;\n const tempNodes = [];\n for (let j = 0, len2 = curNodes.length; j < len2; j++) {\n const node = curNodes[j];\n const nextNode = node.#children[part];\n if (nextNode) {\n nextNode.#params = node.#params;\n if (isLast) {\n if (nextNode.#children[\"*\"]) {\n handlerSets.push(\n ...this.#getHandlerSets(nextNode.#children[\"*\"], method, node.#params)\n );\n }\n handlerSets.push(...this.#getHandlerSets(nextNode, method, node.#params));\n } else {\n tempNodes.push(nextNode);\n }\n }\n for (let k = 0, len3 = node.#patterns.length; k < len3; k++) {\n const pattern = node.#patterns[k];\n const params = node.#params === emptyParams ? {} : { ...node.#params };\n if (pattern === \"*\") {\n const astNode = node.#children[\"*\"];\n if (astNode) {\n handlerSets.push(...this.#getHandlerSets(astNode, method, node.#params));\n astNode.#params = params;\n tempNodes.push(astNode);\n }\n continue;\n }\n const [key, name, matcher] = pattern;\n if (!part && !(matcher instanceof RegExp)) {\n continue;\n }\n const child = node.#children[key];\n const restPathString = parts.slice(i).join(\"/\");\n if (matcher instanceof RegExp) {\n const m = matcher.exec(restPathString);\n if (m) {\n params[name] = m[0];\n handlerSets.push(...this.#getHandlerSets(child, method, node.#params, params));\n if (Object.keys(child.#children).length) {\n child.#params = params;\n const componentCount = m[0].match(/\\//)?.length ?? 0;\n const targetCurNodes = curNodesQueue[componentCount] ||= [];\n targetCurNodes.push(child);\n }\n continue;\n }\n }\n if (matcher === true || matcher.test(part)) {\n params[name] = part;\n if (isLast) {\n handlerSets.push(...this.#getHandlerSets(child, method, params, node.#params));\n if (child.#children[\"*\"]) {\n handlerSets.push(\n ...this.#getHandlerSets(child.#children[\"*\"], method, params, node.#params)\n );\n }\n } else {\n child.#params = params;\n tempNodes.push(child);\n }\n }\n }\n }\n curNodes = tempNodes.concat(curNodesQueue.shift() ?? []);\n }\n if (handlerSets.length > 1) {\n handlerSets.sort((a, b) => {\n return a.score - b.score;\n });\n }\n return [handlerSets.map(({ handler, params }) => [handler, params])];\n }\n};\nexport {\n Node\n};\n", "// src/router/trie-router/router.ts\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { Node } from \"./node.js\";\nvar TrieRouter = class {\n name = \"TrieRouter\";\n #node;\n constructor() {\n this.#node = new Node();\n }\n add(method, path, handler) {\n const results = checkOptionalParameter(path);\n if (results) {\n for (let i = 0, len = results.length; i < len; i++) {\n this.#node.insert(method, results[i], handler);\n }\n return;\n }\n this.#node.insert(method, path, handler);\n }\n match(method, path) {\n return this.#node.search(method, path);\n }\n};\nexport {\n TrieRouter\n};\n", "// src/hono.ts\nimport { HonoBase } from \"./hono-base.js\";\nimport { RegExpRouter } from \"./router/reg-exp-router/index.js\";\nimport { SmartRouter } from \"./router/smart-router/index.js\";\nimport { TrieRouter } from \"./router/trie-router/index.js\";\nvar Hono = class extends HonoBase {\n constructor(options = {}) {\n super(options);\n this.router = options.router ?? new SmartRouter({\n routers: [new RegExpRouter(), new TrieRouter()]\n });\n }\n};\nexport {\n Hono\n};\n", "// src/utils/compress.ts\nvar COMPRESSIBLE_CONTENT_TYPE_REGEX = /^\\s*(?:text\\/(?!event-stream(?:[;\\s]|$))[^;\\s]+|application\\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|postscript|rtf|tar|toml|vnd\\.dart|vnd\\.ms-fontobject|vnd\\.ms-opentype|wasm|x-httpd-php|x-javascript|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\\/(?:otf|ttf)|image\\/(?:bmp|vnd\\.adobe\\.photoshop|vnd\\.microsoft\\.icon|vnd\\.ms-dds|x-icon|x-ms-bmp)|message\\/rfc822|model\\/gltf-binary|x-shader\\/x-fragment|x-shader\\/x-vertex|[^;\\s]+?\\+(?:json|text|xml|yaml))(?:[;\\s]|$)/i;\nexport {\n COMPRESSIBLE_CONTENT_TYPE_REGEX\n};\n", "// src/utils/mime.ts\nvar getMimeType = (filename, mimes = baseMimes) => {\n const regexp = /\\.([a-zA-Z0-9]+?)$/;\n const match = filename.match(regexp);\n if (!match) {\n return;\n }\n let mimeType = mimes[match[1]];\n if (mimeType && mimeType.startsWith(\"text\")) {\n mimeType += \"; charset=utf-8\";\n }\n return mimeType;\n};\nvar getExtension = (mimeType) => {\n for (const ext in baseMimes) {\n if (baseMimes[ext] === mimeType) {\n return ext;\n }\n }\n};\nvar _baseMimes = {\n aac: \"audio/aac\",\n avi: \"video/x-msvideo\",\n avif: \"image/avif\",\n av1: \"video/av1\",\n bin: \"application/octet-stream\",\n bmp: \"image/bmp\",\n css: \"text/css\",\n csv: \"text/csv\",\n eot: \"application/vnd.ms-fontobject\",\n epub: \"application/epub+zip\",\n gif: \"image/gif\",\n gz: \"application/gzip\",\n htm: \"text/html\",\n html: \"text/html\",\n ico: \"image/x-icon\",\n ics: \"text/calendar\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n js: \"text/javascript\",\n json: \"application/json\",\n jsonld: \"application/ld+json\",\n map: \"application/json\",\n mid: \"audio/x-midi\",\n midi: \"audio/x-midi\",\n mjs: \"text/javascript\",\n mp3: \"audio/mpeg\",\n mp4: \"video/mp4\",\n mpeg: \"video/mpeg\",\n oga: \"audio/ogg\",\n ogv: \"video/ogg\",\n ogx: \"application/ogg\",\n opus: \"audio/opus\",\n otf: \"font/otf\",\n pdf: \"application/pdf\",\n png: \"image/png\",\n rtf: \"application/rtf\",\n svg: \"image/svg+xml\",\n tif: \"image/tiff\",\n tiff: \"image/tiff\",\n ts: \"video/mp2t\",\n ttf: \"font/ttf\",\n txt: \"text/plain\",\n wasm: \"application/wasm\",\n webm: \"video/webm\",\n weba: \"audio/webm\",\n webmanifest: \"application/manifest+json\",\n webp: \"image/webp\",\n woff: \"font/woff\",\n woff2: \"font/woff2\",\n xhtml: \"application/xhtml+xml\",\n xml: \"application/xml\",\n zip: \"application/zip\",\n \"3gp\": \"video/3gpp\",\n \"3g2\": \"video/3gpp2\",\n gltf: \"model/gltf+json\",\n glb: \"model/gltf-binary\"\n};\nvar baseMimes = _baseMimes;\nexport {\n getExtension,\n getMimeType,\n baseMimes as mimes\n};\n", "// src/middleware/serve-static/path.ts\nvar defaultJoin = (...paths) => {\n let result = paths.filter((p) => p !== \"\").join(\"/\");\n result = result.replace(/(?<=\\/)\\/+/g, \"\");\n const segments = result.split(\"/\");\n const resolved = [];\n for (const segment of segments) {\n if (segment === \"..\" && resolved.length > 0 && resolved.at(-1) !== \"..\") {\n resolved.pop();\n } else if (segment !== \".\") {\n resolved.push(segment);\n }\n }\n return resolved.join(\"/\") || \".\";\n};\nexport {\n defaultJoin\n};\n", "// src/middleware/serve-static/index.ts\nimport { COMPRESSIBLE_CONTENT_TYPE_REGEX } from \"../../utils/compress.js\";\nimport { getMimeType } from \"../../utils/mime.js\";\nimport { defaultJoin } from \"./path.js\";\nvar ENCODINGS = {\n br: \".br\",\n zstd: \".zst\",\n gzip: \".gz\"\n};\nvar ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);\nvar DEFAULT_DOCUMENT = \"index.html\";\nvar serveStatic = (options) => {\n const root = options.root ?? \"./\";\n const optionPath = options.path;\n const join = options.join ?? defaultJoin;\n return async (c, next) => {\n if (c.finalized) {\n return next();\n }\n let filename;\n if (options.path) {\n filename = options.path;\n } else {\n try {\n filename = decodeURIComponent(c.req.path);\n if (/(?:^|[\\/\\\\])\\.\\.(?:$|[\\/\\\\])/.test(filename)) {\n throw new Error();\n }\n } catch {\n await options.onNotFound?.(c.req.path, c);\n return next();\n }\n }\n let path = join(\n root,\n !optionPath && options.rewriteRequestPath ? options.rewriteRequestPath(filename) : filename\n );\n if (options.isDir && await options.isDir(path)) {\n path = join(path, DEFAULT_DOCUMENT);\n }\n const getContent = options.getContent;\n let content = await getContent(path, c);\n if (content instanceof Response) {\n return c.newResponse(content.body, content);\n }\n if (content) {\n const mimeType = options.mimes && getMimeType(path, options.mimes) || getMimeType(path);\n c.header(\"Content-Type\", mimeType || \"application/octet-stream\");\n if (options.precompressed && (!mimeType || COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {\n const acceptEncodingSet = new Set(\n c.req.header(\"Accept-Encoding\")?.split(\",\").map((encoding) => encoding.trim())\n );\n for (const encoding of ENCODINGS_ORDERED_KEYS) {\n if (!acceptEncodingSet.has(encoding)) {\n continue;\n }\n const compressedContent = await getContent(path + ENCODINGS[encoding], c);\n if (compressedContent) {\n content = compressedContent;\n c.header(\"Content-Encoding\", encoding);\n c.header(\"Vary\", \"Accept-Encoding\", { append: true });\n break;\n }\n }\n }\n await options.onFound?.(path, c);\n return c.body(content);\n }\n await options.onNotFound?.(path, c);\n await next();\n return;\n };\n};\nexport {\n serveStatic\n};\n", "// src/adapter/cloudflare-workers/utils.ts\nvar getContentFromKVAsset = async (path, options) => {\n let ASSET_MANIFEST;\n if (options && options.manifest) {\n if (typeof options.manifest === \"string\") {\n ASSET_MANIFEST = JSON.parse(options.manifest);\n } else {\n ASSET_MANIFEST = options.manifest;\n }\n } else {\n if (typeof __STATIC_CONTENT_MANIFEST === \"string\") {\n ASSET_MANIFEST = JSON.parse(__STATIC_CONTENT_MANIFEST);\n } else {\n ASSET_MANIFEST = __STATIC_CONTENT_MANIFEST;\n }\n }\n let ASSET_NAMESPACE;\n if (options && options.namespace) {\n ASSET_NAMESPACE = options.namespace;\n } else {\n ASSET_NAMESPACE = __STATIC_CONTENT;\n }\n const key = ASSET_MANIFEST[path] || path;\n if (!key) {\n return null;\n }\n const content = await ASSET_NAMESPACE.get(key, { type: \"stream\" });\n if (!content) {\n return null;\n }\n return content;\n};\nexport {\n getContentFromKVAsset\n};\n", "// src/adapter/cloudflare-workers/serve-static.ts\nimport { serveStatic as baseServeStatic } from \"../../middleware/serve-static/index.js\";\nimport { getContentFromKVAsset } from \"./utils.js\";\nvar serveStatic = (options) => {\n return async function serveStatic2(c, next) {\n const getContent = async (path) => {\n return getContentFromKVAsset(path, {\n manifest: options.manifest,\n namespace: options.namespace ? options.namespace : c.env ? c.env.__STATIC_CONTENT : void 0\n });\n };\n return baseServeStatic({\n ...options,\n getContent\n })(c, next);\n };\n};\nexport {\n serveStatic\n};\n", "// src/adapter/cloudflare-workers/serve-static-module.ts\nimport { serveStatic } from \"./serve-static.js\";\nvar module = (options) => {\n return serveStatic(options);\n};\nexport {\n module as serveStatic\n};\n", "// src/helper/websocket/index.ts\nvar WSContext = class {\n #init;\n constructor(init) {\n this.#init = init;\n this.raw = init.raw;\n this.url = init.url ? new URL(init.url) : null;\n this.protocol = init.protocol ?? null;\n }\n send(source, options) {\n this.#init.send(source, options ?? {});\n }\n raw;\n binaryType = \"arraybuffer\";\n get readyState() {\n return this.#init.readyState;\n }\n url;\n protocol;\n close(code, reason) {\n this.#init.close(code, reason);\n }\n};\nvar createWSMessageEvent = (source) => {\n return new MessageEvent(\"message\", {\n data: source\n });\n};\nvar defineWebSocketHelper = (handler) => {\n return (...args) => {\n if (typeof args[0] === \"function\") {\n const [createEvents, options] = args;\n return async function upgradeWebSocket(c, next) {\n const events = await createEvents(c);\n const result = await handler(c, events, options);\n if (result) {\n return result;\n }\n await next();\n };\n } else {\n const [c, events, options] = args;\n return (async () => {\n const upgraded = await handler(c, events, options);\n if (!upgraded) {\n throw new Error(\"Failed to upgrade WebSocket\");\n }\n return upgraded;\n })();\n }\n };\n};\nexport {\n WSContext,\n createWSMessageEvent,\n defineWebSocketHelper\n};\n", "// src/adapter/cloudflare-workers/websocket.ts\nimport { WSContext, defineWebSocketHelper } from \"../../helper/websocket/index.js\";\nvar upgradeWebSocket = defineWebSocketHelper(async (c, events) => {\n const upgradeHeader = c.req.header(\"Upgrade\");\n if (upgradeHeader !== \"websocket\") {\n return;\n }\n const webSocketPair = new WebSocketPair();\n const client = webSocketPair[0];\n const server = webSocketPair[1];\n const wsContext = new WSContext({\n close: (code, reason) => server.close(code, reason),\n get protocol() {\n return server.protocol;\n },\n raw: server,\n get readyState() {\n return server.readyState;\n },\n url: server.url ? new URL(server.url) : null,\n send: (source) => server.send(source)\n });\n if (events.onClose) {\n server.addEventListener(\"close\", (evt) => events.onClose?.(evt, wsContext));\n }\n if (events.onMessage) {\n server.addEventListener(\"message\", (evt) => events.onMessage?.(evt, wsContext));\n }\n if (events.onError) {\n server.addEventListener(\"error\", (evt) => events.onError?.(evt, wsContext));\n }\n server.accept?.();\n return new Response(null, {\n status: 101,\n webSocket: client\n });\n});\nexport {\n upgradeWebSocket\n};\n", "// src/middleware/cors/index.ts\nvar cors = (options) => {\n const defaults = {\n origin: \"*\",\n allowMethods: [\"GET\", \"HEAD\", \"PUT\", \"POST\", \"DELETE\", \"PATCH\"],\n allowHeaders: [],\n exposeHeaders: []\n };\n const opts = {\n ...defaults,\n ...options\n };\n const findAllowOrigin = ((optsOrigin) => {\n if (typeof optsOrigin === \"string\") {\n if (optsOrigin === \"*\") {\n return () => optsOrigin;\n } else {\n return (origin) => optsOrigin === origin ? origin : null;\n }\n } else if (typeof optsOrigin === \"function\") {\n return optsOrigin;\n } else {\n return (origin) => optsOrigin.includes(origin) ? origin : null;\n }\n })(opts.origin);\n const findAllowMethods = ((optsAllowMethods) => {\n if (typeof optsAllowMethods === \"function\") {\n return optsAllowMethods;\n } else if (Array.isArray(optsAllowMethods)) {\n return () => optsAllowMethods;\n } else {\n return () => [];\n }\n })(opts.allowMethods);\n return async function cors2(c, next) {\n function set(key, value) {\n c.res.headers.set(key, value);\n }\n const allowOrigin = await findAllowOrigin(c.req.header(\"origin\") || \"\", c);\n if (allowOrigin) {\n set(\"Access-Control-Allow-Origin\", allowOrigin);\n }\n if (opts.origin !== \"*\") {\n const existingVary = c.req.header(\"Vary\");\n if (existingVary) {\n set(\"Vary\", existingVary);\n } else {\n set(\"Vary\", \"Origin\");\n }\n }\n if (opts.credentials) {\n set(\"Access-Control-Allow-Credentials\", \"true\");\n }\n if (opts.exposeHeaders?.length) {\n set(\"Access-Control-Expose-Headers\", opts.exposeHeaders.join(\",\"));\n }\n if (c.req.method === \"OPTIONS\") {\n if (opts.maxAge != null) {\n set(\"Access-Control-Max-Age\", opts.maxAge.toString());\n }\n const allowMethods = await findAllowMethods(c.req.header(\"origin\") || \"\", c);\n if (allowMethods.length) {\n set(\"Access-Control-Allow-Methods\", allowMethods.join(\",\"));\n }\n let headers = opts.allowHeaders;\n if (!headers?.length) {\n const requestHeaders = c.req.header(\"Access-Control-Request-Headers\");\n if (requestHeaders) {\n headers = requestHeaders.split(/\\s*,\\s*/);\n }\n }\n if (headers?.length) {\n set(\"Access-Control-Allow-Headers\", headers.join(\",\"));\n c.res.headers.append(\"Vary\", \"Access-Control-Request-Headers\");\n }\n c.res.headers.delete(\"Content-Length\");\n c.res.headers.delete(\"Content-Type\");\n return new Response(null, {\n headers: c.res.headers,\n status: 204,\n statusText: \"No Content\"\n });\n }\n await next();\n };\n};\nexport {\n cors\n};\n", "export const entityKind = Symbol.for('drizzle:entityKind');\nexport const hasOwnEntityKind = Symbol.for('drizzle:hasOwnEntityKind');\n\nexport interface DrizzleEntity {\n\t[entityKind]: string;\n}\n\nexport type DrizzleEntityClass =\n\t& ((abstract new(...args: any[]) => T) | (new(...args: any[]) => T))\n\t& DrizzleEntity;\n\nexport function is>(value: any, type: T): value is InstanceType {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (value instanceof type) { // eslint-disable-line no-instanceof/no-instanceof\n\t\treturn true;\n\t}\n\n\tif (!Object.prototype.hasOwnProperty.call(type, entityKind)) {\n\t\tthrow new Error(\n\t\t\t`Class \"${\n\t\t\t\ttype.name ?? ''\n\t\t\t}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`,\n\t\t);\n\t}\n\n\tlet cls = value.constructor;\n\tif (cls) {\n\t\t// Traverse the prototype chain to find the entityKind\n\t\twhile (cls) {\n\t\t\tif (entityKind in cls && cls[entityKind] === type[entityKind]) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tcls = Object.getPrototypeOf(cls);\n\t\t}\n\t}\n\n\treturn false;\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, ColumnDataType } from './column-builder.ts';\nimport { entityKind } from './entity.ts';\nimport type { DriverValueMapper, SQL, SQLWrapper } from './sql/sql.ts';\nimport type { Table } from './table.ts';\nimport type { Update } from './utils.ts';\n\nexport interface ColumnBaseConfig<\n\tTDataType extends ColumnDataType,\n\tTColumnType extends string,\n> extends ColumnBuilderBaseConfig {\n\ttableName: string;\n\tnotNull: boolean;\n\thasDefault: boolean;\n}\n\nexport type ColumnTypeConfig, TTypeConfig extends object> = T & {\n\tbrand: 'Column';\n\ttableName: T['tableName'];\n\tname: T['name'];\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: T['data'];\n\tdriverParam: T['driverParam'];\n\tnotNull: T['notNull'];\n\thasDefault: T['hasDefault'];\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseColumn: infer U } ? U : unknown;\n} & TTypeConfig;\n\nexport type ColumnRuntimeConfig = ColumnBuilderRuntimeConfig<\n\tTData,\n\tTRuntimeConfig\n>;\n\nexport interface Column<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTRuntimeConfig extends object = object,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTTypeConfig extends object = object,\n> extends DriverValueMapper, SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n/*\n\t`Column` only accepts a full `ColumnConfig` as its generic.\n\tTo infer parts of the config, use `AnyColumn` that accepts a partial config.\n\tSee `GetColumnData` for example usage of inferring.\n*/\nexport abstract class Column<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n> implements DriverValueMapper, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Column';\n\n\tdeclare readonly _: ColumnTypeConfig;\n\n\treadonly name: string;\n\treadonly primary: boolean;\n\treadonly notNull: boolean;\n\treadonly default: T['data'] | SQL | undefined;\n\treadonly defaultFn: (() => T['data'] | SQL) | undefined;\n\treadonly hasDefault: boolean;\n\treadonly isUnique: boolean;\n\treadonly uniqueName: string | undefined;\n\treadonly uniqueType: string | undefined;\n\treadonly dataType: T['dataType'];\n\treadonly columnType: T['columnType'];\n\treadonly enumValues: T['enumValues'] = undefined;\n\n\tprotected config: ColumnRuntimeConfig;\n\n\tconstructor(\n\t\treadonly table: Table,\n\t\tconfig: ColumnRuntimeConfig,\n\t) {\n\t\tthis.config = config;\n\t\tthis.name = config.name;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.dataType = config.dataType as T['dataType'];\n\t\tthis.columnType = config.columnType;\n\t}\n\n\tabstract getSQLType(): string;\n\n\tmapFromDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n\n\tmapToDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n}\n\nexport type UpdateColConfig<\n\tT extends ColumnBaseConfig,\n\tTUpdate extends Partial>,\n> = Update;\n\nexport type AnyColumn> = {}> = Column<\n\tRequired, TPartial>>\n>;\n\nexport type GetColumnData =\n\t// dprint-ignore\n\tTInferMode extends 'raw' // Raw mode\n\t\t? TColumn['_']['data'] // Just return the underlying type\n\t\t: TColumn['_']['notNull'] extends true // Query mode\n\t\t? TColumn['_']['data'] // Query mode, not null\n\t\t: TColumn['_']['data'] | null; // Query mode, nullable\n\nexport type InferColumnsDataTypes> = {\n\t[Key in keyof TColumns]: GetColumnData;\n};\n", "import { entityKind } from './entity.ts';\nimport type { SQL, SQLWrapper, ColumnsSelection } from './sql/sql.ts';\n\nexport const SubqueryConfig = Symbol.for('drizzle:SubqueryConfig');\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface Subquery extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\nexport class Subquery implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Subquery';\n\n\tdeclare _: {\n\t\tbrand: 'Subquery';\n\t\tselectedFields: TSelectedFields;\n\t\talias: TAlias;\n\t};\n\n\t/** @internal */\n\t[SubqueryConfig]: {\n\t\tsql: SQL;\n\t\tselection: ColumnsSelection;\n\t\talias: string;\n\t\tisWith: boolean;\n\t};\n\n\tconstructor(sql: SQL, selection: Record, alias: string, isWith = false) {\n\t\tthis[SubqueryConfig] = {\n\t\t\tsql,\n\t\t\tselection,\n\t\t\talias,\n\t\t\tisWith,\n\t\t};\n\t}\n\n\t// getSQL(): SQL {\n\t// \treturn new SQL([this]);\n\t// }\n}\n\nexport class WithSubquery extends Subquery {\n\tstatic readonly [entityKind]: string = 'WithSubquery';\n}", "export function iife(fn: (...args: T) => U, ...args: T): U {\n\treturn fn(...args);\n}", "// package.json\nvar version = \"0.29.5\";\n\n// src/version.ts\nvar compatibilityVersion = 6;\nexport {\n compatibilityVersion,\n version as npmVersion\n};\n", "import type { Span, Tracer } from '@opentelemetry/api';\nimport { iife } from '~/tracing-utils.ts';\nimport { npmVersion } from '~/version.ts';\n\nlet otel: typeof import('@opentelemetry/api') | undefined;\nlet rawTracer: Tracer | undefined;\n// try {\n// \totel = await import('@opentelemetry/api');\n// } catch (err: any) {\n// \tif (err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') {\n// \t\tthrow err;\n// \t}\n// }\n\ntype SpanName =\n\t| 'drizzle.operation'\n\t| 'drizzle.prepareQuery'\n\t| 'drizzle.buildSQL'\n\t| 'drizzle.execute'\n\t| 'drizzle.driver.execute'\n\t| 'drizzle.mapResponse';\n\n/** @internal */\nexport const tracer = {\n\tstartActiveSpan unknown>(name: SpanName, fn: F): ReturnType {\n\t\tif (!otel) {\n\t\t\treturn fn() as ReturnType;\n\t\t}\n\n\t\tif (!rawTracer) {\n\t\t\trawTracer = otel.trace.getTracer('drizzle-orm', npmVersion);\n\t\t}\n\n\t\treturn iife(\n\t\t\t(otel, rawTracer) =>\n\t\t\t\trawTracer.startActiveSpan(\n\t\t\t\t\tname,\n\t\t\t\t\t((span: Span) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn fn(span);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tspan.setStatus({\n\t\t\t\t\t\t\t\tcode: otel.SpanStatusCode.ERROR,\n\t\t\t\t\t\t\t\tmessage: e instanceof Error ? e.message : 'Unknown error', // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tspan.end();\n\t\t\t\t\t\t}\n\t\t\t\t\t}) as F,\n\t\t\t\t),\n\t\t\totel,\n\t\t\trawTracer,\n\t\t);\n\t},\n};\n", "export const ViewBaseConfig = Symbol.for('drizzle:ViewBaseConfig');\n", "import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig> = Required<\n\tUpdate\n>;\n\n/** @internal */\nexport const TableName = Symbol.for('drizzle:Name');\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel>;\n\t\treadonly inferInsert: InferInsertModel>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel>;\n\tdeclare readonly $inferInsert: InferInsertModel>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record) | undefined = undefined;\n\n\t[IsDrizzleTable] = true;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable> = Table>;\n\nexport function getTableName(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport type MapColumnName =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ? \n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns;\n", "import { entityKind, is } from '~/entity.ts';\nimport type { SelectedFields } from '~/operations.ts';\nimport { Subquery, SubqueryConfig } from '~/subquery.ts';\nimport { tracer } from '~/tracing.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { Table } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder) => QueryTypingsValue;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper {\n\tgetSQL(): SQL;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn typeof value === 'object' && value !== null && 'getSQL' in value\n\t\t&& typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder = noopDecoder;\n\tprivate shouldInlineParams = false;\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\treturn { sql: escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(chunk.name), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tconst mappedValue = (chunk.value === null) ? null : chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] | undefined;\n\t\t\t\tif (prepareTyping !== undefined) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, mappedValue), params: [mappedValue], typings };\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn { sql: escapeName(chunk.fieldAlias), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk[SubqueryConfig].isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk[SubqueryConfig].alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk[SubqueryConfig].sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk[SubqueryConfig].alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased;\n\t/**\n\t * @deprecated\n\t * Use ``sql`query`.as(alias)`` instead.\n\t */\n\tas(): SQL;\n\t/**\n\t * @deprecated\n\t * Use ``sql`query`.as(alias)`` instead.\n\t */\n\tas(alias: string): SQL.Aliased;\n\tas(alias?: string): SQL | SQL.Aliased {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder\n\t\t\t| DriverValueDecoder['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n}\n\nexport type GetDecoderResult = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder\n\t| DriverValueDecoder['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoder {\n\tmapFromDriverValue(value: TDriverParam): TData;\n}\n\nexport interface DriverValueEncoder {\n\tmapToDriverValue(value: TData): TDriverParam | SQL;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder = {\n\tmapFromDriverValue: (value) => value,\n};\n\nexport const noopEncoder: DriverValueEncoder = {\n\tmapToDriverValue: (value) => value,\n};\n\nexport interface DriverValueMapper\n\textends DriverValueDecoder, DriverValueEncoder\n{}\n\nexport const noopMapper: DriverValueMapper = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder = noopEncoder,\n\t) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder,\n): Param {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport function sql(strings: TemplateStringsArray, ...params: any[]): SQL;\n/*\n\tThe type of `params` is specified as `SQLSourceParam[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param` using `buildChunksFromParam(...)`. That's why the overload\n\tspecify `params` as `any[]` and not as `SQLSourceParam[]`. This type is used to make our lives easier and\n\tthe type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder(name: TName): Placeholder {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder,\n\t): Param {\n\t\treturn new Param(value, encoder);\n\t}\n}\n\nexport namespace SQL {\n\texport class Aliased implements SQLWrapper {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL {\n\t\t\treturn this.sql;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder(name: TName): Placeholder {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record;\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: SelectedFields;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: SelectedFields;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Table class to resolve circular dependency\nTable.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n", "import type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport type { Relation } from './relations.ts';\nimport type { View } from './sql/sql.ts';\nimport { SQL, sql } from './sql/sql.ts';\nimport { Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class ColumnAliasProxyHandler implements ProxyHandler {\n\tstatic readonly [entityKind]: string = 'ColumnAliasProxyHandler';\n\n\tconstructor(private table: Table | View) {}\n\n\tget(columnObj: TColumn, prop: string | symbol): any {\n\t\tif (prop === 'table') {\n\t\t\treturn this.table;\n\t\t}\n\n\t\treturn columnObj[prop as keyof TColumn];\n\t}\n}\n\nexport class TableAliasProxyHandler implements ProxyHandler {\n\tstatic readonly [entityKind]: string = 'TableAliasProxyHandler';\n\n\tconstructor(private alias: string, private replaceOriginalName: boolean) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === Table.Symbol.IsAlias) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === Table.Symbol.Name) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...target[ViewBaseConfig as keyof typeof target],\n\t\t\t\tname: this.alias,\n\t\t\t\tisAlias: true,\n\t\t\t};\n\t\t}\n\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = (target as Table)[Table.Symbol.Columns];\n\t\t\tif (!columns) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tconst proxiedColumns: { [key: string]: any } = {};\n\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(\n\t\t\t\t\tcolumns[key]!,\n\t\t\t\t\tnew ColumnAliasProxyHandler(new Proxy(target, this)),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn proxiedColumns;\n\t\t}\n\n\t\tconst value = target[prop as keyof typeof target];\n\t\tif (is(value, Column)) {\n\t\t\treturn new Proxy(value as AnyColumn, new ColumnAliasProxyHandler(new Proxy(target, this)));\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\nexport class RelationTableAliasProxyHandler implements ProxyHandler {\n\tstatic readonly [entityKind]: string = 'RelationTableAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === 'sourceTable') {\n\t\t\treturn aliasedTable(target.sourceTable, this.alias);\n\t\t}\n\n\t\treturn target[prop as keyof typeof target];\n\t}\n}\n\nexport function aliasedTable(table: T, tableAlias: string): T {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false));\n}\n\nexport function aliasedRelation(relation: T, tableAlias: string): T {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\n\nexport function aliasedTableColumn(column: T, tableAlias: string): T {\n\treturn new Proxy(\n\t\tcolumn,\n\t\tnew ColumnAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false))),\n\t);\n}\n\nexport function mapColumnsInAliasedSQLToAlias(query: SQL.Aliased, alias: string): SQL.Aliased {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\n\nexport function mapColumnsInSQLToAlias(query: SQL, alias: string): SQL {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) {\n\t\t\treturn aliasedTableColumn(c, alias);\n\t\t}\n\t\tif (is(c, SQL)) {\n\t\t\treturn mapColumnsInSQLToAlias(c, alias);\n\t\t}\n\t\tif (is(c, SQL.Aliased)) {\n\t\t\treturn mapColumnsInAliasedSQLToAlias(c, alias);\n\t\t}\n\t\treturn c;\n\t}));\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { PgColumn } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport interface ColumnBuilderBaseConfig {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig,\n\tTTableName extends string,\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: T extends { $type: infer U } ? U : T['data'];\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn\n\t\t: never;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig = {\n\tname: string;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type $Type = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig;\n\n\tprotected config: ColumnBuilderRuntimeConfig;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t} as ColumnBuilderRuntimeConfig;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type().primaryKey(),\n\t * \tdetails: json('details').$type().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type(): $Type {\n\t\treturn this as $Type;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull;\n\t}\n\n\t/**\n\t * Adds a `default ` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? HasDefault> : NotNull {\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? HasDefault> : NotNull;\n\t}\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn>\n\t: TDialect extends 'mysql' ? MySqlColumn>\n\t: TDialect extends 'sqlite' ? SQLiteColumn>\n\t: TDialect extends 'common' ? Column>\n\t: never;\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName =\n\tTDialect extends 'pg' ? PgColumn>\n\t\t: TDialect extends 'mysql' ? MySqlColumn>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn>\n\t\t: never;\n", "import { entityKind } from '~/entity.ts';\n\nexport class DrizzleError extends Error {\n\tstatic readonly [entityKind]: string = 'DrizzleError';\n\n\tconstructor({ message, cause }: { message?: string; cause?: unknown }) {\n\t\tsuper(message);\n\t\tthis.name = 'DrizzleError';\n\t\tthis.cause = cause;\n\t}\n}\n\nexport class TransactionRollbackError extends DrizzleError {\n\tstatic readonly [entityKind]: string = 'TransactionRollbackError';\n\n\tconstructor() {\n\t\tsuper({ message: 'Rollback' });\n\t}\n}\n", "import { type AnyColumn, Column, type GetColumnData } from '~/column.ts';\nimport { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport {\n\tisDriverValueEncoder,\n\tisSQLWrapper,\n\tParam,\n\tPlaceholder,\n\tSQL,\n\tsql,\n\ttype SQLChunk,\n\ttype SQLWrapper,\n\tStringChunk,\n\tView,\n} from '../sql.ts';\n\nexport function bindIfParam(value: unknown, column: SQLWrapper): SQLChunk {\n\tif (\n\t\tisDriverValueEncoder(column)\n\t\t&& !isSQLWrapper(value)\n\t\t&& !is(value, Param)\n\t\t&& !is(value, Placeholder)\n\t\t&& !is(value, Column)\n\t\t&& !is(value, Table)\n\t\t&& !is(value, View)\n\t) {\n\t\treturn new Param(value, column);\n\t}\n\treturn value as SQLChunk;\n}\n\nexport interface BinaryOperator {\n\t(\n\t\tleft: TColumn,\n\t\tright: GetColumnData | SQLWrapper,\n\t): SQL;\n\t(left: SQL.Aliased, right: T | SQLWrapper): SQL;\n\t(\n\t\tleft: Exclude,\n\t\tright: unknown,\n\t): SQL;\n}\n\n/**\n * Test that two values are equal.\n *\n * Remember that the SQL standard dictates that\n * two NULL values are not equal, so if you want to test\n * whether a value is null, you may want to use\n * `isNull` instead.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made by Ford\n * db.select().from(cars)\n * .where(eq(cars.make, 'Ford'))\n * ```\n *\n * @see isNull for a way to test equality to NULL.\n */\nexport const eq: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} = ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that two values are not equal.\n *\n * Remember that the SQL standard dictates that\n * two NULL values are not equal, so if you want to test\n * whether a value is not null, you may want to use\n * `isNotNull` instead.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars not made by Ford\n * db.select().from(cars)\n * .where(ne(cars.make, 'Ford'))\n * ```\n *\n * @see isNotNull for a way to test whether a value is not null.\n */\nexport const ne: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} <> ${bindIfParam(right, left)}`;\n};\n\n/**\n * Combine a list of conditions with the `and` operator. Conditions\n * that are equal `undefined` are automatically ignored.\n *\n * ## Examples\n *\n * ```ts\n * db.select().from(cars)\n * .where(\n * and(\n * eq(cars.make, 'Volvo'),\n * eq(cars.year, 1950),\n * )\n * )\n * ```\n */\nexport function and(...conditions: (SQLWrapper | undefined)[]): SQL | undefined;\nexport function and(\n\t...unfilteredConditions: (SQLWrapper | undefined)[]\n): SQL | undefined {\n\tconst conditions = unfilteredConditions.filter(\n\t\t(c): c is Exclude => c !== undefined,\n\t);\n\n\tif (conditions.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tif (conditions.length === 1) {\n\t\treturn new SQL(conditions);\n\t}\n\n\treturn new SQL([\n\t\tnew StringChunk('('),\n\t\tsql.join(conditions, new StringChunk(' and ')),\n\t\tnew StringChunk(')'),\n\t]);\n}\n\n/**\n * Combine a list of conditions with the `or` operator. Conditions\n * that are equal `undefined` are automatically ignored.\n *\n * ## Examples\n *\n * ```ts\n * db.select().from(cars)\n * .where(\n * or(\n * eq(cars.make, 'GM'),\n * eq(cars.make, 'Ford'),\n * )\n * )\n * ```\n */\nexport function or(...conditions: (SQLWrapper | undefined)[]): SQL | undefined;\nexport function or(\n\t...unfilteredConditions: (SQLWrapper | undefined)[]\n): SQL | undefined {\n\tconst conditions = unfilteredConditions.filter(\n\t\t(c): c is Exclude => c !== undefined,\n\t);\n\n\tif (conditions.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tif (conditions.length === 1) {\n\t\treturn new SQL(conditions);\n\t}\n\n\treturn new SQL([\n\t\tnew StringChunk('('),\n\t\tsql.join(conditions, new StringChunk(' or ')),\n\t\tnew StringChunk(')'),\n\t]);\n}\n\n/**\n * Negate the meaning of an expression using the `not` keyword.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars _not_ made by GM or Ford.\n * db.select().from(cars)\n * .where(not(inArray(cars.make, ['GM', 'Ford'])))\n * ```\n */\nexport function not(condition: SQLWrapper): SQL {\n\treturn sql`not ${condition}`;\n}\n\n/**\n * Test that the first expression passed is greater than\n * the second expression.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made after 2000.\n * db.select().from(cars)\n * .where(gt(cars.year, 2000))\n * ```\n *\n * @see gte for greater-than-or-equal\n */\nexport const gt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} > ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that the first expression passed is greater than\n * or equal to the second expression. Use `gt` to\n * test whether an expression is strictly greater\n * than another.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made on or after 2000.\n * db.select().from(cars)\n * .where(gte(cars.year, 2000))\n * ```\n *\n * @see gt for a strictly greater-than condition\n */\nexport const gte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} >= ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that the first expression passed is less than\n * the second expression.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made before 2000.\n * db.select().from(cars)\n * .where(lt(cars.year, 2000))\n * ```\n *\n * @see lte for greater-than-or-equal\n */\nexport const lt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} < ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that the first expression passed is less than\n * or equal to the second expression.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made before 2000.\n * db.select().from(cars)\n * .where(lte(cars.year, 2000))\n * ```\n *\n * @see lt for a strictly less-than condition\n */\nexport const lte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} <= ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test whether the first parameter, a column or expression,\n * has a value from a list passed as the second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made by Ford or GM.\n * db.select().from(cars)\n * .where(inArray(cars.make, ['Ford', 'GM']))\n * ```\n *\n * @see notInArray for the inverse of this test\n */\nexport function inArray(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function inArray(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function inArray(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function inArray(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('inArray requires at least one value');\n\t\t}\n\t\treturn sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\n\treturn sql`${column} in ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test whether the first parameter, a column or expression,\n * has a value that is not present in a list passed as the\n * second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made by any company except Ford or GM.\n * db.select().from(cars)\n * .where(notInArray(cars.make, ['Ford', 'GM']))\n * ```\n *\n * @see inArray for the inverse of this test\n */\nexport function notInArray(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function notInArray(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function notInArray(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function notInArray(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('notInArray requires at least one value');\n\t\t}\n\t\treturn sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\n\treturn sql`${column} not in ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test whether an expression is NULL. By the SQL standard,\n * NULL is neither equal nor not equal to itself, so\n * it's recommended to use `isNull` and `notIsNull` for\n * comparisons to NULL.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars that have no discontinuedAt date.\n * db.select().from(cars)\n * .where(isNull(cars.discontinuedAt))\n * ```\n *\n * @see isNotNull for the inverse of this test\n */\nexport function isNull(value: SQLWrapper): SQL {\n\treturn sql`${value} is null`;\n}\n\n/**\n * Test whether an expression is not NULL. By the SQL standard,\n * NULL is neither equal nor not equal to itself, so\n * it's recommended to use `isNull` and `notIsNull` for\n * comparisons to NULL.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars that have been discontinued.\n * db.select().from(cars)\n * .where(isNotNull(cars.discontinuedAt))\n * ```\n *\n * @see isNull for the inverse of this test\n */\nexport function isNotNull(value: SQLWrapper): SQL {\n\treturn sql`${value} is not null`;\n}\n\n/**\n * Test whether a subquery evaluates to have any rows.\n *\n * ## Examples\n *\n * ```ts\n * // Users whose `homeCity` column has a match in a cities\n * // table.\n * db\n * .select()\n * .from(users)\n * .where(\n * exists(db.select()\n * .from(cities)\n * .where(eq(users.homeCity, cities.id))),\n * );\n * ```\n *\n * @see notExists for the inverse of this test\n */\nexport function exists(subquery: SQLWrapper): SQL {\n\treturn sql`exists ${subquery}`;\n}\n\n/**\n * Test whether a subquery doesn't include any result\n * rows.\n *\n * ## Examples\n *\n * ```ts\n * // Users whose `homeCity` column doesn't match\n * // a row in the cities table.\n * db\n * .select()\n * .from(users)\n * .where(\n * notExists(db.select()\n * .from(cities)\n * .where(eq(users.homeCity, cities.id))),\n * );\n * ```\n *\n * @see exists for the inverse of this test\n */\nexport function notExists(subquery: SQLWrapper): SQL {\n\treturn sql`not exists ${subquery}`;\n}\n\n/**\n * Test whether an expression is between two values. This\n * is an easier way to express range tests, which would be\n * expressed mathematically as `x <= a <= y` but in SQL\n * would have to be like `a >= x AND a <= y`.\n *\n * Between is inclusive of the endpoints: if `column`\n * is equal to `min` or `max`, it will be TRUE.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made between 1990 and 2000\n * db.select().from(cars)\n * .where(between(cars.year, 1990, 2000))\n * ```\n *\n * @see notBetween for the inverse of this test\n */\nexport function between(\n\tcolumn: SQL.Aliased,\n\tmin: T | SQLWrapper,\n\tmax: T | SQLWrapper,\n): SQL;\nexport function between(\n\tcolumn: TColumn,\n\tmin: GetColumnData | SQLWrapper,\n\tmax: GetColumnData | SQLWrapper,\n): SQL;\nexport function between(\n\tcolumn: Exclude,\n\tmin: unknown,\n\tmax: unknown,\n): SQL;\nexport function between(column: SQLWrapper, min: unknown, max: unknown): SQL {\n\treturn sql`${column} between ${bindIfParam(min, column)} and ${\n\t\tbindIfParam(\n\t\t\tmax,\n\t\t\tcolumn,\n\t\t)\n\t}`;\n}\n\n/**\n * Test whether an expression is not between two values.\n *\n * This, like `between`, includes its endpoints, so if\n * the `column` is equal to `min` or `max`, in this case\n * it will evaluate to FALSE.\n *\n * ## Examples\n *\n * ```ts\n * // Exclude cars made in the 1970s\n * db.select().from(cars)\n * .where(notBetween(cars.year, 1970, 1979))\n * ```\n *\n * @see between for the inverse of this test\n */\nexport function notBetween(\n\tcolumn: SQL.Aliased,\n\tmin: T | SQLWrapper,\n\tmax: T | SQLWrapper,\n): SQL;\nexport function notBetween(\n\tcolumn: TColumn,\n\tmin: GetColumnData | SQLWrapper,\n\tmax: GetColumnData | SQLWrapper,\n): SQL;\nexport function notBetween(\n\tcolumn: Exclude,\n\tmin: unknown,\n\tmax: unknown,\n): SQL;\nexport function notBetween(\n\tcolumn: SQLWrapper,\n\tmin: unknown,\n\tmax: unknown,\n): SQL {\n\treturn sql`${column} not between ${\n\t\tbindIfParam(\n\t\t\tmin,\n\t\t\tcolumn,\n\t\t)\n\t} and ${bindIfParam(max, column)}`;\n}\n\n/**\n * Compare a column to a pattern, which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars with 'Turbo' in their names.\n * db.select().from(cars)\n * .where(like(cars.name, '%Turbo%'))\n * ```\n *\n * @see ilike for a case-insensitive version of this condition\n */\nexport function like(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} like ${value}`;\n}\n\n/**\n * The inverse of like - this tests that a given column\n * does not match a pattern, which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars that don't have \"ROver\" in their name.\n * db.select().from(cars)\n * .where(notLike(cars.name, '%Rover%'))\n * ```\n *\n * @see like for the inverse condition\n * @see notIlike for a case-insensitive version of this condition\n */\nexport function notLike(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} not like ${value}`;\n}\n\n/**\n * Case-insensitively compare a column to a pattern,\n * which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * Unlike like, this performs a case-insensitive comparison.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars with 'Turbo' in their names.\n * db.select().from(cars)\n * .where(ilike(cars.name, '%Turbo%'))\n * ```\n *\n * @see like for a case-sensitive version of this condition\n */\nexport function ilike(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} ilike ${value}`;\n}\n\n/**\n * The inverse of ilike - this case-insensitively tests that a given column\n * does not match a pattern, which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars that don't have \"Rover\" in their name.\n * db.select().from(cars)\n * .where(notLike(cars.name, '%Rover%'))\n * ```\n *\n * @see ilike for the inverse condition\n * @see notLike for a case-sensitive version of this condition\n */\nexport function notIlike(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} not ilike ${value}`;\n}\n\n/**\n * Test that a column or expression contains all elements of\n * the list passed as the second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select posts where its tags contain \"Typescript\" and \"ORM\".\n * db.select().from(posts)\n * .where(arrayContains(posts.tags, ['Typescript', 'ORM']))\n * ```\n *\n * @see arrayContained to find if an array contains all elements of a column or expression\n * @see arrayOverlaps to find if a column or expression contains any elements of an array\n */\nexport function arrayContains(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContains(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContains(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function arrayContains(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('arrayContains requires at least one value');\n\t\t}\n\t\tconst array = sql`${bindIfParam(values, column)}`;\n\t\treturn sql`${column} @> ${array}`;\n\t}\n\n\treturn sql`${column} @> ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test that the list passed as the second argument contains\n * all elements of a column or expression.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select posts where its tags contain \"Typescript\", \"ORM\" or both,\n * // but filtering posts that have additional tags.\n * db.select().from(posts)\n * .where(arrayContained(posts.tags, ['Typescript', 'ORM']))\n * ```\n *\n * @see arrayContains to find if a column or expression contains all elements of an array\n * @see arrayOverlaps to find if a column or expression contains any elements of an array\n */\nexport function arrayContained(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContained(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContained(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function arrayContained(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('arrayContained requires at least one value');\n\t\t}\n\t\tconst array = sql`${bindIfParam(values, column)}`;\n\t\treturn sql`${column} <@ ${array}`;\n\t}\n\n\treturn sql`${column} <@ ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test that a column or expression contains any elements of\n * the list passed as the second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select posts where its tags contain \"Typescript\", \"ORM\" or both.\n * db.select().from(posts)\n * .where(arrayOverlaps(posts.tags, ['Typescript', 'ORM']))\n * ```\n *\n * @see arrayContains to find if a column or expression contains all elements of an array\n * @see arrayContained to find if an array contains all elements of a column or expression\n */\nexport function arrayOverlaps(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayOverlaps(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayOverlaps(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function arrayOverlaps(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('arrayOverlaps requires at least one value');\n\t\t}\n\t\tconst array = sql`${bindIfParam(values, column)}`;\n\t\treturn sql`${column} && ${array}`;\n\t}\n\n\treturn sql`${column} && ${bindIfParam(values, column)}`;\n}\n", "import type { AnyColumn } from '../../column.ts';\nimport type { SQL, SQLWrapper } from '../sql.ts';\nimport { sql } from '../sql.ts';\n\n/**\n * Used in sorting, this specifies that the given\n * column or expression should be sorted in ascending\n * order. By the SQL standard, ascending order is the\n * default, so it is not usually necessary to specify\n * ascending sort order.\n *\n * ## Examples\n *\n * ```ts\n * // Return cars, starting with the oldest models\n * // and going in ascending order to the newest.\n * db.select().from(cars)\n * .orderBy(asc(cars.year));\n * ```\n *\n * @see desc to sort in descending order\n */\nexport function asc(column: AnyColumn | SQLWrapper): SQL {\n\treturn sql`${column} asc`;\n}\n\n/**\n * Used in sorting, this specifies that the given\n * column or expression should be sorted in descending\n * order.\n *\n * ## Examples\n *\n * ```ts\n * // Select users, with the most recently created\n * // records coming first.\n * db.select().from(users)\n * .orderBy(desc(users.createdAt));\n * ```\n *\n * @see asc to sort in ascending order\n */\nexport function desc(column: AnyColumn | SQLWrapper): SQL {\n\treturn sql`${column} desc`;\n}\n", "import { entityKind } from '~/entity.ts';\n\nexport interface Logger {\n\tlogQuery(query: string, params: unknown[]): void;\n}\n\nexport interface LogWriter {\n\twrite(message: string): void;\n}\n\nexport class ConsoleLogWriter implements LogWriter {\n\tstatic readonly [entityKind]: string = 'ConsoleLogWriter';\n\n\twrite(message: string) {\n\t\tconsole.log(message);\n\t}\n}\n\nexport class DefaultLogger implements Logger {\n\tstatic readonly [entityKind]: string = 'DefaultLogger';\n\n\treadonly writer: LogWriter;\n\n\tconstructor(config?: { writer: LogWriter }) {\n\t\tthis.writer = config?.writer ?? new ConsoleLogWriter();\n\t}\n\n\tlogQuery(query: string, params: unknown[]): void {\n\t\tconst stringifiedParams = params.map((p) => {\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(p);\n\t\t\t} catch {\n\t\t\t\treturn String(p);\n\t\t\t}\n\t\t});\n\t\tconst paramsStr = stringifiedParams.length ? ` -- params: [${stringifiedParams.join(', ')}]` : '';\n\t\tthis.writer.write(`Query: ${query}${paramsStr}`);\n\t}\n}\n\nexport class NoopLogger implements Logger {\n\tstatic readonly [entityKind]: string = 'NoopLogger';\n\n\tlogQuery(): void {\n\t\t// noop\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\n\nexport abstract class QueryPromise implements Promise {\n\tstatic readonly [entityKind]: string = 'QueryPromise';\n\n\t[Symbol.toStringTag] = 'QueryPromise';\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => TResult | PromiseLike) | null | undefined,\n\t): Promise {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n\n\tthen(\n\t\tonFulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null,\n\t\tonRejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null,\n\t): Promise {\n\t\treturn this.execute().then(onFulfilled, onRejected);\n\t}\n\n\tabstract execute(): Promise;\n}\n", "import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n\nexport class PgTable extends Table {\n\tstatic readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n}\n\nexport type AnyPgTable = {}> = PgTable>;\n\nexport type PgTableWithColumns =\n\t& PgTable\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildColumns) => PgTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table;\n}\n\nexport interface PgTableFn {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnyPgColumn, PgColumn } from './columns/index.ts';\nimport { PgTable } from './table.ts';\n\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumn extends AnyPgColumn<{ tableName: TTableName }>,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n>(config: { name?: string; columns: [TColumn, ...TColumns] }): PrimaryKeyBuilder;\n/**\n * @deprecated: Please use primaryKey({ columns: [] }) instead of this function\n * @param columns\n */\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n>(...columns: TColumns): PrimaryKeyBuilder;\nexport function primaryKey(...config: any) {\n\tif (config[0].columns) {\n\t\treturn new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\t}\n\treturn new PrimaryKeyBuilder(config);\n}\n\nexport class PrimaryKeyBuilder {\n\tstatic readonly [entityKind]: string = 'PgPrimaryKeyBuilder';\n\n\t/** @internal */\n\tcolumns: PgColumn[];\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tcolumns: PgColumn[],\n\t\tname?: string,\n\t) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\t/** @internal */\n\tbuild(table: PgTable): PrimaryKey {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n}\n\nexport class PrimaryKey {\n\tstatic readonly [entityKind]: string = 'PgPrimaryKey';\n\n\treadonly columns: AnyPgColumn<{}>[];\n\treadonly name?: string;\n\n\tconstructor(readonly table: PgTable, columns: AnyPgColumn<{}>[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name ?? `${this.table[PgTable.Symbol.Name]}_${this.columns.map((column) => column.name).join('_')}_pk`;\n\t}\n}\n", "import { type AnyTable, type InferModelFromColumns, isTable, Table } from '~/table.ts';\nimport { type AnyColumn, Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';\nimport {\n\tand,\n\tasc,\n\tbetween,\n\tdesc,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tisNotNull,\n\tisNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotIlike,\n\tnotInArray,\n\tnotLike,\n\tor,\n} from './sql/expressions/index.ts';\nimport { type Placeholder, SQL, sql } from './sql/sql.ts';\nimport type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';\n\nexport abstract class Relation {\n\tstatic readonly [entityKind]: string = 'Relation';\n\n\tdeclare readonly $brand: 'Relation';\n\treadonly referencedTableName: TTableName;\n\tfieldName!: string;\n\n\tconstructor(\n\t\treadonly sourceTable: Table,\n\t\treadonly referencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly relationName: string | undefined,\n\t) {\n\t\tthis.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;\n\t}\n\n\tabstract withFieldName(fieldName: string): Relation;\n}\n\nexport class Relations<\n\tTTableName extends string = string,\n\tTConfig extends Record = Record,\n> {\n\tstatic readonly [entityKind]: string = 'Relations';\n\n\tdeclare readonly $brand: 'Relations';\n\n\tconstructor(\n\t\treadonly table: AnyTable<{ name: TTableName }>,\n\t\treadonly config: (helpers: TableRelationsHelpers) => TConfig,\n\t) {}\n}\n\nexport class One<\n\tTTableName extends string = string,\n\tTIsNullable extends boolean = boolean,\n> extends Relation {\n\tstatic readonly [entityKind]: string = 'One';\n\n\tdeclare protected $relationBrand: 'One';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config:\n\t\t\t| RelationConfig<\n\t\t\t\tTTableName,\n\t\t\t\tstring,\n\t\t\t\tAnyColumn<{ tableName: TTableName }>[]\n\t\t\t>\n\t\t\t| undefined,\n\t\treadonly isNullable: TIsNullable,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): One {\n\t\tconst relation = new One(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t\tthis.isNullable,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport class Many extends Relation {\n\tstatic readonly [entityKind]: string = 'Many';\n\n\tdeclare protected $relationBrand: 'Many';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config: { relationName: string } | undefined,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): Many {\n\t\tconst relation = new Many(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport type TableRelationsKeysOnly<\n\tTSchema extends Record,\n\tTTableName extends string,\n\tK extends keyof TSchema,\n> = TSchema[K] extends Relations ? K : never;\n\nexport type ExtractTableRelationsFromSchema<\n\tTSchema extends Record,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TableRelationsKeysOnly<\n\t\t\t\tTSchema,\n\t\t\t\tTTableName,\n\t\t\t\tK\n\t\t\t>\n\t\t]: TSchema[K] extends Relations ? TConfig : never;\n\t}\n>;\n\nexport type ExtractObjectValues = T[keyof T];\n\nexport type ExtractRelationsFromTableExtraConfigSchema<\n\tTConfig extends unknown[],\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TConfig as TConfig[K] extends Relations ? K\n\t\t\t\t: never\n\t\t]: TConfig[K] extends Relations ? TRelationConfig\n\t\t\t: never;\n\t}\n>;\n\nexport function getOperators() {\n\treturn {\n\t\tand,\n\t\tbetween,\n\t\teq,\n\t\texists,\n\t\tgt,\n\t\tgte,\n\t\tilike,\n\t\tinArray,\n\t\tisNull,\n\t\tisNotNull,\n\t\tlike,\n\t\tlt,\n\t\tlte,\n\t\tne,\n\t\tnot,\n\t\tnotBetween,\n\t\tnotExists,\n\t\tnotLike,\n\t\tnotIlike,\n\t\tnotInArray,\n\t\tor,\n\t\tsql,\n\t};\n}\n\nexport type Operators = ReturnType;\n\nexport function getOrderByOperators() {\n\treturn {\n\t\tsql,\n\t\tasc,\n\t\tdesc,\n\t};\n}\n\nexport type OrderByOperators = ReturnType;\n\nexport type FindTableByDBName<\n\tTSchema extends TablesRelationalConfig,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K\n\t\t\t\t: never\n\t\t]: TSchema[K];\n\t}\n>;\n\nexport type DBQueryConfig<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> =\n\t& {\n\t\tcolumns?: {\n\t\t\t[K in keyof TTableConfig['columns']]?: boolean;\n\t\t};\n\t\twith?: {\n\t\t\t[K in keyof TTableConfig['relations']]?:\n\t\t\t\t| true\n\t\t\t\t| DBQueryConfig<\n\t\t\t\t\tTTableConfig['relations'][K] extends One ? 'one' : 'many',\n\t\t\t\t\tfalse,\n\t\t\t\t\tTSchema,\n\t\t\t\t\tFindTableByDBName<\n\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\tTTableConfig['relations'][K]['referencedTableName']\n\t\t\t\t\t>\n\t\t\t\t>;\n\t\t};\n\t\textras?:\n\t\t\t| Record\n\t\t\t| ((\n\t\t\t\tfields: Simplify<\n\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t>,\n\t\t\t\toperators: { sql: Operators['sql'] },\n\t\t\t) => Record);\n\t}\n\t& (TRelationType extends 'many' ? \n\t\t\t& {\n\t\t\t\twhere?:\n\t\t\t\t\t| SQL\n\t\t\t\t\t| undefined\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: Operators,\n\t\t\t\t\t) => SQL | undefined);\n\t\t\t\torderBy?:\n\t\t\t\t\t| ValueOrArray\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: OrderByOperators,\n\t\t\t\t\t) => ValueOrArray);\n\t\t\t\tlimit?: number | Placeholder;\n\t\t\t}\n\t\t\t& (TIsRoot extends true ? {\n\t\t\t\t\toffset?: number | Placeholder;\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t: {});\n\nexport interface TableRelationalConfig {\n\ttsName: string;\n\tdbName: string;\n\tcolumns: Record;\n\trelations: Record;\n\tprimaryKey: AnyColumn[];\n\tschema?: string;\n}\n\nexport type TablesRelationalConfig = Record;\n\nexport interface RelationalSchemaConfig<\n\tTSchema extends TablesRelationalConfig,\n> {\n\tfullSchema: Record;\n\tschema: TSchema;\n\ttableNamesMap: Record;\n}\n\nexport type ExtractTablesWithRelations<\n\tTSchema extends Record,\n> = {\n\t[\n\t\tK in keyof TSchema as TSchema[K] extends Table ? K\n\t\t\t: never\n\t]: TSchema[K] extends Table ? {\n\t\t\ttsName: K & string;\n\t\t\tdbName: TSchema[K]['_']['name'];\n\t\t\tcolumns: TSchema[K]['_']['columns'];\n\t\t\trelations: ExtractTableRelationsFromSchema<\n\t\t\t\tTSchema,\n\t\t\t\tTSchema[K]['_']['name']\n\t\t\t>;\n\t\t\tprimaryKey: AnyColumn[];\n\t\t}\n\t\t: never;\n};\n\nexport type ReturnTypeOrValue = T extends (...args: any[]) => infer R ? R\n\t: T;\n\nexport type BuildRelationResult<\n\tTSchema extends TablesRelationalConfig,\n\tTInclude,\n\tTRelations extends Record,\n> = {\n\t[\n\t\tK in\n\t\t\t& NonUndefinedKeysOnly\n\t\t\t& keyof TRelations\n\t]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<\n\t\t\tTSchema,\n\t\t\tFindTableByDBName,\n\t\t\tAssume>\n\t\t> extends infer TResult ? TRel extends One ? \n\t\t\t\t\t| TResult\n\t\t\t\t\t| (Equal extends true ? null : never)\n\t\t\t: TResult[]\n\t\t: never\n\t\t: never;\n};\n\nexport type NonUndefinedKeysOnly =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type BuildQueryResult<\n\tTSchema extends TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig,\n\tTFullSelection extends true | Record,\n> = Equal extends true ? InferModelFromColumns\n\t: TFullSelection extends Record ? Simplify<\n\t\t\t& (TFullSelection['columns'] extends Record ? InferModelFromColumns<\n\t\t\t\t\t{\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tK in Equal<\n\t\t\t\t\t\t\t\tExclude<\n\t\t\t\t\t\t\t\t\tTFullSelection['columns'][\n\t\t\t\t\t\t\t\t\t\t& keyof TFullSelection['columns']\n\t\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t> extends true ? Exclude<\n\t\t\t\t\t\t\t\t\tkeyof TTableConfig['columns'],\n\t\t\t\t\t\t\t\t\tNonUndefinedKeysOnly\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t& {\n\t\t\t\t\t\t\t\t\t\t[K in keyof TFullSelection['columns']]: Equal<\n\t\t\t\t\t\t\t\t\t\t\tTFullSelection['columns'][K],\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t> extends true ? K\n\t\t\t\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t\t\t\t}[keyof TFullSelection['columns']]\n\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t]: TTableConfig['columns'][K];\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t: InferModelFromColumns)\n\t\t\t& (TFullSelection['extras'] extends\n\t\t\t\t| Record\n\t\t\t\t| ((...args: any[]) => Record) ? {\n\t\t\t\t\t[\n\t\t\t\t\t\tK in NonUndefinedKeysOnly<\n\t\t\t\t\t\t\tReturnTypeOrValue\n\t\t\t\t\t\t>\n\t\t\t\t\t]: Assume<\n\t\t\t\t\t\tReturnTypeOrValue[K],\n\t\t\t\t\t\tSQL.Aliased\n\t\t\t\t\t>['_']['type'];\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t\t& (TFullSelection['with'] extends Record ? BuildRelationResult<\n\t\t\t\t\tTSchema,\n\t\t\t\t\tTFullSelection['with'],\n\t\t\t\t\tTTableConfig['relations']\n\t\t\t\t>\n\t\t\t\t: {})\n\t\t>\n\t: never;\n\nexport interface RelationConfig<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> {\n\trelationName?: string;\n\tfields: TColumns;\n\treferences: ColumnsWithTable;\n}\n\nexport function extractTablesRelationalConfig<\n\tTTables extends TablesRelationalConfig,\n>(\n\tschema: Record,\n\tconfigHelpers: (table: Table) => any,\n): { tables: TTables; tableNamesMap: Record } {\n\tif (\n\t\tObject.keys(schema).length === 1\n\t\t&& 'default' in schema\n\t\t&& !is(schema['default'], Table)\n\t) {\n\t\tschema = schema['default'] as Record;\n\t}\n\n\t// table DB name -> schema table key\n\tconst tableNamesMap: Record = {};\n\t// Table relations found before their tables - need to buffer them until we know the schema table key\n\tconst relationsBuffer: Record<\n\t\tstring,\n\t\t{ relations: Record; primaryKey?: AnyColumn[] }\n\t> = {};\n\tconst tablesConfig: TablesRelationalConfig = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (isTable(value)) {\n\t\t\tconst dbName = value[Table.Symbol.Name];\n\t\t\tconst bufferedRelations = relationsBuffer[dbName];\n\t\t\ttableNamesMap[dbName] = key;\n\t\t\ttablesConfig[key] = {\n\t\t\t\ttsName: key,\n\t\t\t\tdbName: value[Table.Symbol.Name],\n\t\t\t\tschema: value[Table.Symbol.Schema],\n\t\t\t\tcolumns: value[Table.Symbol.Columns],\n\t\t\t\trelations: bufferedRelations?.relations ?? {},\n\t\t\t\tprimaryKey: bufferedRelations?.primaryKey ?? [],\n\t\t\t};\n\n\t\t\t// Fill in primary keys\n\t\t\tfor (\n\t\t\t\tconst column of Object.values(\n\t\t\t\t\t(value as Table)[Table.Symbol.Columns],\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (column.primary) {\n\t\t\t\t\ttablesConfig[key]!.primaryKey.push(column);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.(value);\n\t\t\tif (extraConfig) {\n\t\t\t\tfor (const configEntry of Object.values(extraConfig)) {\n\t\t\t\t\tif (is(configEntry, PrimaryKeyBuilder)) {\n\t\t\t\t\t\ttablesConfig[key]!.primaryKey.push(...configEntry.columns);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (is(value, Relations)) {\n\t\t\tconst dbName: string = value.table[Table.Symbol.Name];\n\t\t\tconst tableName = tableNamesMap[dbName];\n\t\t\tconst relations: Record = value.config(\n\t\t\t\tconfigHelpers(value.table),\n\t\t\t);\n\t\t\tlet primaryKey: AnyColumn[] | undefined;\n\n\t\t\tfor (const [relationName, relation] of Object.entries(relations)) {\n\t\t\t\tif (tableName) {\n\t\t\t\t\tconst tableConfig = tablesConfig[tableName]!;\n\t\t\t\t\ttableConfig.relations[relationName] = relation;\n\t\t\t\t\tif (primaryKey) {\n\t\t\t\t\t\ttableConfig.primaryKey.push(...primaryKey);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(dbName in relationsBuffer)) {\n\t\t\t\t\t\trelationsBuffer[dbName] = {\n\t\t\t\t\t\t\trelations: {},\n\t\t\t\t\t\t\tprimaryKey,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\trelationsBuffer[dbName]!.relations[relationName] = relation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { tables: tablesConfig as TTables, tableNamesMap };\n}\n\nexport function relations<\n\tTTableName extends string,\n\tTRelations extends Record>,\n>(\n\ttable: AnyTable<{ name: TTableName }>,\n\trelations: (helpers: TableRelationsHelpers) => TRelations,\n): Relations {\n\treturn new Relations(\n\t\ttable,\n\t\t(helpers: TableRelationsHelpers) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(relations(helpers)).map(([key, value]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue.withFieldName(key),\n\t\t\t\t]),\n\t\t\t) as TRelations,\n\t);\n}\n\nexport function createOne(sourceTable: Table) {\n\treturn function one<\n\t\tTForeignTable extends Table,\n\t\tTColumns extends [\n\t\t\tAnyColumn<{ tableName: TTableName }>,\n\t\t\t...AnyColumn<{ tableName: TTableName }>[],\n\t\t],\n\t>(\n\t\ttable: TForeignTable,\n\t\tconfig?: RelationConfig,\n\t): One<\n\t\tTForeignTable['_']['name'],\n\t\tEqual\n\t> {\n\t\treturn new One(\n\t\t\tsourceTable,\n\t\t\ttable,\n\t\t\tconfig,\n\t\t\t(config?.fields.reduce((res, f) => res && f.notNull, true)\n\t\t\t\t?? false) as Equal,\n\t\t);\n\t};\n}\n\nexport function createMany(sourceTable: Table) {\n\treturn function many(\n\t\treferencedTable: TForeignTable,\n\t\tconfig?: { relationName: string },\n\t): Many {\n\t\treturn new Many(sourceTable, referencedTable, config);\n\t};\n}\n\nexport interface NormalizedRelation {\n\tfields: AnyColumn[];\n\treferences: AnyColumn[];\n}\n\nexport function normalizeRelation(\n\tschema: TablesRelationalConfig,\n\ttableNamesMap: Record,\n\trelation: Relation,\n): NormalizedRelation {\n\tif (is(relation, One) && relation.config) {\n\t\treturn {\n\t\t\tfields: relation.config.fields,\n\t\t\treferences: relation.config.references,\n\t\t};\n\t}\n\n\tconst referencedTableTsName = tableNamesMap[relation.referencedTable[Table.Symbol.Name]];\n\tif (!referencedTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${relation.referencedTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst referencedTableConfig = schema[referencedTableTsName];\n\tif (!referencedTableConfig) {\n\t\tthrow new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n\t}\n\n\tconst sourceTable = relation.sourceTable;\n\tconst sourceTableTsName = tableNamesMap[sourceTable[Table.Symbol.Name]];\n\tif (!sourceTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${sourceTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst reverseRelations: Relation[] = [];\n\tfor (\n\t\tconst referencedTableRelation of Object.values(\n\t\t\treferencedTableConfig.relations,\n\t\t)\n\t) {\n\t\tif (\n\t\t\t(relation.relationName\n\t\t\t\t&& relation !== referencedTableRelation\n\t\t\t\t&& referencedTableRelation.relationName === relation.relationName)\n\t\t\t|| (!relation.relationName\n\t\t\t\t&& referencedTableRelation.referencedTable === relation.sourceTable)\n\t\t) {\n\t\t\treverseRelations.push(referencedTableRelation);\n\t\t}\n\t}\n\n\tif (reverseRelations.length > 1) {\n\t\tthrow relation.relationName\n\t\t\t? new Error(\n\t\t\t\t`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`,\n\t\t\t)\n\t\t\t: new Error(\n\t\t\t\t`There are multiple relations between \"${referencedTableTsName}\" and \"${\n\t\t\t\t\trelation.sourceTable[Table.Symbol.Name]\n\t\t\t\t}\". Please specify relation name`,\n\t\t\t);\n\t}\n\n\tif (\n\t\treverseRelations[0]\n\t\t&& is(reverseRelations[0], One)\n\t\t&& reverseRelations[0].config\n\t) {\n\t\treturn {\n\t\t\tfields: reverseRelations[0].config.references,\n\t\t\treferences: reverseRelations[0].config.fields,\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`,\n\t);\n}\n\nexport function createTableRelationsHelpers(\n\tsourceTable: AnyTable<{ name: TTableName }>,\n) {\n\treturn {\n\t\tone: createOne(sourceTable),\n\t\tmany: createMany(sourceTable),\n\t};\n}\n\nexport type TableRelationsHelpers = ReturnType<\n\ttypeof createTableRelationsHelpers\n>;\n\nexport interface BuildRelationalQueryResult<\n\tTTable extends Table = Table,\n\tTColumn extends Column = Column,\n> {\n\ttableTsKey: string;\n\tselection: {\n\t\tdbKey: string;\n\t\ttsKey: string;\n\t\tfield: TColumn | SQL | SQL.Aliased;\n\t\trelationTableTsKey: string | undefined;\n\t\tisJson: boolean;\n\t\tisExtra?: boolean;\n\t\tselection: BuildRelationalQueryResult['selection'];\n\t}[];\n\tsql: TTable | SQL;\n}\n\nexport function mapRelationalRow(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record {\n\tconst result: Record = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst rawSubRows = row[selectionItemIndex] as\n\t\t\t\t| unknown[]\n\t\t\t\t| null\n\t\t\t\t| [null]\n\t\t\t\t| string;\n\t\t\tconst subRows = typeof rawSubRows === 'string'\n\t\t\t\t? (JSON.parse(rawSubRows) as unknown[])\n\t\t\t\t: rawSubRows;\n\t\t\tresult[selectionItem.tsKey] = is(relation, One)\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: (subRows as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n", "import { is } from '~/entity.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\nimport { type AnyColumn, Column } from '~/column.ts';\n\n/**\n * Returns the number of values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number employees with null values\n * db.select({ value: count() }).from(employees)\n * // Number of employees where `name` is not null\n * db.select({ value: count(employees.name) }).from(employees)\n * ```\n * \n * @see countDistinct to get the number of non-duplicate values in `expression`\n */\nexport function count(expression?: SQLWrapper): SQL {\n return sql`count(${expression || sql.raw('*')})`.mapWith(Number);\n}\n\n/**\n * Returns the number of non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number of employees where `name` is distinct\n * db.select({ value: countDistinct(employees.name) }).from(employees)\n * ```\n * \n * @see count to get the number of values in `expression`, including duplicates\n */\nexport function countDistinct(expression: SQLWrapper): SQL {\n return sql`count(distinct ${expression})`.mapWith(Number);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee\n * db.select({ value: avg(employees.salary) }).from(employees)\n * ```\n * \n * @see avgDistinct to get the average of all non-null and non-duplicate values in `expression`\n */\nexport function avg(expression: SQLWrapper): SQL {\n return sql`avg(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee where `salary` is distinct\n * db.select({ value: avgDistinct(employees.salary) }).from(employees)\n * ```\n * \n * @see avg to get the average of all non-null values in `expression`, including duplicates\n */\nexport function avgDistinct(expression: SQLWrapper): SQL {\n return sql`avg(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary\n * db.select({ value: sum(employees.salary) }).from(employees)\n * ```\n * \n * @see sumDistinct to get the sum of all non-null and non-duplicate values in `expression`\n */\nexport function sum(expression: SQLWrapper): SQL {\n return sql`sum(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary where `salary` is distinct (no duplicates)\n * db.select({ value: sumDistinct(employees.salary) }).from(employees)\n * ```\n * \n * @see sum to get the sum of all non-null values in `expression`, including duplicates\n */\nexport function sumDistinct(expression: SQLWrapper): SQL {\n return sql`sum(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the maximum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the highest salary\n * db.select({ value: max(employees.salary) }).from(employees)\n * ```\n */\nexport function max(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n return sql`max(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n\n/**\n * Returns the minimum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the lowest salary\n * db.select({ value: min(employees.salary) }).from(employees)\n * ```\n */\nexport function min(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n return sql`min(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n", "import type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery, SubqueryConfig } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow(\n\tcolumns: SelectedFieldsOrdered,\n\trow: unknown[],\n\tjoinsNotNullableMap: Record | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record = {};\n\n\tconst result = columns.reduce>(\n\t\t(result, { path, field }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal */\nexport function orderSelectedFields(\n\tfields: Record,\n\tpathPrefix?: string[],\n): SelectedFieldsOrdered {\n\treturn Object.entries(fields).reduce>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record, newPath));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered;\n}\n\nexport function haveSameKeys(left: Record, right: Record) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record;\n\nexport type OneOrMany = T | T[];\n\nexport type Update = Simplify<\n\t& {\n\t\t[K in Exclude]: T[K];\n\t}\n\t& TUpdate\n>;\n\nexport type Simplify =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type SimplifyMappedType = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume = T extends U ? T : U;\n\nexport type Equal = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse = If extends true ? Then : Else;\n\nexport type PromiseOf = T extends Promise ? U : T;\n\nexport type Writable = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport function getTableColumns(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table[SubqueryConfig].alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport interface DrizzleConfig = Record> {\n\tlogger?: boolean | Logger;\n\tschema?: TSchema;\n}\nexport type ValidateShape = T extends ValidShape\n\t? Exclude extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny = 0 extends (1 & T) ? true : false;\n", "import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { SQLiteColumn, SQLiteColumnBuilder, SQLiteColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type SQLiteTableExtraConfig = Record<\n\tstring,\n\t| IndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:SQLiteInlineForeignKeys');\n\nexport class SQLiteTable extends Table {\n\tstatic readonly [entityKind]: string = 'SQLiteTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable;\n\n\t/** @internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record) => SQLiteTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnySQLiteTable = {}> = SQLiteTable<\n\tUpdateTableConfig\n>;\n\nexport type SQLiteTableWithColumns =\n\t& SQLiteTable\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport interface SQLiteTableFn {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns) => SQLiteTableExtraConfig,\n\t): SQLiteTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'sqlite';\n\t}>;\n}\n\nfunction sqliteTableBase<\n\tTTableName extends string,\n\tTColumnsMap extends Record,\n\tTSchema extends string | undefined,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig?: (self: BuildColumns) => SQLiteTableExtraConfig,\n\tschema?: TSchema,\n\tbaseName = name,\n): SQLiteTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchema;\n\tcolumns: BuildColumns;\n\tdialect: 'sqlite';\n}> {\n\tconst rawTable = new SQLiteTable<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'sqlite';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as SQLiteColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\n\tif (extraConfig) {\n\t\ttable[SQLiteTable.Symbol.ExtraConfigBuilder] = extraConfig as (\n\t\t\tself: Record,\n\t\t) => SQLiteTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport const sqliteTable: SQLiteTableFn = (name, columns, extraConfig) => {\n\treturn sqliteTableBase(name, columns, extraConfig);\n};\n\nexport function sqliteTableCreator(customizeTableName: (name: string) => string): SQLiteTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn sqliteTableBase(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from './columns/index.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';\n\nexport type Reference = () => {\n\treadonly name?: string;\n\treadonly columns: SQLiteColumn[];\n\treadonly foreignTable: SQLiteTable;\n\treadonly foreignColumns: SQLiteColumn[];\n};\n\nexport class ForeignKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteForeignKeyBuilder';\n\n\tdeclare _: {\n\t\tbrand: 'SQLiteForeignKeyBuilder';\n\t\tforeignTableName: 'TForeignTableName';\n\t};\n\n\t/** @internal */\n\treference: Reference;\n\n\t/** @internal */\n\t_onUpdate: UpdateDeleteAction | undefined;\n\n\t/** @internal */\n\t_onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(\n\t\tconfig: () => {\n\t\t\tname?: string;\n\t\t\tcolumns: SQLiteColumn[];\n\t\t\tforeignColumns: SQLiteColumn[];\n\t\t},\n\t\tactions?: {\n\t\t\tonUpdate?: UpdateDeleteAction;\n\t\t\tonDelete?: UpdateDeleteAction;\n\t\t} | undefined,\n\t) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn { name, columns, foreignTable: foreignColumns[0]!.table as SQLiteTable, foreignColumns };\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\n\tonUpdate(action: UpdateDeleteAction): this {\n\t\tthis._onUpdate = action;\n\t\treturn this;\n\t}\n\n\tonDelete(action: UpdateDeleteAction): this {\n\t\tthis._onDelete = action;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): ForeignKey {\n\t\treturn new ForeignKey(table, this);\n\t}\n}\n\nexport class ForeignKey {\n\tstatic readonly [entityKind]: string = 'SQLiteForeignKey';\n\n\treadonly reference: Reference;\n\treadonly onUpdate: UpdateDeleteAction | undefined;\n\treadonly onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(readonly table: SQLiteTable, builder: ForeignKeyBuilder) {\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\n\tgetName(): string {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[SQLiteTable.Symbol.Name],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0]!.table[SQLiteTable.Symbol.Name],\n\t\t\t...foreignColumnNames,\n\t\t];\n\t\treturn name ?? `${chunks.join('_')}_fk`;\n\t}\n}\n\ntype ColumnsWithTable<\n\tTTableName extends string,\n\tTColumns extends SQLiteColumn[],\n> = { [Key in keyof TColumns]: AnySQLiteColumn<{ tableName: TTableName }> };\n\n/**\n * @deprecated please use `foreignKey({ columns: [], foreignColumns: [] })` syntax without callback\n * @param config\n * @returns\n */\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnySQLiteColumn<{ tableName: TTableName }>, ...AnySQLiteColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: () => {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder;\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnySQLiteColumn<{ tableName: TTableName }>, ...AnySQLiteColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder;\nexport function foreignKey(\n\tconfig: any,\n): ForeignKeyBuilder {\n\tfunction mappedConfig() {\n\t\tif (typeof config === 'function') {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\tcolumns,\n\t\t\t\tforeignColumns,\n\t\t\t};\n\t\t}\n\t\treturn config;\n\t}\n\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SQLiteColumn } from './columns/common.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport function uniqueKeyName(table: SQLiteTable, columns: string[]) {\n\treturn `${table[SQLiteTable.Symbol.Name]}_${columns.join('_')}_unique`;\n}\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [SQLiteColumn, ...SQLiteColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraint';\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name?: string;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport { Column } from '~/column.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/sqlite-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/sqlite-core/foreign-keys.ts';\nimport type { AnySQLiteTable, SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => SQLiteColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface SQLiteColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase {}\n\nexport abstract class SQLiteColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = object,\n> extends ColumnBuilder\n\timplements SQLiteColumnBuilderBase\n{\n\tstatic readonly [entityKind]: string = 'SQLiteColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: SQLiteColumn, table: SQLiteTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteColumn>;\n}\n\n// To understand how to use `SQLiteColumn` and `AnySQLiteColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class SQLiteColumn<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends Column {\n\tstatic readonly [entityKind]: string = 'SQLiteColumn';\n\n\tconstructor(\n\t\toverride readonly table: SQLiteTable,\n\t\tconfig: ColumnBuilderRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnySQLiteColumn> = {}> = SQLiteColumn<\n\tRequired, TPartial>>\n>;\n", "import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tMakeColumnConfig,\n\tNotNull,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { OnConflict } from '~/sqlite-core/utils.ts';\nimport type { Equal, Or } from '~/utils.ts';\nimport type { AnySQLiteTable } from '../table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport interface PrimaryKeyConfig {\n\tautoIncrement?: boolean;\n\tonConflict?: OnConflict;\n}\n\nexport abstract class SQLiteBaseIntegerBuilder<\n\tT extends ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumnBuilder<\n\tT,\n\tTRuntimeConfig & { autoIncrement: boolean },\n\t{},\n\t{ primaryKeyHasDefault: true }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteBaseIntegerBuilder';\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\toverride primaryKey(config?: PrimaryKeyConfig): HasDefault> {\n\t\tif (config?.autoIncrement) {\n\t\t\tthis.config.autoIncrement = true;\n\t\t}\n\t\tthis.config.hasDefault = true;\n\t\treturn super.primaryKey() as HasDefault>;\n\t}\n\n\t/** @internal */\n\tabstract override build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBaseInteger>;\n}\n\nexport abstract class SQLiteBaseInteger<\n\tT extends ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumn {\n\tstatic readonly [entityKind]: string = 'SQLiteBaseInteger';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n\n\tgetSQLType(): string {\n\t\treturn 'integer';\n\t}\n}\n\nexport type SQLiteIntegerBuilderInitial = SQLiteIntegerBuilder<{\n\tname: TName;\n\tdataType: 'number';\n\tcolumnType: 'SQLiteInteger';\n\tdata: number;\n\tdriverParam: number;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteIntegerBuilder>\n\textends SQLiteBaseIntegerBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteIntegerBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'number', 'SQLiteInteger');\n\t}\n\n\tbuild(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteInteger> {\n\t\treturn new SQLiteInteger>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteInteger> extends SQLiteBaseInteger {\n\tstatic readonly [entityKind]: string = 'SQLiteInteger';\n}\n\nexport type SQLiteTimestampBuilderInitial = SQLiteTimestampBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'SQLiteTimestamp';\n\tdata: Date;\n\tdriverParam: number;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteTimestampBuilder>\n\textends SQLiteBaseIntegerBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTimestampBuilder';\n\n\tconstructor(name: T['name'], mode: 'timestamp' | 'timestamp_ms') {\n\t\tsuper(name, 'date', 'SQLiteTimestamp');\n\t\tthis.config.mode = mode;\n\t}\n\n\t/**\n\t * @deprecated Use `default()` with your own expression instead.\n\t *\n\t * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n\t */\n\tdefaultNow(): HasDefault {\n\t\treturn this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`) as any;\n\t}\n\n\tbuild(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTimestamp> {\n\t\treturn new SQLiteTimestamp>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteTimestamp>\n\textends SQLiteBaseInteger\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTimestamp';\n\n\treadonly mode: 'timestamp' | 'timestamp_ms' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): Date {\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn new Date(value * 1000);\n\t\t}\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date): number {\n\t\tconst unix = value.getTime();\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn Math.floor(unix / 1000);\n\t\t}\n\t\treturn unix;\n\t}\n}\n\nexport type SQLiteBooleanBuilderInitial = SQLiteBooleanBuilder<{\n\tname: TName;\n\tdataType: 'boolean';\n\tcolumnType: 'SQLiteBoolean';\n\tdata: boolean;\n\tdriverParam: number;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBooleanBuilder>\n\textends SQLiteBaseIntegerBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteBooleanBuilder';\n\n\tconstructor(name: T['name'], mode: 'boolean') {\n\t\tsuper(name, 'boolean', 'SQLiteBoolean');\n\t\tthis.config.mode = mode;\n\t}\n\n\tbuild(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBoolean> {\n\t\treturn new SQLiteBoolean>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteBoolean>\n\textends SQLiteBaseInteger\n{\n\tstatic readonly [entityKind]: string = 'SQLiteBoolean';\n\n\treadonly mode: 'boolean' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): boolean {\n\t\treturn Number(value) === 1;\n\t}\n\n\toverride mapToDriverValue(value: boolean): number {\n\t\treturn value ? 1 : 0;\n\t}\n}\n\nexport interface IntegerConfig<\n\tTMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =\n\t\t| 'number'\n\t\t| 'timestamp'\n\t\t| 'timestamp_ms'\n\t\t| 'boolean',\n> {\n\tmode: TMode;\n}\n\nexport function integer(\n\tname: TName,\n\tconfig?: IntegerConfig,\n): Or, Equal> extends true ? SQLiteTimestampBuilderInitial\n\t: Equal extends true ? SQLiteBooleanBuilderInitial\n\t: SQLiteIntegerBuilderInitial;\nexport function integer(name: string, config?: IntegerConfig) {\n\tif (config?.mode === 'timestamp' || config?.mode === 'timestamp_ms') {\n\t\treturn new SQLiteTimestampBuilder(name, config.mode);\n\t}\n\tif (config?.mode === 'boolean') {\n\t\treturn new SQLiteBooleanBuilder(name, config.mode);\n\t}\n\treturn new SQLiteIntegerBuilder(name);\n}\n\nexport const int = integer;\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Equal, Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n}>;\n\nexport class SQLiteTextBuilder> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText> {\n\t\treturn new SQLiteText>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class SQLiteText>\n\textends SQLiteColumn\n{\n\tstatic readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: number | undefined = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder>\n\textends SQLiteColumnBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson> {\n\t\treturn new SQLiteTextJson>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson>\n\textends SQLiteColumn\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: number;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig: SQLiteTextConfig> = {} as SQLiteTextConfig>,\n): Equal extends true ? SQLiteTextJsonBuilderInitial\n\t: SQLiteTextBuilderInitial>\n{\n\treturn (config.mode === 'json'\n\t\t? new SQLiteTextJsonBuilder(name)\n\t\t: new SQLiteTextBuilder(name, config as SQLiteTextConfig<'text', Writable>)) as Equal extends true\n\t\t\t? SQLiteTextJsonBuilderInitial\n\t\t\t: SQLiteTextBuilderInitial>;\n}\n", "import { ColumnAliasProxyHandler, TableAliasProxyHandler } from './alias.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { SQL, View } from './sql/sql.ts';\nimport { Subquery, SubqueryConfig } from './subquery.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class SelectionProxyHandler | View>\n\timplements ProxyHandler | View>\n{\n\tstatic readonly [entityKind]: string = 'SelectionProxyHandler';\n\n\tprivate config: {\n\t\t/**\n\t\t * Table alias for the columns\n\t\t */\n\t\talias?: string;\n\t\t/**\n\t\t * What to do when a field is an instance of `SQL.Aliased` and it's not a selection field (from a subquery)\n\t\t *\n\t\t * `sql` - return the underlying SQL expression\n\t\t *\n\t\t * `alias` - return the field alias\n\t\t */\n\t\tsqlAliasedBehavior: 'sql' | 'alias';\n\t\t/**\n\t\t * What to do when a field is an instance of `SQL` and it doesn't have an alias declared\n\t\t *\n\t\t * `sql` - return the underlying SQL expression\n\t\t *\n\t\t * `error` - return a DrizzleTypeError on type level and throw an error on runtime\n\t\t */\n\t\tsqlBehavior: 'sql' | 'error';\n\n\t\t/**\n\t\t * Whether to replace the original name of the column with the alias\n\t\t * Should be set to `true` for views creation\n\t\t * @default false\n\t\t */\n\t\treplaceOriginalName?: boolean;\n\t};\n\n\tconstructor(config: SelectionProxyHandler['config']) {\n\t\tthis.config = { ...config };\n\t}\n\n\tget(subquery: T, prop: string | symbol): any {\n\t\tif (prop === SubqueryConfig) {\n\t\t\treturn {\n\t\t\t\t...subquery[SubqueryConfig as keyof typeof subquery],\n\t\t\t\tselection: new Proxy(\n\t\t\t\t\t(subquery as Subquery)[SubqueryConfig].selection,\n\t\t\t\t\tthis as ProxyHandler>,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...subquery[ViewBaseConfig as keyof typeof subquery],\n\t\t\t\tselectedFields: new Proxy(\n\t\t\t\t\t(subquery as View)[ViewBaseConfig].selectedFields,\n\t\t\t\t\tthis as ProxyHandler>,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (typeof prop === 'symbol') {\n\t\t\treturn subquery[prop as keyof typeof subquery];\n\t\t}\n\n\t\tconst columns = is(subquery, Subquery)\n\t\t\t? subquery[SubqueryConfig].selection\n\t\t\t: is(subquery, View)\n\t\t\t? subquery[ViewBaseConfig].selectedFields\n\t\t\t: subquery;\n\t\tconst value: unknown = columns[prop as keyof typeof columns];\n\n\t\tif (is(value, SQL.Aliased)) {\n\t\t\t// Never return the underlying SQL expression for a field previously selected in a subquery\n\t\t\tif (this.config.sqlAliasedBehavior === 'sql' && !value.isSelectionField) {\n\t\t\t\treturn value.sql;\n\t\t\t}\n\n\t\t\tconst newValue = value.clone();\n\t\t\tnewValue.isSelectionField = true;\n\t\t\treturn newValue;\n\t\t}\n\n\t\tif (is(value, SQL)) {\n\t\t\tif (this.config.sqlBehavior === 'sql') {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`You tried to reference \"${prop}\" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using \".as('alias')\" method.`,\n\t\t\t);\n\t\t}\n\n\t\tif (is(value, Column)) {\n\t\t\tif (this.config.alias) {\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tvalue,\n\t\t\t\t\tnew ColumnAliasProxyHandler(\n\t\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\t\tvalue.table,\n\t\t\t\t\t\t\tnew TableAliasProxyHandler(this.config.alias, this.config.replaceOriginalName ?? false),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn new Proxy(value, new SelectionProxyHandler(this.config));\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type DrizzleTypeError, orderSelectedFields } from '~/utils.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\n\nexport type SQLiteDeleteWithout<\n\tT extends AnySQLiteDeleteBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T\n\t: Omit<\n\t\tSQLiteDeleteBase<\n\t\t\tT['_']['table'],\n\t\t\tT['_']['resultType'],\n\t\t\tT['_']['runResult'],\n\t\t\tT['_']['returning'],\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>,\n\t\tT['_']['excludedMethods'] | K\n\t>;\n\nexport type SQLiteDelete<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning extends Record | undefined = undefined,\n> = SQLiteDeleteBase;\n\nexport interface SQLiteDeleteConfig {\n\twhere?: SQL | undefined;\n\ttable: SQLiteTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteDeleteReturningAll<\n\tT extends AnySQLiteDeleteBase,\n\tTDynamic extends boolean,\n> = SQLiteDeleteWithout<\n\tSQLiteDeleteBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tT['_']['dynamic'],\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteDeleteReturning<\n\tT extends AnySQLiteDeleteBase,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteDeleteWithout<\n\tSQLiteDeleteBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields,\n\t\tT['_']['dynamic'],\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteDeleteExecute = T['_']['returning'] extends undefined\n\t? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteDeletePrepare = SQLitePreparedQuery<{\n\ttype: T['_']['resultType'];\n\trun: T['_']['runResult'];\n\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t: T['_']['returning'][];\n\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t: T['_']['returning'] | undefined;\n\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t: any[][];\n\texecute: SQLiteDeleteExecute;\n}>;\n\nexport type SQLiteDeleteDynamic = SQLiteDelete<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type AnySQLiteDeleteBase = SQLiteDeleteBase;\n\nexport interface SQLiteDeleteBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning extends Record | undefined = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tQueryPromise,\n\tRunnableQuery,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\tdialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteDeleteBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning extends Record | undefined = undefined,\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteDelete';\n\n\t/** @internal */\n\tconfig: SQLiteDeleteConfig;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: SQLiteSession,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, withList };\n\t}\n\n\t/**\n\t * Adds a `where` clause to the query.\n\t *\n\t * Calling this method will delete only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param where the `where` clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be deleted.\n\t *\n\t * ```ts\n\t * // Delete all cars with green color\n\t * db.delete(cars).where(eq(cars.color, 'green'));\n\t * // or\n\t * db.delete(cars).where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Delete all BMW cars with a green color\n\t * db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Delete all cars with the green or blue color\n\t * db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteDeleteWithout {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the deleted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete#delete-with-return}\n\t *\n\t * @example\n\t * ```ts\n\t * // Delete all cars with the green color and return all fields\n\t * const deletedCars: Car[] = await db.delete(cars)\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Delete all cars with the green color and return only their id and brand fields\n\t * const deletedCarsIdsAndBrands: { id: number, brand: string }[] = await db.delete(cars)\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteDeleteReturningAll;\n\treturning(\n\t\tfields: TSelectedFields,\n\t): SQLiteDeleteReturning;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteDeleteReturning {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildDeleteQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteDeletePrepare {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t) as SQLiteDeletePrepare;\n\t}\n\n\tprepare(): SQLiteDeletePrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(placeholderValues?: Record): Promise> {\n\t\treturn this._prepare().execute(placeholderValues) as SQLiteDeleteExecute;\n\t}\n\n\t$dynamic(): SQLiteDeleteDynamic {\n\t\treturn this as any;\n\t}\n}\n", "import { entityKind, is } from '~/entity.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { IndexColumn } from '~/sqlite-core/indexes.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { type DrizzleTypeError, mapUpdateSet, orderSelectedFields, type Simplify } from '~/utils.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\nimport type { SQLiteUpdateSetSource } from './update.ts';\n\nexport interface SQLiteInsertConfig {\n\ttable: TTable;\n\tvalues: Record[];\n\twithList?: Subquery[];\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n}\n\nexport type SQLiteInsertValue = Simplify<\n\t{\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n>;\n\nexport class SQLiteInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteInsertBuilder';\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tvalues(value: SQLiteInsertValue): SQLiteInsertBase;\n\tvalues(values: SQLiteInsertValue[]): SQLiteInsertBase;\n\tvalues(\n\t\tvalues: SQLiteInsertValue | SQLiteInsertValue[],\n\t): SQLiteInsertBase {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\t// if (mappedValues.length > 1 && mappedValues.some((t) => Object.keys(t).length === 0)) {\n\t\t// \tthrow new Error(\n\t\t// \t\t`One of the values you want to insert is empty. In SQLite you can insert only one empty object per statement. For this case Drizzle with use \"INSERT INTO ... DEFAULT VALUES\" syntax`,\n\t\t// \t);\n\t\t// }\n\n\t\treturn new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n}\n\nexport type SQLiteInsertWithout =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tSQLiteInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['resultType'],\n\t\t\t\tT['_']['runResult'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | K\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type SQLiteInsertReturning<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertReturningAll<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertOnConflictDoUpdateConfig = {\n\ttarget: IndexColumn | IndexColumn[];\n\twhere?: SQL;\n\tset: SQLiteUpdateSetSource;\n};\n\nexport type SQLiteInsertDynamic = SQLiteInsert<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteInsertExecute = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteInsertPrepare = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteInsertExecute;\n\t}\n>;\n\nexport type AnySQLiteInsert = SQLiteInsertBase;\n\nexport type SQLiteInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteInsertBase;\n\nexport interface SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLWrapper,\n\tQueryPromise,\n\tRunnableQuery\n{\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteInsert';\n\n\t/** @internal */\n\tconfig: SQLiteInsertConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SQLiteInsertConfig['values'],\n\t\tprivate session: SQLiteSession,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values, withList };\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the inserted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#insert-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and return all fields\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t *\n\t * // Insert one row and return only the id\n\t * const insertedCarId: { id: number }[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning({ id: cars.id });\n\t * ```\n\t */\n\treturning(): SQLiteInsertReturningAll;\n\treturning(\n\t\tfields: TSelectedFields,\n\t): SQLiteInsertReturning;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteInsertWithout {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `on conflict do nothing` clause to the query.\n\t *\n\t * Calling this method simply avoids inserting a row as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t *\n\t * @param config The `target` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and cancel the insert if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing();\n\t *\n\t * // Explicitly specify conflict target\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing({ target: cars.id });\n\t * ```\n\t */\n\tonConflictDoNothing(config: { target?: IndexColumn | IndexColumn[]; where?: SQL } = {}): this {\n\t\tif (config.target === undefined) {\n\t\t\tthis.config.onConflict = sql`do nothing`;\n\t\t} else {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict = sql`${targetSql} do nothing${whereSql}`;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an `on conflict do update` clause to the query.\n\t *\n\t * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t *\n\t * @param config The `target`, `set` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Update the row if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'Porsche' }\n\t * });\n\t *\n\t * // Upsert with 'where' clause\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'newBMW' },\n\t * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t * });\n\t * ```\n\t */\n\tonConflictDoUpdate(config: SQLiteInsertOnConflictDoUpdateConfig): this {\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict = sql`${targetSql} do update set ${setSql}${whereSql}`;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteInsertPrepare {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t) as SQLiteInsertPrepare;\n\t}\n\n\tprepare(): SQLiteInsertPrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteInsertExecute;\n\t}\n\n\t$dynamic(): SQLiteInsertDynamic {\n\t\treturn this as any;\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { ColumnsSelection} from '~/sql/sql.ts';\nimport { View } from '~/sql/sql.ts';\n\nexport abstract class SQLiteViewBase<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> extends View {\n\tstatic readonly [entityKind]: string = 'SQLiteViewBase';\n\n\tdeclare _: View['_'] & {\n\t\tviewBrand: 'SQLiteView';\n\t};\n}\n", "import { aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias } from '~/alias.ts';\nimport type { AnyColumn } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError } from '~/errors.ts';\nimport type { MigrationConfig, MigrationMeta } from '~/migrator.ts';\nimport {\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tgetOperators,\n\tgetOrderByOperators,\n\tMany,\n\tnormalizeRelation,\n\tOne,\n\ttype Relation,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Name } from '~/sql/index.ts';\nimport { and, eq } from '~/sql/index.ts';\nimport { Param, type QueryWithTypings, SQL, sql, type SQLChunk } from '~/sql/sql.ts';\nimport { SQLiteColumn } from '~/sqlite-core/columns/index.ts';\nimport type { SQLiteDeleteConfig, SQLiteInsertConfig, SQLiteUpdateConfig } from '~/sqlite-core/query-builders/index.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery, SubqueryConfig } from '~/subquery.ts';\nimport { getTableName, Table } from '~/table.ts';\nimport { orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type {\n\tSelectedFieldsOrdered,\n\tSQLiteSelectConfig,\n\tSQLiteSelectJoinConfig,\n} from './query-builders/select.types.ts';\nimport type { SQLiteSession } from './session.ts';\nimport { SQLiteViewBase } from './view-base.ts';\n\nexport abstract class SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteDialect';\n\n\tescapeName(name: string): string {\n\t\treturn `\"${name}\"`;\n\t}\n\n\tescapeParam(_num: number): string {\n\t\treturn '?';\n\t}\n\n\tescapeString(str: string): string {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\n\tprivate buildWithCTE(queries: Subquery[] | undefined): SQL | undefined {\n\t\tif (!queries?.length) return undefined;\n\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w[SubqueryConfig].alias)} as (${w[SubqueryConfig].sql})`);\n\t\t\tif (i < queries.length - 1) {\n\t\t\t\twithSqlChunks.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\n\tbuildDeleteQuery({ table, where, returning, withList }: SQLiteDeleteConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\treturn sql`${withSql}delete from ${table}${whereSql}${returningSql}`;\n\t}\n\n\tbuildUpdateSet(table: SQLiteTable, set: UpdateSet): SQL {\n\t\tconst setEntries = Object.entries(set);\n\n\t\tconst setSize = setEntries.length;\n\t\treturn sql.join(\n\t\t\tsetEntries\n\t\t\t\t.flatMap(([colName, value], i): SQL[] => {\n\t\t\t\t\tconst col: SQLiteColumn = table[Table.Symbol.Columns][colName]!;\n\t\t\t\t\tconst res = sql`${sql.identifier(col.name)} = ${value}`;\n\t\t\t\t\tif (i < setSize - 1) {\n\t\t\t\t\t\treturn [res, sql.raw(', ')];\n\t\t\t\t\t}\n\t\t\t\t\treturn [res];\n\t\t\t\t}),\n\t\t);\n\t}\n\n\tbuildUpdateQuery({ table, set, where, returning, withList }: SQLiteUpdateConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst setSql = this.buildUpdateSet(table, set);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\treturn sql`${withSql}update ${table} set ${setSql}${whereSql}${returningSql}`;\n\t}\n\n\t/**\n\t * Builds selection SQL with provided fields/expressions\n\t *\n\t * Examples:\n\t *\n\t * `select from`\n\t *\n\t * `insert ... returning `\n\t *\n\t * If `isSingleTable` is true, then columns won't be prefixed with table name\n\t */\n\tprivate buildSelection(\n\t\tfields: SelectedFieldsOrdered,\n\t\t{ isSingleTable = false }: { isSingleTable?: boolean } = {},\n\t): SQL {\n\t\tconst columnsLen = fields.length;\n\n\t\tconst chunks = fields\n\t\t\t.flatMap(({ field }, i) => {\n\t\t\t\tconst chunk: SQLChunk[] = [];\n\n\t\t\t\tif (is(field, SQL.Aliased) && field.isSelectionField) {\n\t\t\t\t\tchunk.push(sql.identifier(field.fieldAlias));\n\t\t\t\t} else if (is(field, SQL.Aliased) || is(field, SQL)) {\n\t\t\t\t\tconst query = is(field, SQL.Aliased) ? field.sql : field;\n\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\tnew SQL(\n\t\t\t\t\t\t\t\tquery.queryChunks.map((c) => {\n\t\t\t\t\t\t\t\t\tif (is(c, Column)) {\n\t\t\t\t\t\t\t\t\t\treturn sql.identifier(c.name);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn c;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(query);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (is(field, SQL.Aliased)) {\n\t\t\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t\t\t}\n\t\t\t\t} else if (is(field, Column)) {\n\t\t\t\t\tconst tableName = field.table[Table.Symbol.Name];\n\t\t\t\t\tconst columnName = field.name;\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(sql.identifier(columnName));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(sql`${sql.identifier(tableName)}.${sql.identifier(columnName)}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (i < columnsLen - 1) {\n\t\t\t\t\tchunk.push(sql`, `);\n\t\t\t\t}\n\n\t\t\t\treturn chunk;\n\t\t\t});\n\n\t\treturn sql.join(chunks);\n\t}\n\n\tbuildSelectQuery(\n\t\t{\n\t\t\twithList,\n\t\t\tfields,\n\t\t\tfieldsFlat,\n\t\t\twhere,\n\t\t\thaving,\n\t\t\ttable,\n\t\t\tjoins,\n\t\t\torderBy,\n\t\t\tgroupBy,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tdistinct,\n\t\t\tsetOperators,\n\t\t}: SQLiteSelectConfig,\n\t): SQL {\n\t\tconst fieldsList = fieldsFlat ?? orderSelectedFields(fields);\n\t\tfor (const f of fieldsList) {\n\t\t\tif (\n\t\t\t\tis(f.field, Column)\n\t\t\t\t&& getTableName(f.field.table)\n\t\t\t\t\t!== (is(table, Subquery)\n\t\t\t\t\t\t? table[SubqueryConfig].alias\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].name\n\t\t\t\t\t\t: is(table, SQL)\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: getTableName(table))\n\t\t\t\t&& !((table) =>\n\t\t\t\t\tjoins?.some(({ alias }) =>\n\t\t\t\t\t\talias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])\n\t\t\t\t\t))(f.field.table)\n\t\t\t) {\n\t\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Your \"${\n\t\t\t\t\t\tf.path.join('->')\n\t\t\t\t\t}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst distinctSql = distinct ? sql` distinct` : undefined;\n\n\t\tconst selection = this.buildSelection(fieldsList, { isSingleTable });\n\n\t\tconst tableSql = (() => {\n\t\t\tif (is(table, Table) && table[Table.Symbol.OriginalName] !== table[Table.Symbol.Name]) {\n\t\t\t\treturn sql`${sql.identifier(table[Table.Symbol.OriginalName])} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\t\t}\n\n\t\t\treturn table;\n\t\t})();\n\n\t\tconst joinsArray: SQL[] = [];\n\n\t\tif (joins) {\n\t\t\tfor (const [index, joinMeta] of joins.entries()) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t\tconst table = joinMeta.table;\n\n\t\t\t\tif (is(table, SQLiteTable)) {\n\t\t\t\t\tconst tableName = table[SQLiteTable.Symbol.Name];\n\t\t\t\t\tconst tableSchema = table[SQLiteTable.Symbol.Schema];\n\t\t\t\t\tconst origTableName = table[SQLiteTable.Symbol.OriginalName];\n\t\t\t\t\tconst alias = tableName === origTableName ? undefined : joinMeta.alias;\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined}${\n\t\t\t\t\t\t\tsql.identifier(origTableName)\n\t\t\t\t\t\t}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${table} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (index < joins.length - 1) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst joinsSql = sql.join(joinsArray);\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst havingSql = having ? sql` having ${having}` : undefined;\n\n\t\tconst orderByList: (SQLiteColumn | SQL | SQL.Aliased)[] = [];\n\t\tif (orderBy) {\n\t\t\tfor (const [index, orderByValue] of orderBy.entries()) {\n\t\t\t\torderByList.push(orderByValue);\n\n\t\t\t\tif (index < orderBy.length - 1) {\n\t\t\t\t\torderByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst groupByList: (SQL | AnyColumn | SQL.Aliased)[] = [];\n\t\tif (groupBy) {\n\t\t\tfor (const [index, groupByValue] of groupBy.entries()) {\n\t\t\t\tgroupByList.push(groupByValue);\n\n\t\t\t\tif (index < groupBy.length - 1) {\n\t\t\t\t\tgroupByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst groupBySql = groupByList.length > 0 ? sql` group by ${sql.join(groupByList)}` : undefined;\n\n\t\tconst orderBySql = orderByList.length > 0 ? sql` order by ${sql.join(orderByList)}` : undefined;\n\n\t\tconst limitSql = limit ? sql` limit ${limit}` : undefined;\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\tconst finalQuery =\n\t\t\tsql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}`;\n\n\t\tif (setOperators.length > 0) {\n\t\t\treturn this.buildSetOperations(finalQuery, setOperators);\n\t\t}\n\n\t\treturn finalQuery;\n\t}\n\n\tbuildSetOperations(leftSelect: SQL, setOperators: SQLiteSelectConfig['setOperators']): SQL {\n\t\tconst [setOperator, ...rest] = setOperators;\n\n\t\tif (!setOperator) {\n\t\t\tthrow new Error('Cannot pass undefined values to any set operator');\n\t\t}\n\n\t\tif (rest.length === 0) {\n\t\t\treturn this.buildSetOperationQuery({ leftSelect, setOperator });\n\t\t}\n\n\t\t// Some recursive magic here\n\t\treturn this.buildSetOperations(\n\t\t\tthis.buildSetOperationQuery({ leftSelect, setOperator }),\n\t\t\trest,\n\t\t);\n\t}\n\n\tbuildSetOperationQuery({\n\t\tleftSelect,\n\t\tsetOperator: { type, isAll, rightSelect, limit, orderBy, offset },\n\t}: { leftSelect: SQL; setOperator: SQLiteSelectConfig['setOperators'][number] }): SQL {\n\t\t// SQLite doesn't support parenthesis in set operations\n\t\tconst leftChunk = sql`${leftSelect.getSQL()} `;\n\t\tconst rightChunk = sql`${rightSelect.getSQL()}`;\n\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues: (SQL | Name)[] = [];\n\n\t\t\t// The next bit is necessary because the sql operator replaces ${table.column} with `table`.`column`\n\t\t\t// which is invalid Sql syntax, Table from one of the SELECTs cannot be used in global ORDER clause\n\t\t\tfor (const singleOrderBy of orderBy) {\n\t\t\t\tif (is(singleOrderBy, SQLiteColumn)) {\n\t\t\t\t\torderByValues.push(sql.identifier(singleOrderBy.name));\n\t\t\t\t} else if (is(singleOrderBy, SQL)) {\n\t\t\t\t\tfor (let i = 0; i < singleOrderBy.queryChunks.length; i++) {\n\t\t\t\t\t\tconst chunk = singleOrderBy.queryChunks[i];\n\n\t\t\t\t\t\tif (is(chunk, SQLiteColumn)) {\n\t\t\t\t\t\t\tsingleOrderBy.queryChunks[i] = sql.identifier(chunk.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t} else {\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)}`;\n\t\t}\n\n\t\tconst limitSql = limit ? sql` limit ${limit}` : undefined;\n\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? 'all ' : ''}`);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\n\tbuildInsertQuery({ table, values, onConflict, returning, withList }: SQLiteInsertConfig): SQL {\n\t\t// const isSingleValue = values.length === 1;\n\t\tconst valuesSqlList: ((SQLChunk | SQL)[] | SQL)[] = [];\n\t\tconst columns: Record = table[Table.Symbol.Columns];\n\n\t\tconst colEntries: [string, SQLiteColumn][] = Object.entries(columns);\n\t\tconst insertOrder = colEntries.map(([, column]) => sql.identifier(column.name));\n\n\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\tconst valueList: (SQLChunk | SQL)[] = [];\n\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\tif (colValue === undefined || (is(colValue, Param) && colValue.value === undefined)) {\n\t\t\t\t\tlet defaultValue;\n\t\t\t\t\tif (col.default !== null && col.default !== undefined) {\n\t\t\t\t\t\tdefaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);\n\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t} else if (col.defaultFn !== undefined) {\n\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\tdefaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdefaultValue = sql`null`;\n\t\t\t\t\t}\n\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t} else {\n\t\t\t\t\tvalueList.push(colValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvaluesSqlList.push(valueList);\n\t\t\tif (valueIndex < values.length - 1) {\n\t\t\t\tvaluesSqlList.push(sql`, `);\n\t\t\t}\n\t\t}\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst onConflictSql = onConflict ? sql` on conflict ${onConflict}` : undefined;\n\n\t\t// if (isSingleValue && valuesSqlList.length === 0){\n\t\t// \treturn sql`insert into ${table} default values ${onConflictSql}${returningSql}`;\n\t\t// }\n\n\t\treturn sql`${withSql}insert into ${table} ${insertOrder} values ${valuesSql}${onConflictSql}${returningSql}`;\n\t}\n\n\tsqlToQuery(sql: SQL): QueryWithTypings {\n\t\treturn sql.toQuery({\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t});\n\t}\n\n\tbuildRelationalQuery({\n\t\tfullSchema,\n\t\tschema,\n\t\ttableNamesMap,\n\t\ttable,\n\t\ttableConfig,\n\t\tqueryConfig: config,\n\t\ttableAlias,\n\t\tnestedQueryRelation,\n\t\tjoinOn,\n\t}: {\n\t\tfullSchema: Record;\n\t\tschema: TablesRelationalConfig;\n\t\ttableNamesMap: Record;\n\t\ttable: SQLiteTable;\n\t\ttableConfig: TableRelationalConfig;\n\t\tqueryConfig: true | DBQueryConfig<'many', true>;\n\t\ttableAlias: string;\n\t\tnestedQueryRelation?: Relation;\n\t\tjoinOn?: SQL;\n\t}): BuildRelationalQueryResult {\n\t\tlet selection: BuildRelationalQueryResult['selection'] = [];\n\t\tlet limit, offset, orderBy: SQLiteSelectConfig['orderBy'] = [], where;\n\t\tconst joins: SQLiteSelectJoinConfig[] = [];\n\n\t\tif (config === true) {\n\t\t\tconst selectionEntries = Object.entries(tableConfig.columns);\n\t\t\tselection = selectionEntries.map((\n\t\t\t\t[key, value],\n\t\t\t) => ({\n\t\t\t\tdbKey: value.name,\n\t\t\t\ttsKey: key,\n\t\t\t\tfield: aliasedTableColumn(value as SQLiteColumn, tableAlias),\n\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\tisJson: false,\n\t\t\t\tselection: [],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst aliasedColumns = Object.fromEntries(\n\t\t\t\tObject.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),\n\t\t\t);\n\n\t\t\tif (config.where) {\n\t\t\t\tconst whereSql = typeof config.where === 'function'\n\t\t\t\t\t? config.where(aliasedColumns, getOperators())\n\t\t\t\t\t: config.where;\n\t\t\t\twhere = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);\n\t\t\t}\n\n\t\t\tconst fieldsSelection: { tsKey: string; value: SQLiteColumn | SQL.Aliased }[] = [];\n\t\t\tlet selectedColumns: string[] = [];\n\n\t\t\t// Figure out which columns to select\n\t\t\tif (config.columns) {\n\t\t\t\tlet isIncludeMode = false;\n\n\t\t\t\tfor (const [field, value] of Object.entries(config.columns)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field in tableConfig.columns) {\n\t\t\t\t\t\tif (!isIncludeMode && value === true) {\n\t\t\t\t\t\t\tisIncludeMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselectedColumns.push(field);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (selectedColumns.length > 0) {\n\t\t\t\t\tselectedColumns = isIncludeMode\n\t\t\t\t\t\t? selectedColumns.filter((c) => config.columns?.[c] === true)\n\t\t\t\t\t\t: Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Select all columns if selection is not specified\n\t\t\t\tselectedColumns = Object.keys(tableConfig.columns);\n\t\t\t}\n\n\t\t\tfor (const field of selectedColumns) {\n\t\t\t\tconst column = tableConfig.columns[field]! as SQLiteColumn;\n\t\t\t\tfieldsSelection.push({ tsKey: field, value: column });\n\t\t\t}\n\n\t\t\tlet selectedRelations: {\n\t\t\t\ttsKey: string;\n\t\t\t\tqueryConfig: true | DBQueryConfig<'many', false>;\n\t\t\t\trelation: Relation;\n\t\t\t}[] = [];\n\n\t\t\t// Figure out which relations to select\n\t\t\tif (config.with) {\n\t\t\t\tselectedRelations = Object.entries(config.with)\n\t\t\t\t\t.filter((entry): entry is [typeof entry[0], NonNullable] => !!entry[1])\n\t\t\t\t\t.map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));\n\t\t\t}\n\n\t\t\tlet extras;\n\n\t\t\t// Figure out which extras to select\n\t\t\tif (config.extras) {\n\t\t\t\textras = typeof config.extras === 'function'\n\t\t\t\t\t? config.extras(aliasedColumns, { sql })\n\t\t\t\t\t: config.extras;\n\t\t\t\tfor (const [tsKey, value] of Object.entries(extras)) {\n\t\t\t\t\tfieldsSelection.push({\n\t\t\t\t\t\ttsKey,\n\t\t\t\t\t\tvalue: mapColumnsInAliasedSQLToAlias(value, tableAlias),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Transform `fieldsSelection` into `selection`\n\t\t\t// `fieldsSelection` shouldn't be used after this point\n\t\t\tfor (const { tsKey, value } of fieldsSelection) {\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,\n\t\t\t\t\ttsKey,\n\t\t\t\t\tfield: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,\n\t\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\t\tisJson: false,\n\t\t\t\t\tselection: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet orderByOrig = typeof config.orderBy === 'function'\n\t\t\t\t? config.orderBy(aliasedColumns, getOrderByOperators())\n\t\t\t\t: config.orderBy ?? [];\n\t\t\tif (!Array.isArray(orderByOrig)) {\n\t\t\t\torderByOrig = [orderByOrig];\n\t\t\t}\n\t\t\torderBy = orderByOrig.map((orderByValue) => {\n\t\t\t\tif (is(orderByValue, Column)) {\n\t\t\t\t\treturn aliasedTableColumn(orderByValue, tableAlias) as SQLiteColumn;\n\t\t\t\t}\n\t\t\t\treturn mapColumnsInSQLToAlias(orderByValue, tableAlias);\n\t\t\t});\n\n\t\t\tlimit = config.limit;\n\t\t\toffset = config.offset;\n\n\t\t\t// Process all relations\n\t\t\tfor (\n\t\t\t\tconst {\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tqueryConfig: selectedRelationConfigValue,\n\t\t\t\t\trelation,\n\t\t\t\t} of selectedRelations\n\t\t\t) {\n\t\t\t\tconst normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);\n\t\t\t\tconst relationTableName = relation.referencedTable[Table.Symbol.Name];\n\t\t\t\tconst relationTableTsName = tableNamesMap[relationTableName]!;\n\t\t\t\tconst relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;\n\t\t\t\t// const relationTable = schema[relationTableTsName]!;\n\t\t\t\tconst joinOn = and(\n\t\t\t\t\t...normalizedRelation.fields.map((field, i) =>\n\t\t\t\t\t\teq(\n\t\t\t\t\t\t\taliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),\n\t\t\t\t\t\t\taliasedTableColumn(field, tableAlias),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst builtRelation = this.buildRelationalQuery({\n\t\t\t\t\tfullSchema,\n\t\t\t\t\tschema,\n\t\t\t\t\ttableNamesMap,\n\t\t\t\t\ttable: fullSchema[relationTableTsName] as SQLiteTable,\n\t\t\t\t\ttableConfig: schema[relationTableTsName]!,\n\t\t\t\t\tqueryConfig: is(relation, One)\n\t\t\t\t\t\t? (selectedRelationConfigValue === true\n\t\t\t\t\t\t\t? { limit: 1 }\n\t\t\t\t\t\t\t: { ...selectedRelationConfigValue, limit: 1 })\n\t\t\t\t\t\t: selectedRelationConfigValue,\n\t\t\t\t\ttableAlias: relationTableAlias,\n\t\t\t\t\tjoinOn,\n\t\t\t\t\tnestedQueryRelation: relation,\n\t\t\t\t});\n\t\t\t\tconst field = (sql`(${builtRelation.sql})`).as(selectedRelationTsKey);\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: selectedRelationTsKey,\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tfield,\n\t\t\t\t\trelationTableTsKey: relationTableTsName,\n\t\t\t\t\tisJson: true,\n\t\t\t\t\tselection: builtRelation.selection,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (selection.length === 0) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t`No fields selected for table \"${tableConfig.tsName}\" (\"${tableAlias}\"). You need to have at least one item in \"columns\", \"with\" or \"extras\". If you need to select all columns, omit the \"columns\" key or set it to undefined.`,\n\t\t\t});\n\t\t}\n\n\t\tlet result;\n\n\t\twhere = and(joinOn, where);\n\n\t\tif (nestedQueryRelation) {\n\t\t\tlet field = sql`json_array(${\n\t\t\t\tsql.join(\n\t\t\t\t\tselection.map(({ field }) =>\n\t\t\t\t\t\tis(field, SQLiteColumn) ? sql.identifier(field.name) : is(field, SQL.Aliased) ? field.sql : field\n\t\t\t\t\t),\n\t\t\t\t\tsql`, `,\n\t\t\t\t)\n\t\t\t})`;\n\t\t\tif (is(nestedQueryRelation, Many)) {\n\t\t\t\tfield = sql`coalesce(json_group_array(${field}), json_array())`;\n\t\t\t}\n\t\t\tconst nestedSelection = [{\n\t\t\t\tdbKey: 'data',\n\t\t\t\ttsKey: 'data',\n\t\t\t\tfield: field.as('data'),\n\t\t\t\tisJson: true,\n\t\t\t\trelationTableTsKey: tableConfig.tsName,\n\t\t\t\tselection,\n\t\t\t}];\n\n\t\t\tconst needsSubquery = limit !== undefined || offset !== undefined || orderBy.length > 0;\n\n\t\t\tif (needsSubquery) {\n\t\t\t\tresult = this.buildSelectQuery({\n\t\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\t\tfields: {},\n\t\t\t\t\tfieldsFlat: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: [],\n\t\t\t\t\t\t\tfield: sql.raw('*'),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit,\n\t\t\t\t\toffset,\n\t\t\t\t\torderBy,\n\t\t\t\t\tsetOperators: [],\n\t\t\t\t});\n\n\t\t\t\twhere = undefined;\n\t\t\t\tlimit = undefined;\n\t\t\t\toffset = undefined;\n\t\t\t\torderBy = undefined;\n\t\t\t} else {\n\t\t\t\tresult = aliasedTable(table, tableAlias);\n\t\t\t}\n\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: is(result, SQLiteTable) ? result : new Subquery(result, {}, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: nestedSelection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t} else {\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: selection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\ttableTsKey: tableConfig.tsName,\n\t\t\tsql: result,\n\t\t\tselection,\n\t\t};\n\t}\n}\n\nexport class SQLiteSyncDialect extends SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteSyncDialect';\n\n\tmigrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'sync', unknown, Record, TablesRelationalConfig>,\n\t\tconfig?: string | MigrationConfig,\n\t): void {\n\t\tconst migrationsTable = config === undefined\n\t\t\t? '__drizzle_migrations'\n\t\t\t: typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tsession.run(migrationTableCreate);\n\n\t\tconst dbMigrations = session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\t\tsession.run(sql`BEGIN`);\n\n\t\ttry {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tsession.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tsession.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsession.run(sql`COMMIT`);\n\t\t} catch (e) {\n\t\t\tsession.run(sql`ROLLBACK`);\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class SQLiteAsyncDialect extends SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteAsyncDialect';\n\n\tasync migrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'async', unknown, Record, TablesRelationalConfig>,\n\t\tconfig: string | MigrationConfig,\n\t): Promise {\n\t\tconst migrationsTable = typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tawait session.run(migrationTableCreate);\n\n\t\tconst dbMigrations = await session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\t\tawait session.transaction(async (tx) => {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tawait tx.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tawait tx.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/sql/index.ts';\n\nexport abstract class TypedQueryBuilder implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'TypedQueryBuilder';\n\n\tdeclare _: {\n\t\tselectedFields: TSelection;\n\t\tresult: TResult;\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): TSelection {\n\t\treturn this._.selectedFields;\n\t}\n\n\tabstract getSQL(): SQL;\n}\n", "import { entityKind, is } from '~/entity.ts';\nimport { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type {\n\tBuildSubquerySelection,\n\tGetSelectTableName,\n\tGetSelectTableSelection,\n\tJoinNullability,\n\tJoinType,\n\tSelectMode,\n\tSelectResult,\n\tSetOperator,\n} from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { SQL, View } from '~/sql/sql.ts';\nimport type { ColumnsSelection, Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteColumn } from '~/sqlite-core/columns/index.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLiteSession } from '~/sqlite-core/session.ts';\nimport type { SubqueryWithSelection } from '~/sqlite-core/subquery.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery, SubqueryConfig } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport {\n\tapplyMixins,\n\tgetTableColumns,\n\tgetTableLikeName,\n\thaveSameKeys,\n\torderSelectedFields,\n\ttype ValueOrArray,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { SQLiteViewBase } from '../view-base.ts';\nimport type {\n\tAnySQLiteSelect,\n\tCreateSQLiteSelectFromBuilderMode,\n\tGetSQLiteSetOperators,\n\tSelectedFields,\n\tSetOperatorRightSelect,\n\tSQLiteCreateSetOperatorFn,\n\tSQLiteJoinFn,\n\tSQLiteSelectConfig,\n\tSQLiteSelectDynamic,\n\tSQLiteSelectExecute,\n\tSQLiteSelectHKT,\n\tSQLiteSelectHKTBase,\n\tSQLiteSelectPrepare,\n\tSQLiteSelectWithout,\n\tSQLiteSetOperatorExcludedMethods,\n\tSQLiteSetOperatorWithResult,\n} from './select.types.ts';\n\nexport class SQLiteSelectBuilder<\n\tTSelection extends SelectedFields | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTBuilderMode extends 'db' | 'qb' = 'db',\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSelectBuilder';\n\n\tprivate fields: TSelection;\n\tprivate session: SQLiteSession | undefined;\n\tprivate dialect: SQLiteDialect;\n\tprivate withList: Subquery[] | undefined;\n\tprivate distinct: boolean | undefined;\n\n\tconstructor(\n\t\tconfig: {\n\t\t\tfields: TSelection;\n\t\t\tsession: SQLiteSession | undefined;\n\t\t\tdialect: SQLiteDialect;\n\t\t\twithList?: Subquery[];\n\t\t\tdistinct?: boolean;\n\t\t},\n\t) {\n\t\tthis.fields = config.fields;\n\t\tthis.session = config.session;\n\t\tthis.dialect = config.dialect;\n\t\tthis.withList = config.withList;\n\t\tthis.distinct = config.distinct;\n\t}\n\n\tfrom(\n\t\tsource: TFrom,\n\t): CreateSQLiteSelectFromBuilderMode<\n\t\tTBuilderMode,\n\t\tGetSelectTableName,\n\t\tTResultType,\n\t\tTRunResult,\n\t\tTSelection extends undefined ? GetSelectTableSelection : TSelection,\n\t\tTSelection extends undefined ? 'single' : 'partial'\n\t> {\n\t\tconst isPartialSelect = !!this.fields;\n\n\t\tlet fields: SelectedFields;\n\t\tif (this.fields) {\n\t\t\tfields = this.fields;\n\t\t} else if (is(source, Subquery)) {\n\t\t\t// This is required to use the proxy handler to get the correct field values from the subquery\n\t\t\tfields = Object.fromEntries(\n\t\t\t\tObject.keys(source[SubqueryConfig].selection).map((\n\t\t\t\t\tkey,\n\t\t\t\t) => [key, source[key as unknown as keyof typeof source] as unknown as SelectedFields[string]]),\n\t\t\t);\n\t\t} else if (is(source, SQLiteViewBase)) {\n\t\t\tfields = source[ViewBaseConfig].selectedFields as SelectedFields;\n\t\t} else if (is(source, SQL)) {\n\t\t\tfields = {};\n\t\t} else {\n\t\t\tfields = getTableColumns(source);\n\t\t}\n\n\t\treturn new SQLiteSelectBase({\n\t\t\ttable: source,\n\t\t\tfields,\n\t\t\tisPartialSelect,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\twithList: this.withList,\n\t\t\tdistinct: this.distinct,\n\t\t}) as any;\n\t}\n}\n\nexport abstract class SQLiteSelectQueryBuilderBase<\n\tTHKT extends SQLiteSelectHKTBase,\n\tTTableName extends string | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTNullabilityMap extends Record = TTableName extends string ? Record\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection,\n> extends TypedQueryBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteSelectQueryBuilder';\n\n\toverride readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly hkt: THKT;\n\t\treadonly tableName: TTableName;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly selection: TSelection;\n\t\treadonly selectMode: TSelectMode;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TResult;\n\t\treadonly selectedFields: TSelectedFields;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteSelectConfig;\n\tprotected joinsNotNullableMap: Record;\n\tprivate tableName: string | undefined;\n\tprivate isPartialSelect: boolean;\n\tprotected session: SQLiteSession | undefined;\n\tprotected dialect: SQLiteDialect;\n\n\tconstructor(\n\t\t{ table, fields, isPartialSelect, session, dialect, withList, distinct }: {\n\t\t\ttable: SQLiteSelectConfig['table'];\n\t\t\tfields: SQLiteSelectConfig['fields'];\n\t\t\tisPartialSelect: boolean;\n\t\t\tsession: SQLiteSession | undefined;\n\t\t\tdialect: SQLiteDialect;\n\t\t\twithList: Subquery[] | undefined;\n\t\t\tdistinct: boolean | undefined;\n\t\t},\n\t) {\n\t\tsuper();\n\t\tthis.config = {\n\t\t\twithList,\n\t\t\ttable,\n\t\t\tfields: { ...fields },\n\t\t\tdistinct,\n\t\t\tsetOperators: [],\n\t\t};\n\t\tthis.isPartialSelect = isPartialSelect;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis._ = {\n\t\t\tselectedFields: fields as TSelectedFields,\n\t\t} as this['_'];\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === 'string' ? { [this.tableName]: true } : {};\n\t}\n\n\tprivate createJoin(\n\t\tjoinType: TJoinType,\n\t): SQLiteJoinFn {\n\t\treturn (\n\t\t\ttable: SQLiteTable | Subquery | SQLiteViewBase | SQL,\n\t\t\ton: ((aliases: TSelection) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst baseTableName = this.tableName;\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins?.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (!this.isPartialSelect) {\n\t\t\t\t// If this is the first join and this is not a partial select and we're not selecting from raw SQL, \"move\" the fields from the main table to the nested object\n\t\t\t\tif (Object.keys(this.joinsNotNullableMap).length === 1 && typeof baseTableName === 'string') {\n\t\t\t\t\tthis.config.fields = {\n\t\t\t\t\t\t[baseTableName]: this.config.fields,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (typeof tableName === 'string' && !is(table, SQL)) {\n\t\t\t\t\tconst selection = is(table, Subquery)\n\t\t\t\t\t\t? table[SubqueryConfig].selection\n\t\t\t\t\t\t: is(table, View)\n\t\t\t\t\t\t? table[ViewBaseConfig].selectedFields\n\t\t\t\t\t\t: table[Table.Symbol.Columns];\n\t\t\t\t\tthis.config.fields[tableName] = selection;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.fields,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as TSelection,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!this.config.joins) {\n\t\t\t\tthis.config.joins = [];\n\t\t\t}\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\tif (typeof tableName === 'string') {\n\t\t\t\tswitch (joinType) {\n\t\t\t\t\tcase 'left': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'right': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'inner': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'full': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this as any;\n\t\t};\n\t}\n\n\t/**\n\t * Executes a `left join` operation by adding another table to the current query.\n\t *\n\t * Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#left-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()\n\t * .from(users)\n\t * .leftJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .leftJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\tleftJoin = this.createJoin('left');\n\n\t/**\n\t * Executes a `right join` operation by adding another table to the current query.\n\t *\n\t * Calling this method associates each row of the joined table with the corresponding row from the main table, if a match is found. If no matching row exists, it sets all columns of the main table to null.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#right-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()\n\t * .from(users)\n\t * .rightJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .rightJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\trightJoin = this.createJoin('right');\n\n\t/**\n\t * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.\n\t *\n\t * Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User; pets: Pet }[] = await db.select()\n\t * .from(users)\n\t * .innerJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .innerJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\tinnerJoin = this.createJoin('inner');\n\n\t/**\n\t * Executes a `full join` operation by combining rows from two tables into a new table.\n\t *\n\t * Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#full-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()\n\t * .from(users)\n\t * .fullJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .fullJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\tfullJoin = this.createJoin('full');\n\n\tprivate createSetOperator(\n\t\ttype: SetOperator,\n\t\tisAll: boolean,\n\t): >(\n\t\trightSelection:\n\t\t\t| ((setOperators: GetSQLiteSetOperators) => SetOperatorRightSelect)\n\t\t\t| SetOperatorRightSelect,\n\t) => SQLiteSelectWithout<\n\t\tthis,\n\t\tTDynamic,\n\t\tSQLiteSetOperatorExcludedMethods,\n\t\ttrue\n\t> {\n\t\treturn (rightSelection) => {\n\t\t\tconst rightSelect = (typeof rightSelection === 'function'\n\t\t\t\t? rightSelection(getSQLiteSetOperators())\n\t\t\t\t: rightSelection) as TypedQueryBuilder<\n\t\t\t\t\tany,\n\t\t\t\t\tTResult\n\t\t\t\t>;\n\n\t\t\tif (!haveSameKeys(this.getSelectedFields(), rightSelect.getSelectedFields())) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Set operator error (union / intersect / except): selected fields are not the same or are in a different order',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.setOperators.push({ type, isAll, rightSelect });\n\t\t\treturn this as any;\n\t\t};\n\t}\n\n\t/**\n\t * Adds `union` set operator to the query.\n\t *\n\t * Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique names from customers and users tables\n\t * await db.select({ name: users.name })\n\t * .from(users)\n\t * .union(\n\t * db.select({ name: customers.name }).from(customers)\n\t * );\n\t * // or\n\t * import { union } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await union(\n\t * db.select({ name: users.name }).from(users),\n\t * db.select({ name: customers.name }).from(customers)\n\t * );\n\t * ```\n\t */\n\tunion = this.createSetOperator('union', false);\n\n\t/**\n\t * Adds `union all` set operator to the query.\n\t *\n\t * Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all transaction ids from both online and in-store sales\n\t * await db.select({ transaction: onlineSales.transactionId })\n\t * .from(onlineSales)\n\t * .unionAll(\n\t * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t * );\n\t * // or\n\t * import { unionAll } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await unionAll(\n\t * db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n\t * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t * );\n\t * ```\n\t */\n\tunionAll = this.createSetOperator('union', true);\n\n\t/**\n\t * Adds `intersect` set operator to the query.\n\t *\n\t * Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select course names that are offered in both departments A and B\n\t * await db.select({ courseName: depA.courseName })\n\t * .from(depA)\n\t * .intersect(\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * // or\n\t * import { intersect } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await intersect(\n\t * db.select({ courseName: depA.courseName }).from(depA),\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * ```\n\t */\n\tintersect = this.createSetOperator('intersect', false);\n\n\t/**\n\t * Adds `except` set operator to the query.\n\t *\n\t * Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all courses offered in department A but not in department B\n\t * await db.select({ courseName: depA.courseName })\n\t * .from(depA)\n\t * .except(\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * // or\n\t * import { except } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await except(\n\t * db.select({ courseName: depA.courseName }).from(depA),\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * ```\n\t */\n\texcept = this.createSetOperator('except', false);\n\n\t/** @internal */\n\taddSetOperators(setOperators: SQLiteSelectConfig['setOperators']): SQLiteSelectWithout<\n\t\tthis,\n\t\tTDynamic,\n\t\tSQLiteSetOperatorExcludedMethods,\n\t\ttrue\n\t> {\n\t\tthis.config.setOperators.push(...setOperators);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `where` clause to the query.\n\t *\n\t * Calling this method will select only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#filtering}\n\t *\n\t * @param where the `where` clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be selected.\n\t *\n\t * ```ts\n\t * // Select all cars with green color\n\t * await db.select().from(cars).where(eq(cars.color, 'green'));\n\t * // or\n\t * await db.select().from(cars).where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Select all BMW cars with a green color\n\t * await db.select().from(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Select all cars with the green or blue color\n\t * await db.select().from(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(\n\t\twhere: ((aliases: TSelection) => SQL | undefined) | SQL | undefined,\n\t): SQLiteSelectWithout {\n\t\tif (typeof where === 'function') {\n\t\t\twhere = where(\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\t\t}\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `having` clause to the query.\n\t *\n\t * Calling this method will select only those rows that fulfill a specified condition. It is typically used with aggregate functions to filter the aggregated data based on a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n\t *\n\t * @param having the `having` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all brands with more than one car\n\t * await db.select({\n\t * \tbrand: cars.brand,\n\t * \tcount: sql`cast(count(${cars.id}) as int)`,\n\t * })\n\t * .from(cars)\n\t * .groupBy(cars.brand)\n\t * .having(({ count }) => gt(count, 1));\n\t * ```\n\t */\n\thaving(\n\t\thaving: ((aliases: this['_']['selection']) => SQL | undefined) | SQL | undefined,\n\t): SQLiteSelectWithout {\n\t\tif (typeof having === 'function') {\n\t\t\thaving = having(\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\t\t}\n\t\tthis.config.having = having;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `group by` clause to the query.\n\t *\n\t * Calling this method will group rows that have the same values into summary rows, often used for aggregation purposes.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Group and count people by their last names\n\t * await db.select({\n\t * lastName: people.lastName,\n\t * count: sql`cast(count(*) as int)`\n\t * })\n\t * .from(people)\n\t * .groupBy(people.lastName);\n\t * ```\n\t */\n\tgroupBy(\n\t\tbuilder: (aliases: this['_']['selection']) => ValueOrArray,\n\t): SQLiteSelectWithout;\n\tgroupBy(...columns: (SQLiteColumn | SQL)[]): SQLiteSelectWithout;\n\tgroupBy(\n\t\t...columns:\n\t\t\t| [(aliases: this['_']['selection']) => ValueOrArray]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteSelectWithout {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst groupBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\t\t\tthis.config.groupBy = Array.isArray(groupBy) ? groupBy : [groupBy];\n\t\t} else {\n\t\t\tthis.config.groupBy = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `order by` clause to the query.\n\t *\n\t * Calling this method will sort the result-set in ascending or descending order. By default, the sort order is ascending.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#order-by}\n\t *\n\t * @example\n\t *\n\t * ```\n\t * // Select cars ordered by year\n\t * await db.select().from(cars).orderBy(cars.year);\n\t * ```\n\t *\n\t * You can specify whether results are in ascending or descending order with the `asc()` and `desc()` operators.\n\t *\n\t * ```ts\n\t * // Select cars ordered by year in descending order\n\t * await db.select().from(cars).orderBy(desc(cars.year));\n\t *\n\t * // Select cars ordered by year and price\n\t * await db.select().from(cars).orderBy(asc(cars.year), desc(cars.price));\n\t * ```\n\t */\n\torderBy(\n\t\tbuilder: (aliases: this['_']['selection']) => ValueOrArray,\n\t): SQLiteSelectWithout;\n\torderBy(...columns: (SQLiteColumn | SQL)[]): SQLiteSelectWithout;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(aliases: this['_']['selection']) => ValueOrArray]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteSelectWithout {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\n\t\t\tif (this.config.setOperators.length > 0) {\n\t\t\t\tthis.config.setOperators.at(-1)!.orderBy = orderByArray;\n\t\t\t} else {\n\t\t\t\tthis.config.orderBy = orderByArray;\n\t\t\t}\n\t\t} else {\n\t\t\tconst orderByArray = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\n\t\t\tif (this.config.setOperators.length > 0) {\n\t\t\t\tthis.config.setOperators.at(-1)!.orderBy = orderByArray;\n\t\t\t} else {\n\t\t\t\tthis.config.orderBy = orderByArray;\n\t\t\t}\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `limit` clause to the query.\n\t *\n\t * Calling this method will set the maximum number of rows that will be returned by this query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t *\n\t * @param limit the `limit` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Get the first 10 people from this query.\n\t * await db.select().from(people).limit(10);\n\t * ```\n\t */\n\tlimit(limit: number | Placeholder): SQLiteSelectWithout {\n\t\tif (this.config.setOperators.length > 0) {\n\t\t\tthis.config.setOperators.at(-1)!.limit = limit;\n\t\t} else {\n\t\t\tthis.config.limit = limit;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `offset` clause to the query.\n\t *\n\t * Calling this method will skip a number of rows when returning results from this query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t *\n\t * @param offset the `offset` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Get the 10th-20th people from this query.\n\t * await db.select().from(people).offset(10).limit(10);\n\t * ```\n\t */\n\toffset(offset: number | Placeholder): SQLiteSelectWithout {\n\t\tif (this.config.setOperators.length > 0) {\n\t\t\tthis.config.setOperators.at(-1)!.offset = offset;\n\t\t} else {\n\t\t\tthis.config.offset = offset;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildSelectQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tas(\n\t\talias: TAlias,\n\t): SubqueryWithSelection {\n\t\treturn new Proxy(\n\t\t\tnew Subquery(this.getSQL(), this.config.fields, alias),\n\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t) as SubqueryWithSelection;\n\t}\n\n\t/** @internal */\n\toverride getSelectedFields(): this['_']['selectedFields'] {\n\t\treturn new Proxy(\n\t\t\tthis.config.fields,\n\t\t\tnew SelectionProxyHandler({ alias: this.tableName, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t) as this['_']['selectedFields'];\n\t}\n\n\t$dynamic(): SQLiteSelectDynamic {\n\t\treturn this;\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SQLiteSelectBase<\n\tTTableName extends string | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode = 'single',\n\tTNullabilityMap extends Record = TTableName extends string ? Record\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection,\n> extends\n\tSQLiteSelectQueryBuilderBase<\n\t\tSQLiteSelectHKT,\n\t\tTTableName,\n\t\tTResultType,\n\t\tTRunResult,\n\t\tTSelection,\n\t\tTSelectMode,\n\t\tTNullabilityMap,\n\t\tTDynamic,\n\t\tTExcludedMethods,\n\t\tTResult,\n\t\tTSelectedFields\n\t>,\n\tQueryPromise\n{}\n\nexport class SQLiteSelectBase<\n\tTTableName extends string | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTSelection,\n\tTSelectMode extends SelectMode = 'single',\n\tTNullabilityMap extends Record = TTableName extends string ? Record\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult = SelectResult[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection,\n> extends SQLiteSelectQueryBuilderBase<\n\tSQLiteSelectHKT,\n\tTTableName,\n\tTResultType,\n\tTRunResult,\n\tTSelection,\n\tTSelectMode,\n\tTNullabilityMap,\n\tTDynamic,\n\tTExcludedMethods,\n\tTResult,\n\tTSelectedFields\n> implements RunnableQuery, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQLiteSelect';\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteSelectPrepare {\n\t\tif (!this.session) {\n\t\t\tthrow new Error('Cannot execute a query on a query builder. Please use a database instance instead.');\n\t\t}\n\t\tconst fieldsList = orderSelectedFields(this.config.fields);\n\t\tconst query = this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tfieldsList,\n\t\t\t'all',\n\t\t);\n\t\tquery.joinsNotNullableMap = this.joinsNotNullableMap;\n\t\treturn query as ReturnType;\n\t}\n\n\tprepare(): SQLiteSelectPrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\tasync execute(): Promise> {\n\t\treturn this.all() as SQLiteSelectExecute;\n\t}\n}\n\napplyMixins(SQLiteSelectBase, [QueryPromise]);\n\nfunction createSetOperator(type: SetOperator, isAll: boolean): SQLiteCreateSetOperatorFn {\n\treturn (leftSelect, rightSelect, ...restSelects) => {\n\t\tconst setOperators = [rightSelect, ...restSelects].map((select) => ({\n\t\t\ttype,\n\t\t\tisAll,\n\t\t\trightSelect: select as AnySQLiteSelect,\n\t\t}));\n\n\t\tfor (const setOperator of setOperators) {\n\t\t\tif (!haveSameKeys((leftSelect as any).getSelectedFields(), setOperator.rightSelect.getSelectedFields())) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Set operator error (union / intersect / except): selected fields are not the same or are in a different order',\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn (leftSelect as AnySQLiteSelect).addSetOperators(setOperators) as any;\n\t};\n}\n\nconst getSQLiteSetOperators = () => ({\n\tunion,\n\tunionAll,\n\tintersect,\n\texcept,\n});\n\n/**\n * Adds `union` set operator to the query.\n *\n * Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n *\n * @example\n *\n * ```ts\n * // Select all unique names from customers and users tables\n * import { union } from 'drizzle-orm/sqlite-core'\n *\n * await union(\n * db.select({ name: users.name }).from(users),\n * db.select({ name: customers.name }).from(customers)\n * );\n * // or\n * await db.select({ name: users.name })\n * .from(users)\n * .union(\n * db.select({ name: customers.name }).from(customers)\n * );\n * ```\n */\nexport const union = createSetOperator('union', false);\n\n/**\n * Adds `union all` set operator to the query.\n *\n * Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n *\n * @example\n *\n * ```ts\n * // Select all transaction ids from both online and in-store sales\n * import { unionAll } from 'drizzle-orm/sqlite-core'\n *\n * await unionAll(\n * db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n * );\n * // or\n * await db.select({ transaction: onlineSales.transactionId })\n * .from(onlineSales)\n * .unionAll(\n * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n * );\n * ```\n */\nexport const unionAll = createSetOperator('union', true);\n\n/**\n * Adds `intersect` set operator to the query.\n *\n * Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n *\n * @example\n *\n * ```ts\n * // Select course names that are offered in both departments A and B\n * import { intersect } from 'drizzle-orm/sqlite-core'\n *\n * await intersect(\n * db.select({ courseName: depA.courseName }).from(depA),\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * // or\n * await db.select({ courseName: depA.courseName })\n * .from(depA)\n * .intersect(\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * ```\n */\nexport const intersect = createSetOperator('intersect', false);\n\n/**\n * Adds `except` set operator to the query.\n *\n * Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n *\n * @example\n *\n * ```ts\n * // Select all courses offered in department A but not in department B\n * import { except } from 'drizzle-orm/sqlite-core'\n *\n * await except(\n * db.select({ courseName: depA.courseName }).from(depA),\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * // or\n * await db.select({ courseName: depA.courseName })\n * .from(depA)\n * .except(\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * ```\n */\nexport const except = createSetOperator('except', false);\n", "import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { WithSubqueryWithSelection } from '~/sqlite-core/subquery.ts';\nimport { SQLiteSelectBuilder } from './select.ts';\nimport type { SelectedFields } from './select.types.ts';\nimport type { ColumnsSelection } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\n\nexport class QueryBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteQueryBuilder';\n\n\tprivate dialect: SQLiteSyncDialect | undefined;\n\n\t$with(alias: TAlias) {\n\t\tconst queryBuilder = this;\n\n\t\treturn {\n\t\t\tas(\n\t\t\t\tqb: TypedQueryBuilder | ((qb: QueryBuilder) => TypedQueryBuilder),\n\t\t\t): WithSubqueryWithSelection {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(queryBuilder);\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection;\n\t\t\t},\n\t\t};\n\t}\n\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\tfunction select(): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields?: TSelection,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\tfunction selectDistinct(): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields?: TSelection,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\treturn { select, selectDistinct };\n\t}\n\n\tselect(): SQLiteSelectBuilder;\n\tselect(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselect(\n\t\tfields?: TSelection,\n\t): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({ fields: fields ?? undefined, session: undefined, dialect: this.getDialect() });\n\t}\n\n\tselectDistinct(): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields?: TSelection,\n\t): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t// Lazy load dialect to avoid circular dependency\n\tprivate getDialect() {\n\t\tif (!this.dialect) {\n\t\t\tthis.dialect = new SQLiteSyncDialect();\n\t\t}\n\n\t\treturn this.dialect;\n\t}\n}\n", "import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type DrizzleTypeError, mapUpdateSet, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport type { SelectedFields, SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface SQLiteUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: SQLiteTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteUpdateSetSource =\n\t& {\n\t\t[Key in keyof TTable['_']['columns']]?:\n\t\t\t| GetColumnData\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport class SQLiteUpdateBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(values: SQLiteUpdateSetSource): SQLiteUpdateBase {\n\t\treturn new SQLiteUpdateBase(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t);\n\t}\n}\n\nexport type SQLiteUpdateWithout<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type SQLiteUpdateReturningAll = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateReturning<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateExecute = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteUpdatePrepare = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteUpdateExecute;\n\t}\n>;\n\nexport type SQLiteUpdateDynamic = SQLiteUpdate<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteUpdate<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = any,\n\tTReturning extends Record | undefined = Record | undefined,\n> = SQLiteUpdateBase;\n\ntype AnySQLiteUpdate = SQLiteUpdateBase;\n\nexport interface SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends SQLWrapper, QueryPromise {\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteUpdate';\n\n\t/** @internal */\n\tconfig: SQLiteUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: SQLiteSession,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteUpdateWithout {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteUpdateReturningAll;\n\treturning(\n\t\tfields: TSelectedFields,\n\t): SQLiteUpdateReturning;\n\treturning(\n\t\tfields: SelectedFields = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteUpdateWithout {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteUpdatePrepare {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t) as SQLiteUpdatePrepare;\n\t}\n\n\tprepare(): SQLiteUpdatePrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteUpdateExecute;\n\t}\n\n\t$dynamic(): SQLiteUpdateDynamic {\n\t\treturn this as any;\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SQLiteDialect } from '../dialect.ts';\nimport type { PreparedQueryConfig, SQLitePreparedQuery, SQLiteSession } from '../session.ts';\nimport type { SQLiteTable } from '../table.ts';\n\nexport type SQLiteRelationalQueryKind = TMode extends 'async'\n\t? SQLiteRelationalQuery\n\t: SQLiteSyncRelationalQuery;\n\nexport class RelationalQueryBuilder<\n\tTMode extends 'sync' | 'async',\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteAsyncRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprotected mode: TMode,\n\t\tprotected fullSchema: Record,\n\t\tprotected schema: TSchema,\n\t\tprotected tableNamesMap: Record,\n\t\tprotected table: SQLiteTable,\n\t\tprotected tableConfig: TableRelationalConfig,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprotected session: SQLiteSession<'async', unknown, TFullSchema, TSchema>,\n\t) {}\n\n\tfindMany>(\n\t\tconfig?: KnownKeysOnly>,\n\t): SQLiteRelationalQueryKind[]> {\n\t\treturn (this.mode === 'sync'\n\t\t\t? new SQLiteSyncRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t\t'many',\n\t\t\t)\n\t\t\t: new SQLiteRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t\t'many',\n\t\t\t)) as SQLiteRelationalQueryKind[]>;\n\t}\n\n\tfindFirst, 'limit'>>(\n\t\tconfig?: KnownKeysOnly, 'limit'>>,\n\t): SQLiteRelationalQueryKind | undefined> {\n\t\treturn (this.mode === 'sync'\n\t\t\t? new SQLiteSyncRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t\t'first',\n\t\t\t)\n\t\t\t: new SQLiteRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t\t'first',\n\t\t\t)) as SQLiteRelationalQueryKind | undefined>;\n\t}\n}\n\nexport class SQLiteRelationalQuery extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteAsyncRelationalQuery';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly type: TType;\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tmode: 'many' | 'first';\n\n\tconstructor(\n\t\tprivate fullSchema: Record,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record,\n\t\tprivate table: SQLiteTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SQLiteDialect,\n\t\tprivate session: SQLiteSession<'sync' | 'async', unknown, Record, TablesRelationalConfig>,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tmode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t}).sql as SQL;\n\t}\n\n\t/** @internal */\n\t_prepare(\n\t\tisOneTimeQuery = false,\n\t): SQLitePreparedQuery {\n\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\tthis.mode === 'first' ? 'get' : 'all',\n\t\t\t(rawRows, mapColumnValue) => {\n\t\t\t\tconst rows = rawRows.map((row) =>\n\t\t\t\t\tmapRelationalRow(this.schema, this.tableConfig, row, query.selection, mapColumnValue)\n\t\t\t\t);\n\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as SQLitePreparedQuery;\n\t}\n\n\tprepare(): SQLitePreparedQuery {\n\t\treturn this._prepare(false);\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\t/** @internal */\n\texecuteRaw(): TResult {\n\t\tif (this.mode === 'first') {\n\t\t\treturn this._prepare(false).get() as TResult;\n\t\t}\n\t\treturn this._prepare(false).all() as TResult;\n\t}\n\n\toverride async execute(): Promise {\n\t\treturn this.executeRaw();\n\t}\n}\n\nexport class SQLiteSyncRelationalQuery extends SQLiteRelationalQuery<'sync', TResult> {\n\tstatic readonly [entityKind]: string = 'SQLiteSyncRelationalQuery';\n\n\tsync(): TResult {\n\t\treturn this.executeRaw();\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { SQLiteAsyncDialect } from '../dialect.ts';\n\ntype SQLiteRawAction = 'all' | 'get' | 'values' | 'run';\nexport interface SQLiteRawConfig {\n\taction: SQLiteRawAction;\n}\n\nexport interface SQLiteRaw\n\textends QueryPromise, RunnableQuery, SQLWrapper, PreparedQuery\n{}\n\nexport class SQLiteRaw extends QueryPromise\n\timplements RunnableQuery, SQLWrapper, PreparedQuery\n{\n\tstatic readonly [entityKind]: string = 'SQLiteRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteRawConfig;\n\n\tconstructor(\n\t\tpublic execute: () => Promise,\n\t\t/** @internal */\n\t\tpublic getSQL: () => SQL,\n\t\taction: SQLiteRawAction,\n\t\tprivate dialect: SQLiteAsyncDialect,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t\tthis.config = { action };\n\t}\n\n\tgetQuery() {\n\t\treturn { ...this.dialect.sqlToQuery(this.getSQL()), method: this.config.action };\n\t}\n\n\tmapResult(result: unknown, isFromBatch?: boolean) {\n\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t}\n\n\t_prepare(): PreparedQuery {\n\t\treturn this;\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteSelectBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport type {\n\tDBResult,\n\tResult,\n\tSQLiteSession,\n\tSQLiteTransaction,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithSubqueryWithSelection } from './subquery.ts';\n\nexport class BaseSQLiteDatabase<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record = Record,\n\tTSchema extends TablesRelationalConfig = ExtractTablesWithRelations,\n> {\n\tstatic readonly [entityKind]: string = 'BaseSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly tableNamesMap: Record;\n\t};\n\n\tquery: TFullSchema extends Record\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder;\n\t\t};\n\n\tconstructor(\n\t\tprivate resultKind: TResultKind,\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t\t/** @internal */\n\t\treadonly session: SQLiteSession,\n\t\tschema: RelationalSchemaConfig | undefined,\n\t) {\n\t\tthis._ = schema\n\t\t\t? { schema: schema.schema, tableNamesMap: schema.tableNamesMap }\n\t\t\t: { schema: undefined, tableNamesMap: {} };\n\t\tthis.query = {} as typeof this['query'];\n\t\tconst query = this.query as {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new RelationalQueryBuilder(\n\t\t\t\t\tresultKind,\n\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\tschema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with(alias: TAlias) {\n\t\treturn {\n\t\t\tas(\n\t\t\t\tqb: TypedQueryBuilder | ((qb: QueryBuilder) => TypedQueryBuilder),\n\t\t\t): WithSubqueryWithSelection {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(new QueryBuilder());\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = await db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * await db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * await db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = await db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update(table: TTable): SQLiteUpdateBuilder {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert(into: TTable): SQLiteInsertBuilder {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_(from: TTable): SQLiteDeleteBase {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = await db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): SQLiteSelectBuilder;\n\tselect(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselect(fields?: SelectedFields): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * await db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate(table: TTable): SQLiteUpdateBuilder {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert(into: TTable): SQLiteInsertBuilder {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete(from: TTable): SQLiteDeleteBase {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\trun(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.run(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'run',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawRunValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult;\n\t\t}\n\t\treturn this.session.run(sql) as DBResult;\n\t}\n\n\tall(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.all(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'all',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawAllValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.all(sql) as DBResult;\n\t}\n\n\tget(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.get(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'get',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawGetValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult;\n\t\t}\n\t\treturn this.session.get(sql) as DBResult;\n\t}\n\n\tvalues(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.values(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'values',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawValuesValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.values(sql) as DBResult;\n\t}\n\n\ttransaction(\n\t\ttransaction: (tx: SQLiteTransaction) => Result,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n\tQ extends BaseSQLiteDatabase<\n\t\tTResultKind,\n\t\tTRunResult,\n\t\tTFullSchema,\n\t\tTSchema extends Record ? ExtractTablesWithRelations : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\twith: $with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n", "import { entityKind } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { QueryPromise } from '../index.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync extends QueryPromise {\n\tstatic readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult = TType extends 'async' ? Promise\n\t: ExecuteResultSync;\n\nexport abstract class SQLitePreparedQuery implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record): Result;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record): Result;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record): Result;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record): Result;\n\n\texecute(placeholderValues?: Record): ExecuteResult {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t): SQLitePreparedQuery {\n\t\treturn this.prepareQuery(query, fields, executeMethod);\n\t}\n\n\tabstract transaction(\n\t\ttransaction: (tx: SQLiteTransaction) => Result,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result;\n\n\trun(query: SQL): Result {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run').run() as Result;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall(query: SQL): Result {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run').all() as Result;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget(query: SQL): Result {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run').get() as Result;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues(\n\t\tquery: SQL,\n\t): Result {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run').values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result = { sync: TResult; async: Promise }[TKind];\n\nexport type DBResult = { sync: TResult; async: SQLiteRaw }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase {\n\tstatic readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n", "import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { MySqlColumn, MySqlColumnBuilder, MySqlColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type MySqlTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:MySqlInlineForeignKeys');\n\nexport class MySqlTable extends Table {\n\tstatic readonly [entityKind]: string = 'MySqlTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable;\n\n\t/** @internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record) => MySqlTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnyMySqlTable = {}> = MySqlTable<\n\tUpdateTableConfig\n>;\n\nexport type MySqlTableWithColumns =\n\t& MySqlTable\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function mysqlTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildColumns) => MySqlTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): MySqlTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns;\n\tdialect: 'mysql';\n}> {\n\tconst rawTable = new MySqlTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'mysql';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as MySqlColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\n\tif (extraConfig) {\n\t\ttable[MySqlTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record,\n\t\t) => MySqlTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface MySqlTableFn {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns) => MySqlTableExtraConfig,\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'mysql';\n\t}>;\n}\n\nexport const mysqlTable: MySqlTableFn = (name, columns, extraConfig) => {\n\treturn mysqlTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function mysqlTableCreator(customizeTableName: (name: string) => string): MySqlTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn mysqlTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnyMySqlColumn, MySqlColumn } from './columns/index.ts';\nimport { MySqlTable } from './table.ts';\n\nexport type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';\n\nexport type Reference = () => {\n\treadonly name?: string;\n\treadonly columns: MySqlColumn[];\n\treadonly foreignTable: MySqlTable;\n\treadonly foreignColumns: MySqlColumn[];\n};\n\nexport class ForeignKeyBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlForeignKeyBuilder';\n\n\t/** @internal */\n\treference: Reference;\n\n\t/** @internal */\n\t_onUpdate: UpdateDeleteAction | undefined;\n\n\t/** @internal */\n\t_onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(\n\t\tconfig: () => {\n\t\t\tname?: string;\n\t\t\tcolumns: MySqlColumn[];\n\t\t\tforeignColumns: MySqlColumn[];\n\t\t},\n\t\tactions?: {\n\t\t\tonUpdate?: UpdateDeleteAction;\n\t\t\tonDelete?: UpdateDeleteAction;\n\t\t} | undefined,\n\t) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn { name, columns, foreignTable: foreignColumns[0]!.table as MySqlTable, foreignColumns };\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\n\tonUpdate(action: UpdateDeleteAction): this {\n\t\tthis._onUpdate = action;\n\t\treturn this;\n\t}\n\n\tonDelete(action: UpdateDeleteAction): this {\n\t\tthis._onDelete = action;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: MySqlTable): ForeignKey {\n\t\treturn new ForeignKey(table, this);\n\t}\n}\n\nexport type AnyForeignKeyBuilder = ForeignKeyBuilder;\n\nexport class ForeignKey {\n\tstatic readonly [entityKind]: string = 'MySqlForeignKey';\n\n\treadonly reference: Reference;\n\treadonly onUpdate: UpdateDeleteAction | undefined;\n\treadonly onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(readonly table: MySqlTable, builder: ForeignKeyBuilder) {\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\n\tgetName(): string {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[MySqlTable.Symbol.Name],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0]!.table[MySqlTable.Symbol.Name],\n\t\t\t...foreignColumnNames,\n\t\t];\n\t\treturn name ?? `${chunks.join('_')}_fk`;\n\t}\n}\n\ntype ColumnsWithTable<\n\tTTableName extends string,\n\tTColumns extends MySqlColumn[],\n> = { [Key in keyof TColumns]: AnyMySqlColumn<{ tableName: TTableName }> };\n\nexport type GetColumnsTable = (\n\tTColumns extends MySqlColumn ? TColumns\n\t\t: TColumns extends MySqlColumn[] ? TColumns[number]\n\t\t: never\n) extends AnyMySqlColumn<{ tableName: infer TTableName extends string }> ? TTableName\n\t: never;\n\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnyMySqlColumn<{ tableName: TTableName }>, ...AnyMySqlColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder {\n\tfunction mappedConfig() {\n\t\tconst { name, columns, foreignColumns } = config;\n\t\treturn {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tforeignColumns,\n\t\t};\n\t}\n\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { MySqlColumn } from './columns/index.ts';\nimport { MySqlTable } from './table.ts';\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport function uniqueKeyName(table: MySqlTable, columns: string[]) {\n\treturn `${table[MySqlTable.Symbol.Name]}_${columns.join('_')}_unique`;\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: MySqlColumn[];\n\n\tconstructor(\n\t\tcolumns: MySqlColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: MySqlTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [MySqlColumn, ...MySqlColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'MySqlUniqueConstraint';\n\n\treadonly columns: MySqlColumn[];\n\treadonly name?: string;\n\treadonly nullsNotDistinct: boolean = false;\n\n\tconstructor(readonly table: MySqlTable, columns: MySqlColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "import { ColumnBuilder } from '~/column-builder.ts';\nimport type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/mysql-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/mysql-core/foreign-keys.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => MySqlColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface MySqlColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase {}\n\nexport abstract class MySqlColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig & {\n\t\tdata: any;\n\t},\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder\n\timplements MySqlColumnBuilderBase\n{\n\tstatic readonly [entityKind]: string = 'MySqlColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(ref: ReferenceConfig['ref'], actions: ReferenceConfig['actions'] = {}): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(name?: string): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: MySqlColumn, table: MySqlTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlColumn>;\n}\n\n// To understand how to use `MySqlColumn` and `AnyMySqlColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class MySqlColumn<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends Column {\n\tstatic readonly [entityKind]: string = 'MySqlColumn';\n\n\tconstructor(\n\t\toverride readonly table: MySqlTable,\n\t\tconfig: ColumnBuilderRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyMySqlColumn> = {}> = MySqlColumn<\n\tRequired, TPartial>>\n>;\n\nexport interface MySqlColumnWithAutoIncrementConfig {\n\tautoIncrement: boolean;\n}\n\nexport abstract class MySqlColumnBuilderWithAutoIncrement<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends MySqlColumnBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlColumnBuilderWithAutoIncrement';\n\n\tconstructor(name: NonNullable, dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\tautoincrement(): HasDefault {\n\t\tthis.config.autoIncrement = true;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault;\n\t}\n}\n\nexport abstract class MySqlColumnWithAutoIncrement<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends MySqlColumn {\n\tstatic readonly [entityKind]: string = 'MySqlColumnWithAutoIncrement';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlCharBuilderInitial = MySqlCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlChar';\n\tdata: TEnum[number];\n\tdriverParam: number | string;\n\tenumValues: TEnum;\n}>;\n\nexport class MySqlCharBuilder> extends MySqlColumnBuilder<\n\tT,\n\tMySqlCharConfig\n> {\n\tstatic readonly [entityKind]: string = 'MySqlCharBuilder';\n\n\tconstructor(name: T['name'], config: MySqlCharConfig) {\n\t\tsuper(name, 'string', 'MySqlChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlChar & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlChar & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class MySqlChar>\n\textends MySqlColumn>\n{\n\tstatic readonly [entityKind]: string = 'MySqlChar';\n\n\treadonly length: number | undefined = this.config.length;\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface MySqlCharConfig {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char>(\n\tname: TName,\n\tconfig: MySqlCharConfig> = {},\n): MySqlCharBuilderInitial> {\n\treturn new MySqlCharBuilder(name, config);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarBinaryBuilderInitial = MySqlVarBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlVarBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlVarBinaryBuilder>\n\textends MySqlColumnBuilder\n{\n\tstatic readonly [entityKind]: string = 'MySqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarbinaryOptions) {\n\t\tsuper(name, 'string', 'MySqlVarBinary');\n\t\tthis.config.length = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarBinary> {\n\t\treturn new MySqlVarBinary>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class MySqlVarBinary<\n\tT extends ColumnBaseConfig<'string', 'MySqlVarBinary'>,\n> extends MySqlColumn {\n\tstatic readonly [entityKind]: string = 'MySqlVarBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varbinary` : `varbinary(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarbinaryOptions {\n\tlength: number;\n}\n\nexport function varbinary(\n\tname: TName,\n\toptions: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial {\n\treturn new MySqlVarBinaryBuilder(name, options);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarCharBuilderInitial = MySqlVarCharBuilder<\n\t{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlVarChar';\n\t\tdata: TEnum[number];\n\t\tdriverParam: number | string;\n\t\tenumValues: TEnum;\n\t}\n>;\n\nexport class MySqlVarCharBuilder>\n\textends MySqlColumnBuilder>\n{\n\tstatic readonly [entityKind]: string = 'MySqlVarCharBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarCharConfig) {\n\t\tsuper(name, 'string', 'MySqlVarChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarChar & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlVarChar & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class MySqlVarChar>\n\textends MySqlColumn>\n{\n\tstatic readonly [entityKind]: string = 'MySqlVarChar';\n\n\treadonly length: number | undefined = this.config.length;\n\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarCharConfig {\n\tlength: number;\n\tenum?: TEnum;\n}\n\nexport function varchar>(\n\tname: TName,\n\tconfig: MySqlVarCharConfig>,\n): MySqlVarCharBuilderInitial> {\n\treturn new MySqlVarCharBuilder(name, config);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnyPgColumn, PgColumn } from './columns/index.ts';\nimport { PgTable } from './table.ts';\n\nexport type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';\n\nexport type Reference = () => {\n\treadonly name?: string;\n\treadonly columns: PgColumn[];\n\treadonly foreignTable: PgTable;\n\treadonly foreignColumns: PgColumn[];\n};\n\nexport class ForeignKeyBuilder {\n\tstatic readonly [entityKind]: string = 'PgForeignKeyBuilder';\n\n\t/** @internal */\n\treference: Reference;\n\n\t/** @internal */\n\t_onUpdate: UpdateDeleteAction | undefined = 'no action';\n\n\t/** @internal */\n\t_onDelete: UpdateDeleteAction | undefined = 'no action';\n\n\tconstructor(\n\t\tconfig: () => {\n\t\t\tname?: string;\n\t\t\tcolumns: PgColumn[];\n\t\t\tforeignColumns: PgColumn[];\n\t\t},\n\t\tactions?: {\n\t\t\tonUpdate?: UpdateDeleteAction;\n\t\t\tonDelete?: UpdateDeleteAction;\n\t\t} | undefined,\n\t) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn { name, columns, foreignTable: foreignColumns[0]!.table as PgTable, foreignColumns };\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\n\tonUpdate(action: UpdateDeleteAction): this {\n\t\tthis._onUpdate = action === undefined ? 'no action' : action;\n\t\treturn this;\n\t}\n\n\tonDelete(action: UpdateDeleteAction): this {\n\t\tthis._onDelete = action === undefined ? 'no action' : action;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: PgTable): ForeignKey {\n\t\treturn new ForeignKey(table, this);\n\t}\n}\n\nexport type AnyForeignKeyBuilder = ForeignKeyBuilder;\n\nexport class ForeignKey {\n\tstatic readonly [entityKind]: string = 'PgForeignKey';\n\n\treadonly reference: Reference;\n\treadonly onUpdate: UpdateDeleteAction | undefined;\n\treadonly onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(readonly table: PgTable, builder: ForeignKeyBuilder) {\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\n\tgetName(): string {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[PgTable.Symbol.Name],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0]!.table[PgTable.Symbol.Name],\n\t\t\t...foreignColumnNames,\n\t\t];\n\t\treturn name ?? `${chunks.join('_')}_fk`;\n\t}\n}\n\ntype ColumnsWithTable<\n\tTTableName extends string,\n\tTColumns extends PgColumn[],\n> = { [Key in keyof TColumns]: AnyPgColumn<{ tableName: TTableName }> };\n\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnyPgColumn<{ tableName: TTableName }>, ...AnyPgColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder {\n\tfunction mappedConfig() {\n\t\tconst { name, columns, foreignColumns } = config;\n\t\treturn {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tforeignColumns,\n\t\t};\n\t}\n\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { PgColumn } from './columns/index.ts';\nimport { PgTable } from './table.ts';\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport function uniqueKeyName(table: PgTable, columns: string[]) {\n\treturn `${table[PgTable.Symbol.Name]}_${columns.join('_')}_unique`;\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'PgUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: PgColumn[];\n\t/** @internal */\n\tnullsNotDistinctConfig = false;\n\n\tconstructor(\n\t\tcolumns: PgColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\tnullsNotDistinct() {\n\t\tthis.nullsNotDistinctConfig = true;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: PgTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'PgUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [PgColumn, ...PgColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'PgUniqueConstraint';\n\n\treadonly columns: PgColumn[];\n\treadonly name?: string;\n\treadonly nullsNotDistinct: boolean = false;\n\n\tconstructor(readonly table: PgTable, columns: PgColumn[], nullsNotDistinct: boolean, name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t\tthis.nullsNotDistinct = nullsNotDistinct;\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "function parsePgArrayValue(arrayString: string, startFrom: number, inQuotes: boolean): [string, number] {\n\tfor (let i = startFrom; i < arrayString.length; i++) {\n\t\tconst char = arrayString[i];\n\n\t\tif (char === '\\\\') {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '\"') {\n\t\t\treturn [arrayString.slice(startFrom, i).replace(/\\\\/g, ''), i + 1];\n\t\t}\n\n\t\tif (inQuotes) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === ',' || char === '}') {\n\t\t\treturn [arrayString.slice(startFrom, i).replace(/\\\\/g, ''), i];\n\t\t}\n\t}\n\n\treturn [arrayString.slice(startFrom).replace(/\\\\/g, ''), arrayString.length];\n}\n\nexport function parsePgNestedArray(arrayString: string, startFrom = 0): [any[], number] {\n\tconst result: any[] = [];\n\tlet i = startFrom;\n\tlet lastCharIsComma = false;\n\n\twhile (i < arrayString.length) {\n\t\tconst char = arrayString[i];\n\n\t\tif (char === ',') {\n\t\t\tif (lastCharIsComma || i === startFrom) {\n\t\t\t\tresult.push('');\n\t\t\t}\n\t\t\tlastCharIsComma = true;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tlastCharIsComma = false;\n\n\t\tif (char === '\\\\') {\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '\"') {\n\t\t\tconst [value, startFrom] = parsePgArrayValue(arrayString, i + 1, true);\n\t\t\tresult.push(value);\n\t\t\ti = startFrom;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '}') {\n\t\t\treturn [result, i + 1];\n\t\t}\n\n\t\tif (char === '{') {\n\t\t\tconst [value, startFrom] = parsePgNestedArray(arrayString, i + 1);\n\t\t\tresult.push(value);\n\t\t\ti = startFrom;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [value, newStartFrom] = parsePgArrayValue(arrayString, i, false);\n\t\tresult.push(value);\n\t\ti = newStartFrom;\n\t}\n\n\treturn [result, i];\n}\n\nexport function parsePgArray(arrayString: string): any[] {\n\tconst [result] = parsePgNestedArray(arrayString, 1);\n\treturn result;\n}\n\nexport function makePgArray(array: any[]): string {\n\treturn `{${\n\t\tarray.map((item) => {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\treturn makePgArray(item);\n\t\t\t}\n\n\t\t\tif (typeof item === 'string') {\n\t\t\t\treturn `\"${item.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n\t\t\t}\n\n\t\t\treturn `${item}`;\n\t\t}).join(',')\n\t}}`;\n}\n", "import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/pg-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/pg-core/foreign-keys.ts';\nimport type { AnyPgTable, PgTable } from '~/pg-core/table.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\nimport { makePgArray, parsePgArray } from '../utils/array.ts';\nimport { iife } from '~/tracing-utils.ts';\n\nexport interface ReferenceConfig {\n\tref: () => PgColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface PgColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase {}\n\nexport abstract class PgColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder\n\timplements PgColumnBuilderBase\n{\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic readonly [entityKind]: string = 'PgColumnBuilder';\n\n\tarray(size?: number): PgArrayBuilder<\n\t\t& {\n\t\t\tname: T['name'];\n\t\t\tdataType: 'array';\n\t\t\tcolumnType: 'PgArray';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tenumValues: T['enumValues'];\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new PgArrayBuilder(this.config.name, this as PgColumnBuilder, size);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: PgColumn, table: PgTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgColumn>;\n}\n\n// To understand how to use `PgColumn` and `PgColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class PgColumn<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = {},\n\tTTypeConfig extends object = {},\n> extends Column {\n\tstatic readonly [entityKind]: string = 'PgColumn';\n\n\tconstructor(\n\t\toverride readonly table: PgTable,\n\t\tconfig: ColumnBuilderRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyPgColumn> = {}> = PgColumn<\n\tRequired, TPartial>>\n>;\n\nexport class PgArrayBuilder<\n\tT extends ColumnBuilderBaseConfig<'array', 'PgArray'>,\n\tTBase extends ColumnBuilderBaseConfig,\n> extends PgColumnBuilder<\n\tT,\n\t{\n\t\tbaseBuilder: PgColumnBuilder;\n\t\tsize: number | undefined;\n\t},\n\t{\n\t\tbaseBuilder: PgColumnBuilder;\n\t}\n> {\n\tstatic override readonly [entityKind] = 'PgArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: PgArrayBuilder['config']['baseBuilder'],\n\t\tsize: number | undefined,\n\t) {\n\t\tsuper(name, 'array', 'PgArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.size = size;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgArray, TBase> {\n\t\tconst baseColumn = this.config.baseBuilder.build(table);\n\t\treturn new PgArray, TBase>(\n\t\t\ttable as AnyPgTable<{ name: MakeColumnConfig['tableName'] }>,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class PgArray<\n\tT extends ColumnBaseConfig<'array', 'PgArray'>,\n\tTBase extends ColumnBuilderBaseConfig,\n> extends PgColumn {\n\treadonly size: number | undefined;\n\n\tstatic readonly [entityKind]: string = 'PgArray';\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgArrayBuilder['config'],\n\t\treadonly baseColumn: PgColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.size = config.size;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.size === 'number' ? this.size : ''}]`;\n\t}\n\n\toverride mapFromDriverValue(value: unknown[] | string): T['data'] {\n\t\tif (typeof value === 'string') {\n\t\t\t// Thank you node-postgres for not parsing enum arrays\n\t\t\tvalue = parsePgArray(value);\n\t\t}\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t}\n\n\toverride mapToDriverValue(value: unknown[], isNestedArray = false): unknown[] | string {\n\t\tconst a = value.map((v) =>\n\t\t\tv === null\n\t\t\t\t? null\n\t\t\t\t: is(this.baseColumn, PgArray)\n\t\t\t\t? this.baseColumn.mapToDriverValue(v as unknown[], true)\n\t\t\t\t: this.baseColumn.mapToDriverValue(v)\n\t\t);\n\t\tif (isNestedArray) return a;\n\t\treturn makePgArray(a);\n\t}\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgCharBuilderInitial = PgCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgChar';\n\tdata: TEnum[number];\n\tenumValues: TEnum;\n\tdriverParam: string;\n}>;\n\nexport class PgCharBuilder> extends PgColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'PgCharBuilder';\n\n\tconstructor(name: string, config: PgCharConfig) {\n\t\tsuper(name, 'string', 'PgChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enumValues = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgChar> {\n\t\treturn new PgChar>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class PgChar>\n\textends PgColumn\n{\n\tstatic readonly [entityKind]: string = 'PgChar';\n\n\treadonly length = this.config.length;\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface PgCharConfig {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char>(\n\tname: TName,\n\tconfig: PgCharConfig> = {},\n): PgCharBuilderInitial> {\n\treturn new PgCharBuilder(name, config);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { sql } from '~/sql/sql.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgUUIDBuilderInitial = PgUUIDBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgUUID';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgUUIDBuilder> extends PgColumnBuilder {\n\tstatic readonly [entityKind]: string = 'PgUUIDBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'PgUUID');\n\t}\n\n\t/**\n\t * Adds `default gen_random_uuid()` to the column definition.\n\t */\n\tdefaultRandom(): ReturnType {\n\t\treturn this.default(sql`gen_random_uuid()`) as ReturnType;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgUUID> {\n\t\treturn new PgUUID>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class PgUUID> extends PgColumn {\n\tstatic readonly [entityKind]: string = 'PgUUID';\n\n\tgetSQLType(): string {\n\t\treturn 'uuid';\n\t}\n}\n\nexport function uuid(name: TName): PgUUIDBuilderInitial {\n\treturn new PgUUIDBuilder(name);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgVarcharBuilderInitial = PgVarcharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgVarchar';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n}>;\n\nexport class PgVarcharBuilder> extends PgColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'PgVarcharBuilder';\n\n\tconstructor(name: string, config: PgVarcharConfig) {\n\t\tsuper(name, 'string', 'PgVarchar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enumValues = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgVarchar> {\n\t\treturn new PgVarchar>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class PgVarchar>\n\textends PgColumn\n{\n\tstatic readonly [entityKind]: string = 'PgVarchar';\n\n\treadonly length = this.config.length;\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface PgVarcharConfig {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function varchar>(\n\tname: TName,\n\tconfig: PgVarcharConfig> = {},\n): PgVarcharBuilderInitial> {\n\treturn new PgVarcharBuilder(name, config);\n}\n", "export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n", "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n", "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n", "import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n", "import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n", "import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n", "export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n", "import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n", null, "import { integer, sqliteTable, text, index } from \"drizzle-orm/sqlite-core\";\nimport { createInsertSchema } from \"drizzle-zod\";\nimport * as z from \"zod\";\n\n// ==================== API Keys \u8868 ====================\nexport const apiKeys = sqliteTable(\"api_keys\", {\n id: text(\"id\").primaryKey(),\n key: text(\"key\").notNull().unique(), // API Key \u503C\n keyPrefix: text(\"key_prefix\").notNull(), // Key \u524D\u7F00\u7528\u4E8E\u663E\u793A (\u5982 vmail_xxx...)\n name: text(\"name\"), // API Key \u540D\u79F0\n rateLimit: integer(\"rate_limit\").default(100), // \u6BCF\u5206\u949F\u8BF7\u6C42\u9650\u5236\n isActive: integer(\"is_active\", { mode: \"boolean\" }).default(true).notNull(),\n lastUsedAt: integer(\"last_used_at\", { mode: \"timestamp\" }),\n expiresAt: integer(\"expires_at\", { mode: \"timestamp\" }),\n createdAt: integer(\"created_at\", { mode: \"timestamp\" }).notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\nexport const insertApiKeySchema = createInsertSchema(apiKeys);\nexport type InsertApiKey = z.infer;\nexport type ApiKey = typeof apiKeys.$inferSelect;\n\n// ==================== Mailboxes \u8868 ====================\nexport const mailboxes = sqliteTable(\"mailboxes\", {\n id: text(\"id\").primaryKey(),\n address: text(\"address\").notNull().unique(), // \u5B8C\u6574\u90AE\u7BB1\u5730\u5740\n domain: text(\"domain\").notNull(), // \u90AE\u7BB1\u57DF\u540D\n expiresAt: integer(\"expires_at\", { mode: \"timestamp\" }),\n apiKeyId: text(\"api_key_id\").notNull(), // \u5173\u8054\u7684 API Key ID\n createdAt: integer(\"created_at\", { mode: \"timestamp\" }).notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\nexport const insertMailboxSchema = createInsertSchema(mailboxes);\nexport type InsertMailbox = z.infer;\nexport type Mailbox = typeof mailboxes.$inferSelect;\n\n// \u5B9A\u4E49 Header \u7C7B\u578B\uFF0C\u7528\u4E8E\u5B58\u50A8\u90AE\u4EF6\u5934\u4FE1\u606F\nexport type Header = Record;\n\n// \u5B9A\u4E49 Address \u7C7B\u578B\uFF0C\u7528\u4E8E\u5B58\u50A8\u53D1\u4EF6\u4EBA\u3001\u6536\u4EF6\u4EBA\u7B49\u5730\u5740\u4FE1\u606F\nexport type Address = {\n address: string;\n name: string;\n};\n\n// \u5B9A\u4E49 Email \u7C7B\u578B\uFF0C\u901A\u8FC7 drizzle-orm \u4ECE\u6570\u636E\u5E93\u8868\u7ED3\u6784\u63A8\u65AD\u5F97\u51FA\nexport type Email = typeof emails.$inferSelect;\n\n// \u4F7F\u7528 drizzle-orm \u5B9A\u4E49 emails \u8868\u7684\u7ED3\u6784\nexport const emails = sqliteTable(\"emails\", {\n id: text(\"id\").primaryKey(),\n messageFrom: text(\"message_from\").notNull(),\n messageTo: text(\"message_to\").notNull(),\n headers: text(\"headers\", { mode: \"json\" }).$type().notNull(),\n from: text(\"from\", { mode: \"json\" }).$type
().notNull(),\n sender: text(\"sender\", { mode: \"json\" }).$type
(),\n replyTo: text(\"reply_to\", { mode: \"json\" }).$type(),\n deliveredTo: text(\"delivered_to\"),\n returnPath: text(\"return_path\"),\n to: text(\"to\", { mode: \"json\" }).$type(),\n cc: text(\"cc\", { mode: \"json\" }).$type(),\n bcc: text(\"bcc\", { mode: \"json\" }).$type(),\n subject: text(\"subject\"),\n messageId: text(\"message_id\").notNull(),\n inReplyTo: text(\"in_reply_to\"),\n references: text(\"references\"),\n date: text(\"date\"),\n html: text(\"html\"),\n text: text(\"text\"),\n createdAt: integer(\"created_at\", { mode: \"timestamp\" }).notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\n// \u4F7F\u7528 Zod \u5B9A\u4E49 Address \u5BF9\u8C61\u7684\u9A8C\u8BC1 schema\nconst AddressSchema = z.object({\n address: z.string(),\n name: z.string(),\n});\n\n// \u4F7F\u7528 drizzle-zod \u57FA\u4E8E emails \u8868\u7ED3\u6784\u521B\u5EFA\u7528\u4E8E\u63D2\u5165\u64CD\u4F5C\u7684 Zod schema\nexport const insertEmailSchema = createInsertSchema(emails, {\n headers: z.array(z.record(z.string())),\n from: AddressSchema,\n sender: AddressSchema.optional(),\n replyTo: z.array(AddressSchema).optional(),\n to: z.array(AddressSchema).optional(),\n cc: z.array(AddressSchema).optional(),\n bcc: z.array(AddressSchema).optional(),\n});\n\n// \u5B9A\u4E49 InsertEmail \u7C7B\u578B\uFF0C\u4ECE Zod schema \u63A8\u65AD\nexport type InsertEmail = z.infer;", "import { count, desc, asc, eq, and, inArray, lt } from \"drizzle-orm\";\n// fix: \u5C06\u6570\u636E\u5E93\u7C7B\u578B\u4ECE LibSQLDatabase \u66F4\u6539\u4E3A DrizzleD1Database\uFF0C\u4EE5\u5339\u914D Cloudflare D1\nimport { DrizzleD1Database } from \"drizzle-orm/d1\";\n// refactor: \u66F4\u65B0 schema \u7684\u5BFC\u5165\u8DEF\u5F84\nimport { emails, InsertEmail, apiKeys, InsertApiKey, mailboxes, InsertMailbox } from \"./schema\";\n\nexport async function insertEmail(db: DrizzleD1Database, email: InsertEmail) {\n try {\n await db.insert(emails).values(email).execute();\n } catch (e) {\n console.error(e);\n }\n}\n\nexport async function getEmails(db: DrizzleD1Database) {\n try {\n return await db.select().from(emails).execute();\n } catch (e) {\n return [];\n }\n}\n\n// \u51FD\u6570\u91CD\u547D\u540D\uFF1A\u5C06 getEmail \u91CD\u547D\u540D\u4E3A findEmailById \u4EE5\u5339\u914D worker \u4E2D\u7684\u8C03\u7528\nexport async function findEmailById(db: DrizzleD1Database, id: string) {\n try {\n const result = await db\n .select()\n .from(emails)\n .where(and(eq(emails.id, id)))\n .execute();\n if (result.length != 1) {\n return null;\n }\n return result[0];\n } catch (e) {\n return null;\n }\n}\n\n// \u8BE5\u51FD\u6570\u5DF2\u4E0D\u518D\u9700\u8981\uFF0C\u56E0\u4E3A\u5BC6\u7801\u73B0\u5728\u662F\u90AE\u7BB1\u5730\u5740\u7684\u52A0\u5BC6\u7248\u672C\n// export async function getEmailByPassword(db: DrizzleD1Database, id: string) {\n// ...\n// }\n\nexport async function getEmailsByMessageTo(\n db: DrizzleD1Database,\n messageTo: string\n) {\n try {\n return await db\n .select()\n .from(emails)\n .where(eq(emails.messageTo, messageTo))\n .orderBy(desc(emails.createdAt))\n .execute();\n } catch (e) {\n return [];\n }\n}\n\nexport async function getEmailsCount(db: DrizzleD1Database) {\n try {\n const res = await db.select({ count: count() }).from(emails);\n return res[0]?.count;\n } catch (e) {\n return 0;\n }\n}\n\n// \u65B0\u589E\u51FD\u6570\uFF1A\u6DFB\u52A0 worker \u4E2D\u7F3A\u5931\u7684 deleteEmails \u51FD\u6570\nexport async function deleteEmails(db: DrizzleD1Database, ids: string[]) {\n if (!ids || ids.length === 0) {\n return { count: 0 };\n }\n try {\n const result = await db.delete(emails).where(inArray(emails.id, ids));\n return { count: result.rowsAffected };\n } catch (e) {\n console.error(e);\n return { count: 0 };\n }\n}\n\n/**\n * \u65B0\u589E\u51FD\u6570\uFF1A\u6839\u636E\u63D0\u4F9B\u7684\u8FC7\u671F\u65F6\u95F4\u5220\u9664\u6B64\u65F6\u95F4\u4E4B\u524D\u7684\u6240\u6709\u90AE\u4EF6\u3002\n * @param db Drizzle \u6570\u636E\u5E93\u5B9E\u4F8B\u3002\n * @param expirationTime \u4E00\u4E2A Date \u5BF9\u8C61\uFF0C\u8868\u793A\u8FC7\u671F\u65F6\u95F4\u70B9\u3002\n * @returns \u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u5DF2\u5220\u9664\u90AE\u4EF6\u6570\u91CF\u7684\u5BF9\u8C61\uFF0C\u6216\u5728\u51FA\u9519\u65F6\u8FD4\u56DE { count: 0 }\u3002\n */\nexport async function deleteExpiredEmails(db: DrizzleD1Database, expirationTime: Date) {\n try {\n // \u4F7F\u7528Drizzle\u7684lt\uFF08\u5C0F\u4E8E\uFF09\u64CD\u4F5C\u7B26\u6765\u6BD4\u8F83createdAt\u5B57\u6BB5\u548CexpirationTime\n const result = await db.delete(emails).where(lt(emails.createdAt, expirationTime)).execute();\n // \u8FD4\u56DE\u53D7\u5F71\u54CD\u7684\u884C\u6570\uFF0C\u5373\u5DF2\u5220\u9664\u7684\u90AE\u4EF6\u6570\u91CF\n return { count: result.rowsAffected };\n } catch (e) {\n // \u5982\u679C\u5728\u5220\u9664\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF\uFF0C\u5219\u5728\u63A7\u5236\u53F0\u6253\u5370\u9519\u8BEF\u4FE1\u606F\n console.error('\u6E05\u7406\u8FC7\u671F\u90AE\u4EF6\u5931\u8D25:', e);\n // \u5E76\u8FD4\u56DE\u4E00\u4E2A\u8868\u793A\u5220\u9664\u6570\u91CF\u4E3A0\u7684\u5BF9\u8C61\n return { count: 0 };\n }\n}\n\n// ==================== API Key \u76F8\u5173\u51FD\u6570 ====================\n\n/**\n * \u901A\u8FC7 API Key \u503C\u67E5\u627E\u8BB0\u5F55\n */\nexport async function findApiKeyByKey(db: DrizzleD1Database, key: string) {\n try {\n const result = await db\n .select()\n .from(apiKeys)\n .where(eq(apiKeys.key, key))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findApiKeyByKey error:', e);\n return null;\n }\n}\n\n/**\n * \u66F4\u65B0 API Key \u6700\u540E\u4F7F\u7528\u65F6\u95F4\n */\nexport async function updateApiKeyLastUsed(db: DrizzleD1Database, id: string) {\n try {\n await db\n .update(apiKeys)\n .set({ lastUsedAt: new Date(), updatedAt: new Date() })\n .where(eq(apiKeys.id, id))\n .execute();\n } catch (e) {\n console.error('updateApiKeyLastUsed error:', e);\n }\n}\n\n/**\n * \u521B\u5EFA API Key\n */\nexport async function insertApiKey(db: DrizzleD1Database, apiKey: InsertApiKey) {\n try {\n await db.insert(apiKeys).values(apiKey).execute();\n return apiKey;\n } catch (e) {\n console.error('insertApiKey error:', e);\n return null;\n }\n}\n\n// ==================== Mailbox \u76F8\u5173\u51FD\u6570 ====================\n\n/**\n * \u521B\u5EFA\u90AE\u7BB1\n */\nexport async function insertMailbox(db: DrizzleD1Database, mailbox: InsertMailbox) {\n try {\n await db.insert(mailboxes).values(mailbox).execute();\n return mailbox;\n } catch (e) {\n console.error('insertMailbox error:', e);\n throw e;\n }\n}\n\n/**\n * \u901A\u8FC7 ID \u67E5\u627E\u90AE\u7BB1\n */\nexport async function findMailboxById(db: DrizzleD1Database, id: string) {\n try {\n const result = await db\n .select()\n .from(mailboxes)\n .where(eq(mailboxes.id, id))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findMailboxById error:', e);\n return null;\n }\n}\n\n/**\n * \u901A\u8FC7\u90AE\u7BB1\u5730\u5740\u67E5\u627E\u90AE\u7BB1\n */\nexport async function findMailboxByAddress(db: DrizzleD1Database, address: string) {\n try {\n const result = await db\n .select()\n .from(mailboxes)\n .where(eq(mailboxes.address, address))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findMailboxByAddress error:', e);\n return null;\n }\n}\n\n/**\n * \u83B7\u53D6\u90AE\u7BB1\u7684\u90AE\u4EF6\u5217\u8868\uFF08\u5E26\u5206\u9875\uFF09\n */\nexport async function getMailboxMessages(\n db: DrizzleD1Database,\n address: string,\n options: { page: number; limit: number; sort: 'asc' | 'desc' }\n) {\n try {\n const offset = (options.page - 1) * options.limit;\n const orderFn = options.sort === 'asc' ? asc : desc;\n\n const [messages, countResult] = await Promise.all([\n db\n .select()\n .from(emails)\n .where(eq(emails.messageTo, address))\n .orderBy(orderFn(emails.createdAt))\n .limit(options.limit)\n .offset(offset)\n .execute(),\n db\n .select({ count: count() })\n .from(emails)\n .where(eq(emails.messageTo, address))\n .execute(),\n ]);\n\n const total = countResult[0]?.count || 0;\n\n return {\n messages,\n total,\n totalPages: Math.ceil(total / options.limit),\n };\n } catch (e) {\n console.error('getMailboxMessages error:', e);\n return { messages: [], total: 0, totalPages: 0 };\n }\n}\n\n/**\n * \u83B7\u53D6\u7279\u5B9A\u90AE\u7BB1\u7684\u7279\u5B9A\u90AE\u4EF6\uFF08\u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\uFF09\n */\nexport async function findMailboxMessage(\n db: DrizzleD1Database,\n address: string,\n messageId: string\n) {\n try {\n const result = await db\n .select()\n .from(emails)\n .where(and(eq(emails.id, messageId), eq(emails.messageTo, address)))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findMailboxMessage error:', e);\n return null;\n }\n}\n\n/**\n * \u5220\u9664\u7279\u5B9A\u90AE\u7BB1\u7684\u7279\u5B9A\u90AE\u4EF6\uFF08\u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\uFF09\n */\nexport async function deleteMailboxMessage(\n db: DrizzleD1Database,\n address: string,\n messageId: string\n) {\n try {\n const result = await db\n .delete(emails)\n .where(and(eq(emails.id, messageId), eq(emails.messageTo, address)))\n .execute();\n return result.rowsAffected > 0;\n } catch (e) {\n console.error('deleteMailboxMessage error:', e);\n return false;\n }\n}\n\n/**\n * \u83B7\u53D6\u90AE\u7BB1\u7684\u90AE\u4EF6\u6570\u91CF\n */\nexport async function getMailboxMessageCount(\n db: DrizzleD1Database,\n address: string\n) {\n try {\n const result = await db\n .select({ count: count() })\n .from(emails)\n .where(eq(emails.messageTo, address))\n .execute();\n return result[0]?.count || 0;\n } catch (e) {\n console.error('getMailboxMessageCount error:', e);\n return 0;\n }\n}\n\n/**\n * \u5220\u9664\u8FC7\u671F\u7684\u90AE\u7BB1\n */\nexport async function deleteExpiredMailboxes(db: DrizzleD1Database) {\n try {\n const now = new Date();\n const result = await db\n .delete(mailboxes)\n .where(lt(mailboxes.expiresAt, now))\n .execute();\n return { count: result.rowsAffected };\n } catch (e) {\n console.error('deleteExpiredMailboxes error:', e);\n return { count: 0 };\n }\n}", "/// \n\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteD1SessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit;\n\nexport class SQLiteD1Session<\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'SQLiteD1Session';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: D1Database,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig | undefined,\n\t\tprivate options: SQLiteD1SessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): D1PreparedQuery {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(stmt, query, this.logger, fields, executeMethod, customResultMapper);\n\t}\n\n\t/*override */ async batch>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: D1PreparedStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tif (builtQuery.params.length > 0) {\n\t\t\t\tbuiltQueries.push((preparedQuery as D1PreparedQuery).stmt.bind(...builtQuery.params));\n\t\t\t} else {\n\t\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\t\tbuiltQueries.push(\n\t\t\t\t\tthis.client.prepare(builtQuery.sql).bind(...builtQuery.params),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// const queryToType: (\n\t\t// \t| { mode: 'all' }\n\t\t// \t| {\n\t\t// \t\tmode: 'all_mapped';\n\t\t// \t\tconfig: { fields: SelectedFieldsOrdered; joinsNotNullableMap?: Record };\n\t\t// \t}\n\t\t// \t| { mode: 'get' }\n\t\t// \t| { mode: 'values' }\n\t\t// \t| { mode: 'raw' }\n\t\t// \t| { mode: 'rqb'; mapper: any }\n\t\t// )[] = [];\n\n\t\t// const builtQueries: D1PreparedStatement[] = queries.map((query) => {\n\t\t// \tif (is(query, SQLiteSelectBase)) {\n\t\t// \t\tconst prepared = query.prepare() as D1PreparedQuery;\n\t\t// \t\tprepared.fields === undefined\n\t\t// \t\t\t? queryToType.push({ mode: 'all' })\n\t\t// \t\t\t: queryToType.push({\n\t\t// \t\t\t\tmode: 'all_mapped',\n\t\t// \t\t\t\tconfig: { fields: prepared.fields, joinsNotNullableMap: prepared.joinsNotNullableMap },\n\t\t// \t\t\t});\n\t\t// \t\treturn prepared.stmt.bind(...prepared.params);\n\t\t// \t} else if (\n\t\t// \t\tis(query, SQLiteInsertBase) || is(query, SQLiteUpdateBase)\n\t\t// \t\t|| is(query, SQLiteDeleteBase)\n\t\t// \t) {\n\t\t// \t\tconst prepared = query.prepare() as D1PreparedQuery;\n\t\t// \t\tqueryToType.push(\n\t\t// \t\t\tquery.config.returning\n\t\t// \t\t\t\t? {\n\t\t// \t\t\t\t\tmode: 'all_mapped',\n\t\t// \t\t\t\t\tconfig: { fields: query.config.returning },\n\t\t// \t\t\t\t}\n\t\t// \t\t\t\t: { mode: 'raw' },\n\t\t// \t\t);\n\t\t// \t\treturn prepared.stmt.bind(...prepared.params);\n\t\t// \t} else if (is(query, SQLiteRaw)) {\n\t\t// \t\tconst builtQuery = this.dialect.sqlToQuery(query.getSQL());\n\t\t// \t\tqueryToType.push(\n\t\t// \t\t\tquery.config.action === 'run' ? { mode: 'raw' } : { mode: query.config.action },\n\t\t// \t\t);\n\t\t// \t\treturn this.client.prepare(builtQuery.sql).bind(...builtQuery.params);\n\t\t// \t} else if (is(query, SQLiteRelationalQuery)) {\n\t\t// \t\tconst preparedRqb = query.prepare() as D1PreparedQuery;\n\t\t// \t\tqueryToType.push({ mode: 'rqb', mapper: preparedRqb.customResultMapper });\n\t\t// \t\treturn preparedRqb.stmt.bind(...preparedRqb.params);\n\t\t// \t}\n\t\t// \tthrow new DrizzleError({ message: 'You can use only drizzle queries in D1 batch API' });\n\t\t// });\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\n\t\t// const res = this.client.batch(builtQueries).then((stmt) =>\n\t\t// \tstmt.map(({ results }, index) => {\n\t\t// \t\tconst action = queryToType[index]!;\n\t\t// \t\tif (action.mode === 'all') {\n\t\t// \t\t\treturn results;\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'all_mapped') {\n\t\t// \t\t\tconst mappedRows = this.d1ToRawMapping(results);\n\t\t// \t\t\treturn mappedRows!.map((row) => {\n\t\t// \t\t\t\treturn mapResultRow(\n\t\t// \t\t\t\t\taction.config.fields,\n\t\t// \t\t\t\t\trow,\n\t\t// \t\t\t\t\taction.config.joinsNotNullableMap,\n\t\t// \t\t\t\t);\n\t\t// \t\t\t});\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'get') {\n\t\t// \t\t\treturn results![0] as unknown[];\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'values') {\n\t\t// \t\t\treturn this.d1ToRawMapping(results);\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'raw') {\n\t\t// \t\t\treturn stmt[index];\n\t\t// \t\t}\n\t\t// \t\treturn action.mapper(this.d1ToRawMapping(results));\n\t\t// \t})\n\t\t// );\n\t\t// return res;\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn d1ToRawMapping((result as D1Result).results);\n\t}\n\n\toverride async transaction(\n\t\ttransaction: (tx: D1Transaction) => T | Promise,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise {\n\t\tconst tx = new D1Transaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class D1Transaction<\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'D1Transaction';\n\n\toverride async transaction(transaction: (tx: D1Transaction) => Promise): Promise {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new D1Transaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n/**\n * This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287\n * It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.\n * @param results\n * @returns\n */\nfunction d1ToRawMapping(results: any) {\n\tconst rows: unknown[][] = [];\n\tfor (const row of results) {\n\t\tconst entry = Object.keys(row).map((k) => row[k]);\n\t\trows.push(entry);\n\t}\n\treturn rows;\n}\n\nexport class D1PreparedQuery extends SQLitePreparedQuery<\n\t{ type: 'async'; run: D1Result; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic readonly [entityKind]: string = 'D1PreparedQuery';\n\n\t/** @internal */\n\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown;\n\n\t/** @internal */\n\tfields?: SelectedFieldsOrdered;\n\n\t/** @internal */\n\tstmt: D1PreparedStatement;\n\n\tconstructor(\n\t\tstmt: D1PreparedStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t\tthis.stmt = stmt;\n\t}\n\n\trun(placeholderValues?: Record): Promise {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).run();\n\t}\n\n\tasync all(placeholderValues?: Record): Promise {\n\t\tconst { fields, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results!));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = d1ToRawMapping((rows as D1Result).results);\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record): Promise {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => results![0]);\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, rows[0], joinsNotNullableMap);\n\t}\n\n\toverride mapGetResult(result: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\tresult = d1ToRawMapping((result as D1Result).results)[0];\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([result as unknown[]]) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(this.fields!, result as unknown[], this.joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record): Promise {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).raw();\n\t}\n}\n", "/// \nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLiteD1Session } from './session.ts';\n\nexport class DrizzleD1Database<\n\tTSchema extends Record = Record,\n> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {\n\tstatic readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteD1Session>;\n\n\tasync batch, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise> {\n\t\treturn this.session.batch(batch) as Promise>;\n\t}\n}\n\nexport function drizzle = Record>(\n\tclient: D1Database,\n\tconfig: DrizzleConfig = {},\n): DrizzleD1Database {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteD1Session(client, dialect, schema, { logger });\n\treturn new DrizzleD1Database('async', dialect, session, schema) as DrizzleD1Database;\n}\n", "import { drizzle, DrizzleD1Database } from \"drizzle-orm/d1\";\n\n// \u4FEE\u6539 getWebTursoDB \u4E3A getD1DB\uFF0C\u5E76\u9002\u914D D1 \u6570\u636E\u5E93\nexport function getD1DB(db: D1Database): DrizzleD1Database {\n return drizzle(db);\n}", "/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nexport let nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n", "export const textEncoder = new TextEncoder();\n\nconst base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst base64Lookup = new Uint8Array(256);\nfor (var i = 0; i < base64Chars.length; i++) {\n base64Lookup[base64Chars.charCodeAt(i)] = i;\n}\n\nexport function decodeBase64(base64) {\n let bufferLength = Math.ceil(base64.length / 4) * 3;\n const len = base64.length;\n\n let p = 0;\n\n if (base64.length % 4 === 3) {\n bufferLength--;\n } else if (base64.length % 4 === 2) {\n bufferLength -= 2;\n } else if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arrayBuffer = new ArrayBuffer(bufferLength);\n const bytes = new Uint8Array(arrayBuffer);\n\n for (let i = 0; i < len; i += 4) {\n let encoded1 = base64Lookup[base64.charCodeAt(i)];\n let encoded2 = base64Lookup[base64.charCodeAt(i + 1)];\n let encoded3 = base64Lookup[base64.charCodeAt(i + 2)];\n let encoded4 = base64Lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arrayBuffer;\n}\n\nexport function getDecoder(charset) {\n charset = charset || 'utf8';\n let decoder;\n\n try {\n decoder = new TextDecoder(charset);\n } catch (err) {\n decoder = new TextDecoder('windows-1252');\n }\n\n return decoder;\n}\n\n/**\n * Converts a Blob into an ArrayBuffer\n * @param {Blob} blob Blob to convert\n * @returns {ArrayBuffer} Converted value\n */\nexport async function blobToArrayBuffer(blob) {\n if ('arrayBuffer' in blob) {\n return await blob.arrayBuffer();\n }\n\n const fr = new FileReader();\n\n return new Promise((resolve, reject) => {\n fr.onload = function (e) {\n resolve(e.target.result);\n };\n\n fr.onerror = function (e) {\n reject(fr.error);\n };\n\n fr.readAsArrayBuffer(blob);\n });\n}\n\nexport function getHex(c) {\n if (\n (c >= 0x30 /* 0 */ && c <= 0x39) /* 9 */ ||\n (c >= 0x61 /* a */ && c <= 0x66) /* f */ ||\n (c >= 0x41 /* A */ && c <= 0x46) /* F */\n ) {\n return String.fromCharCode(c);\n }\n return false;\n}\n\n/**\n * Decode a complete mime word encoded string\n *\n * @param {String} str Mime word encoded string\n * @return {String} Decoded unicode string\n */\nexport function decodeWord(charset, encoding, str) {\n // RFC2231 added language tag to the encoding\n // see: https://tools.ietf.org/html/rfc2231#section-5\n // this implementation silently ignores this tag\n let splitPos = charset.indexOf('*');\n if (splitPos >= 0) {\n charset = charset.substr(0, splitPos);\n }\n\n encoding = encoding.toUpperCase();\n\n let byteStr;\n\n if (encoding === 'Q') {\n str = str\n // remove spaces between = and hex char, this might indicate invalidly applied line splitting\n .replace(/=\\s+([0-9a-fA-F])/g, '=$1')\n // convert all underscores to spaces\n .replace(/[_\\s]/g, ' ');\n\n let buf = textEncoder.encode(str);\n let encodedBytes = [];\n for (let i = 0, len = buf.length; i < len; i++) {\n let c = buf[i];\n if (i <= len - 2 && c === 0x3d /* = */) {\n let c1 = getHex(buf[i + 1]);\n let c2 = getHex(buf[i + 2]);\n if (c1 && c2) {\n let c = parseInt(c1 + c2, 16);\n encodedBytes.push(c);\n i += 2;\n continue;\n }\n }\n encodedBytes.push(c);\n }\n byteStr = new ArrayBuffer(encodedBytes.length);\n let dataView = new DataView(byteStr);\n for (let i = 0, len = encodedBytes.length; i < len; i++) {\n dataView.setUint8(i, encodedBytes[i]);\n }\n } else if (encoding === 'B') {\n byteStr = decodeBase64(str.replace(/[^a-zA-Z0-9\\+\\/=]+/g, ''));\n } else {\n // keep as is, convert ArrayBuffer to unicode string, assume utf8\n byteStr = textEncoder.encode(str);\n }\n\n return getDecoder(charset).decode(byteStr);\n}\n\nexport function decodeWords(str) {\n let joinString = true;\n let done = false;\n\n while (!done) {\n let result = (str || '')\n .toString()\n // find base64 words that can be joined\n .replace(\n /(=\\?([^?]+)\\?[Bb]\\?([^?]*)\\?=)\\s*(?==\\?([^?]+)\\?[Bb]\\?[^?]*\\?=)/g,\n (match, left, chLeft, encodedLeftStr, chRight) => {\n if (!joinString) {\n return match;\n }\n // only mark b64 chunks to be joined if charsets match and left side does not end with =\n if (chLeft === chRight && encodedLeftStr.length % 4 === 0 && !/=$/.test(encodedLeftStr)) {\n // set a joiner marker\n return left + '__\\x00JOIN\\x00__';\n }\n\n return match;\n }\n )\n // find QP words that can be joined\n .replace(\n /(=\\?([^?]+)\\?[Qq]\\?[^?]*\\?=)\\s*(?==\\?([^?]+)\\?[Qq]\\?[^?]*\\?=)/g,\n (match, left, chLeft, chRight) => {\n if (!joinString) {\n return match;\n }\n // only mark QP chunks to be joined if charsets match\n if (chLeft === chRight) {\n // set a joiner marker\n return left + '__\\x00JOIN\\x00__';\n }\n return match;\n }\n )\n // join base64 encoded words\n .replace(/(\\?=)?__\\x00JOIN\\x00__(=\\?([^?]+)\\?[QqBb]\\?)?/g, '')\n // remove spaces between mime encoded words\n .replace(/(=\\?[^?]+\\?[QqBb]\\?[^?]*\\?=)\\s+(?==\\?[^?]+\\?[QqBb]\\?[^?]*\\?=)/g, '$1')\n // decode words\n .replace(/=\\?([\\w_\\-*]+)\\?([QqBb])\\?([^?]*)\\?=/g, (m, charset, encoding, text) =>\n decodeWord(charset, encoding, text)\n );\n\n if (joinString && result.indexOf('\\ufffd') >= 0) {\n // text contains \\ufffd (EF BF BD), so unicode conversion failed, retry without joining strings\n joinString = false;\n } else {\n return result;\n }\n }\n}\n\nexport function decodeURIComponentWithCharset(encodedStr, charset) {\n charset = charset || 'utf-8';\n\n let encodedBytes = [];\n for (let i = 0; i < encodedStr.length; i++) {\n let c = encodedStr.charAt(i);\n if (c === '%' && /^[a-f0-9]{2}/i.test(encodedStr.substr(i + 1, 2))) {\n // encoded sequence\n let byte = encodedStr.substr(i + 1, 2);\n i += 2;\n encodedBytes.push(parseInt(byte, 16));\n } else if (c.charCodeAt(0) > 126) {\n c = textEncoder.encode(c);\n for (let j = 0; j < c.length; j++) {\n encodedBytes.push(c[j]);\n }\n } else {\n // \"normal\" char\n encodedBytes.push(c.charCodeAt(0));\n }\n }\n\n const byteStr = new ArrayBuffer(encodedBytes.length);\n const dataView = new DataView(byteStr);\n for (let i = 0, len = encodedBytes.length; i < len; i++) {\n dataView.setUint8(i, encodedBytes[i]);\n }\n\n return getDecoder(charset).decode(byteStr);\n}\n\nexport function decodeParameterValueContinuations(header) {\n // handle parameter value continuations\n // https://tools.ietf.org/html/rfc2231#section-3\n\n // preprocess values\n let paramKeys = new Map();\n\n Object.keys(header.params).forEach(key => {\n let match = key.match(/\\*((\\d+)\\*?)?$/);\n if (!match) {\n // nothing to do here, does not seem like a continuation param\n return;\n }\n\n let actualKey = key.substr(0, match.index).toLowerCase();\n let nr = Number(match[2]) || 0;\n\n let paramVal;\n if (!paramKeys.has(actualKey)) {\n paramVal = {\n charset: false,\n values: []\n };\n paramKeys.set(actualKey, paramVal);\n } else {\n paramVal = paramKeys.get(actualKey);\n }\n\n let value = header.params[key];\n if (nr === 0 && match[0].charAt(match[0].length - 1) === '*' && (match = value.match(/^([^']*)'[^']*'(.*)$/))) {\n paramVal.charset = match[1] || 'utf-8';\n value = match[2];\n }\n\n paramVal.values.push({ nr, value });\n\n // remove the old reference\n delete header.params[key];\n });\n\n paramKeys.forEach((paramVal, key) => {\n header.params[key] = decodeURIComponentWithCharset(\n paramVal.values\n .sort((a, b) => a.nr - b.nr)\n .map(a => a.value)\n .join(''),\n paramVal.charset\n );\n });\n}\n", "import { blobToArrayBuffer } from './decode-strings.js';\n\nexport default class PassThroughDecoder {\n constructor() {\n this.chunks = [];\n }\n\n update(line) {\n this.chunks.push(line);\n this.chunks.push('\\n');\n }\n\n finalize() {\n // convert an array of arraybuffers into a blob and then back into a single arraybuffer\n return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));\n }\n}\n", "import { decodeBase64, blobToArrayBuffer } from './decode-strings.js';\n\nexport default class Base64Decoder {\n constructor(opts) {\n opts = opts || {};\n\n this.decoder = opts.decoder || new TextDecoder();\n\n this.maxChunkSize = 100 * 1024;\n\n this.chunks = [];\n\n this.remainder = '';\n }\n\n update(buffer) {\n let str = this.decoder.decode(buffer);\n\n if (/[^a-zA-Z0-9+\\/]/.test(str)) {\n str = str.replace(/[^a-zA-Z0-9+\\/]+/g, '');\n }\n\n this.remainder += str;\n\n if (this.remainder.length >= this.maxChunkSize) {\n let allowedBytes = Math.floor(this.remainder.length / 4) * 4;\n let base64Str;\n\n if (allowedBytes === this.remainder.length) {\n base64Str = this.remainder;\n this.remainder = '';\n } else {\n base64Str = this.remainder.substr(0, allowedBytes);\n this.remainder = this.remainder.substr(allowedBytes);\n }\n\n if (base64Str.length) {\n this.chunks.push(decodeBase64(base64Str));\n }\n }\n }\n\n finalize() {\n if (this.remainder && !/^=+$/.test(this.remainder)) {\n this.chunks.push(decodeBase64(this.remainder));\n }\n\n return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));\n }\n}\n", "import { blobToArrayBuffer } from './decode-strings.js';\n\n// Regex patterns compiled once for performance\nconst VALID_QP_REGEX = /^=[a-f0-9]{2}$/i;\nconst QP_SPLIT_REGEX = /(?==[a-f0-9]{2})/i;\nconst SOFT_LINE_BREAK_REGEX = /=\\r?\\n/g;\nconst PARTIAL_QP_ENDING_REGEX = /=[a-fA-F0-9]?$/;\n\nexport default class QPDecoder {\n constructor(opts) {\n opts = opts || {};\n\n this.decoder = opts.decoder || new TextDecoder();\n\n this.maxChunkSize = 100 * 1024;\n\n this.remainder = '';\n\n this.chunks = [];\n }\n\n decodeQPBytes(encodedBytes) {\n let buf = new ArrayBuffer(encodedBytes.length);\n let dataView = new DataView(buf);\n for (let i = 0, len = encodedBytes.length; i < len; i++) {\n dataView.setUint8(i, parseInt(encodedBytes[i], 16));\n }\n return buf;\n }\n\n decodeChunks(str) {\n // unwrap newlines\n str = str.replace(SOFT_LINE_BREAK_REGEX, '');\n\n let list = str.split(QP_SPLIT_REGEX);\n let encodedBytes = [];\n for (let part of list) {\n if (part.charAt(0) !== '=') {\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n this.chunks.push(part);\n continue;\n }\n\n if (part.length === 3) {\n // Validate that this is actually a valid QP sequence\n if (VALID_QP_REGEX.test(part)) {\n encodedBytes.push(part.substr(1));\n } else {\n // Not a valid QP sequence, treat as literal text\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n this.chunks.push(part);\n }\n continue;\n }\n\n if (part.length > 3) {\n // First 3 chars should be a valid QP sequence\n const firstThree = part.substr(0, 3);\n if (VALID_QP_REGEX.test(firstThree)) {\n encodedBytes.push(part.substr(1, 2));\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n\n part = part.substr(3);\n this.chunks.push(part);\n } else {\n // Not a valid QP sequence, treat entire part as literal\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n this.chunks.push(part);\n }\n }\n }\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n }\n\n update(buffer) {\n // expect full lines, so add line terminator as well\n let str = this.decoder.decode(buffer) + '\\n';\n\n str = this.remainder + str;\n\n if (str.length < this.maxChunkSize) {\n this.remainder = str;\n return;\n }\n\n this.remainder = '';\n\n let partialEnding = str.match(PARTIAL_QP_ENDING_REGEX);\n if (partialEnding) {\n if (partialEnding.index === 0) {\n this.remainder = str;\n return;\n }\n this.remainder = str.substr(partialEnding.index);\n str = str.substr(0, partialEnding.index);\n }\n\n this.decodeChunks(str);\n }\n\n finalize() {\n if (this.remainder.length) {\n this.decodeChunks(this.remainder);\n this.remainder = '';\n }\n\n // convert an array of arraybuffers into a blob and then back into a single arraybuffer\n return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));\n }\n}\n", "import { getDecoder, decodeParameterValueContinuations, textEncoder } from './decode-strings.js';\nimport PassThroughDecoder from './pass-through-decoder.js';\nimport Base64Decoder from './base64-decoder.js';\nimport QPDecoder from './qp-decoder.js';\n\nexport default class MimeNode {\n constructor(options) {\n this.options = options || {};\n\n this.postalMime = this.options.postalMime;\n\n this.root = !!this.options.parentNode;\n this.childNodes = [];\n\n if (this.options.parentNode) {\n this.parentNode = this.options.parentNode;\n\n this.depth = this.parentNode.depth + 1;\n if (this.depth > this.options.maxNestingDepth) {\n throw new Error(`Maximum MIME nesting depth of ${this.options.maxNestingDepth} levels exceeded`);\n }\n\n this.options.parentNode.childNodes.push(this);\n } else {\n this.depth = 0;\n }\n\n this.state = 'header';\n\n this.headerLines = [];\n this.headerSize = 0;\n\n this.contentType = {\n value: 'text/plain',\n default: true\n };\n\n this.contentTransferEncoding = {\n value: '8bit'\n };\n\n this.contentDisposition = {\n value: ''\n };\n\n this.headers = [];\n\n this.contentDecoder = false;\n }\n\n setupContentDecoder(transferEncoding) {\n if (/base64/i.test(transferEncoding)) {\n this.contentDecoder = new Base64Decoder();\n } else if (/quoted-printable/i.test(transferEncoding)) {\n this.contentDecoder = new QPDecoder({ decoder: getDecoder(this.contentType.parsed.params.charset) });\n } else {\n this.contentDecoder = new PassThroughDecoder();\n }\n }\n\n async finalize() {\n if (this.state === 'finished') {\n return;\n }\n\n if (this.state === 'header') {\n this.processHeaders();\n }\n\n // remove self from boundary listing\n let boundaries = this.postalMime.boundaries;\n for (let i = boundaries.length - 1; i >= 0; i--) {\n let boundary = boundaries[i];\n if (boundary.node === this) {\n boundaries.splice(i, 1);\n break;\n }\n }\n\n await this.finalizeChildNodes();\n\n this.content = this.contentDecoder ? await this.contentDecoder.finalize() : null;\n\n this.state = 'finished';\n }\n\n async finalizeChildNodes() {\n for (let childNode of this.childNodes) {\n await childNode.finalize();\n }\n }\n\n parseStructuredHeader(str) {\n let response = {\n value: false,\n params: {}\n };\n\n let key = false;\n let value = '';\n let stage = 'value';\n\n let quote = false;\n let escaped = false;\n let chr;\n\n for (let i = 0, len = str.length; i < len; i++) {\n chr = str.charAt(i);\n switch (stage) {\n case 'key':\n if (chr === '=') {\n key = value.trim().toLowerCase();\n stage = 'value';\n value = '';\n break;\n }\n value += chr;\n break;\n case 'value':\n if (escaped) {\n value += chr;\n } else if (chr === '\\\\') {\n escaped = true;\n continue;\n } else if (quote && chr === quote) {\n quote = false;\n } else if (!quote && chr === '\"') {\n quote = chr;\n } else if (!quote && chr === ';') {\n if (key === false) {\n response.value = value.trim();\n } else {\n response.params[key] = value.trim();\n }\n stage = 'key';\n value = '';\n } else {\n value += chr;\n }\n escaped = false;\n break;\n }\n }\n\n // finalize remainder\n value = value.trim();\n if (stage === 'value') {\n if (key === false) {\n // default value\n response.value = value;\n } else {\n // subkey value\n response.params[key] = value;\n }\n } else if (value) {\n // treat as key without value, see emptykey:\n // Header-Key: somevalue; key=value; emptykey\n response.params[value.toLowerCase()] = '';\n }\n\n if (response.value) {\n response.value = response.value.toLowerCase();\n }\n\n // convert Parameter Value Continuations into single strings\n decodeParameterValueContinuations(response);\n\n return response;\n }\n\n decodeFlowedText(str, delSp) {\n return (\n str\n .split(/\\r?\\n/)\n // remove soft linebreaks\n // soft linebreaks are added after space symbols\n .reduce((previousValue, currentValue) => {\n if (/ $/.test(previousValue) && !/(^|\\n)-- $/.test(previousValue)) {\n if (delSp) {\n // delsp adds space to text to be able to fold it\n // these spaces can be removed once the text is unfolded\n return previousValue.slice(0, -1) + currentValue;\n } else {\n return previousValue + currentValue;\n }\n } else {\n return previousValue + '\\n' + currentValue;\n }\n })\n // remove whitespace stuffing\n // http://tools.ietf.org/html/rfc3676#section-4.4\n .replace(/^ /gm, '')\n );\n }\n\n getTextContent() {\n if (!this.content) {\n return '';\n }\n\n let str = getDecoder(this.contentType.parsed.params.charset).decode(this.content);\n\n if (/^flowed$/i.test(this.contentType.parsed.params.format)) {\n str = this.decodeFlowedText(str, /^yes$/i.test(this.contentType.parsed.params.delsp));\n }\n\n return str;\n }\n\n processHeaders() {\n for (let i = this.headerLines.length - 1; i >= 0; i--) {\n let line = this.headerLines[i];\n if (i && /^\\s/.test(line)) {\n this.headerLines[i - 1] += '\\n' + line;\n this.headerLines.splice(i, 1);\n } else {\n // remove folding and extra WS\n line = line.replace(/\\s+/g, ' ');\n let sep = line.indexOf(':');\n let key = sep < 0 ? line.trim() : line.substr(0, sep).trim();\n let value = sep < 0 ? '' : line.substr(sep + 1).trim();\n this.headers.push({ key: key.toLowerCase(), originalKey: key, value });\n\n switch (key.toLowerCase()) {\n case 'content-type':\n if (this.contentType.default) {\n this.contentType = { value, parsed: {} };\n }\n break;\n case 'content-transfer-encoding':\n this.contentTransferEncoding = { value, parsed: {} };\n break;\n case 'content-disposition':\n this.contentDisposition = { value, parsed: {} };\n break;\n case 'content-id':\n this.contentId = value;\n break;\n case 'content-description':\n this.contentDescription = value;\n break;\n }\n }\n }\n\n this.contentType.parsed = this.parseStructuredHeader(this.contentType.value);\n this.contentType.multipart = /^multipart\\//i.test(this.contentType.parsed.value)\n ? this.contentType.parsed.value.substr(this.contentType.parsed.value.indexOf('/') + 1)\n : false;\n\n if (this.contentType.multipart && this.contentType.parsed.params.boundary) {\n // add self to boundary terminator listing\n this.postalMime.boundaries.push({\n value: textEncoder.encode(this.contentType.parsed.params.boundary),\n node: this\n });\n }\n\n this.contentDisposition.parsed = this.parseStructuredHeader(this.contentDisposition.value);\n\n this.contentTransferEncoding.encoding = this.contentTransferEncoding.value\n .toLowerCase()\n .split(/[^\\w-]/)\n .shift();\n\n this.setupContentDecoder(this.contentTransferEncoding.encoding);\n }\n\n feed(line) {\n switch (this.state) {\n case 'header':\n if (!line.length) {\n this.state = 'body';\n return this.processHeaders();\n }\n\n this.headerSize += line.length;\n\n if (this.headerSize > this.options.maxHeadersSize) {\n let error = new Error(`Maximum header size of ${this.options.maxHeadersSize} bytes exceeded`);\n throw error;\n }\n\n this.headerLines.push(getDecoder().decode(line));\n break;\n case 'body': {\n // add line to body\n this.contentDecoder.update(line);\n }\n }\n }\n}\n", "// Entity map from https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references\nexport const htmlEntities = {\n 'Æ': '\\u00C6',\n 'Æ': '\\u00C6',\n '&': '\\u0026',\n '&': '\\u0026',\n 'Á': '\\u00C1',\n 'Á': '\\u00C1',\n 'Ă': '\\u0102',\n 'Â': '\\u00C2',\n 'Â': '\\u00C2',\n 'А': '\\u0410',\n '𝔄': '\\uD835\\uDD04',\n 'À': '\\u00C0',\n 'À': '\\u00C0',\n 'Α': '\\u0391',\n 'Ā': '\\u0100',\n '⩓': '\\u2A53',\n 'Ą': '\\u0104',\n '𝔸': '\\uD835\\uDD38',\n '⁡': '\\u2061',\n 'Å': '\\u00C5',\n 'Å': '\\u00C5',\n '𝒜': '\\uD835\\uDC9C',\n '≔': '\\u2254',\n 'Ã': '\\u00C3',\n 'Ã': '\\u00C3',\n 'Ä': '\\u00C4',\n 'Ä': '\\u00C4',\n '∖': '\\u2216',\n '⫧': '\\u2AE7',\n '⌆': '\\u2306',\n 'Б': '\\u0411',\n '∵': '\\u2235',\n 'ℬ': '\\u212C',\n 'Β': '\\u0392',\n '𝔅': '\\uD835\\uDD05',\n '𝔹': '\\uD835\\uDD39',\n '˘': '\\u02D8',\n 'ℬ': '\\u212C',\n '≎': '\\u224E',\n 'Ч': '\\u0427',\n '©': '\\u00A9',\n '©': '\\u00A9',\n 'Ć': '\\u0106',\n '⋒': '\\u22D2',\n 'ⅅ': '\\u2145',\n 'ℭ': '\\u212D',\n 'Č': '\\u010C',\n 'Ç': '\\u00C7',\n 'Ç': '\\u00C7',\n 'Ĉ': '\\u0108',\n '∰': '\\u2230',\n 'Ċ': '\\u010A',\n '¸': '\\u00B8',\n '·': '\\u00B7',\n 'ℭ': '\\u212D',\n 'Χ': '\\u03A7',\n '⊙': '\\u2299',\n '⊖': '\\u2296',\n '⊕': '\\u2295',\n '⊗': '\\u2297',\n '∲': '\\u2232',\n '”': '\\u201D',\n '’': '\\u2019',\n '∷': '\\u2237',\n '⩴': '\\u2A74',\n '≡': '\\u2261',\n '∯': '\\u222F',\n '∮': '\\u222E',\n 'ℂ': '\\u2102',\n '∐': '\\u2210',\n '∳': '\\u2233',\n '⨯': '\\u2A2F',\n '𝒞': '\\uD835\\uDC9E',\n '⋓': '\\u22D3',\n '≍': '\\u224D',\n 'ⅅ': '\\u2145',\n '⤑': '\\u2911',\n 'Ђ': '\\u0402',\n 'Ѕ': '\\u0405',\n 'Џ': '\\u040F',\n '‡': '\\u2021',\n '↡': '\\u21A1',\n '⫤': '\\u2AE4',\n 'Ď': '\\u010E',\n 'Д': '\\u0414',\n '∇': '\\u2207',\n 'Δ': '\\u0394',\n '𝔇': '\\uD835\\uDD07',\n '´': '\\u00B4',\n '˙': '\\u02D9',\n '˝': '\\u02DD',\n '`': '\\u0060',\n '˜': '\\u02DC',\n '⋄': '\\u22C4',\n 'ⅆ': '\\u2146',\n '𝔻': '\\uD835\\uDD3B',\n '¨': '\\u00A8',\n '⃜': '\\u20DC',\n '≐': '\\u2250',\n '∯': '\\u222F',\n '¨': '\\u00A8',\n '⇓': '\\u21D3',\n '⇐': '\\u21D0',\n '⇔': '\\u21D4',\n '⫤': '\\u2AE4',\n '⟸': '\\u27F8',\n '⟺': '\\u27FA',\n '⟹': '\\u27F9',\n '⇒': '\\u21D2',\n '⊨': '\\u22A8',\n '⇑': '\\u21D1',\n '⇕': '\\u21D5',\n '∥': '\\u2225',\n '↓': '\\u2193',\n '⤓': '\\u2913',\n '⇵': '\\u21F5',\n '̑': '\\u0311',\n '⥐': '\\u2950',\n '⥞': '\\u295E',\n '↽': '\\u21BD',\n '⥖': '\\u2956',\n '⥟': '\\u295F',\n '⇁': '\\u21C1',\n '⥗': '\\u2957',\n '⊤': '\\u22A4',\n '↧': '\\u21A7',\n '⇓': '\\u21D3',\n '𝒟': '\\uD835\\uDC9F',\n 'Đ': '\\u0110',\n 'Ŋ': '\\u014A',\n 'Ð': '\\u00D0',\n 'Ð': '\\u00D0',\n 'É': '\\u00C9',\n 'É': '\\u00C9',\n 'Ě': '\\u011A',\n 'Ê': '\\u00CA',\n 'Ê': '\\u00CA',\n 'Э': '\\u042D',\n 'Ė': '\\u0116',\n '𝔈': '\\uD835\\uDD08',\n 'È': '\\u00C8',\n 'È': '\\u00C8',\n '∈': '\\u2208',\n 'Ē': '\\u0112',\n '◻': '\\u25FB',\n '▫': '\\u25AB',\n 'Ę': '\\u0118',\n '𝔼': '\\uD835\\uDD3C',\n 'Ε': '\\u0395',\n '⩵': '\\u2A75',\n '≂': '\\u2242',\n '⇌': '\\u21CC',\n 'ℰ': '\\u2130',\n '⩳': '\\u2A73',\n 'Η': '\\u0397',\n 'Ë': '\\u00CB',\n 'Ë': '\\u00CB',\n '∃': '\\u2203',\n 'ⅇ': '\\u2147',\n 'Ф': '\\u0424',\n '𝔉': '\\uD835\\uDD09',\n '◼': '\\u25FC',\n '▪': '\\u25AA',\n '𝔽': '\\uD835\\uDD3D',\n '∀': '\\u2200',\n 'ℱ': '\\u2131',\n 'ℱ': '\\u2131',\n 'Ѓ': '\\u0403',\n '>': '\\u003E',\n '>': '\\u003E',\n 'Γ': '\\u0393',\n 'Ϝ': '\\u03DC',\n 'Ğ': '\\u011E',\n 'Ģ': '\\u0122',\n 'Ĝ': '\\u011C',\n 'Г': '\\u0413',\n 'Ġ': '\\u0120',\n '𝔊': '\\uD835\\uDD0A',\n '⋙': '\\u22D9',\n '𝔾': '\\uD835\\uDD3E',\n '≥': '\\u2265',\n '⋛': '\\u22DB',\n '≧': '\\u2267',\n '⪢': '\\u2AA2',\n '≷': '\\u2277',\n '⩾': '\\u2A7E',\n '≳': '\\u2273',\n '𝒢': '\\uD835\\uDCA2',\n '≫': '\\u226B',\n 'Ъ': '\\u042A',\n 'ˇ': '\\u02C7',\n '^': '\\u005E',\n 'Ĥ': '\\u0124',\n 'ℌ': '\\u210C',\n 'ℋ': '\\u210B',\n 'ℍ': '\\u210D',\n '─': '\\u2500',\n 'ℋ': '\\u210B',\n 'Ħ': '\\u0126',\n '≎': '\\u224E',\n '≏': '\\u224F',\n 'Е': '\\u0415',\n 'IJ': '\\u0132',\n 'Ё': '\\u0401',\n 'Í': '\\u00CD',\n 'Í': '\\u00CD',\n 'Î': '\\u00CE',\n 'Î': '\\u00CE',\n 'И': '\\u0418',\n 'İ': '\\u0130',\n 'ℑ': '\\u2111',\n 'Ì': '\\u00CC',\n 'Ì': '\\u00CC',\n 'ℑ': '\\u2111',\n 'Ī': '\\u012A',\n 'ⅈ': '\\u2148',\n '⇒': '\\u21D2',\n '∬': '\\u222C',\n '∫': '\\u222B',\n '⋂': '\\u22C2',\n '⁣': '\\u2063',\n '⁢': '\\u2062',\n 'Į': '\\u012E',\n '𝕀': '\\uD835\\uDD40',\n 'Ι': '\\u0399',\n 'ℐ': '\\u2110',\n 'Ĩ': '\\u0128',\n 'І': '\\u0406',\n 'Ï': '\\u00CF',\n 'Ï': '\\u00CF',\n 'Ĵ': '\\u0134',\n 'Й': '\\u0419',\n '𝔍': '\\uD835\\uDD0D',\n '𝕁': '\\uD835\\uDD41',\n '𝒥': '\\uD835\\uDCA5',\n 'Ј': '\\u0408',\n 'Є': '\\u0404',\n 'Х': '\\u0425',\n 'Ќ': '\\u040C',\n 'Κ': '\\u039A',\n 'Ķ': '\\u0136',\n 'К': '\\u041A',\n '𝔎': '\\uD835\\uDD0E',\n '𝕂': '\\uD835\\uDD42',\n '𝒦': '\\uD835\\uDCA6',\n 'Љ': '\\u0409',\n '<': '\\u003C',\n '<': '\\u003C',\n 'Ĺ': '\\u0139',\n 'Λ': '\\u039B',\n '⟪': '\\u27EA',\n 'ℒ': '\\u2112',\n '↞': '\\u219E',\n 'Ľ': '\\u013D',\n 'Ļ': '\\u013B',\n 'Л': '\\u041B',\n '⟨': '\\u27E8',\n '←': '\\u2190',\n '⇤': '\\u21E4',\n '⇆': '\\u21C6',\n '⌈': '\\u2308',\n '⟦': '\\u27E6',\n '⥡': '\\u2961',\n '⇃': '\\u21C3',\n '⥙': '\\u2959',\n '⌊': '\\u230A',\n '↔': '\\u2194',\n '⥎': '\\u294E',\n '⊣': '\\u22A3',\n '↤': '\\u21A4',\n '⥚': '\\u295A',\n '⊲': '\\u22B2',\n '⧏': '\\u29CF',\n '⊴': '\\u22B4',\n '⥑': '\\u2951',\n '⥠': '\\u2960',\n '↿': '\\u21BF',\n '⥘': '\\u2958',\n '↼': '\\u21BC',\n '⥒': '\\u2952',\n '⇐': '\\u21D0',\n '⇔': '\\u21D4',\n '⋚': '\\u22DA',\n '≦': '\\u2266',\n '≶': '\\u2276',\n '⪡': '\\u2AA1',\n '⩽': '\\u2A7D',\n '≲': '\\u2272',\n '𝔏': '\\uD835\\uDD0F',\n '⋘': '\\u22D8',\n '⇚': '\\u21DA',\n 'Ŀ': '\\u013F',\n '⟵': '\\u27F5',\n '⟷': '\\u27F7',\n '⟶': '\\u27F6',\n '⟸': '\\u27F8',\n '⟺': '\\u27FA',\n '⟹': '\\u27F9',\n '𝕃': '\\uD835\\uDD43',\n '↙': '\\u2199',\n '↘': '\\u2198',\n 'ℒ': '\\u2112',\n '↰': '\\u21B0',\n 'Ł': '\\u0141',\n '≪': '\\u226A',\n '⤅': '\\u2905',\n 'М': '\\u041C',\n ' ': '\\u205F',\n 'ℳ': '\\u2133',\n '𝔐': '\\uD835\\uDD10',\n '∓': '\\u2213',\n '𝕄': '\\uD835\\uDD44',\n 'ℳ': '\\u2133',\n 'Μ': '\\u039C',\n 'Њ': '\\u040A',\n 'Ń': '\\u0143',\n 'Ň': '\\u0147',\n 'Ņ': '\\u0145',\n 'Н': '\\u041D',\n '​': '\\u200B',\n '​': '\\u200B',\n '​': '\\u200B',\n '​': '\\u200B',\n '≫': '\\u226B',\n '≪': '\\u226A',\n ' ': '\\u000A',\n '𝔑': '\\uD835\\uDD11',\n '⁠': '\\u2060',\n ' ': '\\u00A0',\n 'ℕ': '\\u2115',\n '⫬': '\\u2AEC',\n '≢': '\\u2262',\n '≭': '\\u226D',\n '∦': '\\u2226',\n '∉': '\\u2209',\n '≠': '\\u2260',\n '≂̸': '\\u2242\\u0338',\n '∄': '\\u2204',\n '≯': '\\u226F',\n '≱': '\\u2271',\n '≧̸': '\\u2267\\u0338',\n '≫̸': '\\u226B\\u0338',\n '≹': '\\u2279',\n '⩾̸': '\\u2A7E\\u0338',\n '≵': '\\u2275',\n '≎̸': '\\u224E\\u0338',\n '≏̸': '\\u224F\\u0338',\n '⋪': '\\u22EA',\n '⧏̸': '\\u29CF\\u0338',\n '⋬': '\\u22EC',\n '≮': '\\u226E',\n '≰': '\\u2270',\n '≸': '\\u2278',\n '≪̸': '\\u226A\\u0338',\n '⩽̸': '\\u2A7D\\u0338',\n '≴': '\\u2274',\n '⪢̸': '\\u2AA2\\u0338',\n '⪡̸': '\\u2AA1\\u0338',\n '⊀': '\\u2280',\n '⪯̸': '\\u2AAF\\u0338',\n '⋠': '\\u22E0',\n '∌': '\\u220C',\n '⋫': '\\u22EB',\n '⧐̸': '\\u29D0\\u0338',\n '⋭': '\\u22ED',\n '⊏̸': '\\u228F\\u0338',\n '⋢': '\\u22E2',\n '⊐̸': '\\u2290\\u0338',\n '⋣': '\\u22E3',\n '⊂⃒': '\\u2282\\u20D2',\n '⊈': '\\u2288',\n '⊁': '\\u2281',\n '⪰̸': '\\u2AB0\\u0338',\n '⋡': '\\u22E1',\n '≿̸': '\\u227F\\u0338',\n '⊃⃒': '\\u2283\\u20D2',\n '⊉': '\\u2289',\n '≁': '\\u2241',\n '≄': '\\u2244',\n '≇': '\\u2247',\n '≉': '\\u2249',\n '∤': '\\u2224',\n '𝒩': '\\uD835\\uDCA9',\n 'Ñ': '\\u00D1',\n 'Ñ': '\\u00D1',\n 'Ν': '\\u039D',\n 'Œ': '\\u0152',\n 'Ó': '\\u00D3',\n 'Ó': '\\u00D3',\n 'Ô': '\\u00D4',\n 'Ô': '\\u00D4',\n 'О': '\\u041E',\n 'Ő': '\\u0150',\n '𝔒': '\\uD835\\uDD12',\n 'Ò': '\\u00D2',\n 'Ò': '\\u00D2',\n 'Ō': '\\u014C',\n 'Ω': '\\u03A9',\n 'Ο': '\\u039F',\n '𝕆': '\\uD835\\uDD46',\n '“': '\\u201C',\n '‘': '\\u2018',\n '⩔': '\\u2A54',\n '𝒪': '\\uD835\\uDCAA',\n 'Ø': '\\u00D8',\n 'Ø': '\\u00D8',\n 'Õ': '\\u00D5',\n 'Õ': '\\u00D5',\n '⨷': '\\u2A37',\n 'Ö': '\\u00D6',\n 'Ö': '\\u00D6',\n '‾': '\\u203E',\n '⏞': '\\u23DE',\n '⎴': '\\u23B4',\n '⏜': '\\u23DC',\n '∂': '\\u2202',\n 'П': '\\u041F',\n '𝔓': '\\uD835\\uDD13',\n 'Φ': '\\u03A6',\n 'Π': '\\u03A0',\n '±': '\\u00B1',\n 'ℌ': '\\u210C',\n 'ℙ': '\\u2119',\n '⪻': '\\u2ABB',\n '≺': '\\u227A',\n '⪯': '\\u2AAF',\n '≼': '\\u227C',\n '≾': '\\u227E',\n '″': '\\u2033',\n '∏': '\\u220F',\n '∷': '\\u2237',\n '∝': '\\u221D',\n '𝒫': '\\uD835\\uDCAB',\n 'Ψ': '\\u03A8',\n '"': '\\u0022',\n '"': '\\u0022',\n '𝔔': '\\uD835\\uDD14',\n 'ℚ': '\\u211A',\n '𝒬': '\\uD835\\uDCAC',\n '⤐': '\\u2910',\n '®': '\\u00AE',\n '®': '\\u00AE',\n 'Ŕ': '\\u0154',\n '⟫': '\\u27EB',\n '↠': '\\u21A0',\n '⤖': '\\u2916',\n 'Ř': '\\u0158',\n 'Ŗ': '\\u0156',\n 'Р': '\\u0420',\n 'ℜ': '\\u211C',\n '∋': '\\u220B',\n '⇋': '\\u21CB',\n '⥯': '\\u296F',\n 'ℜ': '\\u211C',\n 'Ρ': '\\u03A1',\n '⟩': '\\u27E9',\n '→': '\\u2192',\n '⇥': '\\u21E5',\n '⇄': '\\u21C4',\n '⌉': '\\u2309',\n '⟧': '\\u27E7',\n '⥝': '\\u295D',\n '⇂': '\\u21C2',\n '⥕': '\\u2955',\n '⌋': '\\u230B',\n '⊢': '\\u22A2',\n '↦': '\\u21A6',\n '⥛': '\\u295B',\n '⊳': '\\u22B3',\n '⧐': '\\u29D0',\n '⊵': '\\u22B5',\n '⥏': '\\u294F',\n '⥜': '\\u295C',\n '↾': '\\u21BE',\n '⥔': '\\u2954',\n '⇀': '\\u21C0',\n '⥓': '\\u2953',\n '⇒': '\\u21D2',\n 'ℝ': '\\u211D',\n '⥰': '\\u2970',\n '⇛': '\\u21DB',\n 'ℛ': '\\u211B',\n '↱': '\\u21B1',\n '⧴': '\\u29F4',\n 'Щ': '\\u0429',\n 'Ш': '\\u0428',\n 'Ь': '\\u042C',\n 'Ś': '\\u015A',\n '⪼': '\\u2ABC',\n 'Š': '\\u0160',\n 'Ş': '\\u015E',\n 'Ŝ': '\\u015C',\n 'С': '\\u0421',\n '𝔖': '\\uD835\\uDD16',\n '↓': '\\u2193',\n '←': '\\u2190',\n '→': '\\u2192',\n '↑': '\\u2191',\n 'Σ': '\\u03A3',\n '∘': '\\u2218',\n '𝕊': '\\uD835\\uDD4A',\n '√': '\\u221A',\n '□': '\\u25A1',\n '⊓': '\\u2293',\n '⊏': '\\u228F',\n '⊑': '\\u2291',\n '⊐': '\\u2290',\n '⊒': '\\u2292',\n '⊔': '\\u2294',\n '𝒮': '\\uD835\\uDCAE',\n '⋆': '\\u22C6',\n '⋐': '\\u22D0',\n '⋐': '\\u22D0',\n '⊆': '\\u2286',\n '≻': '\\u227B',\n '⪰': '\\u2AB0',\n '≽': '\\u227D',\n '≿': '\\u227F',\n '∋': '\\u220B',\n '∑': '\\u2211',\n '⋑': '\\u22D1',\n '⊃': '\\u2283',\n '⊇': '\\u2287',\n '⋑': '\\u22D1',\n 'Þ': '\\u00DE',\n 'Þ': '\\u00DE',\n '™': '\\u2122',\n 'Ћ': '\\u040B',\n 'Ц': '\\u0426',\n ' ': '\\u0009',\n 'Τ': '\\u03A4',\n 'Ť': '\\u0164',\n 'Ţ': '\\u0162',\n 'Т': '\\u0422',\n '𝔗': '\\uD835\\uDD17',\n '∴': '\\u2234',\n 'Θ': '\\u0398',\n '  ': '\\u205F\\u200A',\n ' ': '\\u2009',\n '∼': '\\u223C',\n '≃': '\\u2243',\n '≅': '\\u2245',\n '≈': '\\u2248',\n '𝕋': '\\uD835\\uDD4B',\n '⃛': '\\u20DB',\n '𝒯': '\\uD835\\uDCAF',\n 'Ŧ': '\\u0166',\n 'Ú': '\\u00DA',\n 'Ú': '\\u00DA',\n '↟': '\\u219F',\n '⥉': '\\u2949',\n 'Ў': '\\u040E',\n 'Ŭ': '\\u016C',\n 'Û': '\\u00DB',\n 'Û': '\\u00DB',\n 'У': '\\u0423',\n 'Ű': '\\u0170',\n '𝔘': '\\uD835\\uDD18',\n 'Ù': '\\u00D9',\n 'Ù': '\\u00D9',\n 'Ū': '\\u016A',\n '_': '\\u005F',\n '⏟': '\\u23DF',\n '⎵': '\\u23B5',\n '⏝': '\\u23DD',\n '⋃': '\\u22C3',\n '⊎': '\\u228E',\n 'Ų': '\\u0172',\n '𝕌': '\\uD835\\uDD4C',\n '↑': '\\u2191',\n '⤒': '\\u2912',\n '⇅': '\\u21C5',\n '↕': '\\u2195',\n '⥮': '\\u296E',\n '⊥': '\\u22A5',\n '↥': '\\u21A5',\n '⇑': '\\u21D1',\n '⇕': '\\u21D5',\n '↖': '\\u2196',\n '↗': '\\u2197',\n 'ϒ': '\\u03D2',\n 'Υ': '\\u03A5',\n 'Ů': '\\u016E',\n '𝒰': '\\uD835\\uDCB0',\n 'Ũ': '\\u0168',\n 'Ü': '\\u00DC',\n 'Ü': '\\u00DC',\n '⊫': '\\u22AB',\n '⫫': '\\u2AEB',\n 'В': '\\u0412',\n '⊩': '\\u22A9',\n '⫦': '\\u2AE6',\n '⋁': '\\u22C1',\n '‖': '\\u2016',\n '‖': '\\u2016',\n '∣': '\\u2223',\n '|': '\\u007C',\n '❘': '\\u2758',\n '≀': '\\u2240',\n ' ': '\\u200A',\n '𝔙': '\\uD835\\uDD19',\n '𝕍': '\\uD835\\uDD4D',\n '𝒱': '\\uD835\\uDCB1',\n '⊪': '\\u22AA',\n 'Ŵ': '\\u0174',\n '⋀': '\\u22C0',\n '𝔚': '\\uD835\\uDD1A',\n '𝕎': '\\uD835\\uDD4E',\n '𝒲': '\\uD835\\uDCB2',\n '𝔛': '\\uD835\\uDD1B',\n 'Ξ': '\\u039E',\n '𝕏': '\\uD835\\uDD4F',\n '𝒳': '\\uD835\\uDCB3',\n 'Я': '\\u042F',\n 'Ї': '\\u0407',\n 'Ю': '\\u042E',\n 'Ý': '\\u00DD',\n 'Ý': '\\u00DD',\n 'Ŷ': '\\u0176',\n 'Ы': '\\u042B',\n '𝔜': '\\uD835\\uDD1C',\n '𝕐': '\\uD835\\uDD50',\n '𝒴': '\\uD835\\uDCB4',\n 'Ÿ': '\\u0178',\n 'Ж': '\\u0416',\n 'Ź': '\\u0179',\n 'Ž': '\\u017D',\n 'З': '\\u0417',\n 'Ż': '\\u017B',\n '​': '\\u200B',\n 'Ζ': '\\u0396',\n 'ℨ': '\\u2128',\n 'ℤ': '\\u2124',\n '𝒵': '\\uD835\\uDCB5',\n 'á': '\\u00E1',\n 'á': '\\u00E1',\n 'ă': '\\u0103',\n '∾': '\\u223E',\n '∾̳': '\\u223E\\u0333',\n '∿': '\\u223F',\n 'â': '\\u00E2',\n 'â': '\\u00E2',\n '´': '\\u00B4',\n '´': '\\u00B4',\n 'а': '\\u0430',\n 'æ': '\\u00E6',\n 'æ': '\\u00E6',\n '⁡': '\\u2061',\n '𝔞': '\\uD835\\uDD1E',\n 'à': '\\u00E0',\n 'à': '\\u00E0',\n 'ℵ': '\\u2135',\n 'ℵ': '\\u2135',\n 'α': '\\u03B1',\n 'ā': '\\u0101',\n '⨿': '\\u2A3F',\n '&': '\\u0026',\n '&': '\\u0026',\n '∧': '\\u2227',\n '⩕': '\\u2A55',\n '⩜': '\\u2A5C',\n '⩘': '\\u2A58',\n '⩚': '\\u2A5A',\n '∠': '\\u2220',\n '⦤': '\\u29A4',\n '∠': '\\u2220',\n '∡': '\\u2221',\n '⦨': '\\u29A8',\n '⦩': '\\u29A9',\n '⦪': '\\u29AA',\n '⦫': '\\u29AB',\n '⦬': '\\u29AC',\n '⦭': '\\u29AD',\n '⦮': '\\u29AE',\n '⦯': '\\u29AF',\n '∟': '\\u221F',\n '⊾': '\\u22BE',\n '⦝': '\\u299D',\n '∢': '\\u2222',\n 'Å': '\\u00C5',\n '⍼': '\\u237C',\n 'ą': '\\u0105',\n '𝕒': '\\uD835\\uDD52',\n '≈': '\\u2248',\n '⩰': '\\u2A70',\n '⩯': '\\u2A6F',\n '≊': '\\u224A',\n '≋': '\\u224B',\n ''': '\\u0027',\n '≈': '\\u2248',\n '≊': '\\u224A',\n 'å': '\\u00E5',\n 'å': '\\u00E5',\n '𝒶': '\\uD835\\uDCB6',\n '*': '\\u002A',\n '≈': '\\u2248',\n '≍': '\\u224D',\n 'ã': '\\u00E3',\n 'ã': '\\u00E3',\n 'ä': '\\u00E4',\n 'ä': '\\u00E4',\n '∳': '\\u2233',\n '⨑': '\\u2A11',\n '⫭': '\\u2AED',\n '≌': '\\u224C',\n '϶': '\\u03F6',\n '‵': '\\u2035',\n '∽': '\\u223D',\n '⋍': '\\u22CD',\n '⊽': '\\u22BD',\n '⌅': '\\u2305',\n '⌅': '\\u2305',\n '⎵': '\\u23B5',\n '⎶': '\\u23B6',\n '≌': '\\u224C',\n 'б': '\\u0431',\n '„': '\\u201E',\n '∵': '\\u2235',\n '∵': '\\u2235',\n '⦰': '\\u29B0',\n '϶': '\\u03F6',\n 'ℬ': '\\u212C',\n 'β': '\\u03B2',\n 'ℶ': '\\u2136',\n '≬': '\\u226C',\n '𝔟': '\\uD835\\uDD1F',\n '⋂': '\\u22C2',\n '◯': '\\u25EF',\n '⋃': '\\u22C3',\n '⨀': '\\u2A00',\n '⨁': '\\u2A01',\n '⨂': '\\u2A02',\n '⨆': '\\u2A06',\n '★': '\\u2605',\n '▽': '\\u25BD',\n '△': '\\u25B3',\n '⨄': '\\u2A04',\n '⋁': '\\u22C1',\n '⋀': '\\u22C0',\n '⤍': '\\u290D',\n '⧫': '\\u29EB',\n '▪': '\\u25AA',\n '▴': '\\u25B4',\n '▾': '\\u25BE',\n '◂': '\\u25C2',\n '▸': '\\u25B8',\n '␣': '\\u2423',\n '▒': '\\u2592',\n '░': '\\u2591',\n '▓': '\\u2593',\n '█': '\\u2588',\n '=⃥': '\\u003D\\u20E5',\n '≡⃥': '\\u2261\\u20E5',\n '⌐': '\\u2310',\n '𝕓': '\\uD835\\uDD53',\n '⊥': '\\u22A5',\n '⊥': '\\u22A5',\n '⋈': '\\u22C8',\n '╗': '\\u2557',\n '╔': '\\u2554',\n '╖': '\\u2556',\n '╓': '\\u2553',\n '═': '\\u2550',\n '╦': '\\u2566',\n '╩': '\\u2569',\n '╤': '\\u2564',\n '╧': '\\u2567',\n '╝': '\\u255D',\n '╚': '\\u255A',\n '╜': '\\u255C',\n '╙': '\\u2559',\n '║': '\\u2551',\n '╬': '\\u256C',\n '╣': '\\u2563',\n '╠': '\\u2560',\n '╫': '\\u256B',\n '╢': '\\u2562',\n '╟': '\\u255F',\n '⧉': '\\u29C9',\n '╕': '\\u2555',\n '╒': '\\u2552',\n '┐': '\\u2510',\n '┌': '\\u250C',\n '─': '\\u2500',\n '╥': '\\u2565',\n '╨': '\\u2568',\n '┬': '\\u252C',\n '┴': '\\u2534',\n '⊟': '\\u229F',\n '⊞': '\\u229E',\n '⊠': '\\u22A0',\n '╛': '\\u255B',\n '╘': '\\u2558',\n '┘': '\\u2518',\n '└': '\\u2514',\n '│': '\\u2502',\n '╪': '\\u256A',\n '╡': '\\u2561',\n '╞': '\\u255E',\n '┼': '\\u253C',\n '┤': '\\u2524',\n '├': '\\u251C',\n '‵': '\\u2035',\n '˘': '\\u02D8',\n '¦': '\\u00A6',\n '¦': '\\u00A6',\n '𝒷': '\\uD835\\uDCB7',\n '⁏': '\\u204F',\n '∽': '\\u223D',\n '⋍': '\\u22CD',\n '\': '\\u005C',\n '⧅': '\\u29C5',\n '⟈': '\\u27C8',\n '•': '\\u2022',\n '•': '\\u2022',\n '≎': '\\u224E',\n '⪮': '\\u2AAE',\n '≏': '\\u224F',\n '≏': '\\u224F',\n 'ć': '\\u0107',\n '∩': '\\u2229',\n '⩄': '\\u2A44',\n '⩉': '\\u2A49',\n '⩋': '\\u2A4B',\n '⩇': '\\u2A47',\n '⩀': '\\u2A40',\n '∩︀': '\\u2229\\uFE00',\n '⁁': '\\u2041',\n 'ˇ': '\\u02C7',\n '⩍': '\\u2A4D',\n 'č': '\\u010D',\n 'ç': '\\u00E7',\n 'ç': '\\u00E7',\n 'ĉ': '\\u0109',\n '⩌': '\\u2A4C',\n '⩐': '\\u2A50',\n 'ċ': '\\u010B',\n '¸': '\\u00B8',\n '¸': '\\u00B8',\n '⦲': '\\u29B2',\n '¢': '\\u00A2',\n '¢': '\\u00A2',\n '·': '\\u00B7',\n '𝔠': '\\uD835\\uDD20',\n 'ч': '\\u0447',\n '✓': '\\u2713',\n '✓': '\\u2713',\n 'χ': '\\u03C7',\n '○': '\\u25CB',\n '⧃': '\\u29C3',\n 'ˆ': '\\u02C6',\n '≗': '\\u2257',\n '↺': '\\u21BA',\n '↻': '\\u21BB',\n '®': '\\u00AE',\n 'Ⓢ': '\\u24C8',\n '⊛': '\\u229B',\n '⊚': '\\u229A',\n '⊝': '\\u229D',\n '≗': '\\u2257',\n '⨐': '\\u2A10',\n '⫯': '\\u2AEF',\n '⧂': '\\u29C2',\n '♣': '\\u2663',\n '♣': '\\u2663',\n ':': '\\u003A',\n '≔': '\\u2254',\n '≔': '\\u2254',\n ',': '\\u002C',\n '@': '\\u0040',\n '∁': '\\u2201',\n '∘': '\\u2218',\n '∁': '\\u2201',\n 'ℂ': '\\u2102',\n '≅': '\\u2245',\n '⩭': '\\u2A6D',\n '∮': '\\u222E',\n '𝕔': '\\uD835\\uDD54',\n '∐': '\\u2210',\n '©': '\\u00A9',\n '©': '\\u00A9',\n '℗': '\\u2117',\n '↵': '\\u21B5',\n '✗': '\\u2717',\n '𝒸': '\\uD835\\uDCB8',\n '⫏': '\\u2ACF',\n '⫑': '\\u2AD1',\n '⫐': '\\u2AD0',\n '⫒': '\\u2AD2',\n '⋯': '\\u22EF',\n '⤸': '\\u2938',\n '⤵': '\\u2935',\n '⋞': '\\u22DE',\n '⋟': '\\u22DF',\n '↶': '\\u21B6',\n '⤽': '\\u293D',\n '∪': '\\u222A',\n '⩈': '\\u2A48',\n '⩆': '\\u2A46',\n '⩊': '\\u2A4A',\n '⊍': '\\u228D',\n '⩅': '\\u2A45',\n '∪︀': '\\u222A\\uFE00',\n '↷': '\\u21B7',\n '⤼': '\\u293C',\n '⋞': '\\u22DE',\n '⋟': '\\u22DF',\n '⋎': '\\u22CE',\n '⋏': '\\u22CF',\n '¤': '\\u00A4',\n '¤': '\\u00A4',\n '↶': '\\u21B6',\n '↷': '\\u21B7',\n '⋎': '\\u22CE',\n '⋏': '\\u22CF',\n '∲': '\\u2232',\n '∱': '\\u2231',\n '⌭': '\\u232D',\n '⇓': '\\u21D3',\n '⥥': '\\u2965',\n '†': '\\u2020',\n 'ℸ': '\\u2138',\n '↓': '\\u2193',\n '‐': '\\u2010',\n '⊣': '\\u22A3',\n '⤏': '\\u290F',\n '˝': '\\u02DD',\n 'ď': '\\u010F',\n 'д': '\\u0434',\n 'ⅆ': '\\u2146',\n '‡': '\\u2021',\n '⇊': '\\u21CA',\n '⩷': '\\u2A77',\n '°': '\\u00B0',\n '°': '\\u00B0',\n 'δ': '\\u03B4',\n '⦱': '\\u29B1',\n '⥿': '\\u297F',\n '𝔡': '\\uD835\\uDD21',\n '⇃': '\\u21C3',\n '⇂': '\\u21C2',\n '⋄': '\\u22C4',\n '⋄': '\\u22C4',\n '♦': '\\u2666',\n '♦': '\\u2666',\n '¨': '\\u00A8',\n 'ϝ': '\\u03DD',\n '⋲': '\\u22F2',\n '÷': '\\u00F7',\n '÷': '\\u00F7',\n '÷': '\\u00F7',\n '⋇': '\\u22C7',\n '⋇': '\\u22C7',\n 'ђ': '\\u0452',\n '⌞': '\\u231E',\n '⌍': '\\u230D',\n '$': '\\u0024',\n '𝕕': '\\uD835\\uDD55',\n '˙': '\\u02D9',\n '≐': '\\u2250',\n '≑': '\\u2251',\n '∸': '\\u2238',\n '∔': '\\u2214',\n '⊡': '\\u22A1',\n '⌆': '\\u2306',\n '↓': '\\u2193',\n '⇊': '\\u21CA',\n '⇃': '\\u21C3',\n '⇂': '\\u21C2',\n '⤐': '\\u2910',\n '⌟': '\\u231F',\n '⌌': '\\u230C',\n '𝒹': '\\uD835\\uDCB9',\n 'ѕ': '\\u0455',\n '⧶': '\\u29F6',\n 'đ': '\\u0111',\n '⋱': '\\u22F1',\n '▿': '\\u25BF',\n '▾': '\\u25BE',\n '⇵': '\\u21F5',\n '⥯': '\\u296F',\n '⦦': '\\u29A6',\n 'џ': '\\u045F',\n '⟿': '\\u27FF',\n '⩷': '\\u2A77',\n '≑': '\\u2251',\n 'é': '\\u00E9',\n 'é': '\\u00E9',\n '⩮': '\\u2A6E',\n 'ě': '\\u011B',\n '≖': '\\u2256',\n 'ê': '\\u00EA',\n 'ê': '\\u00EA',\n '≕': '\\u2255',\n 'э': '\\u044D',\n 'ė': '\\u0117',\n 'ⅇ': '\\u2147',\n '≒': '\\u2252',\n '𝔢': '\\uD835\\uDD22',\n '⪚': '\\u2A9A',\n 'è': '\\u00E8',\n 'è': '\\u00E8',\n '⪖': '\\u2A96',\n '⪘': '\\u2A98',\n '⪙': '\\u2A99',\n '⏧': '\\u23E7',\n 'ℓ': '\\u2113',\n '⪕': '\\u2A95',\n '⪗': '\\u2A97',\n 'ē': '\\u0113',\n '∅': '\\u2205',\n '∅': '\\u2205',\n '∅': '\\u2205',\n ' ': '\\u2004',\n ' ': '\\u2005',\n ' ': '\\u2003',\n 'ŋ': '\\u014B',\n ' ': '\\u2002',\n 'ę': '\\u0119',\n '𝕖': '\\uD835\\uDD56',\n '⋕': '\\u22D5',\n '⧣': '\\u29E3',\n '⩱': '\\u2A71',\n 'ε': '\\u03B5',\n 'ε': '\\u03B5',\n 'ϵ': '\\u03F5',\n '≖': '\\u2256',\n '≕': '\\u2255',\n '≂': '\\u2242',\n '⪖': '\\u2A96',\n '⪕': '\\u2A95',\n '=': '\\u003D',\n '≟': '\\u225F',\n '≡': '\\u2261',\n '⩸': '\\u2A78',\n '⧥': '\\u29E5',\n '≓': '\\u2253',\n '⥱': '\\u2971',\n 'ℯ': '\\u212F',\n '≐': '\\u2250',\n '≂': '\\u2242',\n 'η': '\\u03B7',\n 'ð': '\\u00F0',\n 'ð': '\\u00F0',\n 'ë': '\\u00EB',\n 'ë': '\\u00EB',\n '€': '\\u20AC',\n '!': '\\u0021',\n '∃': '\\u2203',\n 'ℰ': '\\u2130',\n 'ⅇ': '\\u2147',\n '≒': '\\u2252',\n 'ф': '\\u0444',\n '♀': '\\u2640',\n 'ffi': '\\uFB03',\n 'ff': '\\uFB00',\n 'ffl': '\\uFB04',\n '𝔣': '\\uD835\\uDD23',\n 'fi': '\\uFB01',\n 'fj': '\\u0066\\u006A',\n '♭': '\\u266D',\n 'fl': '\\uFB02',\n '▱': '\\u25B1',\n 'ƒ': '\\u0192',\n '𝕗': '\\uD835\\uDD57',\n '∀': '\\u2200',\n '⋔': '\\u22D4',\n '⫙': '\\u2AD9',\n '⨍': '\\u2A0D',\n '½': '\\u00BD',\n '½': '\\u00BD',\n '⅓': '\\u2153',\n '¼': '\\u00BC',\n '¼': '\\u00BC',\n '⅕': '\\u2155',\n '⅙': '\\u2159',\n '⅛': '\\u215B',\n '⅔': '\\u2154',\n '⅖': '\\u2156',\n '¾': '\\u00BE',\n '¾': '\\u00BE',\n '⅗': '\\u2157',\n '⅜': '\\u215C',\n '⅘': '\\u2158',\n '⅚': '\\u215A',\n '⅝': '\\u215D',\n '⅞': '\\u215E',\n '⁄': '\\u2044',\n '⌢': '\\u2322',\n '𝒻': '\\uD835\\uDCBB',\n '≧': '\\u2267',\n '⪌': '\\u2A8C',\n 'ǵ': '\\u01F5',\n 'γ': '\\u03B3',\n 'ϝ': '\\u03DD',\n '⪆': '\\u2A86',\n 'ğ': '\\u011F',\n 'ĝ': '\\u011D',\n 'г': '\\u0433',\n 'ġ': '\\u0121',\n '≥': '\\u2265',\n '⋛': '\\u22DB',\n '≥': '\\u2265',\n '≧': '\\u2267',\n '⩾': '\\u2A7E',\n '⩾': '\\u2A7E',\n '⪩': '\\u2AA9',\n '⪀': '\\u2A80',\n '⪂': '\\u2A82',\n '⪄': '\\u2A84',\n '⋛︀': '\\u22DB\\uFE00',\n '⪔': '\\u2A94',\n '𝔤': '\\uD835\\uDD24',\n '≫': '\\u226B',\n '⋙': '\\u22D9',\n 'ℷ': '\\u2137',\n 'ѓ': '\\u0453',\n '≷': '\\u2277',\n '⪒': '\\u2A92',\n '⪥': '\\u2AA5',\n '⪤': '\\u2AA4',\n '≩': '\\u2269',\n '⪊': '\\u2A8A',\n '⪊': '\\u2A8A',\n '⪈': '\\u2A88',\n '⪈': '\\u2A88',\n '≩': '\\u2269',\n '⋧': '\\u22E7',\n '𝕘': '\\uD835\\uDD58',\n '`': '\\u0060',\n 'ℊ': '\\u210A',\n '≳': '\\u2273',\n '⪎': '\\u2A8E',\n '⪐': '\\u2A90',\n '>': '\\u003E',\n '>': '\\u003E',\n '⪧': '\\u2AA7',\n '⩺': '\\u2A7A',\n '⋗': '\\u22D7',\n '⦕': '\\u2995',\n '⩼': '\\u2A7C',\n '⪆': '\\u2A86',\n '⥸': '\\u2978',\n '⋗': '\\u22D7',\n '⋛': '\\u22DB',\n '⪌': '\\u2A8C',\n '≷': '\\u2277',\n '≳': '\\u2273',\n '≩︀': '\\u2269\\uFE00',\n '≩︀': '\\u2269\\uFE00',\n '⇔': '\\u21D4',\n ' ': '\\u200A',\n '½': '\\u00BD',\n 'ℋ': '\\u210B',\n 'ъ': '\\u044A',\n '↔': '\\u2194',\n '⥈': '\\u2948',\n '↭': '\\u21AD',\n 'ℏ': '\\u210F',\n 'ĥ': '\\u0125',\n '♥': '\\u2665',\n '♥': '\\u2665',\n '…': '\\u2026',\n '⊹': '\\u22B9',\n '𝔥': '\\uD835\\uDD25',\n '⤥': '\\u2925',\n '⤦': '\\u2926',\n '⇿': '\\u21FF',\n '∻': '\\u223B',\n '↩': '\\u21A9',\n '↪': '\\u21AA',\n '𝕙': '\\uD835\\uDD59',\n '―': '\\u2015',\n '𝒽': '\\uD835\\uDCBD',\n 'ℏ': '\\u210F',\n 'ħ': '\\u0127',\n '⁃': '\\u2043',\n '‐': '\\u2010',\n 'í': '\\u00ED',\n 'í': '\\u00ED',\n '⁣': '\\u2063',\n 'î': '\\u00EE',\n 'î': '\\u00EE',\n 'и': '\\u0438',\n 'е': '\\u0435',\n '¡': '\\u00A1',\n '¡': '\\u00A1',\n '⇔': '\\u21D4',\n '𝔦': '\\uD835\\uDD26',\n 'ì': '\\u00EC',\n 'ì': '\\u00EC',\n 'ⅈ': '\\u2148',\n '⨌': '\\u2A0C',\n '∭': '\\u222D',\n '⧜': '\\u29DC',\n '℩': '\\u2129',\n 'ij': '\\u0133',\n 'ī': '\\u012B',\n 'ℑ': '\\u2111',\n 'ℐ': '\\u2110',\n 'ℑ': '\\u2111',\n 'ı': '\\u0131',\n '⊷': '\\u22B7',\n 'Ƶ': '\\u01B5',\n '∈': '\\u2208',\n '℅': '\\u2105',\n '∞': '\\u221E',\n '⧝': '\\u29DD',\n 'ı': '\\u0131',\n '∫': '\\u222B',\n '⊺': '\\u22BA',\n 'ℤ': '\\u2124',\n '⊺': '\\u22BA',\n '⨗': '\\u2A17',\n '⨼': '\\u2A3C',\n 'ё': '\\u0451',\n 'į': '\\u012F',\n '𝕚': '\\uD835\\uDD5A',\n 'ι': '\\u03B9',\n '⨼': '\\u2A3C',\n '¿': '\\u00BF',\n '¿': '\\u00BF',\n '𝒾': '\\uD835\\uDCBE',\n '∈': '\\u2208',\n '⋹': '\\u22F9',\n '⋵': '\\u22F5',\n '⋴': '\\u22F4',\n '⋳': '\\u22F3',\n '∈': '\\u2208',\n '⁢': '\\u2062',\n 'ĩ': '\\u0129',\n 'і': '\\u0456',\n 'ï': '\\u00EF',\n 'ï': '\\u00EF',\n 'ĵ': '\\u0135',\n 'й': '\\u0439',\n '𝔧': '\\uD835\\uDD27',\n 'ȷ': '\\u0237',\n '𝕛': '\\uD835\\uDD5B',\n '𝒿': '\\uD835\\uDCBF',\n 'ј': '\\u0458',\n 'є': '\\u0454',\n 'κ': '\\u03BA',\n 'ϰ': '\\u03F0',\n 'ķ': '\\u0137',\n 'к': '\\u043A',\n '𝔨': '\\uD835\\uDD28',\n 'ĸ': '\\u0138',\n 'х': '\\u0445',\n 'ќ': '\\u045C',\n '𝕜': '\\uD835\\uDD5C',\n '𝓀': '\\uD835\\uDCC0',\n '⇚': '\\u21DA',\n '⇐': '\\u21D0',\n '⤛': '\\u291B',\n '⤎': '\\u290E',\n '≦': '\\u2266',\n '⪋': '\\u2A8B',\n '⥢': '\\u2962',\n 'ĺ': '\\u013A',\n '⦴': '\\u29B4',\n 'ℒ': '\\u2112',\n 'λ': '\\u03BB',\n '⟨': '\\u27E8',\n '⦑': '\\u2991',\n '⟨': '\\u27E8',\n '⪅': '\\u2A85',\n '«': '\\u00AB',\n '«': '\\u00AB',\n '←': '\\u2190',\n '⇤': '\\u21E4',\n '⤟': '\\u291F',\n '⤝': '\\u291D',\n '↩': '\\u21A9',\n '↫': '\\u21AB',\n '⤹': '\\u2939',\n '⥳': '\\u2973',\n '↢': '\\u21A2',\n '⪫': '\\u2AAB',\n '⤙': '\\u2919',\n '⪭': '\\u2AAD',\n '⪭︀': '\\u2AAD\\uFE00',\n '⤌': '\\u290C',\n '❲': '\\u2772',\n '{': '\\u007B',\n '[': '\\u005B',\n '⦋': '\\u298B',\n '⦏': '\\u298F',\n '⦍': '\\u298D',\n 'ľ': '\\u013E',\n 'ļ': '\\u013C',\n '⌈': '\\u2308',\n '{': '\\u007B',\n 'л': '\\u043B',\n '⤶': '\\u2936',\n '“': '\\u201C',\n '„': '\\u201E',\n '⥧': '\\u2967',\n '⥋': '\\u294B',\n '↲': '\\u21B2',\n '≤': '\\u2264',\n '←': '\\u2190',\n '↢': '\\u21A2',\n '↽': '\\u21BD',\n '↼': '\\u21BC',\n '⇇': '\\u21C7',\n '↔': '\\u2194',\n '⇆': '\\u21C6',\n '⇋': '\\u21CB',\n '↭': '\\u21AD',\n '⋋': '\\u22CB',\n '⋚': '\\u22DA',\n '≤': '\\u2264',\n '≦': '\\u2266',\n '⩽': '\\u2A7D',\n '⩽': '\\u2A7D',\n '⪨': '\\u2AA8',\n '⩿': '\\u2A7F',\n '⪁': '\\u2A81',\n '⪃': '\\u2A83',\n '⋚︀': '\\u22DA\\uFE00',\n '⪓': '\\u2A93',\n '⪅': '\\u2A85',\n '⋖': '\\u22D6',\n '⋚': '\\u22DA',\n '⪋': '\\u2A8B',\n '≶': '\\u2276',\n '≲': '\\u2272',\n '⥼': '\\u297C',\n '⌊': '\\u230A',\n '𝔩': '\\uD835\\uDD29',\n '≶': '\\u2276',\n '⪑': '\\u2A91',\n '↽': '\\u21BD',\n '↼': '\\u21BC',\n '⥪': '\\u296A',\n '▄': '\\u2584',\n 'љ': '\\u0459',\n '≪': '\\u226A',\n '⇇': '\\u21C7',\n '⌞': '\\u231E',\n '⥫': '\\u296B',\n '◺': '\\u25FA',\n 'ŀ': '\\u0140',\n '⎰': '\\u23B0',\n '⎰': '\\u23B0',\n '≨': '\\u2268',\n '⪉': '\\u2A89',\n '⪉': '\\u2A89',\n '⪇': '\\u2A87',\n '⪇': '\\u2A87',\n '≨': '\\u2268',\n '⋦': '\\u22E6',\n '⟬': '\\u27EC',\n '⇽': '\\u21FD',\n '⟦': '\\u27E6',\n '⟵': '\\u27F5',\n '⟷': '\\u27F7',\n '⟼': '\\u27FC',\n '⟶': '\\u27F6',\n '↫': '\\u21AB',\n '↬': '\\u21AC',\n '⦅': '\\u2985',\n '𝕝': '\\uD835\\uDD5D',\n '⨭': '\\u2A2D',\n '⨴': '\\u2A34',\n '∗': '\\u2217',\n '_': '\\u005F',\n '◊': '\\u25CA',\n '◊': '\\u25CA',\n '⧫': '\\u29EB',\n '(': '\\u0028',\n '⦓': '\\u2993',\n '⇆': '\\u21C6',\n '⌟': '\\u231F',\n '⇋': '\\u21CB',\n '⥭': '\\u296D',\n '‎': '\\u200E',\n '⊿': '\\u22BF',\n '‹': '\\u2039',\n '𝓁': '\\uD835\\uDCC1',\n '↰': '\\u21B0',\n '≲': '\\u2272',\n '⪍': '\\u2A8D',\n '⪏': '\\u2A8F',\n '[': '\\u005B',\n '‘': '\\u2018',\n '‚': '\\u201A',\n 'ł': '\\u0142',\n '<': '\\u003C',\n '<': '\\u003C',\n '⪦': '\\u2AA6',\n '⩹': '\\u2A79',\n '⋖': '\\u22D6',\n '⋋': '\\u22CB',\n '⋉': '\\u22C9',\n '⥶': '\\u2976',\n '⩻': '\\u2A7B',\n '⦖': '\\u2996',\n '◃': '\\u25C3',\n '⊴': '\\u22B4',\n '◂': '\\u25C2',\n '⥊': '\\u294A',\n '⥦': '\\u2966',\n '≨︀': '\\u2268\\uFE00',\n '≨︀': '\\u2268\\uFE00',\n '∺': '\\u223A',\n '¯': '\\u00AF',\n '¯': '\\u00AF',\n '♂': '\\u2642',\n '✠': '\\u2720',\n '✠': '\\u2720',\n '↦': '\\u21A6',\n '↦': '\\u21A6',\n '↧': '\\u21A7',\n '↤': '\\u21A4',\n '↥': '\\u21A5',\n '▮': '\\u25AE',\n '⨩': '\\u2A29',\n 'м': '\\u043C',\n '—': '\\u2014',\n '∡': '\\u2221',\n '𝔪': '\\uD835\\uDD2A',\n '℧': '\\u2127',\n 'µ': '\\u00B5',\n 'µ': '\\u00B5',\n '∣': '\\u2223',\n '*': '\\u002A',\n '⫰': '\\u2AF0',\n '·': '\\u00B7',\n '·': '\\u00B7',\n '−': '\\u2212',\n '⊟': '\\u229F',\n '∸': '\\u2238',\n '⨪': '\\u2A2A',\n '⫛': '\\u2ADB',\n '…': '\\u2026',\n '∓': '\\u2213',\n '⊧': '\\u22A7',\n '𝕞': '\\uD835\\uDD5E',\n '∓': '\\u2213',\n '𝓂': '\\uD835\\uDCC2',\n '∾': '\\u223E',\n 'μ': '\\u03BC',\n '⊸': '\\u22B8',\n '⊸': '\\u22B8',\n '⋙̸': '\\u22D9\\u0338',\n '≫⃒': '\\u226B\\u20D2',\n '≫̸': '\\u226B\\u0338',\n '⇍': '\\u21CD',\n '⇎': '\\u21CE',\n '⋘̸': '\\u22D8\\u0338',\n '≪⃒': '\\u226A\\u20D2',\n '≪̸': '\\u226A\\u0338',\n '⇏': '\\u21CF',\n '⊯': '\\u22AF',\n '⊮': '\\u22AE',\n '∇': '\\u2207',\n 'ń': '\\u0144',\n '∠⃒': '\\u2220\\u20D2',\n '≉': '\\u2249',\n '⩰̸': '\\u2A70\\u0338',\n '≋̸': '\\u224B\\u0338',\n 'ʼn': '\\u0149',\n '≉': '\\u2249',\n '♮': '\\u266E',\n '♮': '\\u266E',\n 'ℕ': '\\u2115',\n ' ': '\\u00A0',\n ' ': '\\u00A0',\n '≎̸': '\\u224E\\u0338',\n '≏̸': '\\u224F\\u0338',\n '⩃': '\\u2A43',\n 'ň': '\\u0148',\n 'ņ': '\\u0146',\n '≇': '\\u2247',\n '⩭̸': '\\u2A6D\\u0338',\n '⩂': '\\u2A42',\n 'н': '\\u043D',\n '–': '\\u2013',\n '≠': '\\u2260',\n '⇗': '\\u21D7',\n '⤤': '\\u2924',\n '↗': '\\u2197',\n '↗': '\\u2197',\n '≐̸': '\\u2250\\u0338',\n '≢': '\\u2262',\n '⤨': '\\u2928',\n '≂̸': '\\u2242\\u0338',\n '∄': '\\u2204',\n '∄': '\\u2204',\n '𝔫': '\\uD835\\uDD2B',\n '≧̸': '\\u2267\\u0338',\n '≱': '\\u2271',\n '≱': '\\u2271',\n '≧̸': '\\u2267\\u0338',\n '⩾̸': '\\u2A7E\\u0338',\n '⩾̸': '\\u2A7E\\u0338',\n '≵': '\\u2275',\n '≯': '\\u226F',\n '≯': '\\u226F',\n '⇎': '\\u21CE',\n '↮': '\\u21AE',\n '⫲': '\\u2AF2',\n '∋': '\\u220B',\n '⋼': '\\u22FC',\n '⋺': '\\u22FA',\n '∋': '\\u220B',\n 'њ': '\\u045A',\n '⇍': '\\u21CD',\n '≦̸': '\\u2266\\u0338',\n '↚': '\\u219A',\n '‥': '\\u2025',\n '≰': '\\u2270',\n '↚': '\\u219A',\n '↮': '\\u21AE',\n '≰': '\\u2270',\n '≦̸': '\\u2266\\u0338',\n '⩽̸': '\\u2A7D\\u0338',\n '⩽̸': '\\u2A7D\\u0338',\n '≮': '\\u226E',\n '≴': '\\u2274',\n '≮': '\\u226E',\n '⋪': '\\u22EA',\n '⋬': '\\u22EC',\n '∤': '\\u2224',\n '𝕟': '\\uD835\\uDD5F',\n '¬': '\\u00AC',\n '¬': '\\u00AC',\n '∉': '\\u2209',\n '⋹̸': '\\u22F9\\u0338',\n '⋵̸': '\\u22F5\\u0338',\n '∉': '\\u2209',\n '⋷': '\\u22F7',\n '⋶': '\\u22F6',\n '∌': '\\u220C',\n '∌': '\\u220C',\n '⋾': '\\u22FE',\n '⋽': '\\u22FD',\n '∦': '\\u2226',\n '∦': '\\u2226',\n '⫽⃥': '\\u2AFD\\u20E5',\n '∂̸': '\\u2202\\u0338',\n '⨔': '\\u2A14',\n '⊀': '\\u2280',\n '⋠': '\\u22E0',\n '⪯̸': '\\u2AAF\\u0338',\n '⊀': '\\u2280',\n '⪯̸': '\\u2AAF\\u0338',\n '⇏': '\\u21CF',\n '↛': '\\u219B',\n '⤳̸': '\\u2933\\u0338',\n '↝̸': '\\u219D\\u0338',\n '↛': '\\u219B',\n '⋫': '\\u22EB',\n '⋭': '\\u22ED',\n '⊁': '\\u2281',\n '⋡': '\\u22E1',\n '⪰̸': '\\u2AB0\\u0338',\n '𝓃': '\\uD835\\uDCC3',\n '∤': '\\u2224',\n '∦': '\\u2226',\n '≁': '\\u2241',\n '≄': '\\u2244',\n '≄': '\\u2244',\n '∤': '\\u2224',\n '∦': '\\u2226',\n '⋢': '\\u22E2',\n '⋣': '\\u22E3',\n '⊄': '\\u2284',\n '⫅̸': '\\u2AC5\\u0338',\n '⊈': '\\u2288',\n '⊂⃒': '\\u2282\\u20D2',\n '⊈': '\\u2288',\n '⫅̸': '\\u2AC5\\u0338',\n '⊁': '\\u2281',\n '⪰̸': '\\u2AB0\\u0338',\n '⊅': '\\u2285',\n '⫆̸': '\\u2AC6\\u0338',\n '⊉': '\\u2289',\n '⊃⃒': '\\u2283\\u20D2',\n '⊉': '\\u2289',\n '⫆̸': '\\u2AC6\\u0338',\n '≹': '\\u2279',\n 'ñ': '\\u00F1',\n 'ñ': '\\u00F1',\n '≸': '\\u2278',\n '⋪': '\\u22EA',\n '⋬': '\\u22EC',\n '⋫': '\\u22EB',\n '⋭': '\\u22ED',\n 'ν': '\\u03BD',\n '#': '\\u0023',\n '№': '\\u2116',\n ' ': '\\u2007',\n '⊭': '\\u22AD',\n '⤄': '\\u2904',\n '≍⃒': '\\u224D\\u20D2',\n '⊬': '\\u22AC',\n '≥⃒': '\\u2265\\u20D2',\n '>⃒': '\\u003E\\u20D2',\n '⧞': '\\u29DE',\n '⤂': '\\u2902',\n '≤⃒': '\\u2264\\u20D2',\n '<⃒': '\\u003C\\u20D2',\n '⊴⃒': '\\u22B4\\u20D2',\n '⤃': '\\u2903',\n '⊵⃒': '\\u22B5\\u20D2',\n '∼⃒': '\\u223C\\u20D2',\n '⇖': '\\u21D6',\n '⤣': '\\u2923',\n '↖': '\\u2196',\n '↖': '\\u2196',\n '⤧': '\\u2927',\n 'Ⓢ': '\\u24C8',\n 'ó': '\\u00F3',\n 'ó': '\\u00F3',\n '⊛': '\\u229B',\n '⊚': '\\u229A',\n 'ô': '\\u00F4',\n 'ô': '\\u00F4',\n 'о': '\\u043E',\n '⊝': '\\u229D',\n 'ő': '\\u0151',\n '⨸': '\\u2A38',\n '⊙': '\\u2299',\n '⦼': '\\u29BC',\n 'œ': '\\u0153',\n '⦿': '\\u29BF',\n '𝔬': '\\uD835\\uDD2C',\n '˛': '\\u02DB',\n 'ò': '\\u00F2',\n 'ò': '\\u00F2',\n '⧁': '\\u29C1',\n '⦵': '\\u29B5',\n 'Ω': '\\u03A9',\n '∮': '\\u222E',\n '↺': '\\u21BA',\n '⦾': '\\u29BE',\n '⦻': '\\u29BB',\n '‾': '\\u203E',\n '⧀': '\\u29C0',\n 'ō': '\\u014D',\n 'ω': '\\u03C9',\n 'ο': '\\u03BF',\n '⦶': '\\u29B6',\n '⊖': '\\u2296',\n '𝕠': '\\uD835\\uDD60',\n '⦷': '\\u29B7',\n '⦹': '\\u29B9',\n '⊕': '\\u2295',\n '∨': '\\u2228',\n '↻': '\\u21BB',\n '⩝': '\\u2A5D',\n 'ℴ': '\\u2134',\n 'ℴ': '\\u2134',\n 'ª': '\\u00AA',\n 'ª': '\\u00AA',\n 'º': '\\u00BA',\n 'º': '\\u00BA',\n '⊶': '\\u22B6',\n '⩖': '\\u2A56',\n '⩗': '\\u2A57',\n '⩛': '\\u2A5B',\n 'ℴ': '\\u2134',\n 'ø': '\\u00F8',\n 'ø': '\\u00F8',\n '⊘': '\\u2298',\n 'õ': '\\u00F5',\n 'õ': '\\u00F5',\n '⊗': '\\u2297',\n '⨶': '\\u2A36',\n 'ö': '\\u00F6',\n 'ö': '\\u00F6',\n '⌽': '\\u233D',\n '∥': '\\u2225',\n '¶': '\\u00B6',\n '¶': '\\u00B6',\n '∥': '\\u2225',\n '⫳': '\\u2AF3',\n '⫽': '\\u2AFD',\n '∂': '\\u2202',\n 'п': '\\u043F',\n '%': '\\u0025',\n '.': '\\u002E',\n '‰': '\\u2030',\n '⊥': '\\u22A5',\n '‱': '\\u2031',\n '𝔭': '\\uD835\\uDD2D',\n 'φ': '\\u03C6',\n 'ϕ': '\\u03D5',\n 'ℳ': '\\u2133',\n '☎': '\\u260E',\n 'π': '\\u03C0',\n '⋔': '\\u22D4',\n 'ϖ': '\\u03D6',\n 'ℏ': '\\u210F',\n 'ℎ': '\\u210E',\n 'ℏ': '\\u210F',\n '+': '\\u002B',\n '⨣': '\\u2A23',\n '⊞': '\\u229E',\n '⨢': '\\u2A22',\n '∔': '\\u2214',\n '⨥': '\\u2A25',\n '⩲': '\\u2A72',\n '±': '\\u00B1',\n '±': '\\u00B1',\n '⨦': '\\u2A26',\n '⨧': '\\u2A27',\n '±': '\\u00B1',\n '⨕': '\\u2A15',\n '𝕡': '\\uD835\\uDD61',\n '£': '\\u00A3',\n '£': '\\u00A3',\n '≺': '\\u227A',\n '⪳': '\\u2AB3',\n '⪷': '\\u2AB7',\n '≼': '\\u227C',\n '⪯': '\\u2AAF',\n '≺': '\\u227A',\n '⪷': '\\u2AB7',\n '≼': '\\u227C',\n '⪯': '\\u2AAF',\n '⪹': '\\u2AB9',\n '⪵': '\\u2AB5',\n '⋨': '\\u22E8',\n '≾': '\\u227E',\n '′': '\\u2032',\n 'ℙ': '\\u2119',\n '⪵': '\\u2AB5',\n '⪹': '\\u2AB9',\n '⋨': '\\u22E8',\n '∏': '\\u220F',\n '⌮': '\\u232E',\n '⌒': '\\u2312',\n '⌓': '\\u2313',\n '∝': '\\u221D',\n '∝': '\\u221D',\n '≾': '\\u227E',\n '⊰': '\\u22B0',\n '𝓅': '\\uD835\\uDCC5',\n 'ψ': '\\u03C8',\n ' ': '\\u2008',\n '𝔮': '\\uD835\\uDD2E',\n '⨌': '\\u2A0C',\n '𝕢': '\\uD835\\uDD62',\n '⁗': '\\u2057',\n '𝓆': '\\uD835\\uDCC6',\n 'ℍ': '\\u210D',\n '⨖': '\\u2A16',\n '?': '\\u003F',\n '≟': '\\u225F',\n '"': '\\u0022',\n '"': '\\u0022',\n '⇛': '\\u21DB',\n '⇒': '\\u21D2',\n '⤜': '\\u291C',\n '⤏': '\\u290F',\n '⥤': '\\u2964',\n '∽̱': '\\u223D\\u0331',\n 'ŕ': '\\u0155',\n '√': '\\u221A',\n '⦳': '\\u29B3',\n '⟩': '\\u27E9',\n '⦒': '\\u2992',\n '⦥': '\\u29A5',\n '⟩': '\\u27E9',\n '»': '\\u00BB',\n '»': '\\u00BB',\n '→': '\\u2192',\n '⥵': '\\u2975',\n '⇥': '\\u21E5',\n '⤠': '\\u2920',\n '⤳': '\\u2933',\n '⤞': '\\u291E',\n '↪': '\\u21AA',\n '↬': '\\u21AC',\n '⥅': '\\u2945',\n '⥴': '\\u2974',\n '↣': '\\u21A3',\n '↝': '\\u219D',\n '⤚': '\\u291A',\n '∶': '\\u2236',\n 'ℚ': '\\u211A',\n '⤍': '\\u290D',\n '❳': '\\u2773',\n '}': '\\u007D',\n ']': '\\u005D',\n '⦌': '\\u298C',\n '⦎': '\\u298E',\n '⦐': '\\u2990',\n 'ř': '\\u0159',\n 'ŗ': '\\u0157',\n '⌉': '\\u2309',\n '}': '\\u007D',\n 'р': '\\u0440',\n '⤷': '\\u2937',\n '⥩': '\\u2969',\n '”': '\\u201D',\n '”': '\\u201D',\n '↳': '\\u21B3',\n 'ℜ': '\\u211C',\n 'ℛ': '\\u211B',\n 'ℜ': '\\u211C',\n 'ℝ': '\\u211D',\n '▭': '\\u25AD',\n '®': '\\u00AE',\n '®': '\\u00AE',\n '⥽': '\\u297D',\n '⌋': '\\u230B',\n '𝔯': '\\uD835\\uDD2F',\n '⇁': '\\u21C1',\n '⇀': '\\u21C0',\n '⥬': '\\u296C',\n 'ρ': '\\u03C1',\n 'ϱ': '\\u03F1',\n '→': '\\u2192',\n '↣': '\\u21A3',\n '⇁': '\\u21C1',\n '⇀': '\\u21C0',\n '⇄': '\\u21C4',\n '⇌': '\\u21CC',\n '⇉': '\\u21C9',\n '↝': '\\u219D',\n '⋌': '\\u22CC',\n '˚': '\\u02DA',\n '≓': '\\u2253',\n '⇄': '\\u21C4',\n '⇌': '\\u21CC',\n '‏': '\\u200F',\n '⎱': '\\u23B1',\n '⎱': '\\u23B1',\n '⫮': '\\u2AEE',\n '⟭': '\\u27ED',\n '⇾': '\\u21FE',\n '⟧': '\\u27E7',\n '⦆': '\\u2986',\n '𝕣': '\\uD835\\uDD63',\n '⨮': '\\u2A2E',\n '⨵': '\\u2A35',\n ')': '\\u0029',\n '⦔': '\\u2994',\n '⨒': '\\u2A12',\n '⇉': '\\u21C9',\n '›': '\\u203A',\n '𝓇': '\\uD835\\uDCC7',\n '↱': '\\u21B1',\n ']': '\\u005D',\n '’': '\\u2019',\n '’': '\\u2019',\n '⋌': '\\u22CC',\n '⋊': '\\u22CA',\n '▹': '\\u25B9',\n '⊵': '\\u22B5',\n '▸': '\\u25B8',\n '⧎': '\\u29CE',\n '⥨': '\\u2968',\n '℞': '\\u211E',\n 'ś': '\\u015B',\n '‚': '\\u201A',\n '≻': '\\u227B',\n '⪴': '\\u2AB4',\n '⪸': '\\u2AB8',\n 'š': '\\u0161',\n '≽': '\\u227D',\n '⪰': '\\u2AB0',\n 'ş': '\\u015F',\n 'ŝ': '\\u015D',\n '⪶': '\\u2AB6',\n '⪺': '\\u2ABA',\n '⋩': '\\u22E9',\n '⨓': '\\u2A13',\n '≿': '\\u227F',\n 'с': '\\u0441',\n '⋅': '\\u22C5',\n '⊡': '\\u22A1',\n '⩦': '\\u2A66',\n '⇘': '\\u21D8',\n '⤥': '\\u2925',\n '↘': '\\u2198',\n '↘': '\\u2198',\n '§': '\\u00A7',\n '§': '\\u00A7',\n ';': '\\u003B',\n '⤩': '\\u2929',\n '∖': '\\u2216',\n '∖': '\\u2216',\n '✶': '\\u2736',\n '𝔰': '\\uD835\\uDD30',\n '⌢': '\\u2322',\n '♯': '\\u266F',\n 'щ': '\\u0449',\n 'ш': '\\u0448',\n '∣': '\\u2223',\n '∥': '\\u2225',\n '­': '\\u00AD',\n '­': '\\u00AD',\n 'σ': '\\u03C3',\n 'ς': '\\u03C2',\n 'ς': '\\u03C2',\n '∼': '\\u223C',\n '⩪': '\\u2A6A',\n '≃': '\\u2243',\n '≃': '\\u2243',\n '⪞': '\\u2A9E',\n '⪠': '\\u2AA0',\n '⪝': '\\u2A9D',\n '⪟': '\\u2A9F',\n '≆': '\\u2246',\n '⨤': '\\u2A24',\n '⥲': '\\u2972',\n '←': '\\u2190',\n '∖': '\\u2216',\n '⨳': '\\u2A33',\n '⧤': '\\u29E4',\n '∣': '\\u2223',\n '⌣': '\\u2323',\n '⪪': '\\u2AAA',\n '⪬': '\\u2AAC',\n '⪬︀': '\\u2AAC\\uFE00',\n 'ь': '\\u044C',\n '/': '\\u002F',\n '⧄': '\\u29C4',\n '⌿': '\\u233F',\n '𝕤': '\\uD835\\uDD64',\n '♠': '\\u2660',\n '♠': '\\u2660',\n '∥': '\\u2225',\n '⊓': '\\u2293',\n '⊓︀': '\\u2293\\uFE00',\n '⊔': '\\u2294',\n '⊔︀': '\\u2294\\uFE00',\n '⊏': '\\u228F',\n '⊑': '\\u2291',\n '⊏': '\\u228F',\n '⊑': '\\u2291',\n '⊐': '\\u2290',\n '⊒': '\\u2292',\n '⊐': '\\u2290',\n '⊒': '\\u2292',\n '□': '\\u25A1',\n '□': '\\u25A1',\n '▪': '\\u25AA',\n '▪': '\\u25AA',\n '→': '\\u2192',\n '𝓈': '\\uD835\\uDCC8',\n '∖': '\\u2216',\n '⌣': '\\u2323',\n '⋆': '\\u22C6',\n '☆': '\\u2606',\n '★': '\\u2605',\n 'ϵ': '\\u03F5',\n 'ϕ': '\\u03D5',\n '¯': '\\u00AF',\n '⊂': '\\u2282',\n '⫅': '\\u2AC5',\n '⪽': '\\u2ABD',\n '⊆': '\\u2286',\n '⫃': '\\u2AC3',\n '⫁': '\\u2AC1',\n '⫋': '\\u2ACB',\n '⊊': '\\u228A',\n '⪿': '\\u2ABF',\n '⥹': '\\u2979',\n '⊂': '\\u2282',\n '⊆': '\\u2286',\n '⫅': '\\u2AC5',\n '⊊': '\\u228A',\n '⫋': '\\u2ACB',\n '⫇': '\\u2AC7',\n '⫕': '\\u2AD5',\n '⫓': '\\u2AD3',\n '≻': '\\u227B',\n '⪸': '\\u2AB8',\n '≽': '\\u227D',\n '⪰': '\\u2AB0',\n '⪺': '\\u2ABA',\n '⪶': '\\u2AB6',\n '⋩': '\\u22E9',\n '≿': '\\u227F',\n '∑': '\\u2211',\n '♪': '\\u266A',\n '¹': '\\u00B9',\n '¹': '\\u00B9',\n '²': '\\u00B2',\n '²': '\\u00B2',\n '³': '\\u00B3',\n '³': '\\u00B3',\n '⊃': '\\u2283',\n '⫆': '\\u2AC6',\n '⪾': '\\u2ABE',\n '⫘': '\\u2AD8',\n '⊇': '\\u2287',\n '⫄': '\\u2AC4',\n '⟉': '\\u27C9',\n '⫗': '\\u2AD7',\n '⥻': '\\u297B',\n '⫂': '\\u2AC2',\n '⫌': '\\u2ACC',\n '⊋': '\\u228B',\n '⫀': '\\u2AC0',\n '⊃': '\\u2283',\n '⊇': '\\u2287',\n '⫆': '\\u2AC6',\n '⊋': '\\u228B',\n '⫌': '\\u2ACC',\n '⫈': '\\u2AC8',\n '⫔': '\\u2AD4',\n '⫖': '\\u2AD6',\n '⇙': '\\u21D9',\n '⤦': '\\u2926',\n '↙': '\\u2199',\n '↙': '\\u2199',\n '⤪': '\\u292A',\n 'ß': '\\u00DF',\n 'ß': '\\u00DF',\n '⌖': '\\u2316',\n 'τ': '\\u03C4',\n '⎴': '\\u23B4',\n 'ť': '\\u0165',\n 'ţ': '\\u0163',\n 'т': '\\u0442',\n '⃛': '\\u20DB',\n '⌕': '\\u2315',\n '𝔱': '\\uD835\\uDD31',\n '∴': '\\u2234',\n '∴': '\\u2234',\n 'θ': '\\u03B8',\n 'ϑ': '\\u03D1',\n 'ϑ': '\\u03D1',\n '≈': '\\u2248',\n '∼': '\\u223C',\n ' ': '\\u2009',\n '≈': '\\u2248',\n '∼': '\\u223C',\n 'þ': '\\u00FE',\n 'þ': '\\u00FE',\n '˜': '\\u02DC',\n '×': '\\u00D7',\n '×': '\\u00D7',\n '⊠': '\\u22A0',\n '⨱': '\\u2A31',\n '⨰': '\\u2A30',\n '∭': '\\u222D',\n '⤨': '\\u2928',\n '⊤': '\\u22A4',\n '⌶': '\\u2336',\n '⫱': '\\u2AF1',\n '𝕥': '\\uD835\\uDD65',\n '⫚': '\\u2ADA',\n '⤩': '\\u2929',\n '‴': '\\u2034',\n '™': '\\u2122',\n '▵': '\\u25B5',\n '▿': '\\u25BF',\n '◃': '\\u25C3',\n '⊴': '\\u22B4',\n '≜': '\\u225C',\n '▹': '\\u25B9',\n '⊵': '\\u22B5',\n '◬': '\\u25EC',\n '≜': '\\u225C',\n '⨺': '\\u2A3A',\n '⨹': '\\u2A39',\n '⧍': '\\u29CD',\n '⨻': '\\u2A3B',\n '⏢': '\\u23E2',\n '𝓉': '\\uD835\\uDCC9',\n 'ц': '\\u0446',\n 'ћ': '\\u045B',\n 'ŧ': '\\u0167',\n '≬': '\\u226C',\n '↞': '\\u219E',\n '↠': '\\u21A0',\n '⇑': '\\u21D1',\n '⥣': '\\u2963',\n 'ú': '\\u00FA',\n 'ú': '\\u00FA',\n '↑': '\\u2191',\n 'ў': '\\u045E',\n 'ŭ': '\\u016D',\n 'û': '\\u00FB',\n 'û': '\\u00FB',\n 'у': '\\u0443',\n '⇅': '\\u21C5',\n 'ű': '\\u0171',\n '⥮': '\\u296E',\n '⥾': '\\u297E',\n '𝔲': '\\uD835\\uDD32',\n 'ù': '\\u00F9',\n 'ù': '\\u00F9',\n '↿': '\\u21BF',\n '↾': '\\u21BE',\n '▀': '\\u2580',\n '⌜': '\\u231C',\n '⌜': '\\u231C',\n '⌏': '\\u230F',\n '◸': '\\u25F8',\n 'ū': '\\u016B',\n '¨': '\\u00A8',\n '¨': '\\u00A8',\n 'ų': '\\u0173',\n '𝕦': '\\uD835\\uDD66',\n '↑': '\\u2191',\n '↕': '\\u2195',\n '↿': '\\u21BF',\n '↾': '\\u21BE',\n '⊎': '\\u228E',\n 'υ': '\\u03C5',\n 'ϒ': '\\u03D2',\n 'υ': '\\u03C5',\n '⇈': '\\u21C8',\n '⌝': '\\u231D',\n '⌝': '\\u231D',\n '⌎': '\\u230E',\n 'ů': '\\u016F',\n '◹': '\\u25F9',\n '𝓊': '\\uD835\\uDCCA',\n '⋰': '\\u22F0',\n 'ũ': '\\u0169',\n '▵': '\\u25B5',\n '▴': '\\u25B4',\n '⇈': '\\u21C8',\n 'ü': '\\u00FC',\n 'ü': '\\u00FC',\n '⦧': '\\u29A7',\n '⇕': '\\u21D5',\n '⫨': '\\u2AE8',\n '⫩': '\\u2AE9',\n '⊨': '\\u22A8',\n '⦜': '\\u299C',\n 'ϵ': '\\u03F5',\n 'ϰ': '\\u03F0',\n '∅': '\\u2205',\n 'ϕ': '\\u03D5',\n 'ϖ': '\\u03D6',\n '∝': '\\u221D',\n '↕': '\\u2195',\n 'ϱ': '\\u03F1',\n 'ς': '\\u03C2',\n '⊊︀': '\\u228A\\uFE00',\n '⫋︀': '\\u2ACB\\uFE00',\n '⊋︀': '\\u228B\\uFE00',\n '⫌︀': '\\u2ACC\\uFE00',\n 'ϑ': '\\u03D1',\n '⊲': '\\u22B2',\n '⊳': '\\u22B3',\n 'в': '\\u0432',\n '⊢': '\\u22A2',\n '∨': '\\u2228',\n '⊻': '\\u22BB',\n '≚': '\\u225A',\n '⋮': '\\u22EE',\n '|': '\\u007C',\n '|': '\\u007C',\n '𝔳': '\\uD835\\uDD33',\n '⊲': '\\u22B2',\n '⊂⃒': '\\u2282\\u20D2',\n '⊃⃒': '\\u2283\\u20D2',\n '𝕧': '\\uD835\\uDD67',\n '∝': '\\u221D',\n '⊳': '\\u22B3',\n '𝓋': '\\uD835\\uDCCB',\n '⫋︀': '\\u2ACB\\uFE00',\n '⊊︀': '\\u228A\\uFE00',\n '⫌︀': '\\u2ACC\\uFE00',\n '⊋︀': '\\u228B\\uFE00',\n '⦚': '\\u299A',\n 'ŵ': '\\u0175',\n '⩟': '\\u2A5F',\n '∧': '\\u2227',\n '≙': '\\u2259',\n '℘': '\\u2118',\n '𝔴': '\\uD835\\uDD34',\n '𝕨': '\\uD835\\uDD68',\n '℘': '\\u2118',\n '≀': '\\u2240',\n '≀': '\\u2240',\n '𝓌': '\\uD835\\uDCCC',\n '⋂': '\\u22C2',\n '◯': '\\u25EF',\n '⋃': '\\u22C3',\n '▽': '\\u25BD',\n '𝔵': '\\uD835\\uDD35',\n '⟺': '\\u27FA',\n '⟷': '\\u27F7',\n 'ξ': '\\u03BE',\n '⟸': '\\u27F8',\n '⟵': '\\u27F5',\n '⟼': '\\u27FC',\n '⋻': '\\u22FB',\n '⨀': '\\u2A00',\n '𝕩': '\\uD835\\uDD69',\n '⨁': '\\u2A01',\n '⨂': '\\u2A02',\n '⟹': '\\u27F9',\n '⟶': '\\u27F6',\n '𝓍': '\\uD835\\uDCCD',\n '⨆': '\\u2A06',\n '⨄': '\\u2A04',\n '△': '\\u25B3',\n '⋁': '\\u22C1',\n '⋀': '\\u22C0',\n 'ý': '\\u00FD',\n 'ý': '\\u00FD',\n 'я': '\\u044F',\n 'ŷ': '\\u0177',\n 'ы': '\\u044B',\n '¥': '\\u00A5',\n '¥': '\\u00A5',\n '𝔶': '\\uD835\\uDD36',\n 'ї': '\\u0457',\n '𝕪': '\\uD835\\uDD6A',\n '𝓎': '\\uD835\\uDCCE',\n 'ю': '\\u044E',\n 'ÿ': '\\u00FF',\n 'ÿ': '\\u00FF',\n 'ź': '\\u017A',\n 'ž': '\\u017E',\n 'з': '\\u0437',\n 'ż': '\\u017C',\n 'ℨ': '\\u2128',\n 'ζ': '\\u03B6',\n '𝔷': '\\uD835\\uDD37',\n 'ж': '\\u0436',\n '⇝': '\\u21DD',\n '𝕫': '\\uD835\\uDD6B',\n '𝓏': '\\uD835\\uDCCF',\n '‍': '\\u200D',\n '‌': '\\u200C'\n};\n\nexport default htmlEntities;\n", "import htmlEntities from './html-entities.js';\n\nexport function decodeHTMLEntities(str) {\n return str.replace(/&(#\\d+|#x[a-f0-9]+|[a-z]+\\d*);?/gi, (match, entity) => {\n if (typeof htmlEntities[match] === 'string') {\n return htmlEntities[match];\n }\n\n if (entity.charAt(0) !== '#' || match.charAt(match.length - 1) !== ';') {\n // keep as is, invalid or unknown sequence\n return match;\n }\n\n let codePoint;\n if (entity.charAt(1) === 'x') {\n // hex\n codePoint = parseInt(entity.substr(2), 16);\n } else {\n // dec\n codePoint = parseInt(entity.substr(1), 10);\n }\n\n var output = '';\n\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n // Invalid range, return a replacement character instead\n return '\\uFFFD';\n }\n\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n\n output += String.fromCharCode(codePoint);\n\n return output;\n });\n}\n\nexport function escapeHtml(str) {\n return str.trim().replace(/[<>\"'?&]/g, c => {\n let hex = c.charCodeAt(0).toString(16);\n if (hex.length < 2) {\n hex = '0' + hex;\n }\n return '&#x' + hex.toUpperCase() + ';';\n });\n}\n\nexport function textToHtml(str) {\n let html = escapeHtml(str).replace(/\\n/g, '
');\n return '
' + html + '
';\n}\n\nexport function htmlToText(str) {\n str = str\n // we can't process tags on multiple lines so remove newlines first\n .replace(/\\r?\\n/g, '\\u0001')\n .replace(/<\\!\\-\\-.*?\\-\\->/gi, ' ')\n\n .replace(/]*>/gi, '\\n')\n .replace(/<\\/?(p|div|table|tr|td|th)\\b[^>]*>/gi, '\\n\\n')\n .replace(/]*>.*?<\\/script\\b[^>]*>/gi, ' ')\n .replace(/^.*]*>/i, '')\n .replace(/^.*<\\/head\\b[^>]*>/i, '')\n .replace(/^.*<\\!doctype\\b[^>]*>/i, '')\n .replace(/<\\/body\\b[^>]*>.*$/i, '')\n .replace(/<\\/html\\b[^>]*>.*$/i, '')\n\n .replace(/]*href\\s*=\\s*[\"']?([^\\s\"']+)[^>]*>/gi, ' ($1) ')\n\n .replace(/<\\/?(span|em|i|strong|b|u|a)\\b[^>]*>/gi, '')\n\n .replace(/]*>[\\n\\u0001\\s]*/gi, '* ')\n\n .replace(/]*>/g, '\\n-------------\\n')\n\n .replace(/<[^>]*>/g, ' ')\n\n // convert linebreak placeholders back to newlines\n .replace(/\\u0001/g, '\\n')\n\n .replace(/[ \\t]+/g, ' ')\n\n .replace(/^\\s+$/gm, '')\n\n .replace(/\\n\\n+/g, '\\n\\n')\n .replace(/^\\n+/, '\\n')\n .replace(/\\n+$/, '\\n');\n\n str = decodeHTMLEntities(str);\n\n return str;\n}\n\nfunction formatTextAddress(address) {\n return []\n .concat(address.name || [])\n .concat(address.name ? `<${address.address}>` : address.address)\n .join(' ');\n}\n\nfunction formatTextAddresses(addresses) {\n let parts = [];\n\n let processAddress = (address, partCounter) => {\n if (partCounter) {\n parts.push(', ');\n }\n\n if (address.group) {\n let groupStart = `${address.name}:`;\n let groupEnd = `;`;\n\n parts.push(groupStart);\n address.group.forEach(processAddress);\n parts.push(groupEnd);\n } else {\n parts.push(formatTextAddress(address));\n }\n };\n\n addresses.forEach(processAddress);\n\n return parts.join('');\n}\n\nfunction formatHtmlAddress(address) {\n return ``;\n}\n\nfunction formatHtmlAddresses(addresses) {\n let parts = [];\n\n let processAddress = (address, partCounter) => {\n if (partCounter) {\n parts.push('');\n }\n\n if (address.group) {\n let groupStart = ``;\n let groupEnd = ``;\n\n parts.push(groupStart);\n address.group.forEach(processAddress);\n parts.push(groupEnd);\n } else {\n parts.push(formatHtmlAddress(address));\n }\n };\n\n addresses.forEach(processAddress);\n\n return parts.join(' ');\n}\n\nfunction foldLines(str, lineLength, afterSpace) {\n str = (str || '').toString();\n lineLength = lineLength || 76;\n\n let pos = 0,\n len = str.length,\n result = '',\n line,\n match;\n\n while (pos < len) {\n line = str.substr(pos, lineLength);\n if (line.length < lineLength) {\n result += line;\n break;\n }\n if ((match = line.match(/^[^\\n\\r]*(\\r?\\n|\\r)/))) {\n line = match[0];\n result += line;\n pos += line.length;\n continue;\n } else if (\n (match = line.match(/(\\s+)[^\\s]*$/)) &&\n match[0].length - (afterSpace ? (match[1] || '').length : 0) < line.length\n ) {\n line = line.substr(0, line.length - (match[0].length - (afterSpace ? (match[1] || '').length : 0)));\n } else if ((match = str.substr(pos + line.length).match(/^[^\\s]+(\\s*)/))) {\n line = line + match[0].substr(0, match[0].length - (!afterSpace ? (match[1] || '').length : 0));\n }\n\n result += line;\n pos += line.length;\n if (pos < len) {\n result += '\\r\\n';\n }\n }\n\n return result;\n}\n\nexport function formatTextHeader(message) {\n let rows = [];\n\n if (message.from) {\n rows.push({ key: 'From', val: formatTextAddress(message.from) });\n }\n\n if (message.subject) {\n rows.push({ key: 'Subject', val: message.subject });\n }\n\n if (message.date) {\n let dateOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n\n let dateStr =\n typeof Intl === 'undefined'\n ? message.date\n : new Intl.DateTimeFormat('default', dateOptions).format(new Date(message.date));\n\n rows.push({ key: 'Date', val: dateStr });\n }\n\n if (message.to && message.to.length) {\n rows.push({ key: 'To', val: formatTextAddresses(message.to) });\n }\n\n if (message.cc && message.cc.length) {\n rows.push({ key: 'Cc', val: formatTextAddresses(message.cc) });\n }\n\n if (message.bcc && message.bcc.length) {\n rows.push({ key: 'Bcc', val: formatTextAddresses(message.bcc) });\n }\n\n // Align keys and values by adding space between these two\n // Also make sure that the separator line is as long as the longest line\n // Should end up with something like this:\n /*\n -----------------------------\n From: xx xx \n Subject: Example Subject\n Date: 16/02/2021, 02:57:06\n To: not@found.com\n -----------------------------\n */\n\n let maxKeyLength = rows\n .map(r => r.key.length)\n .reduce((acc, cur) => {\n return cur > acc ? cur : acc;\n }, 0);\n\n rows = rows.flatMap(row => {\n let sepLen = maxKeyLength - row.key.length;\n let prefix = `${row.key}: ${' '.repeat(sepLen)}`;\n let emptyPrefix = `${' '.repeat(row.key.length + 1)} ${' '.repeat(sepLen)}`;\n\n let foldedLines = foldLines(row.val, 80, true)\n .split(/\\r?\\n/)\n .map(line => line.trim());\n\n return foldedLines.map((line, i) => `${i ? emptyPrefix : prefix}${line}`);\n });\n\n let maxLineLength = rows\n .map(r => r.length)\n .reduce((acc, cur) => {\n return cur > acc ? cur : acc;\n }, 0);\n\n let lineMarker = '-'.repeat(maxLineLength);\n\n let template = `\n${lineMarker}\n${rows.join('\\n')}\n${lineMarker}\n`;\n\n return template;\n}\n\nexport function formatHtmlHeader(message) {\n let rows = [];\n\n if (message.from) {\n rows.push(\n ``\n );\n }\n\n if (message.subject) {\n rows.push(\n ``\n );\n }\n\n if (message.date) {\n let dateOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n\n let dateStr =\n typeof Intl === 'undefined'\n ? message.date\n : new Intl.DateTimeFormat('default', dateOptions).format(new Date(message.date));\n\n rows.push(\n ``\n );\n }\n\n if (message.to && message.to.length) {\n rows.push(\n ``\n );\n }\n\n if (message.cc && message.cc.length) {\n rows.push(\n ``\n );\n }\n\n if (message.bcc && message.bcc.length) {\n rows.push(\n ``\n );\n }\n\n let template = ``;\n\n return template;\n}\n", "import { decodeWords } from './decode-strings.js';\n\n/**\n * Converts tokens for a single address into an address object\n *\n * @param {Array} tokens Tokens object\n * @return {Object} Address object\n */\nfunction _handleAddress(tokens) {\n let isGroup = false;\n let state = 'text';\n let address;\n let addresses = [];\n let data = {\n address: [],\n comment: [],\n group: [],\n text: [],\n textWasQuoted: [] // Track which text tokens came from inside quotes\n };\n let i;\n let len;\n let insideQuotes = false; // Track if we're currently inside a quoted string\n\n // Filter out , (comments) and regular text\n for (i = 0, len = tokens.length; i < len; i++) {\n let token = tokens[i];\n let prevToken = i ? tokens[i - 1] : null;\n if (token.type === 'operator') {\n switch (token.value) {\n case '<':\n state = 'address';\n insideQuotes = false;\n break;\n case '(':\n state = 'comment';\n insideQuotes = false;\n break;\n case ':':\n state = 'group';\n isGroup = true;\n insideQuotes = false;\n break;\n case '\"':\n // Track quote state for text tokens\n insideQuotes = !insideQuotes;\n state = 'text';\n break;\n default:\n state = 'text';\n insideQuotes = false;\n break;\n }\n } else if (token.value) {\n if (state === 'address') {\n // handle use case where unquoted name includes a \"<\"\n // Apple Mail truncates everything between an unexpected < and an address\n // and so will we\n token.value = token.value.replace(/^[^<]*<\\s*/, '');\n }\n\n if (prevToken && prevToken.noBreak && data[state].length) {\n // join values\n data[state][data[state].length - 1] += token.value;\n if (state === 'text' && insideQuotes) {\n data.textWasQuoted[data.textWasQuoted.length - 1] = true;\n }\n } else {\n data[state].push(token.value);\n if (state === 'text') {\n data.textWasQuoted.push(insideQuotes);\n }\n }\n }\n }\n\n // If there is no text but a comment, replace the two\n if (!data.text.length && data.comment.length) {\n data.text = data.comment;\n data.comment = [];\n }\n\n if (isGroup) {\n // http://tools.ietf.org/html/rfc2822#appendix-A.1.3\n data.text = data.text.join(' ');\n\n // Parse group members, but flatten any nested groups (RFC 5322 doesn't allow nesting)\n let groupMembers = [];\n if (data.group.length) {\n let parsedGroup = addressParser(data.group.join(','));\n // Flatten: if any member is itself a group, extract its members into the sequence\n parsedGroup.forEach(member => {\n if (member.group) {\n // Nested group detected - flatten it by adding its members directly\n groupMembers = groupMembers.concat(member.group);\n } else {\n groupMembers.push(member);\n }\n });\n }\n\n addresses.push({\n name: decodeWords(data.text || (address && address.name)),\n group: groupMembers\n });\n } else {\n // If no address was found, try to detect one from regular text\n if (!data.address.length && data.text.length) {\n for (i = data.text.length - 1; i >= 0; i--) {\n // Security fix: Do not extract email addresses from quoted strings\n // RFC 5321 allows @ inside quoted local-parts like \"user@domain\"@example.com\n // Extracting emails from quoted text leads to misrouting vulnerabilities\n if (!data.textWasQuoted[i] && data.text[i].match(/^[^@\\s]+@[^@\\s]+$/)) {\n data.address = data.text.splice(i, 1);\n data.textWasQuoted.splice(i, 1);\n break;\n }\n }\n\n let _regexHandler = function (address) {\n if (!data.address.length) {\n data.address = [address.trim()];\n return ' ';\n } else {\n return address;\n }\n };\n\n // still no address\n if (!data.address.length) {\n for (i = data.text.length - 1; i >= 0; i--) {\n // Security fix: Do not extract email addresses from quoted strings\n if (!data.textWasQuoted[i]) {\n // fixed the regex to parse email address correctly when email address has more than one @\n data.text[i] = data.text[i].replace(/\\s*\\b[^@\\s]+@[^\\s]+\\b\\s*/, _regexHandler).trim();\n if (data.address.length) {\n break;\n }\n }\n }\n }\n }\n\n // If there's still is no text but a comment exixts, replace the two\n if (!data.text.length && data.comment.length) {\n data.text = data.comment;\n data.comment = [];\n }\n\n // Keep only the first address occurence, push others to regular text\n if (data.address.length > 1) {\n data.text = data.text.concat(data.address.splice(1));\n }\n\n // Join values with spaces\n data.text = data.text.join(' ');\n data.address = data.address.join(' ');\n\n if (!data.address && /^=\\?[^=]+?=$/.test(data.text.trim())) {\n // try to extract words from text content\n const parsedSubAddresses = addressParser(decodeWords(data.text));\n if (parsedSubAddresses && parsedSubAddresses.length) {\n return parsedSubAddresses;\n }\n }\n\n if (!data.address && isGroup) {\n return [];\n } else {\n address = {\n address: data.address || data.text || '',\n name: decodeWords(data.text || data.address || '')\n };\n\n if (address.address === address.name) {\n if ((address.address || '').match(/@/)) {\n address.name = '';\n } else {\n address.address = '';\n }\n }\n\n addresses.push(address);\n }\n }\n\n return addresses;\n}\n\n/**\n * Creates a Tokenizer object for tokenizing address field strings\n *\n * @constructor\n * @param {String} str Address field string\n */\nclass Tokenizer {\n constructor(str) {\n this.str = (str || '').toString();\n this.operatorCurrent = '';\n this.operatorExpecting = '';\n this.node = null;\n this.escaped = false;\n\n this.list = [];\n /**\n * Operator tokens and which tokens are expected to end the sequence\n */\n this.operators = {\n '\"': '\"',\n '(': ')',\n '<': '>',\n ',': '',\n ':': ';',\n // Semicolons are not a legal delimiter per the RFC2822 grammar other\n // than for terminating a group, but they are also not valid for any\n // other use in this context. Given that some mail clients have\n // historically allowed the semicolon as a delimiter equivalent to the\n // comma in their UI, it makes sense to treat them the same as a comma\n // when used outside of a group.\n ';': ''\n };\n }\n\n /**\n * Tokenizes the original input string\n *\n * @return {Array} An array of operator|text tokens\n */\n tokenize() {\n let list = [];\n\n for (let i = 0, len = this.str.length; i < len; i++) {\n let chr = this.str.charAt(i);\n let nextChr = i < len - 1 ? this.str.charAt(i + 1) : null;\n this.checkChar(chr, nextChr);\n }\n\n this.list.forEach(node => {\n node.value = (node.value || '').toString().trim();\n if (node.value) {\n list.push(node);\n }\n });\n\n return list;\n }\n\n /**\n * Checks if a character is an operator or text and acts accordingly\n *\n * @param {String} chr Character from the address field\n */\n checkChar(chr, nextChr) {\n if (this.escaped) {\n // ignore next condition blocks\n } else if (chr === this.operatorExpecting) {\n this.node = {\n type: 'operator',\n value: chr\n };\n\n if (nextChr && ![' ', '\\t', '\\r', '\\n', ',', ';'].includes(nextChr)) {\n this.node.noBreak = true;\n }\n\n this.list.push(this.node);\n this.node = null;\n this.operatorExpecting = '';\n this.escaped = false;\n\n return;\n } else if (!this.operatorExpecting && chr in this.operators) {\n this.node = {\n type: 'operator',\n value: chr\n };\n this.list.push(this.node);\n this.node = null;\n this.operatorExpecting = this.operators[chr];\n this.escaped = false;\n return;\n } else if (['\"', \"'\"].includes(this.operatorExpecting) && chr === '\\\\') {\n this.escaped = true;\n return;\n }\n\n if (!this.node) {\n this.node = {\n type: 'text',\n value: ''\n };\n this.list.push(this.node);\n }\n\n if (chr === '\\n') {\n // Convert newlines to spaces. Carriage return is ignored as \\r and \\n usually\n // go together anyway and there already is a WS for \\n. Lone \\r means something is fishy.\n chr = ' ';\n }\n\n if (chr.charCodeAt(0) >= 0x21 || [' ', '\\t'].includes(chr)) {\n // skip command bytes\n this.node.value += chr;\n }\n\n this.escaped = false;\n }\n}\n\n/**\n * Parses structured e-mail addresses from an address field\n *\n * Example:\n *\n * 'Name '\n *\n * will be converted to\n *\n * [{name: 'Name', address: 'address@domain'}]\n *\n * @param {String} str Address field\n * @return {Array} An array of address objects\n */\nfunction addressParser(str, options) {\n options = options || {};\n\n let tokenizer = new Tokenizer(str);\n let tokens = tokenizer.tokenize();\n\n let addresses = [];\n let address = [];\n let parsedAddresses = [];\n\n tokens.forEach(token => {\n if (token.type === 'operator' && (token.value === ',' || token.value === ';')) {\n if (address.length) {\n addresses.push(address);\n }\n address = [];\n } else {\n address.push(token);\n }\n });\n\n if (address.length) {\n addresses.push(address);\n }\n\n addresses.forEach(address => {\n address = _handleAddress(address);\n if (address.length) {\n parsedAddresses = parsedAddresses.concat(address);\n }\n });\n\n if (options.flatten) {\n let addresses = [];\n let walkAddressList = list => {\n list.forEach(address => {\n if (address.group) {\n return walkAddressList(address.group);\n } else {\n addresses.push(address);\n }\n });\n };\n walkAddressList(parsedAddresses);\n return addresses;\n }\n\n return parsedAddresses;\n}\n\n// expose to the world\nexport default addressParser;\n", "// Code from: https://gist.githubusercontent.com/jonleighton/958841/raw/fb05a8632efb75d85d43deb593df04367ce48371/base64ArrayBuffer.js\n\n// Converts an ArrayBuffer directly to base64, without any intermediate 'convert to string then\n// use window.btoa' step. According to my tests, this appears to be a faster approach:\n// http://jsperf.com/encoding-xhr-image-data/5\n\n/*\nMIT LICENSE\n\nCopyright 2011 Jon Leighton\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nexport function base64ArrayBuffer(arrayBuffer) {\n var base64 = '';\n var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n var bytes = new Uint8Array(arrayBuffer);\n var byteLength = bytes.byteLength;\n var byteRemainder = byteLength % 3;\n var mainLength = byteLength - byteRemainder;\n\n var a, b, c, d;\n var chunk;\n\n // Main loop deals with bytes in chunks of 3\n for (var i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n }\n\n // Deal with the remaining bytes and padding\n if (byteRemainder == 1) {\n chunk = bytes[mainLength];\n\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n base64 += encodings[a] + encodings[b] + '==';\n } else if (byteRemainder == 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n base64 += encodings[a] + encodings[b] + encodings[c] + '=';\n }\n\n return base64;\n}\n", "import MimeNode from './mime-node.js';\nimport { textToHtml, htmlToText, formatTextHeader, formatHtmlHeader } from './text-format.js';\nimport addressParser from './address-parser.js';\nimport { decodeWords, textEncoder, blobToArrayBuffer } from './decode-strings.js';\nimport { base64ArrayBuffer } from './base64-encoder.js';\n\nexport { addressParser, decodeWords };\n\nconst MAX_NESTING_DEPTH = 256;\nconst MAX_HEADERS_SIZE = 2 * 1024 * 1024;\n\nexport default class PostalMime {\n static parse(buf, options) {\n const parser = new PostalMime(options);\n return parser.parse(buf);\n }\n\n constructor(options) {\n this.options = options || {};\n this.mimeOptions = {\n maxNestingDepth: this.options.maxNestingDepth || MAX_NESTING_DEPTH,\n maxHeadersSize: this.options.maxHeadersSize || MAX_HEADERS_SIZE\n };\n\n this.root = this.currentNode = new MimeNode({\n postalMime: this,\n ...this.mimeOptions\n });\n this.boundaries = [];\n\n this.textContent = {};\n this.attachments = [];\n\n this.attachmentEncoding =\n (this.options.attachmentEncoding || '')\n .toString()\n .replace(/[-_\\s]/g, '')\n .trim()\n .toLowerCase() || 'arraybuffer';\n\n this.started = false;\n }\n\n async finalize() {\n // close all pending nodes\n await this.root.finalize();\n }\n\n async processLine(line, isFinal) {\n let boundaries = this.boundaries;\n\n // check if this is a mime boundary\n if (boundaries.length && line.length > 2 && line[0] === 0x2d && line[1] === 0x2d) {\n // could be a boundary marker\n for (let i = boundaries.length - 1; i >= 0; i--) {\n let boundary = boundaries[i];\n\n if (line.length !== boundary.value.length + 2 && line.length !== boundary.value.length + 4) {\n continue;\n }\n\n let isTerminator = line.length === boundary.value.length + 4;\n\n if (isTerminator && (line[line.length - 2] !== 0x2d || line[line.length - 1] !== 0x2d)) {\n continue;\n }\n\n let boudaryMatches = true;\n for (let i = 0; i < boundary.value.length; i++) {\n if (line[i + 2] !== boundary.value[i]) {\n boudaryMatches = false;\n break;\n }\n }\n if (!boudaryMatches) {\n continue;\n }\n\n if (isTerminator) {\n await boundary.node.finalize();\n\n this.currentNode = boundary.node.parentNode || this.root;\n } else {\n // finalize any open child nodes (should be just one though)\n await boundary.node.finalizeChildNodes();\n\n this.currentNode = new MimeNode({\n postalMime: this,\n parentNode: boundary.node,\n ...this.mimeOptions\n });\n }\n\n if (isFinal) {\n return this.finalize();\n }\n\n return;\n }\n }\n\n this.currentNode.feed(line);\n\n if (isFinal) {\n return this.finalize();\n }\n }\n\n readLine() {\n let startPos = this.readPos;\n let endPos = this.readPos;\n\n let res = () => {\n return {\n bytes: new Uint8Array(this.buf, startPos, endPos - startPos),\n done: this.readPos >= this.av.length\n };\n };\n\n while (this.readPos < this.av.length) {\n const c = this.av[this.readPos++];\n\n if (c !== 0x0d && c !== 0x0a) {\n endPos = this.readPos;\n }\n\n if (c === 0x0a) {\n return res();\n }\n }\n\n return res();\n }\n\n async processNodeTree() {\n // get text nodes\n\n let textContent = {};\n\n let textTypes = new Set();\n let textMap = (this.textMap = new Map());\n\n let forceRfc822Attachments = this.forceRfc822Attachments();\n\n let walk = async (node, alternative, related) => {\n alternative = alternative || false;\n related = related || false;\n\n if (!node.contentType.multipart) {\n // is it inline message/rfc822\n if (this.isInlineMessageRfc822(node) && !forceRfc822Attachments) {\n const subParser = new PostalMime();\n node.subMessage = await subParser.parse(node.content);\n\n if (!textMap.has(node)) {\n textMap.set(node, {});\n }\n\n let textEntry = textMap.get(node);\n\n // default to text if there is no content\n if (node.subMessage.text || !node.subMessage.html) {\n textEntry.plain = textEntry.plain || [];\n textEntry.plain.push({ type: 'subMessage', value: node.subMessage });\n textTypes.add('plain');\n }\n\n if (node.subMessage.html) {\n textEntry.html = textEntry.html || [];\n textEntry.html.push({ type: 'subMessage', value: node.subMessage });\n textTypes.add('html');\n }\n\n if (subParser.textMap) {\n subParser.textMap.forEach((subTextEntry, subTextNode) => {\n textMap.set(subTextNode, subTextEntry);\n });\n }\n\n for (let attachment of node.subMessage.attachments || []) {\n this.attachments.push(attachment);\n }\n }\n\n // is it text?\n else if (this.isInlineTextNode(node)) {\n let textType = node.contentType.parsed.value.substr(node.contentType.parsed.value.indexOf('/') + 1);\n\n let selectorNode = alternative || node;\n if (!textMap.has(selectorNode)) {\n textMap.set(selectorNode, {});\n }\n\n let textEntry = textMap.get(selectorNode);\n textEntry[textType] = textEntry[textType] || [];\n textEntry[textType].push({ type: 'text', value: node.getTextContent() });\n textTypes.add(textType);\n }\n\n // is it an attachment\n else if (node.content) {\n const filename =\n node.contentDisposition.parsed.params.filename || node.contentType.parsed.params.name || null;\n const attachment = {\n filename: filename ? decodeWords(filename) : null,\n mimeType: node.contentType.parsed.value,\n disposition: node.contentDisposition.parsed.value || null\n };\n\n if (related && node.contentId) {\n attachment.related = true;\n }\n\n if (node.contentDescription) {\n attachment.description = node.contentDescription;\n }\n\n if (node.contentId) {\n attachment.contentId = node.contentId;\n }\n\n switch (node.contentType.parsed.value) {\n // Special handling for calendar events\n case 'text/calendar':\n case 'application/ics': {\n if (node.contentType.parsed.params.method) {\n attachment.method = node.contentType.parsed.params.method\n .toString()\n .toUpperCase()\n .trim();\n }\n\n // Enforce into unicode\n const decodedText = node.getTextContent().replace(/\\r?\\n/g, '\\n').replace(/\\n*$/, '\\n');\n attachment.content = textEncoder.encode(decodedText);\n break;\n }\n\n // Regular attachments\n default:\n attachment.content = node.content;\n }\n\n this.attachments.push(attachment);\n }\n } else if (node.contentType.multipart === 'alternative') {\n alternative = node;\n } else if (node.contentType.multipart === 'related') {\n related = node;\n }\n\n for (let childNode of node.childNodes) {\n await walk(childNode, alternative, related);\n }\n };\n\n await walk(this.root, false, []);\n\n textMap.forEach(mapEntry => {\n textTypes.forEach(textType => {\n if (!textContent[textType]) {\n textContent[textType] = [];\n }\n\n if (mapEntry[textType]) {\n mapEntry[textType].forEach(textEntry => {\n switch (textEntry.type) {\n case 'text':\n textContent[textType].push(textEntry.value);\n break;\n\n case 'subMessage':\n {\n switch (textType) {\n case 'html':\n textContent[textType].push(formatHtmlHeader(textEntry.value));\n break;\n case 'plain':\n textContent[textType].push(formatTextHeader(textEntry.value));\n break;\n }\n }\n break;\n }\n });\n } else {\n let alternativeType;\n switch (textType) {\n case 'html':\n alternativeType = 'plain';\n break;\n case 'plain':\n alternativeType = 'html';\n break;\n }\n\n (mapEntry[alternativeType] || []).forEach(textEntry => {\n switch (textEntry.type) {\n case 'text':\n switch (textType) {\n case 'html':\n textContent[textType].push(textToHtml(textEntry.value));\n break;\n case 'plain':\n textContent[textType].push(htmlToText(textEntry.value));\n break;\n }\n break;\n\n case 'subMessage':\n {\n switch (textType) {\n case 'html':\n textContent[textType].push(formatHtmlHeader(textEntry.value));\n break;\n case 'plain':\n textContent[textType].push(formatTextHeader(textEntry.value));\n break;\n }\n }\n break;\n }\n });\n }\n });\n });\n\n Object.keys(textContent).forEach(textType => {\n textContent[textType] = textContent[textType].join('\\n');\n });\n\n this.textContent = textContent;\n }\n\n isInlineTextNode(node) {\n if (node.contentDisposition.parsed.value === 'attachment') {\n // no matter the type, this is an attachment\n return false;\n }\n\n switch (node.contentType.parsed.value) {\n case 'text/html':\n case 'text/plain':\n return true;\n\n case 'text/calendar':\n case 'text/csv':\n default:\n return false;\n }\n }\n\n isInlineMessageRfc822(node) {\n if (node.contentType.parsed.value !== 'message/rfc822') {\n return false;\n }\n let disposition =\n node.contentDisposition.parsed.value || (this.options.rfc822Attachments ? 'attachment' : 'inline');\n return disposition === 'inline';\n }\n\n // Check if this is a specially crafted report email where message/rfc822 content should not be inlined\n forceRfc822Attachments() {\n if (this.options.forceRfc822Attachments) {\n return true;\n }\n\n let forceRfc822Attachments = false;\n let walk = node => {\n if (!node.contentType.multipart) {\n if (['message/delivery-status', 'message/feedback-report'].includes(node.contentType.parsed.value)) {\n forceRfc822Attachments = true;\n }\n }\n\n for (let childNode of node.childNodes) {\n walk(childNode);\n }\n };\n walk(this.root);\n return forceRfc822Attachments;\n }\n\n async resolveStream(stream) {\n let chunkLen = 0;\n let chunks = [];\n const reader = stream.getReader();\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n chunkLen += value.length;\n }\n\n const result = new Uint8Array(chunkLen);\n let chunkPointer = 0;\n for (let chunk of chunks) {\n result.set(chunk, chunkPointer);\n chunkPointer += chunk.length;\n }\n\n return result;\n }\n\n async parse(buf) {\n if (this.started) {\n throw new Error('Can not reuse parser, create a new PostalMime object');\n }\n this.started = true;\n\n // Check if the input is a readable stream and resolve it into an ArrayBuffer\n if (buf && typeof buf.getReader === 'function') {\n buf = await this.resolveStream(buf);\n }\n\n // Should it throw for an empty value instead of defaulting to an empty ArrayBuffer?\n buf = buf || new ArrayBuffer(0);\n\n // Cast string input to Uint8Array\n if (typeof buf === 'string') {\n buf = textEncoder.encode(buf);\n }\n\n // Cast Blob to ArrayBuffer\n if (buf instanceof Blob || Object.prototype.toString.call(buf) === '[object Blob]') {\n buf = await blobToArrayBuffer(buf);\n }\n\n // Cast Node.js Buffer object or Uint8Array into ArrayBuffer\n if (buf.buffer instanceof ArrayBuffer) {\n buf = new Uint8Array(buf).buffer;\n }\n\n this.buf = buf;\n\n this.av = new Uint8Array(buf);\n this.readPos = 0;\n\n while (this.readPos < this.av.length) {\n const line = this.readLine();\n\n await this.processLine(line.bytes, line.done);\n }\n\n await this.processNodeTree();\n\n const message = {\n headers: this.root.headers.map(entry => ({ key: entry.key, value: entry.value })).reverse()\n };\n\n for (const key of ['from', 'sender']) {\n const addressHeader = this.root.headers.find(line => line.key === key);\n if (addressHeader && addressHeader.value) {\n const addresses = addressParser(addressHeader.value);\n if (addresses && addresses.length) {\n message[key] = addresses[0];\n }\n }\n }\n\n for (const key of ['delivered-to', 'return-path']) {\n const addressHeader = this.root.headers.find(line => line.key === key);\n if (addressHeader && addressHeader.value) {\n const addresses = addressParser(addressHeader.value);\n if (addresses && addresses.length && addresses[0].address) {\n const camelKey = key.replace(/\\-(.)/g, (o, c) => c.toUpperCase());\n message[camelKey] = addresses[0].address;\n }\n }\n }\n\n for (const key of ['to', 'cc', 'bcc', 'reply-to']) {\n const addressHeaders = this.root.headers.filter(line => line.key === key);\n let addresses = [];\n\n addressHeaders\n .filter(entry => entry && entry.value)\n .map(entry => addressParser(entry.value))\n .forEach(parsed => (addresses = addresses.concat(parsed || [])));\n\n if (addresses && addresses.length) {\n const camelKey = key.replace(/\\-(.)/g, (o, c) => c.toUpperCase());\n message[camelKey] = addresses;\n }\n }\n\n for (const key of ['subject', 'message-id', 'in-reply-to', 'references']) {\n const header = this.root.headers.find(line => line.key === key);\n if (header && header.value) {\n const camelKey = key.replace(/\\-(.)/g, (o, c) => c.toUpperCase());\n message[camelKey] = decodeWords(header.value);\n }\n }\n\n let dateHeader = this.root.headers.find(line => line.key === 'date');\n if (dateHeader) {\n let date = new Date(dateHeader.value);\n if (!date || date.toString() === 'Invalid Date') {\n date = dateHeader.value;\n } else {\n // enforce ISO format if seems to be a valid date\n date = date.toISOString();\n }\n message.date = date;\n }\n\n if (this.textContent?.html) {\n message.html = this.textContent.html;\n }\n\n if (this.textContent?.plain) {\n message.text = this.textContent.plain;\n }\n\n message.attachments = this.attachments;\n\n switch (this.attachmentEncoding) {\n case 'arraybuffer':\n break;\n\n case 'base64':\n for (let attachment of message.attachments || []) {\n if (attachment?.content) {\n attachment.content = base64ArrayBuffer(attachment.content);\n attachment.encoding = 'base64';\n }\n }\n break;\n\n case 'utf8':\n let attachmentDecoder = new TextDecoder('utf8');\n for (let attachment of message.attachments || []) {\n if (attachment?.content) {\n attachment.content = attachmentDecoder.decode(attachment.content);\n attachment.encoding = 'utf8';\n }\n }\n break;\n\n default:\n throw new Error('Unknwon attachment encoding');\n }\n\n return message;\n }\n}\n", "// worker/src/utils.ts\n/**\n * \u4F7F\u7528\u5BC6\u94A5\u5BF9\u6587\u672C\u8FDB\u884C\u7B80\u5355\u7684 XOR \u52A0\u5BC6\u3002\n * @param text \u8981\u52A0\u5BC6\u7684\u6587\u672C\u3002\n * @param secret \u52A0\u5BC6\u5BC6\u94A5\u3002\n * @returns \u52A0\u5BC6\u540E\u7684 Base64 \u7F16\u7801\u5B57\u7B26\u4E32\u3002\n */\nexport function encrypt(text: string, secret: string): string {\n let result = '';\n for (let i = 0; i < text.length; i++) {\n // \u5BF9\u6BCF\u4E2A\u5B57\u7B26\u7684 ASCII \u7801\u4E0E\u5BC6\u94A5\u4E2D\u5BF9\u5E94\u4F4D\u7F6E\u7684\u5B57\u7B26 ASCII \u7801\u8FDB\u884C\u5F02\u6216\u64CD\u4F5C\n result += String.fromCharCode(text.charCodeAt(i) ^ secret.charCodeAt(i % secret.length));\n }\n // \u5C06\u52A0\u5BC6\u540E\u7684\u7ED3\u679C\u8F6C\u6362\u4E3A Base64 \u7F16\u7801\uFF0C\u4F7F\u5176\u66F4\u5B89\u5168\u5730\u4F20\u8F93\n return btoa(result);\n}\n\n/**\n * \u4F7F\u7528\u5BC6\u94A5\u5BF9 Base64 \u7F16\u7801\u7684\u52A0\u5BC6\u6587\u672C\u8FDB\u884C\u89E3\u5BC6\u3002\n * @param encryptedText \u52A0\u5BC6\u540E\u7684 Base64 \u7F16\u7801\u5B57\u7B26\u4E32\u3002\n * @param secret \u89E3\u5BC6\u5BC6\u94A5\u3002\n * @returns \u89E3\u5BC6\u540E\u7684\u539F\u59CB\u6587\u672C\u3002\n */\nexport function decrypt(encryptedText: string, secret: string): string {\n // \u9996\u5148\u5BF9 Base64 \u7F16\u7801\u7684\u5B57\u7B26\u4E32\u8FDB\u884C\u89E3\u7801\n const text = atob(encryptedText);\n let result = '';\n for (let i = 0; i < text.length; i++) {\n // \u540C\u6837\u8FDB\u884C\u5F02\u6216\u64CD\u4F5C\u6765\u8FD8\u539F\u539F\u59CB\u5B57\u7B26\n result += String.fromCharCode(text.charCodeAt(i) ^ secret.charCodeAt(i % secret.length));\n }\n return result;\n}", "import { Context, Next } from 'hono';\nimport { getD1DB } from '../../../database/db';\nimport { findApiKeyByKey, updateApiKeyLastUsed } from '../../../database/dao';\nimport type { Env } from '../../../index';\n\n/**\n * API Key \u8BA4\u8BC1\u4E2D\u95F4\u4EF6\n * \u4ECE\u8BF7\u6C42\u5934 X-API-Key \u6216 Authorization: Bearer \u4E2D\u63D0\u53D6 API Key\n */\nexport const apiKeyAuth = async (c: Context<{ Bindings: Env }>, next: Next) => {\n // 1. \u63D0\u53D6 API Key\n let apiKey = c.req.header('X-API-Key');\n\n if (!apiKey) {\n const authHeader = c.req.header('Authorization');\n if (authHeader?.startsWith('Bearer ')) {\n apiKey = authHeader.substring(7);\n }\n }\n\n if (!apiKey) {\n return c.json({\n error: {\n code: 'UNAUTHORIZED',\n message: 'Missing API Key. Provide it via X-API-Key header or Authorization: Bearer ',\n }\n }, 401);\n }\n\n // 2. \u9A8C\u8BC1 API Key\n const db = getD1DB(c.env.DB);\n const keyRecord = await findApiKeyByKey(db, apiKey);\n\n if (!keyRecord) {\n return c.json({\n error: {\n code: 'UNAUTHORIZED',\n message: 'Invalid API Key',\n }\n }, 401);\n }\n\n // 3. \u68C0\u67E5\u662F\u5426\u542F\u7528\n if (!keyRecord.isActive) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'API Key is disabled',\n }\n }, 403);\n }\n\n // 4. \u68C0\u67E5\u662F\u5426\u8FC7\u671F\n if (keyRecord.expiresAt && keyRecord.expiresAt < new Date()) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'API Key has expired',\n }\n }, 403);\n }\n\n // 5. \u66F4\u65B0\u6700\u540E\u4F7F\u7528\u65F6\u95F4 (\u5F02\u6B65\uFF0C\u4E0D\u963B\u585E\u8BF7\u6C42)\n c.executionCtx.waitUntil(updateApiKeyLastUsed(db, keyRecord.id));\n\n // 6. \u5C06 API Key \u4FE1\u606F\u5B58\u5165\u4E0A\u4E0B\u6587\n c.set('apiKey', {\n id: keyRecord.id,\n rateLimit: keyRecord.rateLimit || 100,\n });\n\n await next();\n};\n", "import { Hono } from 'hono';\nimport type { Env } from '../../../index';\nimport { getD1DB } from '../../../database/db';\nimport { nanoid } from 'nanoid/non-secure';\nimport {\n insertMailbox,\n findMailboxById,\n getMailboxMessages,\n findMailboxMessage,\n deleteMailboxMessage,\n getMailboxMessageCount,\n} from '../../../database/dao';\n\n// \u968F\u673A\u90AE\u7BB1\u540D\u79F0\u751F\u6210\nfunction generateRandomLocalPart(): string {\n const adjectives = ['quick', 'lazy', 'happy', 'sad', 'bright', 'dark', 'warm', 'cold', 'soft', 'hard'];\n const nouns = ['fox', 'dog', 'cat', 'bird', 'fish', 'lion', 'bear', 'wolf', 'deer', 'hawk'];\n const adj = adjectives[Math.floor(Math.random() * adjectives.length)];\n const noun = nouns[Math.floor(Math.random() * nouns.length)];\n const num = Math.floor(Math.random() * 1000);\n return `${adj}-${noun}-${num}`;\n}\n\nconst mailboxesRouter = new Hono<{ Bindings: Env }>();\n\n// POST /api/v1/mailboxes - \u521B\u5EFA\u90AE\u7BB1\nmailboxesRouter.post('/', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n\n let body: { localPart?: string; domain?: string; expiresIn?: number } = {};\n try {\n body = await c.req.json();\n } catch {\n // \u5141\u8BB8\u7A7A\u8BF7\u6C42\u4F53\n }\n\n // \u83B7\u53D6\u53EF\u7528\u57DF\u540D\n const availableDomains = c.env.EMAIL_DOMAIN ? c.env.EMAIL_DOMAIN.split(',').map(d => d.trim()) : [];\n if (availableDomains.length === 0) {\n return c.json({\n error: {\n code: 'CONFIGURATION_ERROR',\n message: 'No email domains configured',\n }\n }, 500);\n }\n\n // \u9A8C\u8BC1\u57DF\u540D\n const domain = body.domain || availableDomains[0];\n if (!availableDomains.includes(domain)) {\n return c.json({\n error: {\n code: 'VALIDATION_ERROR',\n message: `Invalid domain. Available domains: ${availableDomains.join(', ')}`,\n details: { field: 'domain', allowed: availableDomains }\n }\n }, 400);\n }\n\n // \u751F\u6210\u90AE\u7BB1\u5730\u5740\n const localPart = body.localPart || generateRandomLocalPart();\n const address = `${localPart}@${domain}`;\n\n // \u8BA1\u7B97\u8FC7\u671F\u65F6\u95F4\n const expiresIn = body.expiresIn || 24 * 60 * 60; // \u9ED8\u8BA4 24 \u5C0F\u65F6\n const expiresAt = new Date(Date.now() + expiresIn * 1000);\n\n const now = new Date();\n const mailbox = {\n id: nanoid(),\n address,\n domain,\n expiresAt,\n apiKeyId: apiKey.id,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n await insertMailbox(db, mailbox);\n return c.json({\n data: {\n id: mailbox.id,\n address: mailbox.address,\n domain: mailbox.domain,\n expiresAt: mailbox.expiresAt.toISOString(),\n createdAt: mailbox.createdAt.toISOString(),\n }\n }, 201);\n } catch (e: any) {\n if (e.message?.includes('UNIQUE constraint failed')) {\n return c.json({\n error: {\n code: 'CONFLICT',\n message: 'Email address already exists',\n }\n }, 409);\n }\n console.error('Create mailbox error:', e);\n return c.json({\n error: {\n code: 'INTERNAL_ERROR',\n message: 'Failed to create mailbox',\n }\n }, 500);\n }\n});\n\n// GET /api/v1/mailboxes/:id - \u83B7\u53D6\u90AE\u7BB1\u4FE1\u606F\nmailboxesRouter.get('/:id', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n const messageCount = await getMailboxMessageCount(db, mailbox.address);\n\n return c.json({\n data: {\n id: mailbox.id,\n address: mailbox.address,\n domain: mailbox.domain,\n expiresAt: mailbox.expiresAt?.toISOString() || null,\n createdAt: mailbox.createdAt.toISOString(),\n messageCount,\n }\n });\n});\n\n// GET /api/v1/mailboxes/:id/messages - \u83B7\u53D6\u6536\u4EF6\u7BB1\nmailboxesRouter.get('/:id/messages', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n // \u89E3\u6790\u5206\u9875\u53C2\u6570\n const page = Math.max(1, parseInt(c.req.query('page') || '1', 10));\n const limit = Math.min(100, Math.max(1, parseInt(c.req.query('limit') || '20', 10)));\n const sort = c.req.query('sort') === 'asc' ? 'asc' : 'desc';\n\n const { messages, total, totalPages } = await getMailboxMessages(db, mailbox.address, { page, limit, sort });\n\n return c.json({\n data: messages.map((msg) => ({\n id: msg.id,\n from: msg.from,\n subject: msg.subject,\n preview: msg.text?.substring(0, 100) || null,\n receivedAt: msg.createdAt.toISOString(),\n })),\n pagination: {\n page,\n limit,\n total,\n totalPages,\n hasMore: page < totalPages,\n }\n });\n});\n\n// GET /api/v1/mailboxes/:id/messages/:messageId - \u83B7\u53D6\u90AE\u4EF6\u8BE6\u60C5\nmailboxesRouter.get('/:id/messages/:messageId', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id, messageId } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n const message = await findMailboxMessage(db, mailbox.address, messageId);\n if (!message) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Message not found',\n }\n }, 404);\n }\n\n return c.json({\n data: {\n id: message.id,\n messageId: message.messageId,\n from: message.from,\n to: message.to,\n cc: message.cc,\n bcc: message.bcc,\n replyTo: message.replyTo,\n subject: message.subject,\n text: message.text,\n html: message.html,\n headers: message.headers,\n receivedAt: message.createdAt.toISOString(),\n }\n });\n});\n\n// DELETE /api/v1/mailboxes/:id/messages/:messageId - \u5220\u9664\u90AE\u4EF6\nmailboxesRouter.delete('/:id/messages/:messageId', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id, messageId } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n const deleted = await deleteMailboxMessage(db, mailbox.address, messageId);\n if (!deleted) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Message not found',\n }\n }, 404);\n }\n\n return c.json({\n data: {\n deleted: true,\n id: messageId,\n }\n });\n});\n\nexport default mailboxesRouter;\n", "import { Hono } from 'hono';\nimport { cors } from 'hono/cors';\nimport type { Env } from '../../index';\nimport { apiKeyAuth } from './middleware/apiKeyAuth';\nimport mailboxesRouter from './routes/mailboxes';\n\nconst v1 = new Hono<{ Bindings: Env }>();\n\n// \u914D\u7F6E CORS\nv1.use('/*', cors());\n\n// \u6240\u6709 v1 \u8DEF\u7531\u90FD\u9700\u8981 API Key \u8BA4\u8BC1\nv1.use('/*', apiKeyAuth);\n\n// \u6302\u8F7D\u90AE\u7BB1\u8DEF\u7531\nv1.route('/mailboxes', mailboxesRouter);\n\nexport default v1;\n", "import { Hono } from 'hono';\nimport { serveStatic } from 'hono/cloudflare-workers';\nimport { cors } from 'hono/cors';\n// \u5BFC\u5165\u6570\u636E\u5E93\u76F8\u5173\u7684\u6A21\u5757\nimport { deleteEmails, findEmailById, getEmailsByMessageTo, insertEmail, deleteExpiredEmails, insertApiKey } from './database/dao';\nimport { getD1DB } from './database/db';\nimport { InsertEmail, insertEmailSchema } from './database/schema';\nimport { nanoid } from 'nanoid/non-secure';\nimport PostalMime from 'postal-mime';\n// \u5BFC\u5165\u52A0\u89E3\u5BC6\u5DE5\u5177\u51FD\u6570\nimport { decrypt } from './utils';\n// \u5BFC\u5165 v1 API\nimport v1Api from './api/v1';\n\n\n// \u5B9A\u4E49 Cloudflare \u7ED1\u5B9A\u548C\u73AF\u5883\u53D8\u91CF\u7684\u7C7B\u578B\nexport interface Env {\n DB: D1Database;\n ASSETS: Fetcher;\n\n // \u4ECE wrangler.toml \u4E2D\u4F20\u5165\u7684\u73AF\u5883\u53D8\u91CF\n EMAIL_DOMAIN: string;\n COOKIES_SECRET: string;\n TURNSTILE_KEY: string;\n TURNSTILE_SECRET: string;\n}\n\n// \u521D\u59CB\u5316 Hono \u5E94\u7528\nconst app = new Hono<{ Bindings: Env }>();\n\n// \u914D\u7F6E CORS\napp.use('/api/*', cors());\n\n// fix: \u589E\u5F3A\u8BF7\u6C42\u4F53\u9A8C\u8BC1\u903B\u8F91\u3002\n// \u6B64\u524D\u7684\u5B9E\u73B0\u65B9\u5F0F\u5728\u8BF7\u6C42\u4F53\u89E3\u6790\u5931\u8D25\u65F6\u4F1A\u9759\u9ED8\u5904\u7406\uFF0C\u5BFC\u81F4\u540E\u7EED\u5904\u7406\u6D41\u7A0B\u56E0\u7F3A\u5C11\u6570\u636E\u800C\u8FD4\u56DE\u4E00\u4E2A\u6A21\u7CCA\u7684400\u9519\u8BEF\u3002\n// \u65B0\u7684\u5B9E\u73B0\u65B9\u5F0F\u4F1A\u4E25\u683C\u6821\u9A8C\u8BF7\u6C42\u4F53\uFF0C\u5982\u679C\u89E3\u6790\u4E3AJSON\u5931\u8D25\uFF08\u4F8B\u5982\u8BF7\u6C42\u4F53\u4E3A\u7A7A\u6216\u683C\u5F0F\u9519\u8BEF\uFF09\uFF0C\u5C06\u7ACB\u5373\u8FD4\u56DE\u4E00\u4E2A\u660E\u786E\u7684400\u9519\u8BEF\uFF0C\u4ECE\u800C\u963B\u6B62\u65E0\u6548\u8BF7\u6C42\u7EE7\u7EED\u6267\u884C\u3002\nconst turnstile = async (c, next) => {\n let body: any;\n try {\n // \u5C1D\u8BD5\u5C06\u8BF7\u6C42\u4F53\u89E3\u6790\u4E3AJSON\u3002\u5982\u679C\u5931\u8D25\uFF0C\u5C06\u629B\u51FA\u5F02\u5E38\u3002\n body = await c.req.json();\n } catch (e) {\n // \u6355\u83B7\u5F02\u5E38\uFF0C\u8BB0\u5F55\u9519\u8BEF\u65E5\u5FD7\uFF0C\u5E76\u8FD4\u56DE\u4E00\u4E2A\u6E05\u6670\u7684\u9519\u8BEF\u54CD\u5E94\u3002\n console.error(\"\u8BF7\u6C42\u4F53\u89E3\u6790\u4E3AJSON\u65F6\u51FA\u9519:\", e);\n return c.json({ message: '\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002' }, 400);\n }\n\n // \u5C06\u89E3\u6790\u540E\u7684 body \u5B58\u5165\u4E0A\u4E0B\u6587\uFF0C\u4EE5\u4FBF\u4E0B\u6E38\u5904\u7406\u5668\u76F4\u63A5\u4F7F\u7528\uFF0C\u907F\u514D\u91CD\u590D\u89E3\u6790\u3002\n c.set('parsedBody', body);\n\n const token = body.token || c.req.header('cf-turnstile-token');\n const ip = c.req.header('CF-Connecting-IP');\n\n if (!token) {\n return c.json({ message: '\u7F3A\u5C11 turnstile token' }, 400);\n }\n\n // fix: \u5207\u6362\u5230 application/x-www-form-urlencoded \u683C\u5F0F\u6765\u53D1\u9001\u9A8C\u8BC1\u8BF7\u6C42\u3002\n // \u8FD9\u53EF\u4EE5\u63D0\u9AD8\u517C\u5BB9\u6027\uFF0C\u5E76\u53EF\u80FD\u89E3\u51B3\u7531 FormData \u7F16\u7801\u5F15\u8D77\u7684\u8FB9\u754C\u95EE\u9898\u3002\n const params = new URLSearchParams();\n params.append('secret', c.env.TURNSTILE_SECRET);\n params.append('response', token);\n if (ip) {\n params.append('remoteip', ip);\n }\n\n const res = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: params.toString(),\n });\n\n const data = await res.json();\n if (!data.success) {\n // feat: \u589E\u52A0\u8BE6\u7EC6\u7684\u9519\u8BEF\u65E5\u5FD7\uFF0C\u65B9\u4FBF\u8C03\u8BD5\n console.error(\"Turnstile \u9A8C\u8BC1\u5931\u8D25:\", data['error-codes']);\n return c.json({ message: 'token \u65E0\u6548' }, 400);\n }\n\n await next();\n};\n\n// API \u8DEF\u7531\u7EC4\nconst api = app.basePath('/api');\n\n// feat: \u65B0\u589E\u4E00\u4E2A\u4E13\u95E8\u7528\u4E8E\u4EBA\u673A\u9A8C\u8BC1\u7684\u63A5\u53E3\u3002\n// \u524D\u7AEF\u5E94\u5728\u751F\u6210\u90AE\u7BB1\u5730\u5740\u524D\u5148\u8C03\u7528\u6B64\u63A5\u53E3\u3002\napi.post('/verify', turnstile, async (c) => {\n // turnstile \u4E2D\u95F4\u4EF6\u5DF2\u7ECF\u5B8C\u6210\u4E86\u9A8C\u8BC1\u5DE5\u4F5C\u3002\n // \u5982\u679C\u4EE3\u7801\u80FD\u6267\u884C\u5230\u8FD9\u91CC\uFF0C\u8BF4\u660E\u9A8C\u8BC1\u6210\u529F\u3002\n return c.json({ success: true });\n});\n\n// \u751F\u6210 API Key \u7684\u51FD\u6570\nfunction generateApiKey(): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let key = 'vmail_';\n for (let i = 0; i < 32; i++) {\n key += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return key;\n}\n\n// \u521B\u5EFA API Key \u63A5\u53E3\uFF08\u9700\u8981 Turnstile \u9A8C\u8BC1\uFF09\napi.post('/api-keys', turnstile, async (c) => {\n const db = getD1DB(c.env.DB);\n const body = c.get('parsedBody') as { name?: string };\n\n const now = new Date();\n const apiKey = generateApiKey();\n const keyPrefix = apiKey.substring(0, 12) + '...';\n\n const newApiKey = {\n id: nanoid(),\n key: apiKey,\n keyPrefix: keyPrefix,\n name: body?.name || null,\n rateLimit: 100,\n isActive: true,\n lastUsedAt: null,\n expiresAt: null,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n await insertApiKey(db, newApiKey);\n // \u53EA\u8FD4\u56DE\u4E00\u6B21\u5B8C\u6574\u7684 API Key\uFF0C\u4E4B\u540E\u65E0\u6CD5\u518D\u83B7\u53D6\n return c.json({\n data: {\n id: newApiKey.id,\n key: apiKey, // \u5B8C\u6574\u7684 API Key\uFF0C\u53EA\u5C55\u793A\u8FD9\u4E00\u6B21\n keyPrefix: keyPrefix,\n name: newApiKey.name,\n createdAt: now.toISOString(),\n },\n message: 'API Key created successfully. Please save it now, it will not be shown again!'\n }, 201);\n } catch (e: any) {\n console.error('Create API Key error:', e);\n return c.json({\n error: {\n code: 'INTERNAL_ERROR',\n message: 'Failed to create API Key',\n }\n }, 500);\n }\n});\n\n// fix: \u79FB\u9664\u83B7\u53D6\u90AE\u4EF6\u5217\u8868\u63A5\u53E3\u7684 turnstile \u9A8C\u8BC1\u3002\n// \u8FD9\u4E2A\u63A5\u53E3\u73B0\u5728\u662F\u516C\u5F00\u7684\uFF0C\u5237\u65B0\u6536\u4EF6\u7BB1\u65F6\u53EF\u4EE5\u76F4\u63A5\u8C03\u7528\uFF0C\u4E0D\u518D\u9700\u8981\u91CD\u590D\u9A8C\u8BC1\u3002\napi.post('/emails', async (c) => {\n const db = getD1DB(c.env.DB);\n let body: any;\n try {\n body = await c.req.json();\n } catch (e) {\n return c.json({ message: '\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002' }, 400);\n }\n const address = body?.address;\n\n if (!address) {\n return c.json({ message: 'address is required' }, 400);\n }\n const emails = await getEmailsByMessageTo(db, address as string);\n return c.json(emails);\n});\n\n\n// \u83B7\u53D6\u5355\u5C01\u90AE\u4EF6\u8BE6\u60C5\napi.get('/emails/:id', async (c) => {\n const db = getD1DB(c.env.DB);\n const { id } = c.req.param();\n // \u51FD\u6570\u8C03\u7528\u4FEE\u6B63\uFF1A\u4F7F\u7528 findEmailById \u51FD\u6570\n const email = await findEmailById(db, id);\n if (!email) {\n return c.json({ message: 'Email not found'}, 404);\n }\n return c.json(email);\n});\n\n// fix: \u5220\u9664\u90AE\u4EF6\u63A5\u53E3\u4E0D\u518D\u9700\u8981 turnstile \u9A8C\u8BC1\uFF0C\u56E0\u4E3A\u901A\u5E38\u8FD9\u662F\u5728\u5DF2\u77E5\u90AE\u7BB1\u4E0A\u4E0B\u6587\u4E2D\u64CD\u4F5C\u7684\u3002\napi.post('/delete-emails', async (c) => {\n const db = getD1DB(c.env.DB);\n const body = await c.req.json();\n const ids = body?.ids;\n if (!ids || !Array.isArray(ids) || ids.length === 0) {\n return c.json({ message: 'ids are required' }, 400);\n }\n const result = await deleteEmails(db, ids as string[]);\n return c.json(result);\n});\n\n// \u4FEE\u590D\uFF1A\u79FB\u9664\u767B\u5F55\u63A5\u53E3\u7684 turnstile \u4E2D\u95F4\u4EF6\uFF0C\u4F7F\u5176\u4E0D\u518D\u9700\u8981\u4EBA\u673A\u9A8C\u8BC1\u3002\napi.post('/login', async (c) => {\n // const db = getD1DB(c.env.DB); // \u6570\u636E\u5E93\u8FDE\u63A5\u4E0D\u518D\u9700\u8981\u7528\u4E8E\u9A8C\u8BC1\n // \u4FEE\u590D\uFF1A\u7531\u4E8E\u79FB\u9664\u4E86 turnstile \u4E2D\u95F4\u4EF6\uFF0C\u73B0\u5728\u9700\u8981\u5728\u6B64\u5904\u76F4\u63A5\u89E3\u6790\u8BF7\u6C42\u4F53\u3002\n const body = await c.req.json();\n const password = body?.password;\n\n if (!password) {\n return c.json({ message: 'Password is required' }, 400);\n }\n\n try {\n // \u89E3\u5BC6\u5BC6\u7801\u4EE5\u83B7\u53D6\u90AE\u7BB1\u5730\u5740\n const address = decrypt(password, c.env.COOKIES_SECRET);\n \n // **\u6838\u5FC3\u4FEE\u590D**\uFF1A\u79FB\u9664\u6570\u636E\u5E93\u90AE\u4EF6\u68C0\u67E5\u903B\u8F91\n // \u4E0D\u518D\u9700\u8981\u67E5\u8BE2\u6570\u636E\u5E93\u4E2D\u662F\u5426\u5B58\u5728\u8BE5\u5730\u5740\u7684\u90AE\u4EF6\n // const emails = await getEmailsByMessageTo(db, address);\n // if (emails.length === 0) {\n // \u5982\u679C\u8BE5\u5730\u5740\u4ECE\u672A\u6536\u5230\u8FC7\u90AE\u4EF6\uFF0C\u5219\u89C6\u4E3A\u65E0\u6548\u5BC6\u7801\n // return c.json({ message: 'Invalid password' }, 404);\n // }\n\n // \u53EF\u9009\uFF1A\u6DFB\u52A0\u4E00\u4E2A\u7B80\u5355\u7684\u90AE\u7BB1\u5730\u5740\u683C\u5F0F\u6821\u9A8C\uFF0C\u589E\u52A0\u5065\u58EE\u6027\n // \u4F8B\u5982\uFF0C\u68C0\u67E5\u662F\u5426\u5305\u542B '@' \u7B26\u53F7\n if (!address || typeof address !== 'string' || !address.includes('@')) {\n console.error(\"\u89E3\u5BC6\u540E\u7684\u5730\u5740\u683C\u5F0F\u65E0\u6548:\", address);\n return c.json({ message: 'Invalid password' }, 400); // \u5730\u5740\u683C\u5F0F\u4E0D\u5BF9\u4E5F\u89C6\u4E3A\u5BC6\u7801\u65E0\u6548\n }\n\n // \u767B\u5F55\u6210\u529F\uFF0C\u8FD4\u56DE\u90AE\u7BB1\u5730\u5740\n return c.json({ address });\n } catch (e) {\n console.error(\"Login error:\", e);\n // \u5982\u679C\u89E3\u5BC6\u5931\u8D25\u6216\u53D1\u751F\u5176\u4ED6\u9519\u8BEF\uFF0C\u8FD4\u56DE\u65E0\u6548\u5BC6\u7801\u9519\u8BEF\n return c.json({ message: 'Invalid password' }, 400);\n }\n});\n\n\n// \u524D\u7AEF\u914D\u7F6E\u63A5\u53E3\napp.get('/config', (c) => {\n // feat: \u5C06 emailDomain \u62C6\u5206\u4E3A\u6570\u7EC4\u4EE5\u652F\u6301\u591A\u57DF\u540D\n const emailDomain = c.env.EMAIL_DOMAIN ? c.env.EMAIL_DOMAIN.split(',').map(d => d.trim()) : [];\n return c.json({\n emailDomain: emailDomain, // \u8FD4\u56DE\u57DF\u540D\u6570\u7EC4\n turnstileKey: c.env.TURNSTILE_KEY,\n cookiesSecret: c.env.COOKIES_SECRET,\n });\n});\n\n// \u6302\u8F7D v1 API \u8DEF\u7531\napp.route('/api/v1', v1Api);\n\n\n// \u9759\u6001\u8D44\u6E90\u670D\u52A1 (\u653E\u5728\u6700\u540E\uFF0C\u4F5C\u4E3A\u9ED8\u8BA4\u8DEF\u7531)\n// \u4FEE\u6B63: \u786E\u4FDD serveStatic \u6B63\u786E\u6307\u5411\u9759\u6001\u6587\u4EF6\u76EE\u5F55\n// Hono v4 \u4E2D serveStatic \u9ED8\u8BA4\u5904\u7406\u6839\u8DEF\u5F84\uFF0C\u6211\u4EEC\u9700\u8981\u786E\u4FDD\u5B83\u6307\u5411\u6B63\u786E\u7684\u5B50\u76EE\u5F55\napp.get('/*', serveStatic({ root: './' }))\napp.get('/assets/*', serveStatic({ root: './' }))\n\n\n// Worker \u4E3B\u5904\u7406\u903B\u8F91\nexport default {\n // \u90AE\u4EF6\u5904\u7406\u903B\u8F91\n async email(message: ForwardableEmail, env: Env, ctx: ExecutionContext) {\n try {\n const db = getD1DB(env.DB);\n // \u5C06\u539F\u59CB\u90AE\u4EF6\u6D41\u8F6C\u6362\u4E3A\u6587\u672C\n const raw = await new Response(message.raw).text();\n // \u4F7F\u7528 postal-mime \u89E3\u6790\u90AE\u4EF6\n const mail = await new PostalMime().parse(raw);\n const now = new Date();\n\n // **\u5173\u952E\u4FEE\u590D**\uFF1A\u663E\u5F0F\u5730\u4ECE\u89E3\u6790\u7ED3\u679C\u4E2D\u6620\u5C04\u5B57\u6BB5\uFF0C\u800C\u4E0D\u662F\u4F7F\u7528\u5BF9\u8C61\u5C55\u5F00(...)\n // \u8FD9\u6837\u53EF\u4EE5\u907F\u514D\u5C5E\u6027\u8986\u76D6\u548C\u7C7B\u578B\u4E0D\u5339\u914D\u7684\u95EE\u9898\n const newEmail: InsertEmail = {\n id: nanoid(),\n messageFrom: message.from,\n messageTo: message.to,\n headers: mail.headers || [], // \u786E\u4FDD headers \u5B58\u5728\n from: mail.from,\n sender: mail.sender,\n replyTo: mail.replyTo,\n deliveredTo: mail.deliveredTo,\n returnPath: mail.returnPath,\n to: mail.to,\n cc: mail.cc,\n bcc: mail.bcc,\n subject: mail.subject,\n messageId: mail.messageId, // messageId \u5728\u6570\u636E\u5E93\u4E2D\u662F\u5FC5\u9700\u7684\n inReplyTo: mail.inReplyTo,\n references: mail.references,\n date: mail.date,\n html: mail.html,\n text: mail.text,\n createdAt: now,\n updatedAt: now,\n };\n\n // \u9A8C\u8BC1\u5F85\u63D2\u5165\u7684\u6570\u636E\u662F\u5426\u7B26\u5408 schema\n const email = insertEmailSchema.parse(newEmail);\n // \u63D2\u5165\u6570\u636E\u5E93\n await insertEmail(db, email);\n } catch (e: any) {\n // **\u5173\u952E\u4FEE\u590D**\uFF1A\u5411 Cloudflare \u53D1\u51FA\u62D2\u7EDD\u4FE1\u53F7\n // \u5F53\u53D1\u751F\u4EFB\u4F55\u9519\u8BEF\u65F6\uFF0C\u8C03\u7528 message.setReject() \u544A\u77E5 Cloudflare \u5904\u7406\u5931\u8D25\u3002\n // \u8FD9\u4F1A\u8BA9 Cloudflare \u5C1D\u8BD5\u91CD\u65B0\u6295\u9012\u90AE\u4EF6\uFF0C\u800C\u4E0D\u662F\u76F4\u63A5\u5220\u9664\u3002\n console.error('\u5904\u7406\u90AE\u4EF6\u5931\u8D25:', e);\n message.setReject(`\u90AE\u4EF6\u5904\u7406\u5931\u8D25: ${e.message}`);\n }\n },\n\n // HTTP \u8BF7\u6C42\u5904\u7406\u903B\u8F91\n async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise {\n const url = new URL(request.url);\n // API \u8DEF\u7531\n if (url.pathname.startsWith('/api/') || url.pathname === '/config') {\n return app.fetch(request, env, ctx);\n }\n\n // \u9759\u6001\u8D44\u6E90\u8BF7\u6C42\n const response = await env.ASSETS.fetch(request);\n\n // SPA \u8DEF\u7531\u56DE\u9000\uFF1A\u5982\u679C\u9759\u6001\u8D44\u6E90\u8FD4\u56DE 404\uFF0C\u5219\u8FD4\u56DE index.html\n // \u8FD9\u6837\u53EF\u4EE5\u652F\u6301\u76F4\u63A5\u8BBF\u95EE /api-docs \u7B49\u524D\u7AEF\u8DEF\u7531\n if (response.status === 404) {\n const indexRequest = new Request(new URL('/', request.url).toString(), request);\n return env.ASSETS.fetch(indexRequest);\n }\n\n return response;\n },\n\n // \u5B9A\u65F6\u4EFB\u52A1 (\u6E05\u7406\u8FC7\u671F\u90AE\u4EF6)\n async scheduled(event, env, ctx) {\n const db = getD1DB(env.DB);\n // \u4FEE\u590D\uFF1A\u5C06\u6E05\u7406\u65F6\u95F4\u4ECE1\u5C0F\u65F6\u4FEE\u6539\u4E3A24\u5C0F\u65F6\uFF081\u5929\uFF09\n const oneDayAgo = new Date(Date.now() - 1000 * 60 * 60 * 24);\n await deleteExpiredEmails(db, oneDayAgo);\n console.log(`\u5DF2\u6E05\u7406 ${oneDayAgo.toISOString()} \u4E4B\u524D\u7684\u8FC7\u671F\u90AE\u4EF6`); // \u6DFB\u52A0\u65E5\u5FD7\n },\n};\n", "import type { Middleware } from \"./common\";\n\nconst drainBody: Middleware = async (request, env, _ctx, middlewareCtx) => {\n\ttry {\n\t\treturn await middlewareCtx.next(request, env);\n\t} finally {\n\t\ttry {\n\t\t\tif (request.body !== null && !request.bodyUsed) {\n\t\t\t\tconst reader = request.body.getReader();\n\t\t\t\twhile (!(await reader.read()).done) {}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Failed to drain the unused request body.\", e);\n\t\t}\n\t}\n};\n\nexport default drainBody;\n", "import type { Middleware } from \"./common\";\n\ninterface JsonError {\n\tmessage?: string;\n\tname?: string;\n\tstack?: string;\n\tcause?: JsonError;\n}\n\nfunction reduceError(e: any): JsonError {\n\treturn {\n\t\tname: e?.name,\n\t\tmessage: e?.message ?? String(e),\n\t\tstack: e?.stack,\n\t\tcause: e?.cause === undefined ? undefined : reduceError(e.cause),\n\t};\n}\n\n// See comment in `bundle.ts` for details on why this is needed\nconst jsonError: Middleware = async (request, env, _ctx, middlewareCtx) => {\n\ttry {\n\t\treturn await middlewareCtx.next(request, env);\n\t} catch (e: any) {\n\t\tconst error = reduceError(e);\n\t\treturn Response.json(error, {\n\t\t\tstatus: 500,\n\t\t\theaders: { \"MF-Experimental-Error-Stack\": \"true\" },\n\t\t});\n\t}\n};\n\nexport default jsonError;\n", "\t\t\t\timport worker, * as OTHER_EXPORTS from \"/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts\";\n\t\t\t\timport * as __MIDDLEWARE_0__ from \"/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts\";\nimport * as __MIDDLEWARE_1__ from \"/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts\";\n\n\t\t\t\texport * from \"/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts\";\n\n\t\t\t\texport const __INTERNAL_WRANGLER_MIDDLEWARE__ = [\n\t\t\t\t\t\n\t\t\t\t\t__MIDDLEWARE_0__.default,__MIDDLEWARE_1__.default\n\t\t\t\t]\n\t\t\t\texport default worker;", "export type Awaitable = T | Promise;\n// TODO: allow dispatching more events?\nexport type Dispatcher = (\n\ttype: \"scheduled\",\n\tinit: { cron?: string }\n) => Awaitable;\n\nexport type IncomingRequest = Request<\n\tunknown,\n\tIncomingRequestCfProperties\n>;\n\nexport interface MiddlewareContext {\n\tdispatch: Dispatcher;\n\tnext(request: IncomingRequest, env: any): Awaitable;\n}\n\nexport type Middleware = (\n\trequest: IncomingRequest,\n\tenv: any,\n\tctx: ExecutionContext,\n\tmiddlewareCtx: MiddlewareContext\n) => Awaitable;\n\nconst __facade_middleware__: Middleware[] = [];\n\n// The register functions allow for the insertion of one or many middleware,\n// We register internal middleware first in the stack, but have no way of controlling\n// the order that addMiddleware is run in service workers so need an internal function.\nexport function __facade_register__(...args: (Middleware | Middleware[])[]) {\n\t__facade_middleware__.push(...args.flat());\n}\nexport function __facade_registerInternal__(\n\t...args: (Middleware | Middleware[])[]\n) {\n\t__facade_middleware__.unshift(...args.flat());\n}\n\nfunction __facade_invokeChain__(\n\trequest: IncomingRequest,\n\tenv: any,\n\tctx: ExecutionContext,\n\tdispatch: Dispatcher,\n\tmiddlewareChain: Middleware[]\n): Awaitable {\n\tconst [head, ...tail] = middlewareChain;\n\tconst middlewareCtx: MiddlewareContext = {\n\t\tdispatch,\n\t\tnext(newRequest, newEnv) {\n\t\t\treturn __facade_invokeChain__(newRequest, newEnv, ctx, dispatch, tail);\n\t\t},\n\t};\n\treturn head(request, env, ctx, middlewareCtx);\n}\n\nexport function __facade_invoke__(\n\trequest: IncomingRequest,\n\tenv: any,\n\tctx: ExecutionContext,\n\tdispatch: Dispatcher,\n\tfinalMiddleware: Middleware\n): Awaitable {\n\treturn __facade_invokeChain__(request, env, ctx, dispatch, [\n\t\t...__facade_middleware__,\n\t\tfinalMiddleware,\n\t]);\n}\n", "// This loads all middlewares exposed on the middleware object and then starts\n// the invocation chain. The big idea is that we can add these to the middleware\n// export dynamically through wrangler, or we can potentially let users directly\n// add them as a sort of \"plugin\" system.\n\nimport ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from \"/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js\";\nimport { __facade_invoke__, __facade_register__, Dispatcher } from \"/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts\";\nimport type { WorkerEntrypointConstructor } from \"/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js\";\n\n// Preserve all the exports from the worker\nexport * from \"/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-5rCH3B/middleware-insertion-facade.js\";\n\nclass __Facade_ScheduledController__ implements ScheduledController {\n\treadonly #noRetry: ScheduledController[\"noRetry\"];\n\n\tconstructor(\n\t\treadonly scheduledTime: number,\n\t\treadonly cron: string,\n\t\tnoRetry: ScheduledController[\"noRetry\"]\n\t) {\n\t\tthis.#noRetry = noRetry;\n\t}\n\n\tnoRetry() {\n\t\tif (!(this instanceof __Facade_ScheduledController__)) {\n\t\t\tthrow new TypeError(\"Illegal invocation\");\n\t\t}\n\t\t// Need to call native method immediately in case uncaught error thrown\n\t\tthis.#noRetry();\n\t}\n}\n\nfunction wrapExportedHandler(worker: ExportedHandler): ExportedHandler {\n\t// If we don't have any middleware defined, just return the handler as is\n\tif (\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__ === undefined ||\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__.length === 0\n\t) {\n\t\treturn worker;\n\t}\n\t// Otherwise, register all middleware once\n\tfor (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) {\n\t\t__facade_register__(middleware);\n\t}\n\n\tconst fetchDispatcher: ExportedHandlerFetchHandler = function (\n\t\trequest,\n\t\tenv,\n\t\tctx\n\t) {\n\t\tif (worker.fetch === undefined) {\n\t\t\tthrow new Error(\"Handler does not export a fetch() function.\");\n\t\t}\n\t\treturn worker.fetch(request, env, ctx);\n\t};\n\n\treturn {\n\t\t...worker,\n\t\tfetch(request, env, ctx) {\n\t\t\tconst dispatcher: Dispatcher = function (type, init) {\n\t\t\t\tif (type === \"scheduled\" && worker.scheduled !== undefined) {\n\t\t\t\t\tconst controller = new __Facade_ScheduledController__(\n\t\t\t\t\t\tDate.now(),\n\t\t\t\t\t\tinit.cron ?? \"\",\n\t\t\t\t\t\t() => {}\n\t\t\t\t\t);\n\t\t\t\t\treturn worker.scheduled(controller, env, ctx);\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn __facade_invoke__(request, env, ctx, dispatcher, fetchDispatcher);\n\t\t},\n\t};\n}\n\nfunction wrapWorkerEntrypoint(\n\tklass: WorkerEntrypointConstructor\n): WorkerEntrypointConstructor {\n\t// If we don't have any middleware defined, just return the handler as is\n\tif (\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__ === undefined ||\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__.length === 0\n\t) {\n\t\treturn klass;\n\t}\n\t// Otherwise, register all middleware once\n\tfor (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) {\n\t\t__facade_register__(middleware);\n\t}\n\n\t// `extend`ing `klass` here so other RPC methods remain callable\n\treturn class extends klass {\n\t\t#fetchDispatcher: ExportedHandlerFetchHandler> = (\n\t\t\trequest,\n\t\t\tenv,\n\t\t\tctx\n\t\t) => {\n\t\t\tthis.env = env;\n\t\t\tthis.ctx = ctx;\n\t\t\tif (super.fetch === undefined) {\n\t\t\t\tthrow new Error(\"Entrypoint class does not define a fetch() function.\");\n\t\t\t}\n\t\t\treturn super.fetch(request);\n\t\t};\n\n\t\t#dispatcher: Dispatcher = (type, init) => {\n\t\t\tif (type === \"scheduled\" && super.scheduled !== undefined) {\n\t\t\t\tconst controller = new __Facade_ScheduledController__(\n\t\t\t\t\tDate.now(),\n\t\t\t\t\tinit.cron ?? \"\",\n\t\t\t\t\t() => {}\n\t\t\t\t);\n\t\t\t\treturn super.scheduled(controller);\n\t\t\t}\n\t\t};\n\n\t\tfetch(request: Request) {\n\t\t\treturn __facade_invoke__(\n\t\t\t\trequest,\n\t\t\t\tthis.env,\n\t\t\t\tthis.ctx,\n\t\t\t\tthis.#dispatcher,\n\t\t\t\tthis.#fetchDispatcher\n\t\t\t);\n\t\t}\n\t};\n}\n\nlet WRAPPED_ENTRY: ExportedHandler | WorkerEntrypointConstructor | undefined;\nif (typeof ENTRY === \"object\") {\n\tWRAPPED_ENTRY = wrapExportedHandler(ENTRY);\n} else if (typeof ENTRY === \"function\") {\n\tWRAPPED_ENTRY = wrapWorkerEntrypoint(ENTRY);\n}\nexport default WRAPPED_ENTRY;\n"], - "mappings": "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", - "names": ["stripCfConnectingIPHeader", "input", "init", "request", "__name", "target", "thisArg", "argArray", "createNotImplementedError", "name", "__name", "notImplemented", "notImplementedClass", "name", "__name", "_timeOrigin", "_performanceNow", "nodeTiming", "PerformanceEntry", "name", "options", "__name", "PerformanceMark", "PerformanceMeasure", "PerformanceResourceTiming", "PerformanceObserverEntryList", "_name", "_type", "type", "Performance", "_fn", "_options", "createNotImplementedError", "markName", "e", "measureName", "entry", "startOrMeasureOptions", "endMark", "start", "end", "maxSize", "listener", "event", "PerformanceObserver", "callback", "fn", "thisArg", "args", "__publicField", "performance", "performance", "Performance", "PerformanceEntry", "PerformanceMark", "PerformanceMeasure", "PerformanceObserver", "PerformanceObserverEntryList", "PerformanceResourceTiming", "Writable", "noop_default", "_console", "_ignoreErrors", "_stderr", "Writable", "_stdout", "log", "noop_default", "info", "trace", "debug", "table", "error", "warn", "createTask", "notImplemented", "clear", "_console", "noop_default", "count", "countReset", "dir", "dirxml", "group", "groupEnd", "groupCollapsed", "profile", "profileEnd", "time", "timeEnd", "timeLog", "timeStamp", "Console", "notImplementedClass", "_times", "_stdoutErrorHandler", "noop_default", "_stderrErrorHandler", "workerdConsole", "assert", "clear", "context", "count", "countReset", "createTask", "debug", "dir", "dirxml", "error", "group", "groupCollapsed", "groupEnd", "info", "log", "profile", "profileEnd", "table", "time", "timeEnd", "timeLog", "timeStamp", "trace", "warn", "Console", "_ignoreErrors", "_stderr", "_stderrErrorHandler", "_stdout", "_stdoutErrorHandler", "_times", "console_default", "console_default", "hrtime", "__name", "startTime", "now", "seconds", "nanos", "diffSeconds", "diffNanos", "EventEmitter", "Socket", "ReadStream", "Socket", "fd", "mode", "__name", "Socket", "WriteStream", "Socket", "fd", "dir", "callback", "x", "y", "dx", "dy", "env", "count", "__name", "Process", "EventEmitter", "impl", "prop", "value", "warning", "type", "code", "args", "eventName", "#stdin", "#stdout", "#stderr", "ReadStream", "WriteStream", "#cwd", "cwd", "createNotImplementedError", "notImplemented", "__name", "globalProcess", "getBuiltinModule", "exit", "platform", "nextTick", "unenvProcess", "Process", "hrtime", "abort", "addListener", "allowedNodeEnvironmentFlags", "hasUncaughtExceptionCaptureCallback", "setUncaughtExceptionCaptureCallback", "loadEnvFile", "sourceMapsEnabled", "arch", "argv", "argv0", "chdir", "config", "connected", "constrainedMemory", "availableMemory", "cpuUsage", "cwd", "debugPort", "dlopen", "disconnect", "emit", "emitWarning", "env", "eventNames", "execArgv", "execPath", "finalization", "features", "getActiveResourcesInfo", "getMaxListeners", "kill", "listeners", "listenerCount", "memoryUsage", "on", "off", "once", "pid", "ppid", "prependListener", "prependOnceListener", "rawListeners", "release", "removeAllListeners", "removeListener", "report", "resourceUsage", "setMaxListeners", "setSourceMapsEnabled", "stderr", "stdin", "stdout", "title", "throwDeprecation", "traceDeprecation", "umask", "uptime", "version", "versions", "domain", "initgroups", "moduleLoadList", "reallyExit", "openStdin", "assert", "binding", "send", "exitCode", "channel", "getegid", "geteuid", "getgid", "getgroups", "getuid", "setegid", "seteuid", "setgid", "setgroups", "setuid", "permission", "mainModule", "_events", "_eventsCount", "_exiting", "_maxListeners", "_debugEnd", "_debugProcess", "_fatalException", "_getActiveHandles", "_getActiveRequests", "_kill", "_preload_modules", "_rawDebug", "_startProfilerIdleNotifier", "_stopProfilerIdleNotifier", "_tickCallback", "_disconnect", "_handleQueue", "_pendingMessage", "_channel", "_send", "_linkedBinding", "_process", "process_default", "process_default", "compose", "__name", "middleware", "onError", "onNotFound", "context", "next", "index", "dispatch", "i", "res", "isError", "handler", "err", "GET_MATCH_RESULT", "parseBody", "__name", "request", "options", "all", "dot", "contentType", "HonoRequest", "parseFormData", "formData", "convertFormDataToBodyData", "form", "value", "key", "handleParsingAllValues", "handleParsingNestedValues", "nestedForm", "keys", "key2", "index", "splitPath", "__name", "path", "paths", "splitRoutingPath", "routePath", "groups", "extractGroupsFromPath", "replaceGroupMarks", "match", "index", "mark", "i", "j", "patternCache", "getPattern", "label", "next", "cacheKey", "tryDecode", "str", "decoder", "tryDecodeURI", "getPath", "request", "url", "start", "charCode", "queryIndex", "getPathNoStrict", "__name", "request", "result", "getPath", "mergePath", "base", "sub", "rest", "checkOptionalParameter", "path", "segments", "results", "basePath", "segment", "optionalSegment", "v", "_decodeURI", "value", "tryDecode", "decodeURIComponent_", "_getQueryParam", "url", "key", "multiple", "encoded", "keyIndex2", "trailingKeyCode", "valueIndex", "endIndex", "keyIndex", "nextKeyIndex", "name", "getQueryParam", "getQueryParams", "tryDecodeURIComponent", "__name", "str", "tryDecode", "decodeURIComponent_", "HonoRequest", "#validatedData", "#matchResult", "request", "path", "matchResult", "key", "#getDecodedParam", "#getAllDecodedParams", "paramKey", "param", "#getParamValue", "decoded", "keys", "value", "getQueryParam", "getQueryParams", "name", "headerData", "options", "parseBody", "#cachedBody", "bodyCache", "raw", "cachedBody", "anyCachedKey", "body", "text", "target", "data", "GET_MATCH_RESULT", "route", "HtmlEscapedCallbackPhase", "raw", "__name", "value", "callbacks", "escapedString", "resolveCallback", "__name", "str", "phase", "preserveCallbacks", "context", "buffer", "callbacks", "resStr", "c", "res", "str2", "raw", "TEXT_PLAIN", "setDefaultContentType", "__name", "contentType", "headers", "Context", "#rawRequest", "#req", "#var", "#status", "#executionCtx", "#res", "#layout", "#renderer", "#notFoundHandler", "#preparedHeaders", "#matchResult", "#path", "req", "options", "HonoRequest", "_res", "k", "v", "cookies", "cookie", "args", "content", "layout", "renderer", "name", "value", "status", "key", "#newResponse", "data", "arg", "responseHeaders", "argHeaders", "v2", "text", "object", "html", "res", "html2", "resolveCallback", "HtmlEscapedCallbackPhase", "location", "locationString", "METHOD_NAME_ALL", "METHOD_NAME_ALL_LOWERCASE", "METHODS", "MESSAGE_MATCHER_IS_ALREADY_BUILT", "UnsupportedPathError", "__name", "COMPOSED_HANDLER", "notFoundHandler", "__name", "c", "errorHandler", "err", "res", "Hono", "#path", "options", "METHODS", "METHOD_NAME_ALL_LOWERCASE", "method", "args1", "args", "#addRoute", "handler", "path", "handlers", "p", "m", "arg1", "METHOD_NAME_ALL", "strict", "optionsWithoutStrict", "getPath", "getPathNoStrict", "#clone", "clone", "#notFoundHandler", "app", "subApp", "r", "next", "compose", "COMPOSED_HANDLER", "mergePath", "applicationHandler", "replaceRequest", "optionHandler", "request", "getOptions", "options2", "executionContext", "mergedPath", "pathPrefixLength", "url", "#handleError", "#dispatch", "executionCtx", "env", "matchResult", "Context", "resolved", "composed", "context", "rest", "input", "requestInit", "Env", "event", "emptyParam", "match", "method", "path", "matchers", "match2", "__name", "method2", "path2", "matcher", "METHOD_NAME_ALL", "staticMatch", "match3", "index", "LABEL_REG_EXP_STR", "ONLY_WILDCARD_REG_EXP_STR", "TAIL_WILDCARD_REG_EXP_STR", "PATH_ERROR", "regExpMetaChars", "compareKey", "a", "b", "__name", "Node", "#index", "#varIndex", "#children", "tokens", "index", "paramMap", "context", "pathErrorCheckOnly", "token", "restTokens", "pattern", "node", "name", "regexpStr", "k", "strList", "c", "Trie", "__name", "#context", "#root", "Node", "path", "index", "pathErrorCheckOnly", "paramAssoc", "groups", "i", "replaced", "m", "mark", "tokens", "j", "regexp", "captureIndex", "indexReplacementMap", "paramReplacementMap", "_", "handlerIndex", "paramIndex", "nullMatcher", "wildcardRegExpCache", "buildWildcardRegExp", "path", "_", "metaChar", "__name", "clearWildcardRegExpCache", "buildMatcherFromPreprocessedRoutes", "routes", "trie", "Trie", "handlerData", "routesWithStaticPathFlag", "route", "isStaticA", "pathA", "isStaticB", "pathB", "staticMap", "i", "j", "len", "pathErrorCheckOnly", "handlers", "h", "emptyParam", "paramAssoc", "e", "PATH_ERROR", "UnsupportedPathError", "paramCount", "paramIndexMap", "key", "value", "regexp", "indexReplacementMap", "paramReplacementMap", "len2", "map", "keys", "k", "len3", "handlerMap", "findMiddleware", "middleware", "a", "b", "RegExpRouter", "#middleware", "#routes", "METHOD_NAME_ALL", "method", "handler", "MESSAGE_MATCHER_IS_ALREADY_BUILT", "p", "re", "m", "paths", "checkOptionalParameter", "path2", "match", "matchers", "#buildMatcher", "hasOwnRoute", "r", "ownRoute", "SmartRouter", "__name", "#routers", "#routes", "init", "method", "path", "handler", "MESSAGE_MATCHER_IS_ALREADY_BUILT", "routers", "routes", "len", "res", "router", "i2", "len2", "e", "UnsupportedPathError", "emptyParams", "Node", "__name", "#methods", "#children", "#patterns", "#order", "#params", "method", "handler", "children", "m", "path", "curNode", "parts", "splitRoutingPath", "possibleKeys", "i", "len", "p", "nextP", "pattern", "getPattern", "key", "v", "a", "#getHandlerSets", "node", "nodeParams", "params", "handlerSets", "handlerSet", "METHOD_NAME_ALL", "processedSet", "i2", "len2", "processed", "curNodes", "splitPath", "curNodesQueue", "part", "isLast", "tempNodes", "j", "nextNode", "k", "len3", "astNode", "name", "matcher", "child", "restPathString", "componentCount", "b", "TrieRouter", "__name", "#node", "Node", "method", "path", "handler", "results", "checkOptionalParameter", "i", "len", "Hono", "__name", "options", "SmartRouter", "RegExpRouter", "TrieRouter", "COMPRESSIBLE_CONTENT_TYPE_REGEX", "getMimeType", "__name", "filename", "mimes", "baseMimes", "regexp", "match", "mimeType", "_baseMimes", "baseMimes", "defaultJoin", "__name", "paths", "result", "p", "segments", "resolved", "segment", "ENCODINGS", "ENCODINGS_ORDERED_KEYS", "DEFAULT_DOCUMENT", "serveStatic", "__name", "options", "root", "optionPath", "join", "defaultJoin", "c", "next", "filename", "path", "getContent", "content", "mimeType", "getMimeType", "COMPRESSIBLE_CONTENT_TYPE_REGEX", "acceptEncodingSet", "encoding", "compressedContent", "getContentFromKVAsset", "__name", "path", "options", "ASSET_MANIFEST", "ASSET_NAMESPACE", "key", "content", "serveStatic", "__name", "options", "c", "next", "path", "getContentFromKVAsset", "module", "__name", "options", "serveStatic", "WSContext", "__name", "#init", "init", "source", "options", "code", "reason", "defineWebSocketHelper", "__name", "handler", "args", "createEvents", "options", "c", "next", "events", "result", "upgraded", "upgradeWebSocket", "defineWebSocketHelper", "c", "events", "webSocketPair", "client", "server", "wsContext", "WSContext", "code", "reason", "source", "evt", "cors", "__name", "options", "opts", "findAllowOrigin", "optsOrigin", "origin", "findAllowMethods", "optsAllowMethods", "c", "next", "set", "key", "value", "allowOrigin", "existingVary", "allowMethods", "headers", "requestHeaders", "entityKind", "hasOwnEntityKind", "is", "value", "type", "cls", "__name", "_a", "Column", "table", "config", "value", "__name", "entityKind", "__publicField", "SubqueryConfig", "_a", "Subquery", "entityKind", "sql", "selection", "alias", "isWith", "__name", "__publicField", "WithSubquery", "iife", "fn", "args", "__name", "version", "otel", "rawTracer", "tracer", "name", "fn", "version", "iife", "span", "e", "ViewBaseConfig", "TableName", "Schema", "Columns", "OriginalName", "BaseName", "IsAlias", "ExtraConfigBuilder", "IsDrizzleTable", "_a", "Table", "entityKind", "name", "schema", "baseName", "__name", "__publicField", "isTable", "table", "getTableName", "_a", "FakePrimitiveParam", "__name", "entityKind", "__publicField", "isSQLWrapper", "value", "mergeQueries", "queries", "result", "query", "StringChunk", "SQL", "_SQL", "queryChunks", "noopDecoder", "config", "tracer", "span", "chunks", "_config", "escapeName", "escapeParam", "prepareTyping", "inlineParams", "paramStartIndex", "chunk", "is", "Name", "i", "p", "Table", "schemaName", "tableName", "Column", "View", "ViewBaseConfig", "viewName", "Param", "mappedValue", "typings", "Placeholder", "Subquery", "SubqueryConfig", "escapeString", "mappedValueAsString", "alias", "decoder", "isDriverValueEncoder", "value", "__name", "noopDecoder", "noopEncoder", "noopMapper", "_a", "Param", "encoder", "SQL", "entityKind", "__publicField", "sql", "strings", "params", "queryChunks", "StringChunk", "paramIndex", "param", "SQL", "__name", "empty", "fromList", "list", "raw", "str", "join", "chunks", "separator", "result", "i", "chunk", "identifier", "value", "Name", "placeholder", "name", "Placeholder", "encoder", "Param", "Aliased", "fieldAlias", "entityKind", "_a", "__publicField", "fillPlaceholders", "params", "values", "p", "is", "Placeholder", "__name", "_a", "View", "entityKind", "ViewBaseConfig", "name", "schema", "selectedFields", "query", "SQL", "__publicField", "Column", "Table", "Subquery", "_a", "ColumnAliasProxyHandler", "table", "columnObj", "prop", "__name", "entityKind", "__publicField", "TableAliasProxyHandler", "alias", "replaceOriginalName", "target", "Table", "ViewBaseConfig", "columns", "proxiedColumns", "key", "value", "is", "Column", "RelationTableAliasProxyHandler", "aliasedTable", "tableAlias", "aliasedTableColumn", "column", "tableAlias", "ColumnAliasProxyHandler", "TableAliasProxyHandler", "__name", "mapColumnsInAliasedSQLToAlias", "query", "alias", "SQL", "mapColumnsInSQLToAlias", "sql", "c", "is", "Column", "_a", "ColumnBuilder", "name", "dataType", "columnType", "value", "fn", "__name", "entityKind", "__publicField", "_a", "DrizzleError", "message", "cause", "__name", "entityKind", "__publicField", "TransactionRollbackError", "bindIfParam", "value", "column", "isDriverValueEncoder", "isSQLWrapper", "is", "Param", "Placeholder", "Column", "Table", "View", "__name", "eq", "left", "right", "sql", "ne", "and", "unfilteredConditions", "conditions", "c", "SQL", "StringChunk", "or", "not", "condition", "gt", "gte", "lt", "lte", "inArray", "values", "v", "notInArray", "isNull", "isNotNull", "exists", "subquery", "notExists", "between", "min", "max", "notBetween", "like", "notLike", "ilike", "notIlike", "asc", "column", "sql", "__name", "desc", "_a", "ConsoleLogWriter", "message", "__name", "entityKind", "__publicField", "DefaultLogger", "config", "query", "params", "stringifiedParams", "p", "paramsStr", "NoopLogger", "_a", "QueryPromise", "entityKind", "onRejected", "onFinally", "value", "reason", "onFulfilled", "__name", "__publicField", "InlineForeignKeys", "_a", "PgTable", "Table", "entityKind", "__name", "__publicField", "_a", "PrimaryKeyBuilder", "columns", "name", "table", "PrimaryKey", "__name", "entityKind", "__publicField", "PgTable", "column", "_a", "Relation", "sourceTable", "referencedTable", "relationName", "Table", "__name", "entityKind", "__publicField", "Relations", "table", "config", "_One", "isNullable", "fieldName", "relation", "One", "_Many", "Many", "getOperators", "and", "between", "eq", "exists", "gt", "gte", "ilike", "inArray", "isNull", "isNotNull", "like", "lt", "lte", "ne", "not", "notBetween", "notExists", "notLike", "notIlike", "notInArray", "or", "sql", "getOrderByOperators", "asc", "desc", "extractTablesRelationalConfig", "schema", "configHelpers", "is", "tableNamesMap", "relationsBuffer", "tablesConfig", "key", "value", "isTable", "dbName", "bufferedRelations", "column", "extraConfig", "configEntry", "PrimaryKeyBuilder", "tableName", "relations", "primaryKey", "tableConfig", "createOne", "sourceTable", "__name", "table", "config", "One", "res", "f", "createMany", "referencedTable", "Many", "normalizeRelation", "schema", "tableNamesMap", "relation", "is", "referencedTableTsName", "Table", "referencedTableConfig", "sourceTableTsName", "reverseRelations", "referencedTableRelation", "createTableRelationsHelpers", "mapRelationalRow", "tablesConfig", "tableConfig", "row", "buildQueryResultSelection", "mapColumnValue", "value", "result", "selectionItemIndex", "selectionItem", "rawSubRows", "subRows", "subRow", "field", "decoder", "Column", "SQL", "count", "expression", "sql", "__name", "mapResultRow", "columns", "row", "joinsNotNullableMap", "nullifyMap", "result", "path", "field", "columnIndex", "decoder", "is", "Column", "SQL", "node", "pathChunkIndex", "pathChunk", "rawValue", "value", "objectName", "getTableName", "tableName", "__name", "orderSelectedFields", "fields", "pathPrefix", "name", "newPath", "Table", "haveSameKeys", "left", "right", "leftKeys", "rightKeys", "index", "key", "mapUpdateSet", "table", "values", "entries", "Param", "applyMixins", "baseClass", "extendedClasses", "extendedClass", "getTableColumns", "getTableLikeName", "Subquery", "SubqueryConfig", "View", "ViewBaseConfig", "InlineForeignKeys", "_a", "SQLiteTable", "Table", "entityKind", "__name", "__publicField", "sqliteTableBase", "name", "columns", "extraConfig", "schema", "baseName", "rawTable", "builtColumns", "colBuilderBase", "colBuilder", "column", "table", "sqliteTable", "_a", "ForeignKeyBuilder", "config", "actions", "name", "columns", "foreignColumns", "action", "table", "ForeignKey", "__name", "entityKind", "__publicField", "builder", "columnNames", "column", "foreignColumnNames", "chunks", "SQLiteTable", "uniqueKeyName", "table", "columns", "SQLiteTable", "__name", "_a", "UniqueConstraintBuilder", "columns", "name", "table", "UniqueConstraint", "__name", "entityKind", "__publicField", "UniqueOnConstraintBuilder", "uniqueKeyName", "column", "_a", "SQLiteColumnBuilder", "ColumnBuilder", "ref", "actions", "name", "column", "table", "builder", "ForeignKeyBuilder", "foreignColumn", "__name", "entityKind", "__publicField", "SQLiteColumn", "Column", "config", "uniqueKeyName", "_a", "SQLiteBaseIntegerBuilder", "SQLiteColumnBuilder", "name", "dataType", "columnType", "config", "__name", "entityKind", "__publicField", "SQLiteBaseInteger", "SQLiteColumn", "SQLiteIntegerBuilder", "table", "SQLiteInteger", "SQLiteTimestampBuilder", "mode", "sql", "SQLiteTimestamp", "value", "unix", "SQLiteBooleanBuilder", "SQLiteBoolean", "integer", "_a", "SQLiteTextBuilder", "SQLiteColumnBuilder", "name", "config", "table", "SQLiteText", "__name", "entityKind", "__publicField", "SQLiteColumn", "SQLiteTextJsonBuilder", "SQLiteTextJson", "value", "text", "_a", "_SelectionProxyHandler", "config", "subquery", "prop", "SubqueryConfig", "ViewBaseConfig", "value", "is", "Subquery", "View", "SQL", "newValue", "Column", "ColumnAliasProxyHandler", "TableAliasProxyHandler", "SelectionProxyHandler", "__name", "entityKind", "__publicField", "_a", "SQLiteDeleteBase", "QueryPromise", "table", "session", "dialect", "withList", "where", "fields", "SQLiteTable", "orderSelectedFields", "_typings", "rest", "isOneTimeQuery", "placeholderValues", "__name", "entityKind", "__publicField", "_a", "SQLiteInsertBuilder", "table", "session", "dialect", "withList", "values", "mappedValues", "entry", "result", "cols", "Table", "colKey", "colValue", "is", "SQL", "Param", "SQLiteInsertBase", "__name", "entityKind", "__publicField", "QueryPromise", "fields", "SQLiteTable", "orderSelectedFields", "config", "sql", "targetSql", "whereSql", "setSql", "mapUpdateSet", "_typings", "rest", "isOneTimeQuery", "placeholderValues", "_a", "SQLiteViewBase", "View", "__name", "entityKind", "__publicField", "_a", "SQLiteDialect", "name", "_num", "str", "queries", "withSqlChunks", "sql", "i", "w", "SubqueryConfig", "table", "where", "returning", "withList", "withSql", "returningSql", "whereSql", "set", "setEntries", "setSize", "colName", "value", "col", "Table", "res", "setSql", "fields", "isSingleTable", "columnsLen", "chunks", "field", "chunk", "is", "SQL", "query", "Column", "tableName", "columnName", "fieldsFlat", "having", "joins", "orderBy", "groupBy", "limit", "offset", "distinct", "setOperators", "fieldsList", "orderSelectedFields", "f", "getTableName", "Subquery", "SQLiteViewBase", "ViewBaseConfig", "alias", "distinctSql", "selection", "tableSql", "joinsArray", "index", "joinMeta", "SQLiteTable", "tableSchema", "origTableName", "joinsSql", "havingSql", "orderByList", "orderByValue", "groupByList", "groupByValue", "groupBySql", "orderBySql", "limitSql", "offsetSql", "finalQuery", "leftSelect", "setOperator", "rest", "type", "isAll", "rightSelect", "leftChunk", "rightChunk", "orderByValues", "singleOrderBy", "SQLiteColumn", "operatorChunk", "values", "onConflict", "valuesSqlList", "columns", "colEntries", "insertOrder", "column", "valueIndex", "valueList", "fieldName", "colValue", "Param", "defaultValue", "defaultFnResult", "valuesSql", "onConflictSql", "fullSchema", "schema", "tableNamesMap", "tableConfig", "config", "tableAlias", "nestedQueryRelation", "joinOn", "key", "aliasedTableColumn", "aliasedColumns", "getOperators", "mapColumnsInSQLToAlias", "fieldsSelection", "selectedColumns", "isIncludeMode", "c", "selectedRelations", "entry", "tsKey", "queryConfig", "extras", "mapColumnsInAliasedSQLToAlias", "orderByOrig", "getOrderByOperators", "selectedRelationTsKey", "selectedRelationConfigValue", "relation", "normalizedRelation", "normalizeRelation", "relationTableName", "relationTableTsName", "relationTableAlias", "and", "eq", "builtRelation", "One", "DrizzleError", "result", "Many", "nestedSelection", "aliasedTable", "__name", "entityKind", "__publicField", "SQLiteSyncDialect", "migrations", "session", "migrationsTable", "migrationTableCreate", "lastDbMigration", "migration", "stmt", "e", "SQLiteAsyncDialect", "tx", "_a", "TypedQueryBuilder", "__name", "entityKind", "__publicField", "_a", "SQLiteSelectBuilder", "config", "source", "isPartialSelect", "fields", "is", "Subquery", "SubqueryConfig", "key", "SQLiteViewBase", "ViewBaseConfig", "SQL", "getTableColumns", "SQLiteSelectBase", "__name", "entityKind", "__publicField", "SQLiteSelectQueryBuilderBase", "TypedQueryBuilder", "table", "session", "dialect", "withList", "distinct", "getTableLikeName", "joinType", "on", "baseTableName", "tableName", "join", "selection", "View", "Table", "SelectionProxyHandler", "type", "isAll", "rightSelection", "rightSelect", "getSQLiteSetOperators", "haveSameKeys", "setOperators", "where", "having", "columns", "groupBy", "orderBy", "orderByArray", "limit", "offset", "_typings", "rest", "alias", "isOneTimeQuery", "fieldsList", "orderSelectedFields", "query", "placeholderValues", "applyMixins", "QueryPromise", "createSetOperator", "leftSelect", "restSelects", "select", "setOperator", "union", "unionAll", "intersect", "except", "_a", "QueryBuilder", "alias", "queryBuilder", "qb", "WithSubquery", "SelectionProxyHandler", "queries", "self", "select", "fields", "SQLiteSelectBuilder", "__name", "selectDistinct", "SQLiteSyncDialect", "entityKind", "__publicField", "_a", "SQLiteUpdateBuilder", "table", "session", "dialect", "withList", "values", "SQLiteUpdateBase", "mapUpdateSet", "__name", "entityKind", "__publicField", "QueryPromise", "set", "where", "fields", "SQLiteTable", "orderSelectedFields", "_typings", "rest", "isOneTimeQuery", "placeholderValues", "_a", "RelationalQueryBuilder", "mode", "fullSchema", "schema", "tableNamesMap", "table", "tableConfig", "dialect", "session", "config", "SQLiteSyncRelationalQuery", "SQLiteRelationalQuery", "__name", "entityKind", "__publicField", "QueryPromise", "isOneTimeQuery", "query", "builtQuery", "rawRows", "mapColumnValue", "rows", "row", "mapRelationalRow", "_a", "SQLiteRaw", "QueryPromise", "execute", "getSQL", "action", "dialect", "mapBatchResult", "result", "isFromBatch", "__name", "entityKind", "__publicField", "_a", "BaseSQLiteDatabase", "resultKind", "dialect", "session", "schema", "query", "tableName", "columns", "RelationalQueryBuilder", "alias", "qb", "QueryBuilder", "WithSubquery", "SelectionProxyHandler", "queries", "self", "select", "fields", "SQLiteSelectBuilder", "__name", "selectDistinct", "update", "table", "SQLiteUpdateBuilder", "insert", "into", "SQLiteInsertBuilder", "delete_", "from", "SQLiteDeleteBase", "sql", "SQLiteRaw", "transaction", "config", "entityKind", "__publicField", "_a", "ExecuteResultSync", "QueryPromise", "resultCb", "__name", "entityKind", "__publicField", "SQLitePreparedQuery", "mode", "executeMethod", "query", "result", "_isFromBatch", "_result", "placeholderValues", "response", "isFromBatch", "SQLiteSession", "dialect", "fields", "staticQuery", "err", "DrizzleError", "SQLiteTransaction", "BaseSQLiteDatabase", "resultType", "session", "schema", "nestedIndex", "TransactionRollbackError", "InlineForeignKeys", "_a", "MySqlTable", "Table", "entityKind", "__name", "__publicField", "_a", "ForeignKeyBuilder", "config", "actions", "name", "columns", "foreignColumns", "action", "table", "ForeignKey", "__name", "entityKind", "__publicField", "builder", "columnNames", "column", "foreignColumnNames", "chunks", "MySqlTable", "uniqueKeyName", "table", "columns", "MySqlTable", "__name", "_a", "UniqueConstraintBuilder", "name", "UniqueConstraint", "entityKind", "__publicField", "UniqueOnConstraintBuilder", "column", "_a", "MySqlColumnBuilder", "ColumnBuilder", "ref", "actions", "name", "column", "table", "builder", "ForeignKeyBuilder", "foreignColumn", "__name", "entityKind", "__publicField", "MySqlColumn", "Column", "config", "uniqueKeyName", "MySqlColumnBuilderWithAutoIncrement", "dataType", "columnType", "MySqlColumnWithAutoIncrement", "_a", "MySqlCharBuilder", "MySqlColumnBuilder", "name", "config", "table", "MySqlChar", "__name", "entityKind", "__publicField", "MySqlColumn", "_a", "MySqlVarBinaryBuilder", "MySqlColumnBuilder", "name", "config", "table", "MySqlVarBinary", "__name", "entityKind", "__publicField", "MySqlColumn", "_a", "MySqlVarCharBuilder", "MySqlColumnBuilder", "name", "config", "table", "MySqlVarChar", "__name", "entityKind", "__publicField", "MySqlColumn", "_a", "ForeignKeyBuilder", "config", "actions", "name", "columns", "foreignColumns", "action", "table", "ForeignKey", "__name", "entityKind", "__publicField", "builder", "columnNames", "column", "foreignColumnNames", "chunks", "PgTable", "uniqueKeyName", "table", "columns", "PgTable", "__name", "_a", "UniqueConstraintBuilder", "name", "UniqueConstraint", "entityKind", "__publicField", "UniqueOnConstraintBuilder", "nullsNotDistinct", "column", "parsePgArrayValue", "arrayString", "startFrom", "inQuotes", "i", "char", "__name", "parsePgNestedArray", "result", "lastCharIsComma", "value", "newStartFrom", "parsePgArray", "makePgArray", "array", "item", "_a", "PgColumnBuilder", "ColumnBuilder", "size", "PgArrayBuilder", "ref", "actions", "name", "config", "column", "table", "iife", "builder", "ForeignKeyBuilder", "foreignColumn", "__name", "entityKind", "__publicField", "PgColumn", "Column", "uniqueKeyName", "baseBuilder", "baseColumn", "PgArray", "_PgArray", "range", "value", "parsePgArray", "v", "isNestedArray", "a", "is", "makePgArray", "_a", "PgCharBuilder", "PgColumnBuilder", "name", "config", "table", "PgChar", "__name", "entityKind", "__publicField", "PgColumn", "_a", "PgUUIDBuilder", "PgColumnBuilder", "name", "sql", "table", "PgUUID", "__name", "entityKind", "__publicField", "PgColumn", "_a", "PgVarcharBuilder", "PgColumnBuilder", "name", "config", "table", "PgVarchar", "__name", "entityKind", "__publicField", "PgColumn", "external_exports", "__export", "BRAND", "DIRTY", "EMPTY_PATH", "INVALID", "NEVER", "OK", "ParseStatus", "ZodType", "ZodAny", "ZodArray", "ZodBigInt", "ZodBoolean", "ZodBranded", "ZodCatch", "ZodDate", "ZodDefault", "ZodDiscriminatedUnion", "ZodEffects", "ZodEnum", "ZodError", "ZodFirstPartyTypeKind", "ZodFunction", "ZodIntersection", "ZodIssueCode", "ZodLazy", "ZodLiteral", "ZodMap", "ZodNaN", "ZodNativeEnum", "ZodNever", "ZodNull", "ZodNullable", "ZodNumber", "ZodObject", "ZodOptional", "ZodParsedType", "ZodPipeline", "ZodPromise", "ZodReadonly", "ZodRecord", "ZodSet", "ZodString", "ZodSymbol", "ZodTuple", "ZodUndefined", "ZodUnion", "ZodUnknown", "ZodVoid", "addIssueToContext", "anyType", "arrayType", "bigIntType", "booleanType", "coerce", "custom", "dateType", "datetimeRegex", "en_default", "discriminatedUnionType", "effectsType", "enumType", "functionType", "getErrorMap", "getParsedType", "instanceOfType", "intersectionType", "isAborted", "isAsync", "isDirty", "isValid", "late", "lazyType", "literalType", "makeIssue", "mapType", "nanType", "nativeEnumType", "neverType", "nullType", "nullableType", "numberType", "objectType", "objectUtil", "oboolean", "onumber", "optionalType", "ostring", "pipelineType", "preprocessType", "promiseType", "quotelessJson", "recordType", "setType", "setErrorMap", "strictObjectType", "stringType", "symbolType", "tupleType", "undefinedType", "unionType", "unknownType", "util", "voidType", "util", "_", "assertIs", "_arg", "__name", "assertNever", "_x", "items", "obj", "item", "validKeys", "k", "filtered", "e", "object", "keys", "key", "arr", "checker", "val", "joinValues", "array", "separator", "value", "objectUtil", "first", "second", "ZodParsedType", "getParsedType", "data", "ZodIssueCode", "util", "quotelessJson", "__name", "obj", "ZodError", "issues", "sub", "subs", "actualProto", "_mapper", "mapper", "issue", "fieldErrors", "processError", "error", "curr", "i", "el", "value", "formErrors", "firstEl", "errorMap", "__name", "issue", "_ctx", "message", "ZodIssueCode", "ZodParsedType", "util", "en_default", "overrideErrorMap", "en_default", "setErrorMap", "map", "overrideErrorMap", "__name", "getErrorMap", "makeIssue", "__name", "params", "data", "path", "errorMaps", "issueData", "fullPath", "fullIssue", "errorMessage", "maps", "m", "map", "EMPTY_PATH", "addIssueToContext", "ctx", "overrideMap", "getErrorMap", "issue", "en_default", "x", "ParseStatus", "status", "results", "arrayValue", "s", "INVALID", "pairs", "syncPairs", "pair", "key", "value", "finalObject", "DIRTY", "OK", "isAborted", "isDirty", "isValid", "isAsync", "errorUtil", "message", "ParseInputLazyPath", "parent", "value", "path", "key", "__name", "handleResult", "ctx", "result", "isValid", "error", "ZodError", "processCreateParams", "params", "errorMap", "invalid_type_error", "required_error", "description", "iss", "message", "ZodType", "input", "getParsedType", "ParseStatus", "isAsync", "data", "err", "maybeAsyncResult", "check", "getIssueProperties", "val", "setError", "ZodIssueCode", "refinementData", "refinement", "ZodEffects", "ZodFirstPartyTypeKind", "def", "ZodOptional", "ZodNullable", "ZodArray", "ZodPromise", "option", "ZodUnion", "incoming", "ZodIntersection", "transform", "defaultValueFunc", "ZodDefault", "ZodBranded", "catchValueFunc", "ZodCatch", "This", "target", "ZodPipeline", "ZodReadonly", "cuidRegex", "cuid2Regex", "ulidRegex", "uuidRegex", "nanoidRegex", "jwtRegex", "durationRegex", "emailRegex", "_emojiRegex", "emojiRegex", "ipv4Regex", "ipv4CidrRegex", "ipv6Regex", "ipv6CidrRegex", "base64Regex", "base64urlRegex", "dateRegexSource", "dateRegex", "timeRegexSource", "args", "secondsRegexSource", "secondsQuantifier", "timeRegex", "datetimeRegex", "regex", "opts", "isValidIP", "ip", "version", "isValidJWT", "jwt", "alg", "header", "base64", "decoded", "isValidCidr", "ZodString", "ZodParsedType", "addIssueToContext", "INVALID", "status", "tooBig", "tooSmall", "util", "validation", "errorUtil", "options", "minLength", "maxLength", "len", "ch", "min", "max", "floatSafeRemainder", "step", "valDecCount", "stepDecCount", "decCount", "valInt", "stepInt", "ZodNumber", "kind", "inclusive", "ZodBigInt", "ZodBoolean", "OK", "ZodDate", "minDate", "maxDate", "ZodSymbol", "ZodUndefined", "ZodNull", "ZodAny", "ZodUnknown", "ZodNever", "ZodVoid", "item", "i", "schema", "deepPartialify", "ZodObject", "newShape", "fieldSchema", "ZodTuple", "shape", "keys", "shapeKeys", "extraKeys", "pairs", "keyValidator", "unknownKeys", "catchall", "syncPairs", "pair", "issue", "defaultError", "augmentation", "merging", "index", "mask", "newField", "createZodEnum", "handleResults", "results", "unionErrors", "childCtx", "dirty", "issues", "types", "getDiscriminator", "type", "ZodLazy", "ZodLiteral", "ZodEnum", "ZodNativeEnum", "ZodDiscriminatedUnion", "discriminator", "discriminatorValue", "optionsMap", "discriminatorValues", "mergeValues", "a", "b", "aType", "bType", "bKeys", "sharedKeys", "newObj", "sharedValue", "newArray", "itemA", "itemB", "handleParsed", "parsedLeft", "parsedRight", "isAborted", "merged", "isDirty", "left", "right", "items", "itemIndex", "x", "rest", "schemas", "ZodRecord", "keyType", "valueType", "first", "second", "third", "ZodMap", "finalMap", "ZodSet", "finalizeSet", "elements", "parsedSet", "element", "minSize", "maxSize", "size", "ZodFunction", "makeArgsIssue", "makeIssue", "getErrorMap", "en_default", "makeReturnsIssue", "returns", "fn", "me", "parsedArgs", "e", "parsedReturns", "returnType", "func", "getter", "values", "expectedValues", "enumValues", "newDef", "opt", "nativeEnumValues", "promisified", "effect", "checkCtx", "arg", "processed", "DIRTY", "executeRefinement", "acc", "inner", "base", "preprocess", "ZodOptional", "ZodType", "input", "ZodParsedType", "OK", "__name", "type", "params", "ZodFirstPartyTypeKind", "processCreateParams", "ZodNullable", "ZodDefault", "ctx", "data", "ZodCatch", "newCtx", "result", "isAsync", "ZodError", "ZodNaN", "addIssueToContext", "ZodIssueCode", "INVALID", "BRAND", "ZodBranded", "ZodPipeline", "status", "inResult", "DIRTY", "a", "b", "ZodReadonly", "freeze", "isValid", "cleanParams", "p", "custom", "check", "_params", "fatal", "ZodAny", "r", "_fatal", "late", "ZodObject", "ZodFirstPartyTypeKind", "instanceOfType", "__name", "cls", "params", "custom", "data", "stringType", "ZodString", "numberType", "ZodNumber", "nanType", "ZodNaN", "bigIntType", "ZodBigInt", "booleanType", "ZodBoolean", "dateType", "ZodDate", "symbolType", "ZodSymbol", "undefinedType", "ZodUndefined", "nullType", "ZodNull", "anyType", "ZodAny", "unknownType", "ZodUnknown", "neverType", "ZodNever", "voidType", "ZodVoid", "arrayType", "ZodArray", "objectType", "ZodObject", "strictObjectType", "unionType", "ZodUnion", "discriminatedUnionType", "ZodDiscriminatedUnion", "intersectionType", "ZodIntersection", "tupleType", "ZodTuple", "recordType", "ZodRecord", "mapType", "ZodMap", "setType", "ZodSet", "functionType", "ZodFunction", "lazyType", "ZodLazy", "literalType", "ZodLiteral", "enumType", "ZodEnum", "nativeEnumType", "ZodNativeEnum", "promiseType", "ZodPromise", "effectsType", "ZodEffects", "optionalType", "ZodOptional", "nullableType", "ZodNullable", "preprocessType", "pipelineType", "ZodPipeline", "ostring", "onumber", "oboolean", "coerce", "arg", "NEVER", "INVALID", "literalSchema", "z", "union", "string", "number", "boolean", "null", "jsonSchema", "lazy", "array", "record", "createInsertSchema", "table", "refine", "columns", "getTableColumns", "columnEntries", "Object", "entries", "schemaEntries", "fromEntries", "map", "name", "column", "mapColumnToSchema", "assign", "refineColumn", "notNull", "hasDefault", "optional", "nullable", "object", "mapColumnToSchema", "column", "type", "Array", "isArray", "enumValues", "length", "z", "enum", "string", "is", "PgUUID", "uuid", "dataType", "any", "jsonSchema", "array", "baseColumn", "number", "bigint", "boolean", "date", "sType", "PgChar", "PgVarchar", "MySqlVarChar", "MySqlVarBinary", "MySqlChar", "SQLiteText", "max", "apiKeys", "sqliteTable", "text", "integer", "insertApiKeySchema", "c", "mailboxes", "insertMailboxSchema", "emails", "AddressSchema", "objectType", "stringType", "insertEmailSchema", "arrayType", "recordType", "insertEmail", "db", "email", "emails", "e", "__name", "findEmailById", "db", "id", "result", "emails", "and", "eq", "__name", "getEmailsByMessageTo", "messageTo", "desc", "deleteEmails", "db", "ids", "emails", "inArray", "e", "__name", "deleteExpiredEmails", "expirationTime", "lt", "findApiKeyByKey", "key", "result", "apiKeys", "eq", "updateApiKeyLastUsed", "id", "insertApiKey", "apiKey", "insertMailbox", "mailbox", "mailboxes", "findMailboxById", "getMailboxMessages", "db", "address", "options", "offset", "orderFn", "asc", "desc", "messages", "countResult", "emails", "eq", "count", "total", "e", "__name", "findMailboxMessage", "messageId", "result", "and", "deleteMailboxMessage", "getMailboxMessageCount", "_a", "SQLiteD1Session", "SQLiteSession", "client", "dialect", "schema", "options", "NoopLogger", "query", "fields", "executeMethod", "customResultMapper", "stmt", "D1PreparedQuery", "queries", "preparedQueries", "builtQueries", "preparedQuery", "builtQuery", "result", "i", "d1ToRawMapping", "transaction", "config", "tx", "D1Transaction", "sql", "err", "__name", "entityKind", "__publicField", "_D1Transaction", "SQLiteTransaction", "savepointName", "results", "rows", "row", "entry", "k", "SQLitePreparedQuery", "logger", "placeholderValues", "params", "fillPlaceholders", "isFromBatch", "mapResultRow", "joinsNotNullableMap", "_a", "DrizzleD1Database", "BaseSQLiteDatabase", "batch", "__name", "entityKind", "__publicField", "drizzle", "client", "config", "dialect", "SQLiteAsyncDialect", "logger", "DefaultLogger", "schema", "tablesConfig", "extractTablesRelationalConfig", "createTableRelationsHelpers", "session", "SQLiteD1Session", "getD1DB", "db", "drizzle", "__name", "urlAlphabet", "nanoid", "__name", "size", "id", "i", "urlAlphabet", "textEncoder", "base64Chars", "base64Lookup", "i", "decodeBase64", "base64", "bufferLength", "len", "p", "arrayBuffer", "bytes", "encoded1", "encoded2", "encoded3", "encoded4", "__name", "getDecoder", "charset", "decoder", "blobToArrayBuffer", "blob", "fr", "resolve", "reject", "e", "getHex", "c", "decodeWord", "encoding", "str", "splitPos", "byteStr", "buf", "encodedBytes", "c1", "c2", "dataView", "decodeWords", "joinString", "done", "result", "match", "left", "chLeft", "encodedLeftStr", "chRight", "m", "text", "decodeURIComponentWithCharset", "encodedStr", "byte", "j", "decodeParameterValueContinuations", "header", "paramKeys", "key", "actualKey", "nr", "paramVal", "value", "a", "b", "PassThroughDecoder", "line", "blobToArrayBuffer", "__name", "Base64Decoder", "opts", "buffer", "str", "allowedBytes", "base64Str", "decodeBase64", "blobToArrayBuffer", "__name", "VALID_QP_REGEX", "QP_SPLIT_REGEX", "SOFT_LINE_BREAK_REGEX", "PARTIAL_QP_ENDING_REGEX", "QPDecoder", "opts", "encodedBytes", "buf", "dataView", "i", "len", "str", "list", "part", "firstThree", "buffer", "partialEnding", "blobToArrayBuffer", "__name", "MimeNode", "options", "transferEncoding", "Base64Decoder", "QPDecoder", "getDecoder", "PassThroughDecoder", "boundaries", "i", "childNode", "str", "response", "key", "value", "stage", "quote", "escaped", "chr", "len", "decodeParameterValueContinuations", "delSp", "previousValue", "currentValue", "line", "sep", "textEncoder", "__name", "htmlEntities", "html_entities_default", "decodeHTMLEntities", "str", "match", "entity", "html_entities_default", "codePoint", "output", "__name", "escapeHtml", "c", "hex", "textToHtml", "htmlToText", "formatTextAddress", "address", "formatTextAddresses", "addresses", "parts", "processAddress", "partCounter", "groupStart", "groupEnd", "formatHtmlAddress", "formatHtmlAddresses", "foldLines", "lineLength", "afterSpace", "pos", "len", "result", "line", "formatTextHeader", "message", "rows", "dateOptions", "dateStr", "maxKeyLength", "r", "acc", "cur", "row", "sepLen", "prefix", "emptyPrefix", "i", "maxLineLength", "lineMarker", "formatHtmlHeader", "_handleAddress", "tokens", "isGroup", "state", "address", "addresses", "data", "i", "len", "insideQuotes", "token", "prevToken", "groupMembers", "addressParser", "member", "decodeWords", "_regexHandler", "__name", "parsedSubAddresses", "Tokenizer", "str", "list", "chr", "nextChr", "node", "options", "parsedAddresses", "walkAddressList", "address_parser_default", "base64ArrayBuffer", "arrayBuffer", "base64", "encodings", "bytes", "byteLength", "byteRemainder", "mainLength", "a", "b", "chunk", "i", "__name", "MAX_NESTING_DEPTH", "MAX_HEADERS_SIZE", "PostalMime", "buf", "options", "MimeNode", "line", "isFinal", "boundaries", "i", "boundary", "isTerminator", "boudaryMatches", "startPos", "endPos", "res", "__name", "c", "textContent", "textTypes", "textMap", "forceRfc822Attachments", "walk", "node", "alternative", "related", "subParser", "textEntry", "subTextEntry", "subTextNode", "attachment", "textType", "selectorNode", "filename", "decodeWords", "decodedText", "textEncoder", "childNode", "mapEntry", "formatHtmlHeader", "formatTextHeader", "alternativeType", "textToHtml", "htmlToText", "stream", "chunkLen", "chunks", "reader", "done", "value", "result", "chunkPointer", "chunk", "blobToArrayBuffer", "message", "entry", "key", "addressHeader", "addresses", "address_parser_default", "camelKey", "o", "addressHeaders", "parsed", "header", "dateHeader", "date", "base64ArrayBuffer", "attachmentDecoder", "decrypt", "encryptedText", "secret", "text", "result", "i", "__name", "apiKeyAuth", "__name", "c", "next", "apiKey", "authHeader", "db", "getD1DB", "keyRecord", "findApiKeyByKey", "updateApiKeyLastUsed", "generateRandomLocalPart", "adjectives", "nouns", "adj", "noun", "num", "__name", "mailboxesRouter", "Hono", "c", "db", "getD1DB", "apiKey", "body", "availableDomains", "d", "domain", "address", "expiresIn", "expiresAt", "now", "mailbox", "nanoid", "insertMailbox", "e", "id", "findMailboxById", "messageCount", "getMailboxMessageCount", "page", "limit", "sort", "messages", "total", "totalPages", "getMailboxMessages", "msg", "messageId", "message", "findMailboxMessage", "deleteMailboxMessage", "mailboxes_default", "v1", "Hono", "cors", "apiKeyAuth", "mailboxes_default", "v1_default", "app", "Hono", "cors", "turnstile", "__name", "c", "next", "body", "e", "token", "ip", "params", "data", "api", "generateApiKey", "chars", "key", "i", "db", "getD1DB", "now", "apiKey", "keyPrefix", "newApiKey", "nanoid", "insertApiKey", "address", "emails", "getEmailsByMessageTo", "id", "email", "findEmailById", "ids", "result", "deleteEmails", "password", "decrypt", "emailDomain", "d", "v1_default", "module", "src_default", "message", "env", "ctx", "raw", "mail", "PostalMime", "newEmail", "insertEmailSchema", "insertEmail", "request", "url", "response", "indexRequest", "event", "oneDayAgo", "deleteExpiredEmails", "drainBody", "__name", "request", "env", "_ctx", "middlewareCtx", "reader", "e", "middleware_ensure_req_body_drained_default", "reduceError", "e", "__name", "jsonError", "request", "env", "_ctx", "middlewareCtx", "error", "middleware_miniflare3_json_error_default", "__INTERNAL_WRANGLER_MIDDLEWARE__", "middleware_ensure_req_body_drained_default", "middleware_miniflare3_json_error_default", "middleware_insertion_facade_default", "src_default", "__facade_middleware__", "__facade_register__", "args", "__name", "__facade_invokeChain__", "request", "env", "ctx", "dispatch", "middlewareChain", "head", "tail", "newRequest", "newEnv", "__name", "__facade_invoke__", "finalMiddleware", "__facade_middleware__", "__Facade_ScheduledController__", "scheduledTime", "cron", "noRetry", "#noRetry", "__name", "wrapExportedHandler", "worker", "__INTERNAL_WRANGLER_MIDDLEWARE__", "middleware", "__facade_register__", "fetchDispatcher", "request", "env", "ctx", "__facade_invoke__", "type", "init", "controller", "wrapWorkerEntrypoint", "klass", "#fetchDispatcher", "#dispatcher", "WRAPPED_ENTRY", "middleware_insertion_facade_default", "middleware_loader_entry_default"] + "sources": ["../bundle-nk20cv/strip-cf-connecting-ip-header.js", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/_internal/utils.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/perf_hooks/performance.mjs", "../../../node_modules/.pnpm/@cloudflare+unenv-preset@2.0.2_unenv@2.0.0-rc.14_workerd@1.20250718.0/node_modules/@cloudflare/unenv-preset/dist/runtime/polyfill/performance.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/console.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/mock/noop.mjs", "../../../node_modules/.pnpm/@cloudflare+unenv-preset@2.0.2_unenv@2.0.0-rc.14_workerd@1.20250718.0/node_modules/@cloudflare/unenv-preset/dist/runtime/node/console.mjs", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/_virtual_unenv_global_polyfill-@cloudflare-unenv-preset-node-console", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/process/hrtime.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/process/process.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/tty/read-stream.mjs", "../../../node_modules/.pnpm/unenv@2.0.0-rc.14/node_modules/unenv/dist/runtime/node/internal/tty/write-stream.mjs", "../../../node_modules/.pnpm/@cloudflare+unenv-preset@2.0.2_unenv@2.0.0-rc.14_workerd@1.20250718.0/node_modules/@cloudflare/unenv-preset/dist/runtime/node/process.mjs", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/_virtual_unenv_global_polyfill-@cloudflare-unenv-preset-node-process", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/compose.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/request/constants.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/body.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/url.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/request.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/html.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/context.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/constants.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/hono-base.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/matcher.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/node.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/trie.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/reg-exp-router/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/smart-router/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/trie-router/node.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/router/trie-router/router.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/hono.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/compress.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/utils/mime.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/middleware/serve-static/path.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/middleware/serve-static/index.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/utils.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/helper/websocket/index.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js", "../../../node_modules/.pnpm/hono@4.9.12/node_modules/hono/dist/middleware/cors/index.js", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/entity.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/column.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/subquery.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/tracing-utils.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/drizzle-orm/version.js", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/tracing.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/view-common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/sql.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/alias.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/column-builder.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/errors.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/expressions/conditions.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/expressions/select.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/logger.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/query-promise.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/primary-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/relations.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sql/functions/aggregate.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/utils.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/foreign-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/unique-constraint.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/columns/common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/columns/integer.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/columns/text.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/selection-proxy.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/delete.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/insert.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/view-base.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/dialect.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/query-builders/query-builder.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/select.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/query-builder.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/update.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/query.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/query-builders/raw.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/db.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/sqlite-core/session.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/table.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/foreign-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/unique-constraint.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/char.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/varbinary.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/mysql-core/columns/varchar.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/foreign-keys.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/unique-constraint.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/utils/array.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/common.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/char.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/uuid.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/pg-core/columns/varchar.ts", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js", "../../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js", "../../../node_modules/.pnpm/drizzle-zod@0.5.1_drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0__zod@3.25.76/node_modules/src/index.ts", "../../../worker/src/database/schema.ts", "../../../worker/src/database/dao.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/d1/session.ts", "../../../node_modules/.pnpm/drizzle-orm@0.29.5_@libsql+client@0.4.0-pre.7_@types+react@18.3.26_react@18.2.0/node_modules/src/d1/driver.ts", "../../../worker/src/database/db.ts", "../../../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/non-secure/index.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/decode-strings.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/pass-through-decoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/base64-decoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/qp-decoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/mime-node.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/html-entities.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/text-format.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/address-parser.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/base64-encoder.js", "../../../node_modules/.pnpm/postal-mime@2.4.7/node_modules/postal-mime/src/postal-mime.js", "../../../worker/src/utils.ts", "../../../worker/src/api/v1/middleware/apiKeyAuth.ts", "../../../worker/src/api/v1/routes/mailboxes.ts", "../../../worker/src/api/v1/index.ts", "../../../worker/src/index.ts", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts", "../bundle-nk20cv/middleware-insertion-facade.js", "../../../node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts", "../bundle-nk20cv/middleware-loader.entry.ts"], + "sourceRoot": "/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/dev-PnrrLK", + "sourcesContent": ["function stripCfConnectingIPHeader(input, init) {\n\tconst request = new Request(input, init);\n\trequest.headers.delete(\"CF-Connecting-IP\");\n\treturn request;\n}\n\nglobalThis.fetch = new Proxy(globalThis.fetch, {\n\tapply(target, thisArg, argArray) {\n\t\treturn Reflect.apply(target, thisArg, [\n\t\t\tstripCfConnectingIPHeader.apply(null, argArray),\n\t\t]);\n\t},\n});\n", "/*@__NO_SIDE_EFFECTS__*/ export function rawHeaders(headers) {\n\tconst rawHeaders = [];\n\tfor (const key in headers) {\n\t\tif (Array.isArray(headers[key])) {\n\t\t\tfor (const h of headers[key]) {\n\t\t\t\trawHeaders.push(key, h);\n\t\t\t}\n\t\t} else {\n\t\t\trawHeaders.push(key, headers[key]);\n\t\t}\n\t}\n\treturn rawHeaders;\n}\n/*@__NO_SIDE_EFFECTS__*/ export function mergeFns(...functions) {\n\treturn function(...args) {\n\t\tfor (const fn of functions) {\n\t\t\tfn(...args);\n\t\t}\n\t};\n}\n/*@__NO_SIDE_EFFECTS__*/ export function createNotImplementedError(name) {\n\treturn new Error(`[unenv] ${name} is not implemented yet!`);\n}\n/*@__NO_SIDE_EFFECTS__*/ export function notImplemented(name) {\n\tconst fn = () => {\n\t\tthrow createNotImplementedError(name);\n\t};\n\treturn Object.assign(fn, { __unenv__: true });\n}\n/*@__NO_SIDE_EFFECTS__*/ export function notImplementedAsync(name) {\n\tconst fn = notImplemented(name);\n\tfn.__promisify__ = () => notImplemented(name + \".__promisify__\");\n\tfn.native = fn;\n\treturn fn;\n}\n/*@__NO_SIDE_EFFECTS__*/ export function notImplementedClass(name) {\n\treturn class {\n\t\t__unenv__ = true;\n\t\tconstructor() {\n\t\t\tthrow new Error(`[unenv] ${name} is not implemented yet!`);\n\t\t}\n\t};\n}\n", "import { createNotImplementedError } from \"../../../_internal/utils.mjs\";\nconst _timeOrigin = globalThis.performance?.timeOrigin ?? Date.now();\nconst _performanceNow = globalThis.performance?.now ? globalThis.performance.now.bind(globalThis.performance) : () => Date.now() - _timeOrigin;\nconst nodeTiming = {\n\tname: \"node\",\n\tentryType: \"node\",\n\tstartTime: 0,\n\tduration: 0,\n\tnodeStart: 0,\n\tv8Start: 0,\n\tbootstrapComplete: 0,\n\tenvironment: 0,\n\tloopStart: 0,\n\tloopExit: 0,\n\tidleTime: 0,\n\tuvMetricsInfo: {\n\t\tloopCount: 0,\n\t\tevents: 0,\n\t\teventsWaiting: 0\n\t},\n\tdetail: undefined,\n\ttoJSON() {\n\t\treturn this;\n\t}\n};\nexport class PerformanceEntry {\n\t__unenv__ = true;\n\tdetail;\n\tentryType = \"event\";\n\tname;\n\tstartTime;\n\tconstructor(name, options) {\n\t\tthis.name = name;\n\t\tthis.startTime = options?.startTime || _performanceNow();\n\t\tthis.detail = options?.detail;\n\t}\n\tget duration() {\n\t\treturn _performanceNow() - this.startTime;\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tentryType: this.entryType,\n\t\t\tstartTime: this.startTime,\n\t\t\tduration: this.duration,\n\t\t\tdetail: this.detail\n\t\t};\n\t}\n}\nexport const PerformanceMark = class PerformanceMark extends PerformanceEntry {\n\tentryType = \"mark\";\n\tconstructor() {\n\t\tsuper(...arguments);\n\t}\n\tget duration() {\n\t\treturn 0;\n\t}\n};\nexport class PerformanceMeasure extends PerformanceEntry {\n\tentryType = \"measure\";\n}\nexport class PerformanceResourceTiming extends PerformanceEntry {\n\tentryType = \"resource\";\n\tserverTiming = [];\n\tconnectEnd = 0;\n\tconnectStart = 0;\n\tdecodedBodySize = 0;\n\tdomainLookupEnd = 0;\n\tdomainLookupStart = 0;\n\tencodedBodySize = 0;\n\tfetchStart = 0;\n\tinitiatorType = \"\";\n\tname = \"\";\n\tnextHopProtocol = \"\";\n\tredirectEnd = 0;\n\tredirectStart = 0;\n\trequestStart = 0;\n\tresponseEnd = 0;\n\tresponseStart = 0;\n\tsecureConnectionStart = 0;\n\tstartTime = 0;\n\ttransferSize = 0;\n\tworkerStart = 0;\n\tresponseStatus = 0;\n}\nexport class PerformanceObserverEntryList {\n\t__unenv__ = true;\n\tgetEntries() {\n\t\treturn [];\n\t}\n\tgetEntriesByName(_name, _type) {\n\t\treturn [];\n\t}\n\tgetEntriesByType(type) {\n\t\treturn [];\n\t}\n}\nexport class Performance {\n\t__unenv__ = true;\n\ttimeOrigin = _timeOrigin;\n\teventCounts = new Map();\n\t_entries = [];\n\t_resourceTimingBufferSize = 0;\n\tnavigation = undefined;\n\ttiming = undefined;\n\ttimerify(_fn, _options) {\n\t\tthrow createNotImplementedError(\"Performance.timerify\");\n\t}\n\tget nodeTiming() {\n\t\treturn nodeTiming;\n\t}\n\teventLoopUtilization() {\n\t\treturn {};\n\t}\n\tmarkResourceTiming() {\n\t\treturn new PerformanceResourceTiming(\"\");\n\t}\n\tonresourcetimingbufferfull = null;\n\tnow() {\n\t\tif (this.timeOrigin === _timeOrigin) {\n\t\t\treturn _performanceNow();\n\t\t}\n\t\treturn Date.now() - this.timeOrigin;\n\t}\n\tclearMarks(markName) {\n\t\tthis._entries = markName ? this._entries.filter((e) => e.name !== markName) : this._entries.filter((e) => e.entryType !== \"mark\");\n\t}\n\tclearMeasures(measureName) {\n\t\tthis._entries = measureName ? this._entries.filter((e) => e.name !== measureName) : this._entries.filter((e) => e.entryType !== \"measure\");\n\t}\n\tclearResourceTimings() {\n\t\tthis._entries = this._entries.filter((e) => e.entryType !== \"resource\" || e.entryType !== \"navigation\");\n\t}\n\tgetEntries() {\n\t\treturn this._entries;\n\t}\n\tgetEntriesByName(name, type) {\n\t\treturn this._entries.filter((e) => e.name === name && (!type || e.entryType === type));\n\t}\n\tgetEntriesByType(type) {\n\t\treturn this._entries.filter((e) => e.entryType === type);\n\t}\n\tmark(name, options) {\n\t\tconst entry = new PerformanceMark(name, options);\n\t\tthis._entries.push(entry);\n\t\treturn entry;\n\t}\n\tmeasure(measureName, startOrMeasureOptions, endMark) {\n\t\tlet start;\n\t\tlet end;\n\t\tif (typeof startOrMeasureOptions === \"string\") {\n\t\t\tstart = this.getEntriesByName(startOrMeasureOptions, \"mark\")[0]?.startTime;\n\t\t\tend = this.getEntriesByName(endMark, \"mark\")[0]?.startTime;\n\t\t} else {\n\t\t\tstart = Number.parseFloat(startOrMeasureOptions?.start) || this.now();\n\t\t\tend = Number.parseFloat(startOrMeasureOptions?.end) || this.now();\n\t\t}\n\t\tconst entry = new PerformanceMeasure(measureName, {\n\t\t\tstartTime: start,\n\t\t\tdetail: {\n\t\t\t\tstart,\n\t\t\t\tend\n\t\t\t}\n\t\t});\n\t\tthis._entries.push(entry);\n\t\treturn entry;\n\t}\n\tsetResourceTimingBufferSize(maxSize) {\n\t\tthis._resourceTimingBufferSize = maxSize;\n\t}\n\taddEventListener(type, listener, options) {\n\t\tthrow createNotImplementedError(\"Performance.addEventListener\");\n\t}\n\tremoveEventListener(type, listener, options) {\n\t\tthrow createNotImplementedError(\"Performance.removeEventListener\");\n\t}\n\tdispatchEvent(event) {\n\t\tthrow createNotImplementedError(\"Performance.dispatchEvent\");\n\t}\n\ttoJSON() {\n\t\treturn this;\n\t}\n}\nexport class PerformanceObserver {\n\t__unenv__ = true;\n\tstatic supportedEntryTypes = [];\n\t_callback = null;\n\tconstructor(callback) {\n\t\tthis._callback = callback;\n\t}\n\ttakeRecords() {\n\t\treturn [];\n\t}\n\tdisconnect() {\n\t\tthrow createNotImplementedError(\"PerformanceObserver.disconnect\");\n\t}\n\tobserve(options) {\n\t\tthrow createNotImplementedError(\"PerformanceObserver.observe\");\n\t}\n\tbind(fn) {\n\t\treturn fn;\n\t}\n\trunInAsyncScope(fn, thisArg, ...args) {\n\t\treturn fn.call(thisArg, ...args);\n\t}\n\tasyncId() {\n\t\treturn 0;\n\t}\n\ttriggerAsyncId() {\n\t\treturn 0;\n\t}\n\temitDestroy() {\n\t\treturn this;\n\t}\n}\nexport const performance = globalThis.performance && \"addEventListener\" in globalThis.performance ? globalThis.performance : new Performance();\n", "import {\n performance,\n Performance,\n PerformanceEntry,\n PerformanceMark,\n PerformanceMeasure,\n PerformanceObserver,\n PerformanceObserverEntryList,\n PerformanceResourceTiming\n} from \"node:perf_hooks\";\nglobalThis.performance = performance;\nglobalThis.Performance = Performance;\nglobalThis.PerformanceEntry = PerformanceEntry;\nglobalThis.PerformanceMark = PerformanceMark;\nglobalThis.PerformanceMeasure = PerformanceMeasure;\nglobalThis.PerformanceObserver = PerformanceObserver;\nglobalThis.PerformanceObserverEntryList = PerformanceObserverEntryList;\nglobalThis.PerformanceResourceTiming = PerformanceResourceTiming;\n", "import { Writable } from \"node:stream\";\nimport noop from \"../mock/noop.mjs\";\nimport { notImplemented, notImplementedClass } from \"../_internal/utils.mjs\";\nconst _console = globalThis.console;\nexport const _ignoreErrors = true;\nexport const _stderr = new Writable();\nexport const _stdout = new Writable();\nexport const log = _console?.log ?? noop;\nexport const info = _console?.info ?? log;\nexport const trace = _console?.trace ?? info;\nexport const debug = _console?.debug ?? log;\nexport const table = _console?.table ?? log;\nexport const error = _console?.error ?? log;\nexport const warn = _console?.warn ?? error;\nexport const createTask = _console?.createTask ?? /*@__PURE__*/ notImplemented(\"console.createTask\");\nexport const assert = /*@__PURE__*/ notImplemented(\"console.assert\");\nexport const clear = _console?.clear ?? noop;\nexport const count = _console?.count ?? noop;\nexport const countReset = _console?.countReset ?? noop;\nexport const dir = _console?.dir ?? noop;\nexport const dirxml = _console?.dirxml ?? noop;\nexport const group = _console?.group ?? noop;\nexport const groupEnd = _console?.groupEnd ?? noop;\nexport const groupCollapsed = _console?.groupCollapsed ?? noop;\nexport const profile = _console?.profile ?? noop;\nexport const profileEnd = _console?.profileEnd ?? noop;\nexport const time = _console?.time ?? noop;\nexport const timeEnd = _console?.timeEnd ?? noop;\nexport const timeLog = _console?.timeLog ?? noop;\nexport const timeStamp = _console?.timeStamp ?? noop;\nexport const Console = _console?.Console ?? /*@__PURE__*/ notImplementedClass(\"console.Console\");\nexport const _times = /*@__PURE__*/ new Map();\nexport function context() {\n\treturn _console;\n}\nexport const _stdoutErrorHandler = noop;\nexport const _stderrErrorHandler = noop;\nexport default {\n\t_times,\n\t_ignoreErrors,\n\t_stdoutErrorHandler,\n\t_stderrErrorHandler,\n\t_stdout,\n\t_stderr,\n\tassert,\n\tclear,\n\tConsole,\n\tcount,\n\tcountReset,\n\tdebug,\n\tdir,\n\tdirxml,\n\terror,\n\tcontext,\n\tcreateTask,\n\tgroup,\n\tgroupEnd,\n\tgroupCollapsed,\n\tinfo,\n\tlog,\n\tprofile,\n\tprofileEnd,\n\ttable,\n\ttime,\n\ttimeEnd,\n\ttimeLog,\n\ttimeStamp,\n\ttrace,\n\twarn\n};\n", "export default Object.assign(() => {}, { __unenv__: true });\n", "import {\n _ignoreErrors,\n _stderr,\n _stderrErrorHandler,\n _stdout,\n _stdoutErrorHandler,\n _times,\n Console\n} from \"unenv/node/console\";\nexport {\n Console,\n _ignoreErrors,\n _stderr,\n _stderrErrorHandler,\n _stdout,\n _stdoutErrorHandler,\n _times\n} from \"unenv/node/console\";\nconst workerdConsole = globalThis[\"console\"];\nexport const {\n assert,\n clear,\n // @ts-expect-error undocumented public API\n context,\n count,\n countReset,\n // @ts-expect-error undocumented public API\n createTask,\n debug,\n dir,\n dirxml,\n error,\n group,\n groupCollapsed,\n groupEnd,\n info,\n log,\n profile,\n profileEnd,\n table,\n time,\n timeEnd,\n timeLog,\n timeStamp,\n trace,\n warn\n} = workerdConsole;\nObject.assign(workerdConsole, {\n Console,\n _ignoreErrors,\n _stderr,\n _stderrErrorHandler,\n _stdout,\n _stdoutErrorHandler,\n _times\n});\nexport default workerdConsole;\n", "import { default as defaultExport } from \"@cloudflare/unenv-preset/node/console\";\nglobalThis.console = defaultExport;", "export const hrtime = /*@__PURE__*/ Object.assign(function hrtime(startTime) {\n\tconst now = Date.now();\n\tconst seconds = Math.trunc(now / 1e3);\n\tconst nanos = now % 1e3 * 1e6;\n\tif (startTime) {\n\t\tlet diffSeconds = seconds - startTime[0];\n\t\tlet diffNanos = nanos - startTime[0];\n\t\tif (diffNanos < 0) {\n\t\t\tdiffSeconds = diffSeconds - 1;\n\t\t\tdiffNanos = 1e9 + diffNanos;\n\t\t}\n\t\treturn [diffSeconds, diffNanos];\n\t}\n\treturn [seconds, nanos];\n}, { bigint: function bigint() {\n\treturn BigInt(Date.now() * 1e6);\n} });\n", "import { EventEmitter } from \"node:events\";\nimport { ReadStream, WriteStream } from \"node:tty\";\nimport { notImplemented, createNotImplementedError } from \"../../../_internal/utils.mjs\";\nexport class Process extends EventEmitter {\n\tenv;\n\thrtime;\n\tnextTick;\n\tconstructor(impl) {\n\t\tsuper();\n\t\tthis.env = impl.env;\n\t\tthis.hrtime = impl.hrtime;\n\t\tthis.nextTick = impl.nextTick;\n\t\tfor (const prop of [...Object.getOwnPropertyNames(Process.prototype), ...Object.getOwnPropertyNames(EventEmitter.prototype)]) {\n\t\t\tconst value = this[prop];\n\t\t\tif (typeof value === \"function\") {\n\t\t\t\tthis[prop] = value.bind(this);\n\t\t\t}\n\t\t}\n\t}\n\temitWarning(warning, type, code) {\n\t\tconsole.warn(`${code ? `[${code}] ` : \"\"}${type ? `${type}: ` : \"\"}${warning}`);\n\t}\n\temit(...args) {\n\t\treturn super.emit(...args);\n\t}\n\tlisteners(eventName) {\n\t\treturn super.listeners(eventName);\n\t}\n\t#stdin;\n\t#stdout;\n\t#stderr;\n\tget stdin() {\n\t\treturn this.#stdin ??= new ReadStream(0);\n\t}\n\tget stdout() {\n\t\treturn this.#stdout ??= new WriteStream(1);\n\t}\n\tget stderr() {\n\t\treturn this.#stderr ??= new WriteStream(2);\n\t}\n\t#cwd = \"/\";\n\tchdir(cwd) {\n\t\tthis.#cwd = cwd;\n\t}\n\tcwd() {\n\t\treturn this.#cwd;\n\t}\n\tarch = \"\";\n\tplatform = \"\";\n\targv = [];\n\targv0 = \"\";\n\texecArgv = [];\n\texecPath = \"\";\n\ttitle = \"\";\n\tpid = 200;\n\tppid = 100;\n\tget version() {\n\t\treturn \"\";\n\t}\n\tget versions() {\n\t\treturn {};\n\t}\n\tget allowedNodeEnvironmentFlags() {\n\t\treturn new Set();\n\t}\n\tget sourceMapsEnabled() {\n\t\treturn false;\n\t}\n\tget debugPort() {\n\t\treturn 0;\n\t}\n\tget throwDeprecation() {\n\t\treturn false;\n\t}\n\tget traceDeprecation() {\n\t\treturn false;\n\t}\n\tget features() {\n\t\treturn {};\n\t}\n\tget release() {\n\t\treturn {};\n\t}\n\tget connected() {\n\t\treturn false;\n\t}\n\tget config() {\n\t\treturn {};\n\t}\n\tget moduleLoadList() {\n\t\treturn [];\n\t}\n\tconstrainedMemory() {\n\t\treturn 0;\n\t}\n\tavailableMemory() {\n\t\treturn 0;\n\t}\n\tuptime() {\n\t\treturn 0;\n\t}\n\tresourceUsage() {\n\t\treturn {};\n\t}\n\tref() {}\n\tunref() {}\n\tumask() {\n\t\tthrow createNotImplementedError(\"process.umask\");\n\t}\n\tgetBuiltinModule() {\n\t\treturn undefined;\n\t}\n\tgetActiveResourcesInfo() {\n\t\tthrow createNotImplementedError(\"process.getActiveResourcesInfo\");\n\t}\n\texit() {\n\t\tthrow createNotImplementedError(\"process.exit\");\n\t}\n\treallyExit() {\n\t\tthrow createNotImplementedError(\"process.reallyExit\");\n\t}\n\tkill() {\n\t\tthrow createNotImplementedError(\"process.kill\");\n\t}\n\tabort() {\n\t\tthrow createNotImplementedError(\"process.abort\");\n\t}\n\tdlopen() {\n\t\tthrow createNotImplementedError(\"process.dlopen\");\n\t}\n\tsetSourceMapsEnabled() {\n\t\tthrow createNotImplementedError(\"process.setSourceMapsEnabled\");\n\t}\n\tloadEnvFile() {\n\t\tthrow createNotImplementedError(\"process.loadEnvFile\");\n\t}\n\tdisconnect() {\n\t\tthrow createNotImplementedError(\"process.disconnect\");\n\t}\n\tcpuUsage() {\n\t\tthrow createNotImplementedError(\"process.cpuUsage\");\n\t}\n\tsetUncaughtExceptionCaptureCallback() {\n\t\tthrow createNotImplementedError(\"process.setUncaughtExceptionCaptureCallback\");\n\t}\n\thasUncaughtExceptionCaptureCallback() {\n\t\tthrow createNotImplementedError(\"process.hasUncaughtExceptionCaptureCallback\");\n\t}\n\tinitgroups() {\n\t\tthrow createNotImplementedError(\"process.initgroups\");\n\t}\n\topenStdin() {\n\t\tthrow createNotImplementedError(\"process.openStdin\");\n\t}\n\tassert() {\n\t\tthrow createNotImplementedError(\"process.assert\");\n\t}\n\tbinding() {\n\t\tthrow createNotImplementedError(\"process.binding\");\n\t}\n\tpermission = { has: /*@__PURE__*/ notImplemented(\"process.permission.has\") };\n\treport = {\n\t\tdirectory: \"\",\n\t\tfilename: \"\",\n\t\tsignal: \"SIGUSR2\",\n\t\tcompact: false,\n\t\treportOnFatalError: false,\n\t\treportOnSignal: false,\n\t\treportOnUncaughtException: false,\n\t\tgetReport: /*@__PURE__*/ notImplemented(\"process.report.getReport\"),\n\t\twriteReport: /*@__PURE__*/ notImplemented(\"process.report.writeReport\")\n\t};\n\tfinalization = {\n\t\tregister: /*@__PURE__*/ notImplemented(\"process.finalization.register\"),\n\t\tunregister: /*@__PURE__*/ notImplemented(\"process.finalization.unregister\"),\n\t\tregisterBeforeExit: /*@__PURE__*/ notImplemented(\"process.finalization.registerBeforeExit\")\n\t};\n\tmemoryUsage = Object.assign(() => ({\n\t\tarrayBuffers: 0,\n\t\trss: 0,\n\t\texternal: 0,\n\t\theapTotal: 0,\n\t\theapUsed: 0\n\t}), { rss: () => 0 });\n\tmainModule = undefined;\n\tdomain = undefined;\n\tsend = undefined;\n\texitCode = undefined;\n\tchannel = undefined;\n\tgetegid = undefined;\n\tgeteuid = undefined;\n\tgetgid = undefined;\n\tgetgroups = undefined;\n\tgetuid = undefined;\n\tsetegid = undefined;\n\tseteuid = undefined;\n\tsetgid = undefined;\n\tsetgroups = undefined;\n\tsetuid = undefined;\n\t_events = undefined;\n\t_eventsCount = undefined;\n\t_exiting = undefined;\n\t_maxListeners = undefined;\n\t_debugEnd = undefined;\n\t_debugProcess = undefined;\n\t_fatalException = undefined;\n\t_getActiveHandles = undefined;\n\t_getActiveRequests = undefined;\n\t_kill = undefined;\n\t_preload_modules = undefined;\n\t_rawDebug = undefined;\n\t_startProfilerIdleNotifier = undefined;\n\t_stopProfilerIdleNotifier = undefined;\n\t_tickCallback = undefined;\n\t_disconnect = undefined;\n\t_handleQueue = undefined;\n\t_pendingMessage = undefined;\n\t_channel = undefined;\n\t_send = undefined;\n\t_linkedBinding = undefined;\n}\n", "import { Socket } from \"node:net\";\nexport class ReadStream extends Socket {\n\tfd;\n\tconstructor(fd) {\n\t\tsuper();\n\t\tthis.fd = fd;\n\t}\n\tisRaw = false;\n\tsetRawMode(mode) {\n\t\tthis.isRaw = mode;\n\t\treturn this;\n\t}\n\tisTTY = false;\n}\n", "import { Socket } from \"node:net\";\nexport class WriteStream extends Socket {\n\tfd;\n\tconstructor(fd) {\n\t\tsuper();\n\t\tthis.fd = fd;\n\t}\n\tclearLine(dir, callback) {\n\t\tcallback && callback();\n\t\treturn false;\n\t}\n\tclearScreenDown(callback) {\n\t\tcallback && callback();\n\t\treturn false;\n\t}\n\tcursorTo(x, y, callback) {\n\t\tcallback && typeof callback === \"function\" && callback();\n\t\treturn false;\n\t}\n\tmoveCursor(dx, dy, callback) {\n\t\tcallback && callback();\n\t\treturn false;\n\t}\n\tgetColorDepth(env) {\n\t\treturn 1;\n\t}\n\thasColors(count, env) {\n\t\treturn false;\n\t}\n\tgetWindowSize() {\n\t\treturn [this.columns, this.rows];\n\t}\n\tcolumns = 80;\n\trows = 24;\n\tisTTY = false;\n}\n", "import { hrtime as UnenvHrTime } from \"unenv/node/internal/process/hrtime\";\nimport { Process as UnenvProcess } from \"unenv/node/internal/process/process\";\nconst globalProcess = globalThis[\"process\"];\nexport const getBuiltinModule = globalProcess.getBuiltinModule;\nexport const { exit, platform, nextTick } = getBuiltinModule(\n \"node:process\"\n);\nconst unenvProcess = new UnenvProcess({\n env: globalProcess.env,\n hrtime: UnenvHrTime,\n nextTick\n});\nexport const {\n abort,\n addListener,\n allowedNodeEnvironmentFlags,\n hasUncaughtExceptionCaptureCallback,\n setUncaughtExceptionCaptureCallback,\n loadEnvFile,\n sourceMapsEnabled,\n arch,\n argv,\n argv0,\n chdir,\n config,\n connected,\n constrainedMemory,\n availableMemory,\n cpuUsage,\n cwd,\n debugPort,\n dlopen,\n disconnect,\n emit,\n emitWarning,\n env,\n eventNames,\n execArgv,\n execPath,\n finalization,\n features,\n getActiveResourcesInfo,\n getMaxListeners,\n hrtime,\n kill,\n listeners,\n listenerCount,\n memoryUsage,\n on,\n off,\n once,\n pid,\n ppid,\n prependListener,\n prependOnceListener,\n rawListeners,\n release,\n removeAllListeners,\n removeListener,\n report,\n resourceUsage,\n setMaxListeners,\n setSourceMapsEnabled,\n stderr,\n stdin,\n stdout,\n title,\n throwDeprecation,\n traceDeprecation,\n umask,\n uptime,\n version,\n versions,\n domain,\n initgroups,\n moduleLoadList,\n reallyExit,\n openStdin,\n assert,\n binding,\n send,\n exitCode,\n channel,\n getegid,\n geteuid,\n getgid,\n getgroups,\n getuid,\n setegid,\n seteuid,\n setgid,\n setgroups,\n setuid,\n permission,\n mainModule,\n _events,\n _eventsCount,\n _exiting,\n _maxListeners,\n _debugEnd,\n _debugProcess,\n _fatalException,\n _getActiveHandles,\n _getActiveRequests,\n _kill,\n _preload_modules,\n _rawDebug,\n _startProfilerIdleNotifier,\n _stopProfilerIdleNotifier,\n _tickCallback,\n _disconnect,\n _handleQueue,\n _pendingMessage,\n _channel,\n _send,\n _linkedBinding\n} = unenvProcess;\nconst _process = {\n abort,\n addListener,\n allowedNodeEnvironmentFlags,\n hasUncaughtExceptionCaptureCallback,\n setUncaughtExceptionCaptureCallback,\n loadEnvFile,\n sourceMapsEnabled,\n arch,\n argv,\n argv0,\n chdir,\n config,\n connected,\n constrainedMemory,\n availableMemory,\n cpuUsage,\n cwd,\n debugPort,\n dlopen,\n disconnect,\n emit,\n emitWarning,\n env,\n eventNames,\n execArgv,\n execPath,\n exit,\n finalization,\n features,\n getBuiltinModule,\n getActiveResourcesInfo,\n getMaxListeners,\n hrtime,\n kill,\n listeners,\n listenerCount,\n memoryUsage,\n nextTick,\n on,\n off,\n once,\n pid,\n platform,\n ppid,\n prependListener,\n prependOnceListener,\n rawListeners,\n release,\n removeAllListeners,\n removeListener,\n report,\n resourceUsage,\n setMaxListeners,\n setSourceMapsEnabled,\n stderr,\n stdin,\n stdout,\n title,\n throwDeprecation,\n traceDeprecation,\n umask,\n uptime,\n version,\n versions,\n // @ts-expect-error old API\n domain,\n initgroups,\n moduleLoadList,\n reallyExit,\n openStdin,\n assert,\n binding,\n send,\n exitCode,\n channel,\n getegid,\n geteuid,\n getgid,\n getgroups,\n getuid,\n setegid,\n seteuid,\n setgid,\n setgroups,\n setuid,\n permission,\n mainModule,\n _events,\n _eventsCount,\n _exiting,\n _maxListeners,\n _debugEnd,\n _debugProcess,\n _fatalException,\n _getActiveHandles,\n _getActiveRequests,\n _kill,\n _preload_modules,\n _rawDebug,\n _startProfilerIdleNotifier,\n _stopProfilerIdleNotifier,\n _tickCallback,\n _disconnect,\n _handleQueue,\n _pendingMessage,\n _channel,\n _send,\n _linkedBinding\n};\nexport default _process;\n", "import { default as defaultExport } from \"@cloudflare/unenv-preset/node/process\";\nglobalThis.process = defaultExport;", "// src/compose.ts\nvar compose = (middleware, onError, onNotFound) => {\n return (context, next) => {\n let index = -1;\n return dispatch(0);\n async function dispatch(i) {\n if (i <= index) {\n throw new Error(\"next() called multiple times\");\n }\n index = i;\n let res;\n let isError = false;\n let handler;\n if (middleware[i]) {\n handler = middleware[i][0][0];\n context.req.routeIndex = i;\n } else {\n handler = i === middleware.length && next || void 0;\n }\n if (handler) {\n try {\n res = await handler(context, () => dispatch(i + 1));\n } catch (err) {\n if (err instanceof Error && onError) {\n context.error = err;\n res = await onError(err, context);\n isError = true;\n } else {\n throw err;\n }\n }\n } else {\n if (context.finalized === false && onNotFound) {\n res = await onNotFound(context);\n }\n }\n if (res && (context.finalized === false || isError)) {\n context.res = res;\n }\n return context;\n }\n };\n};\nexport {\n compose\n};\n", "// src/request/constants.ts\nvar GET_MATCH_RESULT = Symbol();\nexport {\n GET_MATCH_RESULT\n};\n", "// src/utils/body.ts\nimport { HonoRequest } from \"../request.js\";\nvar parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {\n const { all = false, dot = false } = options;\n const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;\n const contentType = headers.get(\"Content-Type\");\n if (contentType?.startsWith(\"multipart/form-data\") || contentType?.startsWith(\"application/x-www-form-urlencoded\")) {\n return parseFormData(request, { all, dot });\n }\n return {};\n};\nasync function parseFormData(request, options) {\n const formData = await request.formData();\n if (formData) {\n return convertFormDataToBodyData(formData, options);\n }\n return {};\n}\nfunction convertFormDataToBodyData(formData, options) {\n const form = /* @__PURE__ */ Object.create(null);\n formData.forEach((value, key) => {\n const shouldParseAllValues = options.all || key.endsWith(\"[]\");\n if (!shouldParseAllValues) {\n form[key] = value;\n } else {\n handleParsingAllValues(form, key, value);\n }\n });\n if (options.dot) {\n Object.entries(form).forEach(([key, value]) => {\n const shouldParseDotValues = key.includes(\".\");\n if (shouldParseDotValues) {\n handleParsingNestedValues(form, key, value);\n delete form[key];\n }\n });\n }\n return form;\n}\nvar handleParsingAllValues = (form, key, value) => {\n if (form[key] !== void 0) {\n if (Array.isArray(form[key])) {\n ;\n form[key].push(value);\n } else {\n form[key] = [form[key], value];\n }\n } else {\n if (!key.endsWith(\"[]\")) {\n form[key] = value;\n } else {\n form[key] = [value];\n }\n }\n};\nvar handleParsingNestedValues = (form, key, value) => {\n let nestedForm = form;\n const keys = key.split(\".\");\n keys.forEach((key2, index) => {\n if (index === keys.length - 1) {\n nestedForm[key2] = value;\n } else {\n if (!nestedForm[key2] || typeof nestedForm[key2] !== \"object\" || Array.isArray(nestedForm[key2]) || nestedForm[key2] instanceof File) {\n nestedForm[key2] = /* @__PURE__ */ Object.create(null);\n }\n nestedForm = nestedForm[key2];\n }\n });\n};\nexport {\n parseBody\n};\n", "// src/utils/url.ts\nvar splitPath = (path) => {\n const paths = path.split(\"/\");\n if (paths[0] === \"\") {\n paths.shift();\n }\n return paths;\n};\nvar splitRoutingPath = (routePath) => {\n const { groups, path } = extractGroupsFromPath(routePath);\n const paths = splitPath(path);\n return replaceGroupMarks(paths, groups);\n};\nvar extractGroupsFromPath = (path) => {\n const groups = [];\n path = path.replace(/\\{[^}]+\\}/g, (match, index) => {\n const mark = `@${index}`;\n groups.push([mark, match]);\n return mark;\n });\n return { groups, path };\n};\nvar replaceGroupMarks = (paths, groups) => {\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = paths.length - 1; j >= 0; j--) {\n if (paths[j].includes(mark)) {\n paths[j] = paths[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n return paths;\n};\nvar patternCache = {};\nvar getPattern = (label, next) => {\n if (label === \"*\") {\n return \"*\";\n }\n const match = label.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n if (match) {\n const cacheKey = `${label}#${next}`;\n if (!patternCache[cacheKey]) {\n if (match[2]) {\n patternCache[cacheKey] = next && next[0] !== \":\" && next[0] !== \"*\" ? [cacheKey, match[1], new RegExp(`^${match[2]}(?=/${next})`)] : [label, match[1], new RegExp(`^${match[2]}$`)];\n } else {\n patternCache[cacheKey] = [label, match[1], true];\n }\n }\n return patternCache[cacheKey];\n }\n return null;\n};\nvar tryDecode = (str, decoder) => {\n try {\n return decoder(str);\n } catch {\n return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match) => {\n try {\n return decoder(match);\n } catch {\n return match;\n }\n });\n }\n};\nvar tryDecodeURI = (str) => tryDecode(str, decodeURI);\nvar getPath = (request) => {\n const url = request.url;\n const start = url.indexOf(\"/\", url.indexOf(\":\") + 4);\n let i = start;\n for (; i < url.length; i++) {\n const charCode = url.charCodeAt(i);\n if (charCode === 37) {\n const queryIndex = url.indexOf(\"?\", i);\n const path = url.slice(start, queryIndex === -1 ? void 0 : queryIndex);\n return tryDecodeURI(path.includes(\"%25\") ? path.replace(/%25/g, \"%2525\") : path);\n } else if (charCode === 63) {\n break;\n }\n }\n return url.slice(start, i);\n};\nvar getQueryStrings = (url) => {\n const queryIndex = url.indexOf(\"?\", 8);\n return queryIndex === -1 ? \"\" : \"?\" + url.slice(queryIndex + 1);\n};\nvar getPathNoStrict = (request) => {\n const result = getPath(request);\n return result.length > 1 && result.at(-1) === \"/\" ? result.slice(0, -1) : result;\n};\nvar mergePath = (base, sub, ...rest) => {\n if (rest.length) {\n sub = mergePath(sub, ...rest);\n }\n return `${base?.[0] === \"/\" ? \"\" : \"/\"}${base}${sub === \"/\" ? \"\" : `${base?.at(-1) === \"/\" ? \"\" : \"/\"}${sub?.[0] === \"/\" ? sub.slice(1) : sub}`}`;\n};\nvar checkOptionalParameter = (path) => {\n if (path.charCodeAt(path.length - 1) !== 63 || !path.includes(\":\")) {\n return null;\n }\n const segments = path.split(\"/\");\n const results = [];\n let basePath = \"\";\n segments.forEach((segment) => {\n if (segment !== \"\" && !/\\:/.test(segment)) {\n basePath += \"/\" + segment;\n } else if (/\\:/.test(segment)) {\n if (/\\?/.test(segment)) {\n if (results.length === 0 && basePath === \"\") {\n results.push(\"/\");\n } else {\n results.push(basePath);\n }\n const optionalSegment = segment.replace(\"?\", \"\");\n basePath += \"/\" + optionalSegment;\n results.push(basePath);\n } else {\n basePath += \"/\" + segment;\n }\n }\n });\n return results.filter((v, i, a) => a.indexOf(v) === i);\n};\nvar _decodeURI = (value) => {\n if (!/[%+]/.test(value)) {\n return value;\n }\n if (value.indexOf(\"+\") !== -1) {\n value = value.replace(/\\+/g, \" \");\n }\n return value.indexOf(\"%\") !== -1 ? tryDecode(value, decodeURIComponent_) : value;\n};\nvar _getQueryParam = (url, key, multiple) => {\n let encoded;\n if (!multiple && key && !/[%+]/.test(key)) {\n let keyIndex2 = url.indexOf(`?${key}`, 8);\n if (keyIndex2 === -1) {\n keyIndex2 = url.indexOf(`&${key}`, 8);\n }\n while (keyIndex2 !== -1) {\n const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1);\n if (trailingKeyCode === 61) {\n const valueIndex = keyIndex2 + key.length + 2;\n const endIndex = url.indexOf(\"&\", valueIndex);\n return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));\n } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) {\n return \"\";\n }\n keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1);\n }\n encoded = /[%+]/.test(url);\n if (!encoded) {\n return void 0;\n }\n }\n const results = {};\n encoded ??= /[%+]/.test(url);\n let keyIndex = url.indexOf(\"?\", 8);\n while (keyIndex !== -1) {\n const nextKeyIndex = url.indexOf(\"&\", keyIndex + 1);\n let valueIndex = url.indexOf(\"=\", keyIndex);\n if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) {\n valueIndex = -1;\n }\n let name = url.slice(\n keyIndex + 1,\n valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex\n );\n if (encoded) {\n name = _decodeURI(name);\n }\n keyIndex = nextKeyIndex;\n if (name === \"\") {\n continue;\n }\n let value;\n if (valueIndex === -1) {\n value = \"\";\n } else {\n value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex);\n if (encoded) {\n value = _decodeURI(value);\n }\n }\n if (multiple) {\n if (!(results[name] && Array.isArray(results[name]))) {\n results[name] = [];\n }\n ;\n results[name].push(value);\n } else {\n results[name] ??= value;\n }\n }\n return key ? results[key] : results;\n};\nvar getQueryParam = _getQueryParam;\nvar getQueryParams = (url, key) => {\n return _getQueryParam(url, key, true);\n};\nvar decodeURIComponent_ = decodeURIComponent;\nexport {\n checkOptionalParameter,\n decodeURIComponent_,\n getPath,\n getPathNoStrict,\n getPattern,\n getQueryParam,\n getQueryParams,\n getQueryStrings,\n mergePath,\n splitPath,\n splitRoutingPath,\n tryDecode\n};\n", "// src/request.ts\nimport { GET_MATCH_RESULT } from \"./request/constants.js\";\nimport { parseBody } from \"./utils/body.js\";\nimport { decodeURIComponent_, getQueryParam, getQueryParams, tryDecode } from \"./utils/url.js\";\nvar tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);\nvar HonoRequest = class {\n raw;\n #validatedData;\n #matchResult;\n routeIndex = 0;\n path;\n bodyCache = {};\n constructor(request, path = \"/\", matchResult = [[]]) {\n this.raw = request;\n this.path = path;\n this.#matchResult = matchResult;\n this.#validatedData = {};\n }\n param(key) {\n return key ? this.#getDecodedParam(key) : this.#getAllDecodedParams();\n }\n #getDecodedParam(key) {\n const paramKey = this.#matchResult[0][this.routeIndex][1][key];\n const param = this.#getParamValue(paramKey);\n return param && /\\%/.test(param) ? tryDecodeURIComponent(param) : param;\n }\n #getAllDecodedParams() {\n const decoded = {};\n const keys = Object.keys(this.#matchResult[0][this.routeIndex][1]);\n for (const key of keys) {\n const value = this.#getParamValue(this.#matchResult[0][this.routeIndex][1][key]);\n if (value !== void 0) {\n decoded[key] = /\\%/.test(value) ? tryDecodeURIComponent(value) : value;\n }\n }\n return decoded;\n }\n #getParamValue(paramKey) {\n return this.#matchResult[1] ? this.#matchResult[1][paramKey] : paramKey;\n }\n query(key) {\n return getQueryParam(this.url, key);\n }\n queries(key) {\n return getQueryParams(this.url, key);\n }\n header(name) {\n if (name) {\n return this.raw.headers.get(name) ?? void 0;\n }\n const headerData = {};\n this.raw.headers.forEach((value, key) => {\n headerData[key] = value;\n });\n return headerData;\n }\n async parseBody(options) {\n return this.bodyCache.parsedBody ??= await parseBody(this, options);\n }\n #cachedBody = (key) => {\n const { bodyCache, raw } = this;\n const cachedBody = bodyCache[key];\n if (cachedBody) {\n return cachedBody;\n }\n const anyCachedKey = Object.keys(bodyCache)[0];\n if (anyCachedKey) {\n return bodyCache[anyCachedKey].then((body) => {\n if (anyCachedKey === \"json\") {\n body = JSON.stringify(body);\n }\n return new Response(body)[key]();\n });\n }\n return bodyCache[key] = raw[key]();\n };\n json() {\n return this.#cachedBody(\"text\").then((text) => JSON.parse(text));\n }\n text() {\n return this.#cachedBody(\"text\");\n }\n arrayBuffer() {\n return this.#cachedBody(\"arrayBuffer\");\n }\n blob() {\n return this.#cachedBody(\"blob\");\n }\n formData() {\n return this.#cachedBody(\"formData\");\n }\n addValidatedData(target, data) {\n this.#validatedData[target] = data;\n }\n valid(target) {\n return this.#validatedData[target];\n }\n get url() {\n return this.raw.url;\n }\n get method() {\n return this.raw.method;\n }\n get [GET_MATCH_RESULT]() {\n return this.#matchResult;\n }\n get matchedRoutes() {\n return this.#matchResult[0].map(([[, route]]) => route);\n }\n get routePath() {\n return this.#matchResult[0].map(([[, route]]) => route)[this.routeIndex].path;\n }\n};\nexport {\n HonoRequest\n};\n", "// src/utils/html.ts\nvar HtmlEscapedCallbackPhase = {\n Stringify: 1,\n BeforeStream: 2,\n Stream: 3\n};\nvar raw = (value, callbacks) => {\n const escapedString = new String(value);\n escapedString.isEscaped = true;\n escapedString.callbacks = callbacks;\n return escapedString;\n};\nvar escapeRe = /[&<>'\"]/;\nvar stringBufferToString = async (buffer, callbacks) => {\n let str = \"\";\n callbacks ||= [];\n const resolvedBuffer = await Promise.all(buffer);\n for (let i = resolvedBuffer.length - 1; ; i--) {\n str += resolvedBuffer[i];\n i--;\n if (i < 0) {\n break;\n }\n let r = resolvedBuffer[i];\n if (typeof r === \"object\") {\n callbacks.push(...r.callbacks || []);\n }\n const isEscaped = r.isEscaped;\n r = await (typeof r === \"object\" ? r.toString() : r);\n if (typeof r === \"object\") {\n callbacks.push(...r.callbacks || []);\n }\n if (r.isEscaped ?? isEscaped) {\n str += r;\n } else {\n const buf = [str];\n escapeToBuffer(r, buf);\n str = buf[0];\n }\n }\n return raw(str, callbacks);\n};\nvar escapeToBuffer = (str, buffer) => {\n const match = str.search(escapeRe);\n if (match === -1) {\n buffer[0] += str;\n return;\n }\n let escape;\n let index;\n let lastIndex = 0;\n for (index = match; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escape = \""\";\n break;\n case 39:\n escape = \"'\";\n break;\n case 38:\n escape = \"&\";\n break;\n case 60:\n escape = \"<\";\n break;\n case 62:\n escape = \">\";\n break;\n default:\n continue;\n }\n buffer[0] += str.substring(lastIndex, index) + escape;\n lastIndex = index + 1;\n }\n buffer[0] += str.substring(lastIndex, index);\n};\nvar resolveCallbackSync = (str) => {\n const callbacks = str.callbacks;\n if (!callbacks?.length) {\n return str;\n }\n const buffer = [str];\n const context = {};\n callbacks.forEach((c) => c({ phase: HtmlEscapedCallbackPhase.Stringify, buffer, context }));\n return buffer[0];\n};\nvar resolveCallback = async (str, phase, preserveCallbacks, context, buffer) => {\n if (typeof str === \"object\" && !(str instanceof String)) {\n if (!(str instanceof Promise)) {\n str = str.toString();\n }\n if (str instanceof Promise) {\n str = await str;\n }\n }\n const callbacks = str.callbacks;\n if (!callbacks?.length) {\n return Promise.resolve(str);\n }\n if (buffer) {\n buffer[0] += str;\n } else {\n buffer = [str];\n }\n const resStr = Promise.all(callbacks.map((c) => c({ phase, buffer, context }))).then(\n (res) => Promise.all(\n res.filter(Boolean).map((str2) => resolveCallback(str2, phase, false, context, buffer))\n ).then(() => buffer[0])\n );\n if (preserveCallbacks) {\n return raw(await resStr, callbacks);\n } else {\n return resStr;\n }\n};\nexport {\n HtmlEscapedCallbackPhase,\n escapeToBuffer,\n raw,\n resolveCallback,\n resolveCallbackSync,\n stringBufferToString\n};\n", "// src/context.ts\nimport { HonoRequest } from \"./request.js\";\nimport { HtmlEscapedCallbackPhase, resolveCallback } from \"./utils/html.js\";\nvar TEXT_PLAIN = \"text/plain; charset=UTF-8\";\nvar setDefaultContentType = (contentType, headers) => {\n return {\n \"Content-Type\": contentType,\n ...headers\n };\n};\nvar Context = class {\n #rawRequest;\n #req;\n env = {};\n #var;\n finalized = false;\n error;\n #status;\n #executionCtx;\n #res;\n #layout;\n #renderer;\n #notFoundHandler;\n #preparedHeaders;\n #matchResult;\n #path;\n constructor(req, options) {\n this.#rawRequest = req;\n if (options) {\n this.#executionCtx = options.executionCtx;\n this.env = options.env;\n this.#notFoundHandler = options.notFoundHandler;\n this.#path = options.path;\n this.#matchResult = options.matchResult;\n }\n }\n get req() {\n this.#req ??= new HonoRequest(this.#rawRequest, this.#path, this.#matchResult);\n return this.#req;\n }\n get event() {\n if (this.#executionCtx && \"respondWith\" in this.#executionCtx) {\n return this.#executionCtx;\n } else {\n throw Error(\"This context has no FetchEvent\");\n }\n }\n get executionCtx() {\n if (this.#executionCtx) {\n return this.#executionCtx;\n } else {\n throw Error(\"This context has no ExecutionContext\");\n }\n }\n get res() {\n return this.#res ||= new Response(null, {\n headers: this.#preparedHeaders ??= new Headers()\n });\n }\n set res(_res) {\n if (this.#res && _res) {\n _res = new Response(_res.body, _res);\n for (const [k, v] of this.#res.headers.entries()) {\n if (k === \"content-type\") {\n continue;\n }\n if (k === \"set-cookie\") {\n const cookies = this.#res.headers.getSetCookie();\n _res.headers.delete(\"set-cookie\");\n for (const cookie of cookies) {\n _res.headers.append(\"set-cookie\", cookie);\n }\n } else {\n _res.headers.set(k, v);\n }\n }\n }\n this.#res = _res;\n this.finalized = true;\n }\n render = (...args) => {\n this.#renderer ??= (content) => this.html(content);\n return this.#renderer(...args);\n };\n setLayout = (layout) => this.#layout = layout;\n getLayout = () => this.#layout;\n setRenderer = (renderer) => {\n this.#renderer = renderer;\n };\n header = (name, value, options) => {\n if (this.finalized) {\n this.#res = new Response(this.#res.body, this.#res);\n }\n const headers = this.#res ? this.#res.headers : this.#preparedHeaders ??= new Headers();\n if (value === void 0) {\n headers.delete(name);\n } else if (options?.append) {\n headers.append(name, value);\n } else {\n headers.set(name, value);\n }\n };\n status = (status) => {\n this.#status = status;\n };\n set = (key, value) => {\n this.#var ??= /* @__PURE__ */ new Map();\n this.#var.set(key, value);\n };\n get = (key) => {\n return this.#var ? this.#var.get(key) : void 0;\n };\n get var() {\n if (!this.#var) {\n return {};\n }\n return Object.fromEntries(this.#var);\n }\n #newResponse(data, arg, headers) {\n const responseHeaders = this.#res ? new Headers(this.#res.headers) : this.#preparedHeaders ?? new Headers();\n if (typeof arg === \"object\" && \"headers\" in arg) {\n const argHeaders = arg.headers instanceof Headers ? arg.headers : new Headers(arg.headers);\n for (const [key, value] of argHeaders) {\n if (key.toLowerCase() === \"set-cookie\") {\n responseHeaders.append(key, value);\n } else {\n responseHeaders.set(key, value);\n }\n }\n }\n if (headers) {\n for (const [k, v] of Object.entries(headers)) {\n if (typeof v === \"string\") {\n responseHeaders.set(k, v);\n } else {\n responseHeaders.delete(k);\n for (const v2 of v) {\n responseHeaders.append(k, v2);\n }\n }\n }\n }\n const status = typeof arg === \"number\" ? arg : arg?.status ?? this.#status;\n return new Response(data, { status, headers: responseHeaders });\n }\n newResponse = (...args) => this.#newResponse(...args);\n body = (data, arg, headers) => this.#newResponse(data, arg, headers);\n text = (text, arg, headers) => {\n return !this.#preparedHeaders && !this.#status && !arg && !headers && !this.finalized ? new Response(text) : this.#newResponse(\n text,\n arg,\n setDefaultContentType(TEXT_PLAIN, headers)\n );\n };\n json = (object, arg, headers) => {\n return this.#newResponse(\n JSON.stringify(object),\n arg,\n setDefaultContentType(\"application/json\", headers)\n );\n };\n html = (html, arg, headers) => {\n const res = (html2) => this.#newResponse(html2, arg, setDefaultContentType(\"text/html; charset=UTF-8\", headers));\n return typeof html === \"object\" ? resolveCallback(html, HtmlEscapedCallbackPhase.Stringify, false, {}).then(res) : res(html);\n };\n redirect = (location, status) => {\n const locationString = String(location);\n this.header(\n \"Location\",\n !/[^\\x00-\\xFF]/.test(locationString) ? locationString : encodeURI(locationString)\n );\n return this.newResponse(null, status ?? 302);\n };\n notFound = () => {\n this.#notFoundHandler ??= () => new Response();\n return this.#notFoundHandler(this);\n };\n};\nexport {\n Context,\n TEXT_PLAIN\n};\n", "// src/router.ts\nvar METHOD_NAME_ALL = \"ALL\";\nvar METHOD_NAME_ALL_LOWERCASE = \"all\";\nvar METHODS = [\"get\", \"post\", \"put\", \"delete\", \"options\", \"patch\"];\nvar MESSAGE_MATCHER_IS_ALREADY_BUILT = \"Can not add a route since the matcher is already built.\";\nvar UnsupportedPathError = class extends Error {\n};\nexport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHODS,\n METHOD_NAME_ALL,\n METHOD_NAME_ALL_LOWERCASE,\n UnsupportedPathError\n};\n", "// src/utils/constants.ts\nvar COMPOSED_HANDLER = \"__COMPOSED_HANDLER\";\nexport {\n COMPOSED_HANDLER\n};\n", "// src/hono-base.ts\nimport { compose } from \"./compose.js\";\nimport { Context } from \"./context.js\";\nimport { METHODS, METHOD_NAME_ALL, METHOD_NAME_ALL_LOWERCASE } from \"./router.js\";\nimport { COMPOSED_HANDLER } from \"./utils/constants.js\";\nimport { getPath, getPathNoStrict, mergePath } from \"./utils/url.js\";\nvar notFoundHandler = (c) => {\n return c.text(\"404 Not Found\", 404);\n};\nvar errorHandler = (err, c) => {\n if (\"getResponse\" in err) {\n const res = err.getResponse();\n return c.newResponse(res.body, res);\n }\n console.error(err);\n return c.text(\"Internal Server Error\", 500);\n};\nvar Hono = class {\n get;\n post;\n put;\n delete;\n options;\n patch;\n all;\n on;\n use;\n router;\n getPath;\n _basePath = \"/\";\n #path = \"/\";\n routes = [];\n constructor(options = {}) {\n const allMethods = [...METHODS, METHOD_NAME_ALL_LOWERCASE];\n allMethods.forEach((method) => {\n this[method] = (args1, ...args) => {\n if (typeof args1 === \"string\") {\n this.#path = args1;\n } else {\n this.#addRoute(method, this.#path, args1);\n }\n args.forEach((handler) => {\n this.#addRoute(method, this.#path, handler);\n });\n return this;\n };\n });\n this.on = (method, path, ...handlers) => {\n for (const p of [path].flat()) {\n this.#path = p;\n for (const m of [method].flat()) {\n handlers.map((handler) => {\n this.#addRoute(m.toUpperCase(), this.#path, handler);\n });\n }\n }\n return this;\n };\n this.use = (arg1, ...handlers) => {\n if (typeof arg1 === \"string\") {\n this.#path = arg1;\n } else {\n this.#path = \"*\";\n handlers.unshift(arg1);\n }\n handlers.forEach((handler) => {\n this.#addRoute(METHOD_NAME_ALL, this.#path, handler);\n });\n return this;\n };\n const { strict, ...optionsWithoutStrict } = options;\n Object.assign(this, optionsWithoutStrict);\n this.getPath = strict ?? true ? options.getPath ?? getPath : getPathNoStrict;\n }\n #clone() {\n const clone = new Hono({\n router: this.router,\n getPath: this.getPath\n });\n clone.errorHandler = this.errorHandler;\n clone.#notFoundHandler = this.#notFoundHandler;\n clone.routes = this.routes;\n return clone;\n }\n #notFoundHandler = notFoundHandler;\n errorHandler = errorHandler;\n route(path, app) {\n const subApp = this.basePath(path);\n app.routes.map((r) => {\n let handler;\n if (app.errorHandler === errorHandler) {\n handler = r.handler;\n } else {\n handler = async (c, next) => (await compose([], app.errorHandler)(c, () => r.handler(c, next))).res;\n handler[COMPOSED_HANDLER] = r.handler;\n }\n subApp.#addRoute(r.method, r.path, handler);\n });\n return this;\n }\n basePath(path) {\n const subApp = this.#clone();\n subApp._basePath = mergePath(this._basePath, path);\n return subApp;\n }\n onError = (handler) => {\n this.errorHandler = handler;\n return this;\n };\n notFound = (handler) => {\n this.#notFoundHandler = handler;\n return this;\n };\n mount(path, applicationHandler, options) {\n let replaceRequest;\n let optionHandler;\n if (options) {\n if (typeof options === \"function\") {\n optionHandler = options;\n } else {\n optionHandler = options.optionHandler;\n if (options.replaceRequest === false) {\n replaceRequest = (request) => request;\n } else {\n replaceRequest = options.replaceRequest;\n }\n }\n }\n const getOptions = optionHandler ? (c) => {\n const options2 = optionHandler(c);\n return Array.isArray(options2) ? options2 : [options2];\n } : (c) => {\n let executionContext = void 0;\n try {\n executionContext = c.executionCtx;\n } catch {\n }\n return [c.env, executionContext];\n };\n replaceRequest ||= (() => {\n const mergedPath = mergePath(this._basePath, path);\n const pathPrefixLength = mergedPath === \"/\" ? 0 : mergedPath.length;\n return (request) => {\n const url = new URL(request.url);\n url.pathname = url.pathname.slice(pathPrefixLength) || \"/\";\n return new Request(url, request);\n };\n })();\n const handler = async (c, next) => {\n const res = await applicationHandler(replaceRequest(c.req.raw), ...getOptions(c));\n if (res) {\n return res;\n }\n await next();\n };\n this.#addRoute(METHOD_NAME_ALL, mergePath(path, \"*\"), handler);\n return this;\n }\n #addRoute(method, path, handler) {\n method = method.toUpperCase();\n path = mergePath(this._basePath, path);\n const r = { basePath: this._basePath, path, method, handler };\n this.router.add(method, path, [handler, r]);\n this.routes.push(r);\n }\n #handleError(err, c) {\n if (err instanceof Error) {\n return this.errorHandler(err, c);\n }\n throw err;\n }\n #dispatch(request, executionCtx, env, method) {\n if (method === \"HEAD\") {\n return (async () => new Response(null, await this.#dispatch(request, executionCtx, env, \"GET\")))();\n }\n const path = this.getPath(request, { env });\n const matchResult = this.router.match(method, path);\n const c = new Context(request, {\n path,\n matchResult,\n env,\n executionCtx,\n notFoundHandler: this.#notFoundHandler\n });\n if (matchResult[0].length === 1) {\n let res;\n try {\n res = matchResult[0][0][0][0](c, async () => {\n c.res = await this.#notFoundHandler(c);\n });\n } catch (err) {\n return this.#handleError(err, c);\n }\n return res instanceof Promise ? res.then(\n (resolved) => resolved || (c.finalized ? c.res : this.#notFoundHandler(c))\n ).catch((err) => this.#handleError(err, c)) : res ?? this.#notFoundHandler(c);\n }\n const composed = compose(matchResult[0], this.errorHandler, this.#notFoundHandler);\n return (async () => {\n try {\n const context = await composed(c);\n if (!context.finalized) {\n throw new Error(\n \"Context is not finalized. Did you forget to return a Response object or `await next()`?\"\n );\n }\n return context.res;\n } catch (err) {\n return this.#handleError(err, c);\n }\n })();\n }\n fetch = (request, ...rest) => {\n return this.#dispatch(request, rest[1], rest[0], request.method);\n };\n request = (input, requestInit, Env, executionCtx) => {\n if (input instanceof Request) {\n return this.fetch(requestInit ? new Request(input, requestInit) : input, Env, executionCtx);\n }\n input = input.toString();\n return this.fetch(\n new Request(\n /^https?:\\/\\//.test(input) ? input : `http://localhost${mergePath(\"/\", input)}`,\n requestInit\n ),\n Env,\n executionCtx\n );\n };\n fire = () => {\n addEventListener(\"fetch\", (event) => {\n event.respondWith(this.#dispatch(event.request, event, void 0, event.request.method));\n });\n };\n};\nexport {\n Hono as HonoBase\n};\n", "// src/router/reg-exp-router/matcher.ts\nimport { METHOD_NAME_ALL } from \"../../router.js\";\nvar emptyParam = [];\nfunction match(method, path) {\n const matchers = this.buildAllMatchers();\n const match2 = (method2, path2) => {\n const matcher = matchers[method2] || matchers[METHOD_NAME_ALL];\n const staticMatch = matcher[2][path2];\n if (staticMatch) {\n return staticMatch;\n }\n const match3 = path2.match(matcher[0]);\n if (!match3) {\n return [[], emptyParam];\n }\n const index = match3.indexOf(\"\", 1);\n return [matcher[1][index], match3];\n };\n this.match = match2;\n return match2(method, path);\n}\nexport {\n emptyParam,\n match\n};\n", "// src/router/reg-exp-router/node.ts\nvar LABEL_REG_EXP_STR = \"[^/]+\";\nvar ONLY_WILDCARD_REG_EXP_STR = \".*\";\nvar TAIL_WILDCARD_REG_EXP_STR = \"(?:|/.*)\";\nvar PATH_ERROR = Symbol();\nvar regExpMetaChars = new Set(\".\\\\+*[^]$()\");\nfunction compareKey(a, b) {\n if (a.length === 1) {\n return b.length === 1 ? a < b ? -1 : 1 : -1;\n }\n if (b.length === 1) {\n return 1;\n }\n if (a === ONLY_WILDCARD_REG_EXP_STR || a === TAIL_WILDCARD_REG_EXP_STR) {\n return 1;\n } else if (b === ONLY_WILDCARD_REG_EXP_STR || b === TAIL_WILDCARD_REG_EXP_STR) {\n return -1;\n }\n if (a === LABEL_REG_EXP_STR) {\n return 1;\n } else if (b === LABEL_REG_EXP_STR) {\n return -1;\n }\n return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length;\n}\nvar Node = class {\n #index;\n #varIndex;\n #children = /* @__PURE__ */ Object.create(null);\n insert(tokens, index, paramMap, context, pathErrorCheckOnly) {\n if (tokens.length === 0) {\n if (this.#index !== void 0) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n this.#index = index;\n return;\n }\n const [token, ...restTokens] = tokens;\n const pattern = token === \"*\" ? restTokens.length === 0 ? [\"\", \"\", ONLY_WILDCARD_REG_EXP_STR] : [\"\", \"\", LABEL_REG_EXP_STR] : token === \"/*\" ? [\"\", \"\", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n let node;\n if (pattern) {\n const name = pattern[1];\n let regexpStr = pattern[2] || LABEL_REG_EXP_STR;\n if (name && pattern[2]) {\n if (regexpStr === \".*\") {\n throw PATH_ERROR;\n }\n regexpStr = regexpStr.replace(/^\\((?!\\?:)(?=[^)]+\\)$)/, \"(?:\");\n if (/\\((?!\\?:)/.test(regexpStr)) {\n throw PATH_ERROR;\n }\n }\n node = this.#children[regexpStr];\n if (!node) {\n if (Object.keys(this.#children).some(\n (k) => k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.#children[regexpStr] = new Node();\n if (name !== \"\") {\n node.#varIndex = context.varIndex++;\n }\n }\n if (!pathErrorCheckOnly && name !== \"\") {\n paramMap.push([name, node.#varIndex]);\n }\n } else {\n node = this.#children[token];\n if (!node) {\n if (Object.keys(this.#children).some(\n (k) => k.length > 1 && k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.#children[token] = new Node();\n }\n }\n node.insert(restTokens, index, paramMap, context, pathErrorCheckOnly);\n }\n buildRegExpStr() {\n const childKeys = Object.keys(this.#children).sort(compareKey);\n const strList = childKeys.map((k) => {\n const c = this.#children[k];\n return (typeof c.#varIndex === \"number\" ? `(${k})@${c.#varIndex}` : regExpMetaChars.has(k) ? `\\\\${k}` : k) + c.buildRegExpStr();\n });\n if (typeof this.#index === \"number\") {\n strList.unshift(`#${this.#index}`);\n }\n if (strList.length === 0) {\n return \"\";\n }\n if (strList.length === 1) {\n return strList[0];\n }\n return \"(?:\" + strList.join(\"|\") + \")\";\n }\n};\nexport {\n Node,\n PATH_ERROR\n};\n", "// src/router/reg-exp-router/trie.ts\nimport { Node } from \"./node.js\";\nvar Trie = class {\n #context = { varIndex: 0 };\n #root = new Node();\n insert(path, index, pathErrorCheckOnly) {\n const paramAssoc = [];\n const groups = [];\n for (let i = 0; ; ) {\n let replaced = false;\n path = path.replace(/\\{[^}]+\\}/g, (m) => {\n const mark = `@\\\\${i}`;\n groups[i] = [mark, m];\n i++;\n replaced = true;\n return mark;\n });\n if (!replaced) {\n break;\n }\n }\n const tokens = path.match(/(?::[^\\/]+)|(?:\\/\\*$)|./g) || [];\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = tokens.length - 1; j >= 0; j--) {\n if (tokens[j].indexOf(mark) !== -1) {\n tokens[j] = tokens[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n this.#root.insert(tokens, index, paramAssoc, this.#context, pathErrorCheckOnly);\n return paramAssoc;\n }\n buildRegExp() {\n let regexp = this.#root.buildRegExpStr();\n if (regexp === \"\") {\n return [/^$/, [], []];\n }\n let captureIndex = 0;\n const indexReplacementMap = [];\n const paramReplacementMap = [];\n regexp = regexp.replace(/#(\\d+)|@(\\d+)|\\.\\*\\$/g, (_, handlerIndex, paramIndex) => {\n if (handlerIndex !== void 0) {\n indexReplacementMap[++captureIndex] = Number(handlerIndex);\n return \"$()\";\n }\n if (paramIndex !== void 0) {\n paramReplacementMap[Number(paramIndex)] = ++captureIndex;\n return \"\";\n }\n return \"\";\n });\n return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap];\n }\n};\nexport {\n Trie\n};\n", "// src/router/reg-exp-router/router.ts\nimport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHOD_NAME_ALL,\n UnsupportedPathError\n} from \"../../router.js\";\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { match, emptyParam } from \"./matcher.js\";\nimport { PATH_ERROR } from \"./node.js\";\nimport { Trie } from \"./trie.js\";\nvar nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];\nvar wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\nfunction buildWildcardRegExp(path) {\n return wildcardRegExpCache[path] ??= new RegExp(\n path === \"*\" ? \"\" : `^${path.replace(\n /\\/\\*$|([.\\\\+*[^\\]$()])/g,\n (_, metaChar) => metaChar ? `\\\\${metaChar}` : \"(?:|/.*)\"\n )}$`\n );\n}\nfunction clearWildcardRegExpCache() {\n wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\n}\nfunction buildMatcherFromPreprocessedRoutes(routes) {\n const trie = new Trie();\n const handlerData = [];\n if (routes.length === 0) {\n return nullMatcher;\n }\n const routesWithStaticPathFlag = routes.map(\n (route) => [!/\\*|\\/:/.test(route[0]), ...route]\n ).sort(\n ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length\n );\n const staticMap = /* @__PURE__ */ Object.create(null);\n for (let i = 0, j = -1, len = routesWithStaticPathFlag.length; i < len; i++) {\n const [pathErrorCheckOnly, path, handlers] = routesWithStaticPathFlag[i];\n if (pathErrorCheckOnly) {\n staticMap[path] = [handlers.map(([h]) => [h, /* @__PURE__ */ Object.create(null)]), emptyParam];\n } else {\n j++;\n }\n let paramAssoc;\n try {\n paramAssoc = trie.insert(path, j, pathErrorCheckOnly);\n } catch (e) {\n throw e === PATH_ERROR ? new UnsupportedPathError(path) : e;\n }\n if (pathErrorCheckOnly) {\n continue;\n }\n handlerData[j] = handlers.map(([h, paramCount]) => {\n const paramIndexMap = /* @__PURE__ */ Object.create(null);\n paramCount -= 1;\n for (; paramCount >= 0; paramCount--) {\n const [key, value] = paramAssoc[paramCount];\n paramIndexMap[key] = value;\n }\n return [h, paramIndexMap];\n });\n }\n const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();\n for (let i = 0, len = handlerData.length; i < len; i++) {\n for (let j = 0, len2 = handlerData[i].length; j < len2; j++) {\n const map = handlerData[i][j]?.[1];\n if (!map) {\n continue;\n }\n const keys = Object.keys(map);\n for (let k = 0, len3 = keys.length; k < len3; k++) {\n map[keys[k]] = paramReplacementMap[map[keys[k]]];\n }\n }\n }\n const handlerMap = [];\n for (const i in indexReplacementMap) {\n handlerMap[i] = handlerData[indexReplacementMap[i]];\n }\n return [regexp, handlerMap, staticMap];\n}\nfunction findMiddleware(middleware, path) {\n if (!middleware) {\n return void 0;\n }\n for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) {\n if (buildWildcardRegExp(k).test(path)) {\n return [...middleware[k]];\n }\n }\n return void 0;\n}\nvar RegExpRouter = class {\n name = \"RegExpRouter\";\n #middleware;\n #routes;\n constructor() {\n this.#middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n this.#routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n }\n add(method, path, handler) {\n const middleware = this.#middleware;\n const routes = this.#routes;\n if (!middleware || !routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n if (!middleware[method]) {\n ;\n [middleware, routes].forEach((handlerMap) => {\n handlerMap[method] = /* @__PURE__ */ Object.create(null);\n Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p) => {\n handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]];\n });\n });\n }\n if (path === \"/*\") {\n path = \"*\";\n }\n const paramCount = (path.match(/\\/:/g) || []).length;\n if (/\\*$/.test(path)) {\n const re = buildWildcardRegExp(path);\n if (method === METHOD_NAME_ALL) {\n Object.keys(middleware).forEach((m) => {\n middleware[m][path] ||= findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n });\n } else {\n middleware[method][path] ||= findMiddleware(middleware[method], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n }\n Object.keys(middleware).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(middleware[m]).forEach((p) => {\n re.test(p) && middleware[m][p].push([handler, paramCount]);\n });\n }\n });\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(routes[m]).forEach(\n (p) => re.test(p) && routes[m][p].push([handler, paramCount])\n );\n }\n });\n return;\n }\n const paths = checkOptionalParameter(path) || [path];\n for (let i = 0, len = paths.length; i < len; i++) {\n const path2 = paths[i];\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n routes[m][path2] ||= [\n ...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || []\n ];\n routes[m][path2].push([handler, paramCount - len + i + 1]);\n }\n });\n }\n }\n match = match;\n buildAllMatchers() {\n const matchers = /* @__PURE__ */ Object.create(null);\n Object.keys(this.#routes).concat(Object.keys(this.#middleware)).forEach((method) => {\n matchers[method] ||= this.#buildMatcher(method);\n });\n this.#middleware = this.#routes = void 0;\n clearWildcardRegExpCache();\n return matchers;\n }\n #buildMatcher(method) {\n const routes = [];\n let hasOwnRoute = method === METHOD_NAME_ALL;\n [this.#middleware, this.#routes].forEach((r) => {\n const ownRoute = r[method] ? Object.keys(r[method]).map((path) => [path, r[method][path]]) : [];\n if (ownRoute.length !== 0) {\n hasOwnRoute ||= true;\n routes.push(...ownRoute);\n } else if (method !== METHOD_NAME_ALL) {\n routes.push(\n ...Object.keys(r[METHOD_NAME_ALL]).map((path) => [path, r[METHOD_NAME_ALL][path]])\n );\n }\n });\n if (!hasOwnRoute) {\n return null;\n } else {\n return buildMatcherFromPreprocessedRoutes(routes);\n }\n }\n};\nexport {\n RegExpRouter\n};\n", "// src/router/smart-router/router.ts\nimport { MESSAGE_MATCHER_IS_ALREADY_BUILT, UnsupportedPathError } from \"../../router.js\";\nvar SmartRouter = class {\n name = \"SmartRouter\";\n #routers = [];\n #routes = [];\n constructor(init) {\n this.#routers = init.routers;\n }\n add(method, path, handler) {\n if (!this.#routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n this.#routes.push([method, path, handler]);\n }\n match(method, path) {\n if (!this.#routes) {\n throw new Error(\"Fatal error\");\n }\n const routers = this.#routers;\n const routes = this.#routes;\n const len = routers.length;\n let i = 0;\n let res;\n for (; i < len; i++) {\n const router = routers[i];\n try {\n for (let i2 = 0, len2 = routes.length; i2 < len2; i2++) {\n router.add(...routes[i2]);\n }\n res = router.match(method, path);\n } catch (e) {\n if (e instanceof UnsupportedPathError) {\n continue;\n }\n throw e;\n }\n this.match = router.match.bind(router);\n this.#routers = [router];\n this.#routes = void 0;\n break;\n }\n if (i === len) {\n throw new Error(\"Fatal error\");\n }\n this.name = `SmartRouter + ${this.activeRouter.name}`;\n return res;\n }\n get activeRouter() {\n if (this.#routes || this.#routers.length !== 1) {\n throw new Error(\"No active router has been determined yet.\");\n }\n return this.#routers[0];\n }\n};\nexport {\n SmartRouter\n};\n", "// src/router/trie-router/node.ts\nimport { METHOD_NAME_ALL } from \"../../router.js\";\nimport { getPattern, splitPath, splitRoutingPath } from \"../../utils/url.js\";\nvar emptyParams = /* @__PURE__ */ Object.create(null);\nvar Node = class {\n #methods;\n #children;\n #patterns;\n #order = 0;\n #params = emptyParams;\n constructor(method, handler, children) {\n this.#children = children || /* @__PURE__ */ Object.create(null);\n this.#methods = [];\n if (method && handler) {\n const m = /* @__PURE__ */ Object.create(null);\n m[method] = { handler, possibleKeys: [], score: 0 };\n this.#methods = [m];\n }\n this.#patterns = [];\n }\n insert(method, path, handler) {\n this.#order = ++this.#order;\n let curNode = this;\n const parts = splitRoutingPath(path);\n const possibleKeys = [];\n for (let i = 0, len = parts.length; i < len; i++) {\n const p = parts[i];\n const nextP = parts[i + 1];\n const pattern = getPattern(p, nextP);\n const key = Array.isArray(pattern) ? pattern[0] : p;\n if (key in curNode.#children) {\n curNode = curNode.#children[key];\n if (pattern) {\n possibleKeys.push(pattern[1]);\n }\n continue;\n }\n curNode.#children[key] = new Node();\n if (pattern) {\n curNode.#patterns.push(pattern);\n possibleKeys.push(pattern[1]);\n }\n curNode = curNode.#children[key];\n }\n curNode.#methods.push({\n [method]: {\n handler,\n possibleKeys: possibleKeys.filter((v, i, a) => a.indexOf(v) === i),\n score: this.#order\n }\n });\n return curNode;\n }\n #getHandlerSets(node, method, nodeParams, params) {\n const handlerSets = [];\n for (let i = 0, len = node.#methods.length; i < len; i++) {\n const m = node.#methods[i];\n const handlerSet = m[method] || m[METHOD_NAME_ALL];\n const processedSet = {};\n if (handlerSet !== void 0) {\n handlerSet.params = /* @__PURE__ */ Object.create(null);\n handlerSets.push(handlerSet);\n if (nodeParams !== emptyParams || params && params !== emptyParams) {\n for (let i2 = 0, len2 = handlerSet.possibleKeys.length; i2 < len2; i2++) {\n const key = handlerSet.possibleKeys[i2];\n const processed = processedSet[handlerSet.score];\n handlerSet.params[key] = params?.[key] && !processed ? params[key] : nodeParams[key] ?? params?.[key];\n processedSet[handlerSet.score] = true;\n }\n }\n }\n }\n return handlerSets;\n }\n search(method, path) {\n const handlerSets = [];\n this.#params = emptyParams;\n const curNode = this;\n let curNodes = [curNode];\n const parts = splitPath(path);\n const curNodesQueue = [];\n for (let i = 0, len = parts.length; i < len; i++) {\n const part = parts[i];\n const isLast = i === len - 1;\n const tempNodes = [];\n for (let j = 0, len2 = curNodes.length; j < len2; j++) {\n const node = curNodes[j];\n const nextNode = node.#children[part];\n if (nextNode) {\n nextNode.#params = node.#params;\n if (isLast) {\n if (nextNode.#children[\"*\"]) {\n handlerSets.push(\n ...this.#getHandlerSets(nextNode.#children[\"*\"], method, node.#params)\n );\n }\n handlerSets.push(...this.#getHandlerSets(nextNode, method, node.#params));\n } else {\n tempNodes.push(nextNode);\n }\n }\n for (let k = 0, len3 = node.#patterns.length; k < len3; k++) {\n const pattern = node.#patterns[k];\n const params = node.#params === emptyParams ? {} : { ...node.#params };\n if (pattern === \"*\") {\n const astNode = node.#children[\"*\"];\n if (astNode) {\n handlerSets.push(...this.#getHandlerSets(astNode, method, node.#params));\n astNode.#params = params;\n tempNodes.push(astNode);\n }\n continue;\n }\n const [key, name, matcher] = pattern;\n if (!part && !(matcher instanceof RegExp)) {\n continue;\n }\n const child = node.#children[key];\n const restPathString = parts.slice(i).join(\"/\");\n if (matcher instanceof RegExp) {\n const m = matcher.exec(restPathString);\n if (m) {\n params[name] = m[0];\n handlerSets.push(...this.#getHandlerSets(child, method, node.#params, params));\n if (Object.keys(child.#children).length) {\n child.#params = params;\n const componentCount = m[0].match(/\\//)?.length ?? 0;\n const targetCurNodes = curNodesQueue[componentCount] ||= [];\n targetCurNodes.push(child);\n }\n continue;\n }\n }\n if (matcher === true || matcher.test(part)) {\n params[name] = part;\n if (isLast) {\n handlerSets.push(...this.#getHandlerSets(child, method, params, node.#params));\n if (child.#children[\"*\"]) {\n handlerSets.push(\n ...this.#getHandlerSets(child.#children[\"*\"], method, params, node.#params)\n );\n }\n } else {\n child.#params = params;\n tempNodes.push(child);\n }\n }\n }\n }\n curNodes = tempNodes.concat(curNodesQueue.shift() ?? []);\n }\n if (handlerSets.length > 1) {\n handlerSets.sort((a, b) => {\n return a.score - b.score;\n });\n }\n return [handlerSets.map(({ handler, params }) => [handler, params])];\n }\n};\nexport {\n Node\n};\n", "// src/router/trie-router/router.ts\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { Node } from \"./node.js\";\nvar TrieRouter = class {\n name = \"TrieRouter\";\n #node;\n constructor() {\n this.#node = new Node();\n }\n add(method, path, handler) {\n const results = checkOptionalParameter(path);\n if (results) {\n for (let i = 0, len = results.length; i < len; i++) {\n this.#node.insert(method, results[i], handler);\n }\n return;\n }\n this.#node.insert(method, path, handler);\n }\n match(method, path) {\n return this.#node.search(method, path);\n }\n};\nexport {\n TrieRouter\n};\n", "// src/hono.ts\nimport { HonoBase } from \"./hono-base.js\";\nimport { RegExpRouter } from \"./router/reg-exp-router/index.js\";\nimport { SmartRouter } from \"./router/smart-router/index.js\";\nimport { TrieRouter } from \"./router/trie-router/index.js\";\nvar Hono = class extends HonoBase {\n constructor(options = {}) {\n super(options);\n this.router = options.router ?? new SmartRouter({\n routers: [new RegExpRouter(), new TrieRouter()]\n });\n }\n};\nexport {\n Hono\n};\n", "// src/utils/compress.ts\nvar COMPRESSIBLE_CONTENT_TYPE_REGEX = /^\\s*(?:text\\/(?!event-stream(?:[;\\s]|$))[^;\\s]+|application\\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|postscript|rtf|tar|toml|vnd\\.dart|vnd\\.ms-fontobject|vnd\\.ms-opentype|wasm|x-httpd-php|x-javascript|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\\/(?:otf|ttf)|image\\/(?:bmp|vnd\\.adobe\\.photoshop|vnd\\.microsoft\\.icon|vnd\\.ms-dds|x-icon|x-ms-bmp)|message\\/rfc822|model\\/gltf-binary|x-shader\\/x-fragment|x-shader\\/x-vertex|[^;\\s]+?\\+(?:json|text|xml|yaml))(?:[;\\s]|$)/i;\nexport {\n COMPRESSIBLE_CONTENT_TYPE_REGEX\n};\n", "// src/utils/mime.ts\nvar getMimeType = (filename, mimes = baseMimes) => {\n const regexp = /\\.([a-zA-Z0-9]+?)$/;\n const match = filename.match(regexp);\n if (!match) {\n return;\n }\n let mimeType = mimes[match[1]];\n if (mimeType && mimeType.startsWith(\"text\")) {\n mimeType += \"; charset=utf-8\";\n }\n return mimeType;\n};\nvar getExtension = (mimeType) => {\n for (const ext in baseMimes) {\n if (baseMimes[ext] === mimeType) {\n return ext;\n }\n }\n};\nvar _baseMimes = {\n aac: \"audio/aac\",\n avi: \"video/x-msvideo\",\n avif: \"image/avif\",\n av1: \"video/av1\",\n bin: \"application/octet-stream\",\n bmp: \"image/bmp\",\n css: \"text/css\",\n csv: \"text/csv\",\n eot: \"application/vnd.ms-fontobject\",\n epub: \"application/epub+zip\",\n gif: \"image/gif\",\n gz: \"application/gzip\",\n htm: \"text/html\",\n html: \"text/html\",\n ico: \"image/x-icon\",\n ics: \"text/calendar\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n js: \"text/javascript\",\n json: \"application/json\",\n jsonld: \"application/ld+json\",\n map: \"application/json\",\n mid: \"audio/x-midi\",\n midi: \"audio/x-midi\",\n mjs: \"text/javascript\",\n mp3: \"audio/mpeg\",\n mp4: \"video/mp4\",\n mpeg: \"video/mpeg\",\n oga: \"audio/ogg\",\n ogv: \"video/ogg\",\n ogx: \"application/ogg\",\n opus: \"audio/opus\",\n otf: \"font/otf\",\n pdf: \"application/pdf\",\n png: \"image/png\",\n rtf: \"application/rtf\",\n svg: \"image/svg+xml\",\n tif: \"image/tiff\",\n tiff: \"image/tiff\",\n ts: \"video/mp2t\",\n ttf: \"font/ttf\",\n txt: \"text/plain\",\n wasm: \"application/wasm\",\n webm: \"video/webm\",\n weba: \"audio/webm\",\n webmanifest: \"application/manifest+json\",\n webp: \"image/webp\",\n woff: \"font/woff\",\n woff2: \"font/woff2\",\n xhtml: \"application/xhtml+xml\",\n xml: \"application/xml\",\n zip: \"application/zip\",\n \"3gp\": \"video/3gpp\",\n \"3g2\": \"video/3gpp2\",\n gltf: \"model/gltf+json\",\n glb: \"model/gltf-binary\"\n};\nvar baseMimes = _baseMimes;\nexport {\n getExtension,\n getMimeType,\n baseMimes as mimes\n};\n", "// src/middleware/serve-static/path.ts\nvar defaultJoin = (...paths) => {\n let result = paths.filter((p) => p !== \"\").join(\"/\");\n result = result.replace(/(?<=\\/)\\/+/g, \"\");\n const segments = result.split(\"/\");\n const resolved = [];\n for (const segment of segments) {\n if (segment === \"..\" && resolved.length > 0 && resolved.at(-1) !== \"..\") {\n resolved.pop();\n } else if (segment !== \".\") {\n resolved.push(segment);\n }\n }\n return resolved.join(\"/\") || \".\";\n};\nexport {\n defaultJoin\n};\n", "// src/middleware/serve-static/index.ts\nimport { COMPRESSIBLE_CONTENT_TYPE_REGEX } from \"../../utils/compress.js\";\nimport { getMimeType } from \"../../utils/mime.js\";\nimport { defaultJoin } from \"./path.js\";\nvar ENCODINGS = {\n br: \".br\",\n zstd: \".zst\",\n gzip: \".gz\"\n};\nvar ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);\nvar DEFAULT_DOCUMENT = \"index.html\";\nvar serveStatic = (options) => {\n const root = options.root ?? \"./\";\n const optionPath = options.path;\n const join = options.join ?? defaultJoin;\n return async (c, next) => {\n if (c.finalized) {\n return next();\n }\n let filename;\n if (options.path) {\n filename = options.path;\n } else {\n try {\n filename = decodeURIComponent(c.req.path);\n if (/(?:^|[\\/\\\\])\\.\\.(?:$|[\\/\\\\])/.test(filename)) {\n throw new Error();\n }\n } catch {\n await options.onNotFound?.(c.req.path, c);\n return next();\n }\n }\n let path = join(\n root,\n !optionPath && options.rewriteRequestPath ? options.rewriteRequestPath(filename) : filename\n );\n if (options.isDir && await options.isDir(path)) {\n path = join(path, DEFAULT_DOCUMENT);\n }\n const getContent = options.getContent;\n let content = await getContent(path, c);\n if (content instanceof Response) {\n return c.newResponse(content.body, content);\n }\n if (content) {\n const mimeType = options.mimes && getMimeType(path, options.mimes) || getMimeType(path);\n c.header(\"Content-Type\", mimeType || \"application/octet-stream\");\n if (options.precompressed && (!mimeType || COMPRESSIBLE_CONTENT_TYPE_REGEX.test(mimeType))) {\n const acceptEncodingSet = new Set(\n c.req.header(\"Accept-Encoding\")?.split(\",\").map((encoding) => encoding.trim())\n );\n for (const encoding of ENCODINGS_ORDERED_KEYS) {\n if (!acceptEncodingSet.has(encoding)) {\n continue;\n }\n const compressedContent = await getContent(path + ENCODINGS[encoding], c);\n if (compressedContent) {\n content = compressedContent;\n c.header(\"Content-Encoding\", encoding);\n c.header(\"Vary\", \"Accept-Encoding\", { append: true });\n break;\n }\n }\n }\n await options.onFound?.(path, c);\n return c.body(content);\n }\n await options.onNotFound?.(path, c);\n await next();\n return;\n };\n};\nexport {\n serveStatic\n};\n", "// src/adapter/cloudflare-workers/utils.ts\nvar getContentFromKVAsset = async (path, options) => {\n let ASSET_MANIFEST;\n if (options && options.manifest) {\n if (typeof options.manifest === \"string\") {\n ASSET_MANIFEST = JSON.parse(options.manifest);\n } else {\n ASSET_MANIFEST = options.manifest;\n }\n } else {\n if (typeof __STATIC_CONTENT_MANIFEST === \"string\") {\n ASSET_MANIFEST = JSON.parse(__STATIC_CONTENT_MANIFEST);\n } else {\n ASSET_MANIFEST = __STATIC_CONTENT_MANIFEST;\n }\n }\n let ASSET_NAMESPACE;\n if (options && options.namespace) {\n ASSET_NAMESPACE = options.namespace;\n } else {\n ASSET_NAMESPACE = __STATIC_CONTENT;\n }\n const key = ASSET_MANIFEST[path] || path;\n if (!key) {\n return null;\n }\n const content = await ASSET_NAMESPACE.get(key, { type: \"stream\" });\n if (!content) {\n return null;\n }\n return content;\n};\nexport {\n getContentFromKVAsset\n};\n", "// src/adapter/cloudflare-workers/serve-static.ts\nimport { serveStatic as baseServeStatic } from \"../../middleware/serve-static/index.js\";\nimport { getContentFromKVAsset } from \"./utils.js\";\nvar serveStatic = (options) => {\n return async function serveStatic2(c, next) {\n const getContent = async (path) => {\n return getContentFromKVAsset(path, {\n manifest: options.manifest,\n namespace: options.namespace ? options.namespace : c.env ? c.env.__STATIC_CONTENT : void 0\n });\n };\n return baseServeStatic({\n ...options,\n getContent\n })(c, next);\n };\n};\nexport {\n serveStatic\n};\n", "// src/adapter/cloudflare-workers/serve-static-module.ts\nimport { serveStatic } from \"./serve-static.js\";\nvar module = (options) => {\n return serveStatic(options);\n};\nexport {\n module as serveStatic\n};\n", "// src/helper/websocket/index.ts\nvar WSContext = class {\n #init;\n constructor(init) {\n this.#init = init;\n this.raw = init.raw;\n this.url = init.url ? new URL(init.url) : null;\n this.protocol = init.protocol ?? null;\n }\n send(source, options) {\n this.#init.send(source, options ?? {});\n }\n raw;\n binaryType = \"arraybuffer\";\n get readyState() {\n return this.#init.readyState;\n }\n url;\n protocol;\n close(code, reason) {\n this.#init.close(code, reason);\n }\n};\nvar createWSMessageEvent = (source) => {\n return new MessageEvent(\"message\", {\n data: source\n });\n};\nvar defineWebSocketHelper = (handler) => {\n return (...args) => {\n if (typeof args[0] === \"function\") {\n const [createEvents, options] = args;\n return async function upgradeWebSocket(c, next) {\n const events = await createEvents(c);\n const result = await handler(c, events, options);\n if (result) {\n return result;\n }\n await next();\n };\n } else {\n const [c, events, options] = args;\n return (async () => {\n const upgraded = await handler(c, events, options);\n if (!upgraded) {\n throw new Error(\"Failed to upgrade WebSocket\");\n }\n return upgraded;\n })();\n }\n };\n};\nexport {\n WSContext,\n createWSMessageEvent,\n defineWebSocketHelper\n};\n", "// src/adapter/cloudflare-workers/websocket.ts\nimport { WSContext, defineWebSocketHelper } from \"../../helper/websocket/index.js\";\nvar upgradeWebSocket = defineWebSocketHelper(async (c, events) => {\n const upgradeHeader = c.req.header(\"Upgrade\");\n if (upgradeHeader !== \"websocket\") {\n return;\n }\n const webSocketPair = new WebSocketPair();\n const client = webSocketPair[0];\n const server = webSocketPair[1];\n const wsContext = new WSContext({\n close: (code, reason) => server.close(code, reason),\n get protocol() {\n return server.protocol;\n },\n raw: server,\n get readyState() {\n return server.readyState;\n },\n url: server.url ? new URL(server.url) : null,\n send: (source) => server.send(source)\n });\n if (events.onClose) {\n server.addEventListener(\"close\", (evt) => events.onClose?.(evt, wsContext));\n }\n if (events.onMessage) {\n server.addEventListener(\"message\", (evt) => events.onMessage?.(evt, wsContext));\n }\n if (events.onError) {\n server.addEventListener(\"error\", (evt) => events.onError?.(evt, wsContext));\n }\n server.accept?.();\n return new Response(null, {\n status: 101,\n webSocket: client\n });\n});\nexport {\n upgradeWebSocket\n};\n", "// src/middleware/cors/index.ts\nvar cors = (options) => {\n const defaults = {\n origin: \"*\",\n allowMethods: [\"GET\", \"HEAD\", \"PUT\", \"POST\", \"DELETE\", \"PATCH\"],\n allowHeaders: [],\n exposeHeaders: []\n };\n const opts = {\n ...defaults,\n ...options\n };\n const findAllowOrigin = ((optsOrigin) => {\n if (typeof optsOrigin === \"string\") {\n if (optsOrigin === \"*\") {\n return () => optsOrigin;\n } else {\n return (origin) => optsOrigin === origin ? origin : null;\n }\n } else if (typeof optsOrigin === \"function\") {\n return optsOrigin;\n } else {\n return (origin) => optsOrigin.includes(origin) ? origin : null;\n }\n })(opts.origin);\n const findAllowMethods = ((optsAllowMethods) => {\n if (typeof optsAllowMethods === \"function\") {\n return optsAllowMethods;\n } else if (Array.isArray(optsAllowMethods)) {\n return () => optsAllowMethods;\n } else {\n return () => [];\n }\n })(opts.allowMethods);\n return async function cors2(c, next) {\n function set(key, value) {\n c.res.headers.set(key, value);\n }\n const allowOrigin = await findAllowOrigin(c.req.header(\"origin\") || \"\", c);\n if (allowOrigin) {\n set(\"Access-Control-Allow-Origin\", allowOrigin);\n }\n if (opts.origin !== \"*\") {\n const existingVary = c.req.header(\"Vary\");\n if (existingVary) {\n set(\"Vary\", existingVary);\n } else {\n set(\"Vary\", \"Origin\");\n }\n }\n if (opts.credentials) {\n set(\"Access-Control-Allow-Credentials\", \"true\");\n }\n if (opts.exposeHeaders?.length) {\n set(\"Access-Control-Expose-Headers\", opts.exposeHeaders.join(\",\"));\n }\n if (c.req.method === \"OPTIONS\") {\n if (opts.maxAge != null) {\n set(\"Access-Control-Max-Age\", opts.maxAge.toString());\n }\n const allowMethods = await findAllowMethods(c.req.header(\"origin\") || \"\", c);\n if (allowMethods.length) {\n set(\"Access-Control-Allow-Methods\", allowMethods.join(\",\"));\n }\n let headers = opts.allowHeaders;\n if (!headers?.length) {\n const requestHeaders = c.req.header(\"Access-Control-Request-Headers\");\n if (requestHeaders) {\n headers = requestHeaders.split(/\\s*,\\s*/);\n }\n }\n if (headers?.length) {\n set(\"Access-Control-Allow-Headers\", headers.join(\",\"));\n c.res.headers.append(\"Vary\", \"Access-Control-Request-Headers\");\n }\n c.res.headers.delete(\"Content-Length\");\n c.res.headers.delete(\"Content-Type\");\n return new Response(null, {\n headers: c.res.headers,\n status: 204,\n statusText: \"No Content\"\n });\n }\n await next();\n };\n};\nexport {\n cors\n};\n", "export const entityKind = Symbol.for('drizzle:entityKind');\nexport const hasOwnEntityKind = Symbol.for('drizzle:hasOwnEntityKind');\n\nexport interface DrizzleEntity {\n\t[entityKind]: string;\n}\n\nexport type DrizzleEntityClass =\n\t& ((abstract new(...args: any[]) => T) | (new(...args: any[]) => T))\n\t& DrizzleEntity;\n\nexport function is>(value: any, type: T): value is InstanceType {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (value instanceof type) { // eslint-disable-line no-instanceof/no-instanceof\n\t\treturn true;\n\t}\n\n\tif (!Object.prototype.hasOwnProperty.call(type, entityKind)) {\n\t\tthrow new Error(\n\t\t\t`Class \"${\n\t\t\t\ttype.name ?? ''\n\t\t\t}\" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`,\n\t\t);\n\t}\n\n\tlet cls = value.constructor;\n\tif (cls) {\n\t\t// Traverse the prototype chain to find the entityKind\n\t\twhile (cls) {\n\t\t\tif (entityKind in cls && cls[entityKind] === type[entityKind]) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tcls = Object.getPrototypeOf(cls);\n\t\t}\n\t}\n\n\treturn false;\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, ColumnDataType } from './column-builder.ts';\nimport { entityKind } from './entity.ts';\nimport type { DriverValueMapper, SQL, SQLWrapper } from './sql/sql.ts';\nimport type { Table } from './table.ts';\nimport type { Update } from './utils.ts';\n\nexport interface ColumnBaseConfig<\n\tTDataType extends ColumnDataType,\n\tTColumnType extends string,\n> extends ColumnBuilderBaseConfig {\n\ttableName: string;\n\tnotNull: boolean;\n\thasDefault: boolean;\n}\n\nexport type ColumnTypeConfig, TTypeConfig extends object> = T & {\n\tbrand: 'Column';\n\ttableName: T['tableName'];\n\tname: T['name'];\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: T['data'];\n\tdriverParam: T['driverParam'];\n\tnotNull: T['notNull'];\n\thasDefault: T['hasDefault'];\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseColumn: infer U } ? U : unknown;\n} & TTypeConfig;\n\nexport type ColumnRuntimeConfig = ColumnBuilderRuntimeConfig<\n\tTData,\n\tTRuntimeConfig\n>;\n\nexport interface Column<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTRuntimeConfig extends object = object,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTTypeConfig extends object = object,\n> extends DriverValueMapper, SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n/*\n\t`Column` only accepts a full `ColumnConfig` as its generic.\n\tTo infer parts of the config, use `AnyColumn` that accepts a partial config.\n\tSee `GetColumnData` for example usage of inferring.\n*/\nexport abstract class Column<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n> implements DriverValueMapper, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Column';\n\n\tdeclare readonly _: ColumnTypeConfig;\n\n\treadonly name: string;\n\treadonly primary: boolean;\n\treadonly notNull: boolean;\n\treadonly default: T['data'] | SQL | undefined;\n\treadonly defaultFn: (() => T['data'] | SQL) | undefined;\n\treadonly hasDefault: boolean;\n\treadonly isUnique: boolean;\n\treadonly uniqueName: string | undefined;\n\treadonly uniqueType: string | undefined;\n\treadonly dataType: T['dataType'];\n\treadonly columnType: T['columnType'];\n\treadonly enumValues: T['enumValues'] = undefined;\n\n\tprotected config: ColumnRuntimeConfig;\n\n\tconstructor(\n\t\treadonly table: Table,\n\t\tconfig: ColumnRuntimeConfig,\n\t) {\n\t\tthis.config = config;\n\t\tthis.name = config.name;\n\t\tthis.notNull = config.notNull;\n\t\tthis.default = config.default;\n\t\tthis.defaultFn = config.defaultFn;\n\t\tthis.hasDefault = config.hasDefault;\n\t\tthis.primary = config.primaryKey;\n\t\tthis.isUnique = config.isUnique;\n\t\tthis.uniqueName = config.uniqueName;\n\t\tthis.uniqueType = config.uniqueType;\n\t\tthis.dataType = config.dataType as T['dataType'];\n\t\tthis.columnType = config.columnType;\n\t}\n\n\tabstract getSQLType(): string;\n\n\tmapFromDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n\n\tmapToDriverValue(value: unknown): unknown {\n\t\treturn value;\n\t}\n}\n\nexport type UpdateColConfig<\n\tT extends ColumnBaseConfig,\n\tTUpdate extends Partial>,\n> = Update;\n\nexport type AnyColumn> = {}> = Column<\n\tRequired, TPartial>>\n>;\n\nexport type GetColumnData =\n\t// dprint-ignore\n\tTInferMode extends 'raw' // Raw mode\n\t\t? TColumn['_']['data'] // Just return the underlying type\n\t\t: TColumn['_']['notNull'] extends true // Query mode\n\t\t? TColumn['_']['data'] // Query mode, not null\n\t\t: TColumn['_']['data'] | null; // Query mode, nullable\n\nexport type InferColumnsDataTypes> = {\n\t[Key in keyof TColumns]: GetColumnData;\n};\n", "import { entityKind } from './entity.ts';\nimport type { SQL, SQLWrapper, ColumnsSelection } from './sql/sql.ts';\n\nexport const SubqueryConfig = Symbol.for('drizzle:SubqueryConfig');\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport interface Subquery extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\nexport class Subquery implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Subquery';\n\n\tdeclare _: {\n\t\tbrand: 'Subquery';\n\t\tselectedFields: TSelectedFields;\n\t\talias: TAlias;\n\t};\n\n\t/** @internal */\n\t[SubqueryConfig]: {\n\t\tsql: SQL;\n\t\tselection: ColumnsSelection;\n\t\talias: string;\n\t\tisWith: boolean;\n\t};\n\n\tconstructor(sql: SQL, selection: Record, alias: string, isWith = false) {\n\t\tthis[SubqueryConfig] = {\n\t\t\tsql,\n\t\t\tselection,\n\t\t\talias,\n\t\t\tisWith,\n\t\t};\n\t}\n\n\t// getSQL(): SQL {\n\t// \treturn new SQL([this]);\n\t// }\n}\n\nexport class WithSubquery extends Subquery {\n\tstatic readonly [entityKind]: string = 'WithSubquery';\n}", "export function iife(fn: (...args: T) => U, ...args: T): U {\n\treturn fn(...args);\n}", "// package.json\nvar version = \"0.29.5\";\n\n// src/version.ts\nvar compatibilityVersion = 6;\nexport {\n compatibilityVersion,\n version as npmVersion\n};\n", "import type { Span, Tracer } from '@opentelemetry/api';\nimport { iife } from '~/tracing-utils.ts';\nimport { npmVersion } from '~/version.ts';\n\nlet otel: typeof import('@opentelemetry/api') | undefined;\nlet rawTracer: Tracer | undefined;\n// try {\n// \totel = await import('@opentelemetry/api');\n// } catch (err: any) {\n// \tif (err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') {\n// \t\tthrow err;\n// \t}\n// }\n\ntype SpanName =\n\t| 'drizzle.operation'\n\t| 'drizzle.prepareQuery'\n\t| 'drizzle.buildSQL'\n\t| 'drizzle.execute'\n\t| 'drizzle.driver.execute'\n\t| 'drizzle.mapResponse';\n\n/** @internal */\nexport const tracer = {\n\tstartActiveSpan unknown>(name: SpanName, fn: F): ReturnType {\n\t\tif (!otel) {\n\t\t\treturn fn() as ReturnType;\n\t\t}\n\n\t\tif (!rawTracer) {\n\t\t\trawTracer = otel.trace.getTracer('drizzle-orm', npmVersion);\n\t\t}\n\n\t\treturn iife(\n\t\t\t(otel, rawTracer) =>\n\t\t\t\trawTracer.startActiveSpan(\n\t\t\t\t\tname,\n\t\t\t\t\t((span: Span) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn fn(span);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tspan.setStatus({\n\t\t\t\t\t\t\t\tcode: otel.SpanStatusCode.ERROR,\n\t\t\t\t\t\t\t\tmessage: e instanceof Error ? e.message : 'Unknown error', // eslint-disable-line no-instanceof/no-instanceof\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tspan.end();\n\t\t\t\t\t\t}\n\t\t\t\t\t}) as F,\n\t\t\t\t),\n\t\t\totel,\n\t\t\trawTracer,\n\t\t);\n\t},\n};\n", "export const ViewBaseConfig = Symbol.for('drizzle:ViewBaseConfig');\n", "import type { Column, GetColumnData } from './column.ts';\nimport { entityKind } from './entity.ts';\nimport type { OptionalKeyOnly, RequiredKeyOnly } from './operations.ts';\nimport type { SQLWrapper } from './sql/sql.ts';\nimport type { Simplify, Update } from './utils.ts';\n\nexport interface TableConfig> {\n\tname: string;\n\tschema: string | undefined;\n\tcolumns: Record;\n\tdialect: string;\n}\n\nexport type UpdateTableConfig> = Required<\n\tUpdate\n>;\n\n/** @internal */\nexport const TableName = Symbol.for('drizzle:Name');\n\n/** @internal */\nexport const Schema = Symbol.for('drizzle:Schema');\n\n/** @internal */\nexport const Columns = Symbol.for('drizzle:Columns');\n\n/** @internal */\nexport const OriginalName = Symbol.for('drizzle:OriginalName');\n\n/** @internal */\nexport const BaseName = Symbol.for('drizzle:BaseName');\n\n/** @internal */\nexport const IsAlias = Symbol.for('drizzle:IsAlias');\n\n/** @internal */\nexport const ExtraConfigBuilder = Symbol.for('drizzle:ExtraConfigBuilder');\n\nconst IsDrizzleTable = Symbol.for('drizzle:IsDrizzleTable');\n\nexport interface Table<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends TableConfig = TableConfig,\n> extends SQLWrapper {\n\t// SQLWrapper runtime implementation is defined in 'sql/sql.ts'\n}\n\nexport class Table implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Table';\n\n\tdeclare readonly _: {\n\t\treadonly brand: 'Table';\n\t\treadonly config: T;\n\t\treadonly name: T['name'];\n\t\treadonly schema: T['schema'];\n\t\treadonly columns: T['columns'];\n\t\treadonly inferSelect: InferSelectModel>;\n\t\treadonly inferInsert: InferInsertModel>;\n\t};\n\n\tdeclare readonly $inferSelect: InferSelectModel>;\n\tdeclare readonly $inferInsert: InferInsertModel>;\n\n\t/** @internal */\n\tstatic readonly Symbol = {\n\t\tName: TableName as typeof TableName,\n\t\tSchema: Schema as typeof Schema,\n\t\tOriginalName: OriginalName as typeof OriginalName,\n\t\tColumns: Columns as typeof Columns,\n\t\tBaseName: BaseName as typeof BaseName,\n\t\tIsAlias: IsAlias as typeof IsAlias,\n\t\tExtraConfigBuilder: ExtraConfigBuilder as typeof ExtraConfigBuilder,\n\t};\n\n\t/**\n\t * @internal\n\t * Can be changed if the table is aliased.\n\t */\n\t[TableName]: string;\n\n\t/**\n\t * @internal\n\t * Used to store the original name of the table, before any aliasing.\n\t */\n\t[OriginalName]: string;\n\n\t/** @internal */\n\t[Schema]: string | undefined;\n\n\t/** @internal */\n\t[Columns]!: T['columns'];\n\n\t/**\n\t * @internal\n\t * Used to store the table name before the transformation via the `tableCreator` functions.\n\t */\n\t[BaseName]: string;\n\n\t/** @internal */\n\t[IsAlias] = false;\n\n\t/** @internal */\n\t[ExtraConfigBuilder]: ((self: any) => Record) | undefined = undefined;\n\n\t[IsDrizzleTable] = true;\n\n\tconstructor(name: string, schema: string | undefined, baseName: string) {\n\t\tthis[TableName] = this[OriginalName] = name;\n\t\tthis[Schema] = schema;\n\t\tthis[BaseName] = baseName;\n\t}\n}\n\nexport function isTable(table: unknown): table is Table {\n\treturn typeof table === 'object' && table !== null && IsDrizzleTable in table;\n}\n\n/**\n * Any table with a specified boundary.\n *\n * @example\n\t```ts\n\t// Any table with a specific name\n\ttype AnyUsersTable = AnyTable<{ name: 'users' }>;\n\t```\n *\n * To describe any table with any config, simply use `Table` without any type arguments, like this:\n *\n\t```ts\n\tfunction needsTable(table: Table) {\n\t\t...\n\t}\n\t```\n */\nexport type AnyTable> = Table>;\n\nexport function getTableName(table: T): T['_']['name'] {\n\treturn table[TableName];\n}\n\nexport type MapColumnName =\n\tTDBColumNames extends true ? TColumn['_']['name']\n\t\t: TName;\n\nexport type InferModelFromColumns<\n\tTColumns extends Record,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = Simplify<\n\tTInferMode extends 'insert' ? \n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as RequiredKeyOnly<\n\t\t\t\t\t\tMapColumnName,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]: GetColumnData;\n\t\t\t}\n\t\t\t& {\n\t\t\t\t[\n\t\t\t\t\tKey in keyof TColumns & string as OptionalKeyOnly<\n\t\t\t\t\t\tMapColumnName,\n\t\t\t\t\t\tTColumns[Key]\n\t\t\t\t\t>\n\t\t\t\t]?: GetColumnData;\n\t\t\t}\n\t\t: {\n\t\t\t[\n\t\t\t\tKey in keyof TColumns & string as MapColumnName<\n\t\t\t\t\tKey,\n\t\t\t\t\tTColumns[Key],\n\t\t\t\t\tTConfig['dbColumnNames']\n\t\t\t\t>\n\t\t\t]: GetColumnData;\n\t\t}\n>;\n\n/** @deprecated Use one of the alternatives: {@link InferSelectModel} / {@link InferInsertModel}, or `table.$inferSelect` / `table.$inferInsert`\n */\nexport type InferModel<\n\tTTable extends Table,\n\tTInferMode extends 'select' | 'insert' = 'select',\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns;\n\nexport type InferSelectModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns;\n\nexport type InferInsertModel<\n\tTTable extends Table,\n\tTConfig extends { dbColumnNames: boolean } = { dbColumnNames: false },\n> = InferModelFromColumns;\n", "import { entityKind, is } from '~/entity.ts';\nimport type { SelectedFields } from '~/operations.ts';\nimport { Subquery, SubqueryConfig } from '~/subquery.ts';\nimport { tracer } from '~/tracing.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type { AnyColumn } from '../column.ts';\nimport { Column } from '../column.ts';\nimport { Table } from '../table.ts';\n\n/**\n * This class is used to indicate a primitive param value that is used in `sql` tag.\n * It is only used on type level and is never instantiated at runtime.\n * If you see a value of this type in the code, its runtime value is actually the primitive param value.\n */\nexport class FakePrimitiveParam {\n\tstatic readonly [entityKind]: string = 'FakePrimitiveParam';\n}\n\nexport type Chunk =\n\t| string\n\t| Table\n\t| View\n\t| AnyColumn\n\t| Name\n\t| Param\n\t| Placeholder\n\t| SQL;\n\nexport interface BuildQueryConfig {\n\tescapeName(name: string): string;\n\tescapeParam(num: number, value: unknown): string;\n\tescapeString(str: string): string;\n\tprepareTyping?: (encoder: DriverValueEncoder) => QueryTypingsValue;\n\tparamStartIndex?: { value: number };\n\tinlineParams?: boolean;\n}\n\nexport type QueryTypingsValue = 'json' | 'decimal' | 'time' | 'timestamp' | 'uuid' | 'date' | 'none';\n\nexport interface Query {\n\tsql: string;\n\tparams: unknown[];\n}\n\nexport interface QueryWithTypings extends Query {\n\ttypings?: QueryTypingsValue[];\n}\n\n/**\n * Any value that implements the `getSQL` method. The implementations include:\n * - `Table`\n * - `Column`\n * - `View`\n * - `Subquery`\n * - `SQL`\n * - `SQL.Aliased`\n * - `Placeholder`\n * - `Param`\n */\nexport interface SQLWrapper {\n\tgetSQL(): SQL;\n}\n\nexport function isSQLWrapper(value: unknown): value is SQLWrapper {\n\treturn typeof value === 'object' && value !== null && 'getSQL' in value\n\t\t&& typeof (value as any).getSQL === 'function';\n}\n\nfunction mergeQueries(queries: QueryWithTypings[]): QueryWithTypings {\n\tconst result: QueryWithTypings = { sql: '', params: [] };\n\tfor (const query of queries) {\n\t\tresult.sql += query.sql;\n\t\tresult.params.push(...query.params);\n\t\tif (query.typings?.length) {\n\t\t\tif (!result.typings) {\n\t\t\t\tresult.typings = [];\n\t\t\t}\n\t\t\tresult.typings.push(...query.typings);\n\t\t}\n\t}\n\treturn result;\n}\n\nexport class StringChunk implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'StringChunk';\n\n\treadonly value: string[];\n\n\tconstructor(value: string | string[]) {\n\t\tthis.value = Array.isArray(value) ? value : [value];\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\nexport class SQL implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQL';\n\n\tdeclare _: {\n\t\tbrand: 'SQL';\n\t\ttype: T;\n\t};\n\n\t/** @internal */\n\tdecoder: DriverValueDecoder = noopDecoder;\n\tprivate shouldInlineParams = false;\n\n\tconstructor(readonly queryChunks: SQLChunk[]) {}\n\n\tappend(query: SQL): this {\n\t\tthis.queryChunks.push(...query.queryChunks);\n\t\treturn this;\n\t}\n\n\ttoQuery(config: BuildQueryConfig): QueryWithTypings {\n\t\treturn tracer.startActiveSpan('drizzle.buildSQL', (span) => {\n\t\t\tconst query = this.buildQueryFromSourceParams(this.queryChunks, config);\n\t\t\tspan?.setAttributes({\n\t\t\t\t'drizzle.query.text': query.sql,\n\t\t\t\t'drizzle.query.params': JSON.stringify(query.params),\n\t\t\t});\n\t\t\treturn query;\n\t\t});\n\t}\n\n\tbuildQueryFromSourceParams(chunks: SQLChunk[], _config: BuildQueryConfig): Query {\n\t\tconst config = Object.assign({}, _config, {\n\t\t\tinlineParams: _config.inlineParams || this.shouldInlineParams,\n\t\t\tparamStartIndex: _config.paramStartIndex || { value: 0 },\n\t\t});\n\n\t\tconst {\n\t\t\tescapeName,\n\t\t\tescapeParam,\n\t\t\tprepareTyping,\n\t\t\tinlineParams,\n\t\t\tparamStartIndex,\n\t\t} = config;\n\n\t\treturn mergeQueries(chunks.map((chunk): QueryWithTypings => {\n\t\t\tif (is(chunk, StringChunk)) {\n\t\t\t\treturn { sql: chunk.value.join(''), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Name)) {\n\t\t\t\treturn { sql: escapeName(chunk.value), params: [] };\n\t\t\t}\n\n\t\t\tif (chunk === undefined) {\n\t\t\t\treturn { sql: '', params: [] };\n\t\t\t}\n\n\t\t\tif (Array.isArray(chunk)) {\n\t\t\t\tconst result: SQLChunk[] = [new StringChunk('(')];\n\t\t\t\tfor (const [i, p] of chunk.entries()) {\n\t\t\t\t\tresult.push(p);\n\t\t\t\t\tif (i < chunk.length - 1) {\n\t\t\t\t\t\tresult.push(new StringChunk(', '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresult.push(new StringChunk(')'));\n\t\t\t\treturn this.buildQueryFromSourceParams(result, config);\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL)) {\n\t\t\t\treturn this.buildQueryFromSourceParams(chunk.queryChunks, {\n\t\t\t\t\t...config,\n\t\t\t\t\tinlineParams: inlineParams || chunk.shouldInlineParams,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (is(chunk, Table)) {\n\t\t\t\tconst schemaName = chunk[Table.Symbol.Schema];\n\t\t\t\tconst tableName = chunk[Table.Symbol.Name];\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(tableName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(tableName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Column)) {\n\t\t\t\treturn { sql: escapeName(chunk.table[Table.Symbol.Name]) + '.' + escapeName(chunk.name), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, View)) {\n\t\t\t\tconst schemaName = chunk[ViewBaseConfig].schema;\n\t\t\t\tconst viewName = chunk[ViewBaseConfig].name;\n\t\t\t\treturn {\n\t\t\t\t\tsql: schemaName === undefined\n\t\t\t\t\t\t? escapeName(viewName)\n\t\t\t\t\t\t: escapeName(schemaName) + '.' + escapeName(viewName),\n\t\t\t\t\tparams: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (is(chunk, Param)) {\n\t\t\t\tconst mappedValue = (chunk.value === null) ? null : chunk.encoder.mapToDriverValue(chunk.value);\n\n\t\t\t\tif (is(mappedValue, SQL)) {\n\t\t\t\t\treturn this.buildQueryFromSourceParams([mappedValue], config);\n\t\t\t\t}\n\n\t\t\t\tif (inlineParams) {\n\t\t\t\t\treturn { sql: this.mapInlineParam(mappedValue, config), params: [] };\n\t\t\t\t}\n\n\t\t\t\tlet typings: QueryTypingsValue[] | undefined;\n\t\t\t\tif (prepareTyping !== undefined) {\n\t\t\t\t\ttypings = [prepareTyping(chunk.encoder)];\n\t\t\t\t}\n\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, mappedValue), params: [mappedValue], typings };\n\t\t\t}\n\n\t\t\tif (is(chunk, Placeholder)) {\n\t\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk] };\n\t\t\t}\n\n\t\t\tif (is(chunk, SQL.Aliased) && chunk.fieldAlias !== undefined) {\n\t\t\t\treturn { sql: escapeName(chunk.fieldAlias), params: [] };\n\t\t\t}\n\n\t\t\tif (is(chunk, Subquery)) {\n\t\t\t\tif (chunk[SubqueryConfig].isWith) {\n\t\t\t\t\treturn { sql: escapeName(chunk[SubqueryConfig].alias), params: [] };\n\t\t\t\t}\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk[SubqueryConfig].sql,\n\t\t\t\t\tnew StringChunk(') '),\n\t\t\t\t\tnew Name(chunk[SubqueryConfig].alias),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (isSQLWrapper(chunk)) {\n\t\t\t\treturn this.buildQueryFromSourceParams([\n\t\t\t\t\tnew StringChunk('('),\n\t\t\t\t\tchunk.getSQL(),\n\t\t\t\t\tnew StringChunk(')'),\n\t\t\t\t], config);\n\t\t\t}\n\n\t\t\tif (inlineParams) {\n\t\t\t\treturn { sql: this.mapInlineParam(chunk, config), params: [] };\n\t\t\t}\n\n\t\t\treturn { sql: escapeParam(paramStartIndex.value++, chunk), params: [chunk] };\n\t\t}));\n\t}\n\n\tprivate mapInlineParam(\n\t\tchunk: unknown,\n\t\t{ escapeString }: BuildQueryConfig,\n\t): string {\n\t\tif (chunk === null) {\n\t\t\treturn 'null';\n\t\t}\n\t\tif (typeof chunk === 'number' || typeof chunk === 'boolean') {\n\t\t\treturn chunk.toString();\n\t\t}\n\t\tif (typeof chunk === 'string') {\n\t\t\treturn escapeString(chunk);\n\t\t}\n\t\tif (typeof chunk === 'object') {\n\t\t\tconst mappedValueAsString = chunk.toString();\n\t\t\tif (mappedValueAsString === '[object Object]') {\n\t\t\t\treturn escapeString(JSON.stringify(chunk));\n\t\t\t}\n\t\t\treturn escapeString(mappedValueAsString);\n\t\t}\n\t\tthrow new Error('Unexpected param value: ' + chunk);\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn this;\n\t}\n\n\tas(alias: string): SQL.Aliased;\n\t/**\n\t * @deprecated\n\t * Use ``sql`query`.as(alias)`` instead.\n\t */\n\tas(): SQL;\n\t/**\n\t * @deprecated\n\t * Use ``sql`query`.as(alias)`` instead.\n\t */\n\tas(alias: string): SQL.Aliased;\n\tas(alias?: string): SQL | SQL.Aliased {\n\t\t// TODO: remove with deprecated overloads\n\t\tif (alias === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new SQL.Aliased(this, alias);\n\t}\n\n\tmapWith<\n\t\tTDecoder extends\n\t\t\t| DriverValueDecoder\n\t\t\t| DriverValueDecoder['mapFromDriverValue'],\n\t>(decoder: TDecoder): SQL> {\n\t\tthis.decoder = typeof decoder === 'function' ? { mapFromDriverValue: decoder } : decoder;\n\t\treturn this as SQL>;\n\t}\n\n\tinlineParams(): this {\n\t\tthis.shouldInlineParams = true;\n\t\treturn this;\n\t}\n}\n\nexport type GetDecoderResult = T extends Column ? T['_']['data'] : T extends\n\t| DriverValueDecoder\n\t| DriverValueDecoder['mapFromDriverValue'] ? TData\n: never;\n\n/**\n * Any DB name (table, column, index etc.)\n */\nexport class Name implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Name';\n\n\tprotected brand!: 'Name';\n\n\tconstructor(readonly value: string) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/**\n * Any DB name (table, column, index etc.)\n * @deprecated Use `sql.identifier` instead.\n */\nexport function name(value: string): Name {\n\treturn new Name(value);\n}\n\nexport interface DriverValueDecoder {\n\tmapFromDriverValue(value: TDriverParam): TData;\n}\n\nexport interface DriverValueEncoder {\n\tmapToDriverValue(value: TData): TDriverParam | SQL;\n}\n\nexport function isDriverValueEncoder(value: unknown): value is DriverValueEncoder {\n\treturn typeof value === 'object' && value !== null && 'mapToDriverValue' in value\n\t\t&& typeof (value as any).mapToDriverValue === 'function';\n}\n\nexport const noopDecoder: DriverValueDecoder = {\n\tmapFromDriverValue: (value) => value,\n};\n\nexport const noopEncoder: DriverValueEncoder = {\n\tmapToDriverValue: (value) => value,\n};\n\nexport interface DriverValueMapper\n\textends DriverValueDecoder, DriverValueEncoder\n{}\n\nexport const noopMapper: DriverValueMapper = {\n\t...noopDecoder,\n\t...noopEncoder,\n};\n\n/** Parameter value that is optionally bound to an encoder (for example, a column). */\nexport class Param implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Param';\n\n\tprotected brand!: 'BoundParamValue';\n\n\t/**\n\t * @param value - Parameter value\n\t * @param encoder - Encoder to convert the value to a driver parameter\n\t */\n\tconstructor(\n\t\treadonly value: TDataType,\n\t\treadonly encoder: DriverValueEncoder = noopEncoder,\n\t) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.param` instead. */\nexport function param(\n\tvalue: TData,\n\tencoder?: DriverValueEncoder,\n): Param {\n\treturn new Param(value, encoder);\n}\n\n/**\n * Anything that can be passed to the `` sql`...` `` tagged function.\n */\nexport type SQLChunk =\n\t| StringChunk\n\t| SQLChunk[]\n\t| SQLWrapper\n\t| SQL\n\t| Table\n\t| View\n\t| Subquery\n\t| AnyColumn\n\t| Param\n\t| Name\n\t| undefined\n\t| FakePrimitiveParam\n\t| Placeholder;\n\nexport function sql(strings: TemplateStringsArray, ...params: any[]): SQL;\n/*\n\tThe type of `params` is specified as `SQLSourceParam[]`, but that's slightly incorrect -\n\tin runtime, users won't pass `FakePrimitiveParam` instances as `params` - they will pass primitive values\n\twhich will be wrapped in `Param` using `buildChunksFromParam(...)`. That's why the overload\n\tspecify `params` as `any[]` and not as `SQLSourceParam[]`. This type is used to make our lives easier and\n\tthe type checker happy.\n*/\nexport function sql(strings: TemplateStringsArray, ...params: SQLChunk[]): SQL {\n\tconst queryChunks: SQLChunk[] = [];\n\tif (params.length > 0 || (strings.length > 0 && strings[0] !== '')) {\n\t\tqueryChunks.push(new StringChunk(strings[0]!));\n\t}\n\tfor (const [paramIndex, param] of params.entries()) {\n\t\tqueryChunks.push(param, new StringChunk(strings[paramIndex + 1]!));\n\t}\n\n\treturn new SQL(queryChunks);\n}\n\nexport namespace sql {\n\texport function empty(): SQL {\n\t\treturn new SQL([]);\n\t}\n\n\t/** @deprecated - use `sql.join()` */\n\texport function fromList(list: SQLChunk[]): SQL {\n\t\treturn new SQL(list);\n\t}\n\n\t/**\n\t * Convenience function to create an SQL query from a raw string.\n\t * @param str The raw SQL query string.\n\t */\n\texport function raw(str: string): SQL {\n\t\treturn new SQL([new StringChunk(str)]);\n\t}\n\n\t/**\n\t * Join a list of SQL chunks with a separator.\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`]);\n\t * // sql`abc`\n\t * ```\n\t * @example\n\t * ```ts\n\t * const query = sql.join([sql`a`, sql`b`, sql`c`], sql`, `);\n\t * // sql`a, b, c`\n\t * ```\n\t */\n\texport function join(chunks: SQLChunk[], separator?: SQLChunk): SQL {\n\t\tconst result: SQLChunk[] = [];\n\t\tfor (const [i, chunk] of chunks.entries()) {\n\t\t\tif (i > 0 && separator !== undefined) {\n\t\t\t\tresult.push(separator);\n\t\t\t}\n\t\t\tresult.push(chunk);\n\t\t}\n\t\treturn new SQL(result);\n\t}\n\n\t/**\n\t * Create a SQL chunk that represents a DB identifier (table, column, index etc.).\n\t * When used in a query, the identifier will be escaped based on the DB engine.\n\t * For example, in PostgreSQL, identifiers are escaped with double quotes.\n\t *\n\t * **WARNING: This function does not offer any protection against SQL injections, so you must validate any user input beforehand.**\n\t *\n\t * @example ```ts\n\t * const query = sql`SELECT * FROM ${sql.identifier('my-table')}`;\n\t * // 'SELECT * FROM \"my-table\"'\n\t * ```\n\t */\n\texport function identifier(value: string): Name {\n\t\treturn new Name(value);\n\t}\n\n\texport function placeholder(name: TName): Placeholder {\n\t\treturn new Placeholder(name);\n\t}\n\n\texport function param(\n\t\tvalue: TData,\n\t\tencoder?: DriverValueEncoder,\n\t): Param {\n\t\treturn new Param(value, encoder);\n\t}\n}\n\nexport namespace SQL {\n\texport class Aliased implements SQLWrapper {\n\t\tstatic readonly [entityKind]: string = 'SQL.Aliased';\n\n\t\tdeclare _: {\n\t\t\tbrand: 'SQL.Aliased';\n\t\t\ttype: T;\n\t\t};\n\n\t\t/** @internal */\n\t\tisSelectionField = false;\n\n\t\tconstructor(\n\t\t\treadonly sql: SQL,\n\t\t\treadonly fieldAlias: string,\n\t\t) {}\n\n\t\tgetSQL(): SQL {\n\t\t\treturn this.sql;\n\t\t}\n\n\t\t/** @internal */\n\t\tclone() {\n\t\t\treturn new Aliased(this.sql, this.fieldAlias);\n\t\t}\n\t}\n}\n\nexport class Placeholder implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'Placeholder';\n\n\tdeclare protected: TValue;\n\n\tconstructor(readonly name: TName) {}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n/** @deprecated Use `sql.placeholder` instead. */\nexport function placeholder(name: TName): Placeholder {\n\treturn new Placeholder(name);\n}\n\nexport function fillPlaceholders(params: unknown[], values: Record): unknown[] {\n\treturn params.map((p) => {\n\t\tif (is(p, Placeholder)) {\n\t\t\tif (!(p.name in values)) {\n\t\t\t\tthrow new Error(`No value for placeholder \"${p.name}\" was provided`);\n\t\t\t}\n\t\t\treturn values[p.name];\n\t\t}\n\n\t\treturn p;\n\t});\n}\n\nexport type ColumnsSelection = Record;\n\nexport abstract class View<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'View';\n\n\tdeclare _: {\n\t\tbrand: 'View';\n\t\tviewBrand: string;\n\t\tname: TName;\n\t\texisting: TExisting;\n\t\tselectedFields: TSelection;\n\t};\n\n\t/** @internal */\n\t[ViewBaseConfig]: {\n\t\tname: TName;\n\t\toriginalName: TName;\n\t\tschema: string | undefined;\n\t\tselectedFields: SelectedFields;\n\t\tisExisting: TExisting;\n\t\tquery: TExisting extends true ? undefined : SQL;\n\t\tisAlias: boolean;\n\t};\n\n\tconstructor(\n\t\t{ name, schema, selectedFields, query }: {\n\t\t\tname: TName;\n\t\t\tschema: string | undefined;\n\t\t\tselectedFields: SelectedFields;\n\t\t\tquery: SQL | undefined;\n\t\t},\n\t) {\n\t\tthis[ViewBaseConfig] = {\n\t\t\tname,\n\t\t\toriginalName: name,\n\t\t\tschema,\n\t\t\tselectedFields,\n\t\t\tquery: query as (TExisting extends true ? undefined : SQL),\n\t\t\tisExisting: !query as TExisting,\n\t\t\tisAlias: false,\n\t\t};\n\t}\n\n\tgetSQL(): SQL {\n\t\treturn new SQL([this]);\n\t}\n}\n\n// Defined separately from the Column class to resolve circular dependency\nColumn.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Table class to resolve circular dependency\nTable.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n\n// Defined separately from the Column class to resolve circular dependency\nSubquery.prototype.getSQL = function() {\n\treturn new SQL([this]);\n};\n", "import type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport type { Relation } from './relations.ts';\nimport type { View } from './sql/sql.ts';\nimport { SQL, sql } from './sql/sql.ts';\nimport { Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class ColumnAliasProxyHandler implements ProxyHandler {\n\tstatic readonly [entityKind]: string = 'ColumnAliasProxyHandler';\n\n\tconstructor(private table: Table | View) {}\n\n\tget(columnObj: TColumn, prop: string | symbol): any {\n\t\tif (prop === 'table') {\n\t\t\treturn this.table;\n\t\t}\n\n\t\treturn columnObj[prop as keyof TColumn];\n\t}\n}\n\nexport class TableAliasProxyHandler implements ProxyHandler {\n\tstatic readonly [entityKind]: string = 'TableAliasProxyHandler';\n\n\tconstructor(private alias: string, private replaceOriginalName: boolean) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === Table.Symbol.IsAlias) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (prop === Table.Symbol.Name) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (this.replaceOriginalName && prop === Table.Symbol.OriginalName) {\n\t\t\treturn this.alias;\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...target[ViewBaseConfig as keyof typeof target],\n\t\t\t\tname: this.alias,\n\t\t\t\tisAlias: true,\n\t\t\t};\n\t\t}\n\n\t\tif (prop === Table.Symbol.Columns) {\n\t\t\tconst columns = (target as Table)[Table.Symbol.Columns];\n\t\t\tif (!columns) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tconst proxiedColumns: { [key: string]: any } = {};\n\n\t\t\tObject.keys(columns).map((key) => {\n\t\t\t\tproxiedColumns[key] = new Proxy(\n\t\t\t\t\tcolumns[key]!,\n\t\t\t\t\tnew ColumnAliasProxyHandler(new Proxy(target, this)),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn proxiedColumns;\n\t\t}\n\n\t\tconst value = target[prop as keyof typeof target];\n\t\tif (is(value, Column)) {\n\t\t\treturn new Proxy(value as AnyColumn, new ColumnAliasProxyHandler(new Proxy(target, this)));\n\t\t}\n\n\t\treturn value;\n\t}\n}\n\nexport class RelationTableAliasProxyHandler implements ProxyHandler {\n\tstatic readonly [entityKind]: string = 'RelationTableAliasProxyHandler';\n\n\tconstructor(private alias: string) {}\n\n\tget(target: T, prop: string | symbol): any {\n\t\tif (prop === 'sourceTable') {\n\t\t\treturn aliasedTable(target.sourceTable, this.alias);\n\t\t}\n\n\t\treturn target[prop as keyof typeof target];\n\t}\n}\n\nexport function aliasedTable(table: T, tableAlias: string): T {\n\treturn new Proxy(table, new TableAliasProxyHandler(tableAlias, false));\n}\n\nexport function aliasedRelation(relation: T, tableAlias: string): T {\n\treturn new Proxy(relation, new RelationTableAliasProxyHandler(tableAlias));\n}\n\nexport function aliasedTableColumn(column: T, tableAlias: string): T {\n\treturn new Proxy(\n\t\tcolumn,\n\t\tnew ColumnAliasProxyHandler(new Proxy(column.table, new TableAliasProxyHandler(tableAlias, false))),\n\t);\n}\n\nexport function mapColumnsInAliasedSQLToAlias(query: SQL.Aliased, alias: string): SQL.Aliased {\n\treturn new SQL.Aliased(mapColumnsInSQLToAlias(query.sql, alias), query.fieldAlias);\n}\n\nexport function mapColumnsInSQLToAlias(query: SQL, alias: string): SQL {\n\treturn sql.join(query.queryChunks.map((c) => {\n\t\tif (is(c, Column)) {\n\t\t\treturn aliasedTableColumn(c, alias);\n\t\t}\n\t\tif (is(c, SQL)) {\n\t\t\treturn mapColumnsInSQLToAlias(c, alias);\n\t\t}\n\t\tif (is(c, SQL.Aliased)) {\n\t\t\treturn mapColumnsInAliasedSQLToAlias(c, alias);\n\t\t}\n\t\treturn c;\n\t}));\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { Column } from './column.ts';\nimport type { MySqlColumn } from './mysql-core/index.ts';\nimport type { PgColumn } from './pg-core/index.ts';\nimport type { SQL } from './sql/sql.ts';\nimport type { SQLiteColumn } from './sqlite-core/index.ts';\nimport type { Simplify } from './utils.ts';\n\nexport type ColumnDataType =\n\t| 'string'\n\t| 'number'\n\t| 'boolean'\n\t| 'array'\n\t| 'json'\n\t| 'date'\n\t| 'bigint'\n\t| 'custom'\n\t| 'buffer';\n\nexport type Dialect = 'pg' | 'mysql' | 'sqlite' | 'common';\n\nexport interface ColumnBuilderBaseConfig {\n\tname: string;\n\tdataType: TDataType;\n\tcolumnType: TColumnType;\n\tdata: unknown;\n\tdriverParam: unknown;\n\tenumValues: string[] | undefined;\n}\n\nexport type MakeColumnConfig<\n\tT extends ColumnBuilderBaseConfig,\n\tTTableName extends string,\n> = {\n\tname: T['name'];\n\ttableName: TTableName;\n\tdataType: T['dataType'];\n\tcolumnType: T['columnType'];\n\tdata: T extends { $type: infer U } ? U : T['data'];\n\tdriverParam: T['driverParam'];\n\tnotNull: T extends { notNull: true } ? true : false;\n\thasDefault: T extends { hasDefault: true } ? true : false;\n\tenumValues: T['enumValues'];\n\tbaseColumn: T extends { baseBuilder: infer U extends ColumnBuilderBase } ? BuildColumn\n\t\t: never;\n} & {};\n\nexport type ColumnBuilderTypeConfig<\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tT extends ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> = Simplify<\n\t& {\n\t\tbrand: 'ColumnBuilder';\n\t\tname: T['name'];\n\t\tdataType: T['dataType'];\n\t\tcolumnType: T['columnType'];\n\t\tdata: T['data'];\n\t\tdriverParam: T['driverParam'];\n\t\tnotNull: T extends { notNull: infer U } ? U : boolean;\n\t\thasDefault: T extends { hasDefault: infer U } ? U : boolean;\n\t\tenumValues: T['enumValues'];\n\t}\n\t& TTypeConfig\n>;\n\nexport type ColumnBuilderRuntimeConfig = {\n\tname: string;\n\tnotNull: boolean;\n\tdefault: TData | SQL | undefined;\n\tdefaultFn: (() => TData | SQL) | undefined;\n\thasDefault: boolean;\n\tprimaryKey: boolean;\n\tisUnique: boolean;\n\tuniqueName: string | undefined;\n\tuniqueType: string | undefined;\n\tdataType: string;\n\tcolumnType: string;\n} & TRuntimeConfig;\n\nexport interface ColumnBuilderExtraConfig {\n\tprimaryKeyHasDefault?: boolean;\n}\n\nexport type NotNull = T & {\n\t_: {\n\t\tnotNull: true;\n\t};\n};\n\nexport type HasDefault = T & {\n\t_: {\n\t\thasDefault: true;\n\t};\n};\n\nexport type $Type = T & {\n\t_: {\n\t\t$type: TType;\n\t};\n};\n\nexport interface ColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> {\n\t_: ColumnBuilderTypeConfig;\n}\n\n// To understand how to use `ColumnBuilder` and `AnyColumnBuilder`, see `Column` and `AnyColumn` documentation.\nexport abstract class ColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> implements ColumnBuilderBase {\n\tstatic readonly [entityKind]: string = 'ColumnBuilder';\n\n\tdeclare _: ColumnBuilderTypeConfig;\n\n\tprotected config: ColumnBuilderRuntimeConfig;\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tthis.config = {\n\t\t\tname,\n\t\t\tnotNull: false,\n\t\t\tdefault: undefined,\n\t\t\thasDefault: false,\n\t\t\tprimaryKey: false,\n\t\t\tisUnique: false,\n\t\t\tuniqueName: undefined,\n\t\t\tuniqueType: undefined,\n\t\t\tdataType,\n\t\t\tcolumnType,\n\t\t} as ColumnBuilderRuntimeConfig;\n\t}\n\n\t/**\n\t * Changes the data type of the column. Commonly used with `json` columns. Also, useful for branded types.\n\t *\n\t * @example\n\t * ```ts\n\t * const users = pgTable('users', {\n\t * \tid: integer('id').$type().primaryKey(),\n\t * \tdetails: json('details').$type().notNull(),\n\t * });\n\t * ```\n\t */\n\t$type(): $Type {\n\t\treturn this as $Type;\n\t}\n\n\t/**\n\t * Adds a `not null` clause to the column definition.\n\t *\n\t * Affects the `select` model of the table - columns *without* `not null` will be nullable on select.\n\t */\n\tnotNull(): NotNull {\n\t\tthis.config.notNull = true;\n\t\treturn this as NotNull;\n\t}\n\n\t/**\n\t * Adds a `default ` clause to the column definition.\n\t *\n\t * Affects the `insert` model of the table - columns *with* `default` are optional on insert.\n\t *\n\t * If you need to set a dynamic default value, use {@link $defaultFn} instead.\n\t */\n\tdefault(value: (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL): HasDefault {\n\t\tthis.config.default = value;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault;\n\t}\n\n\t/**\n\t * Adds a dynamic default value to the column.\n\t * The function will be called when the row is inserted, and the returned value will be used as the column value.\n\t *\n\t * **Note:** This value does not affect the `drizzle-kit` behavior, it is only used at runtime in `drizzle-orm`.\n\t */\n\t$defaultFn(\n\t\tfn: () => (this['_'] extends { $type: infer U } ? U : this['_']['data']) | SQL,\n\t): HasDefault {\n\t\tthis.config.defaultFn = fn;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault;\n\t}\n\n\t/**\n\t * Alias for {@link $defaultFn}.\n\t */\n\t$default = this.$defaultFn;\n\n\t/**\n\t * Adds a `primary key` clause to the column definition. This implicitly makes the column `not null`.\n\t *\n\t * In SQLite, `integer primary key` implicitly makes the column auto-incrementing.\n\t */\n\tprimaryKey(): TExtraConfig['primaryKeyHasDefault'] extends true ? HasDefault> : NotNull {\n\t\tthis.config.primaryKey = true;\n\t\tthis.config.notNull = true;\n\t\treturn this as TExtraConfig['primaryKeyHasDefault'] extends true ? HasDefault> : NotNull;\n\t}\n}\n\nexport type BuildColumn<\n\tTTableName extends string,\n\tTBuilder extends ColumnBuilderBase,\n\tTDialect extends Dialect,\n> = TDialect extends 'pg' ? PgColumn>\n\t: TDialect extends 'mysql' ? MySqlColumn>\n\t: TDialect extends 'sqlite' ? SQLiteColumn>\n\t: TDialect extends 'common' ? Column>\n\t: never;\n\nexport type BuildColumns<\n\tTTableName extends string,\n\tTConfigMap extends Record,\n\tTDialect extends Dialect,\n> =\n\t& {\n\t\t[Key in keyof TConfigMap]: BuildColumn;\n\t}\n\t& {};\n\nexport type ChangeColumnTableName =\n\tTDialect extends 'pg' ? PgColumn>\n\t\t: TDialect extends 'mysql' ? MySqlColumn>\n\t\t: TDialect extends 'sqlite' ? SQLiteColumn>\n\t\t: never;\n", "import { entityKind } from '~/entity.ts';\n\nexport class DrizzleError extends Error {\n\tstatic readonly [entityKind]: string = 'DrizzleError';\n\n\tconstructor({ message, cause }: { message?: string; cause?: unknown }) {\n\t\tsuper(message);\n\t\tthis.name = 'DrizzleError';\n\t\tthis.cause = cause;\n\t}\n}\n\nexport class TransactionRollbackError extends DrizzleError {\n\tstatic readonly [entityKind]: string = 'TransactionRollbackError';\n\n\tconstructor() {\n\t\tsuper({ message: 'Rollback' });\n\t}\n}\n", "import { type AnyColumn, Column, type GetColumnData } from '~/column.ts';\nimport { is } from '~/entity.ts';\nimport { Table } from '~/table.ts';\nimport {\n\tisDriverValueEncoder,\n\tisSQLWrapper,\n\tParam,\n\tPlaceholder,\n\tSQL,\n\tsql,\n\ttype SQLChunk,\n\ttype SQLWrapper,\n\tStringChunk,\n\tView,\n} from '../sql.ts';\n\nexport function bindIfParam(value: unknown, column: SQLWrapper): SQLChunk {\n\tif (\n\t\tisDriverValueEncoder(column)\n\t\t&& !isSQLWrapper(value)\n\t\t&& !is(value, Param)\n\t\t&& !is(value, Placeholder)\n\t\t&& !is(value, Column)\n\t\t&& !is(value, Table)\n\t\t&& !is(value, View)\n\t) {\n\t\treturn new Param(value, column);\n\t}\n\treturn value as SQLChunk;\n}\n\nexport interface BinaryOperator {\n\t(\n\t\tleft: TColumn,\n\t\tright: GetColumnData | SQLWrapper,\n\t): SQL;\n\t(left: SQL.Aliased, right: T | SQLWrapper): SQL;\n\t(\n\t\tleft: Exclude,\n\t\tright: unknown,\n\t): SQL;\n}\n\n/**\n * Test that two values are equal.\n *\n * Remember that the SQL standard dictates that\n * two NULL values are not equal, so if you want to test\n * whether a value is null, you may want to use\n * `isNull` instead.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made by Ford\n * db.select().from(cars)\n * .where(eq(cars.make, 'Ford'))\n * ```\n *\n * @see isNull for a way to test equality to NULL.\n */\nexport const eq: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} = ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that two values are not equal.\n *\n * Remember that the SQL standard dictates that\n * two NULL values are not equal, so if you want to test\n * whether a value is not null, you may want to use\n * `isNotNull` instead.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars not made by Ford\n * db.select().from(cars)\n * .where(ne(cars.make, 'Ford'))\n * ```\n *\n * @see isNotNull for a way to test whether a value is not null.\n */\nexport const ne: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} <> ${bindIfParam(right, left)}`;\n};\n\n/**\n * Combine a list of conditions with the `and` operator. Conditions\n * that are equal `undefined` are automatically ignored.\n *\n * ## Examples\n *\n * ```ts\n * db.select().from(cars)\n * .where(\n * and(\n * eq(cars.make, 'Volvo'),\n * eq(cars.year, 1950),\n * )\n * )\n * ```\n */\nexport function and(...conditions: (SQLWrapper | undefined)[]): SQL | undefined;\nexport function and(\n\t...unfilteredConditions: (SQLWrapper | undefined)[]\n): SQL | undefined {\n\tconst conditions = unfilteredConditions.filter(\n\t\t(c): c is Exclude => c !== undefined,\n\t);\n\n\tif (conditions.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tif (conditions.length === 1) {\n\t\treturn new SQL(conditions);\n\t}\n\n\treturn new SQL([\n\t\tnew StringChunk('('),\n\t\tsql.join(conditions, new StringChunk(' and ')),\n\t\tnew StringChunk(')'),\n\t]);\n}\n\n/**\n * Combine a list of conditions with the `or` operator. Conditions\n * that are equal `undefined` are automatically ignored.\n *\n * ## Examples\n *\n * ```ts\n * db.select().from(cars)\n * .where(\n * or(\n * eq(cars.make, 'GM'),\n * eq(cars.make, 'Ford'),\n * )\n * )\n * ```\n */\nexport function or(...conditions: (SQLWrapper | undefined)[]): SQL | undefined;\nexport function or(\n\t...unfilteredConditions: (SQLWrapper | undefined)[]\n): SQL | undefined {\n\tconst conditions = unfilteredConditions.filter(\n\t\t(c): c is Exclude => c !== undefined,\n\t);\n\n\tif (conditions.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tif (conditions.length === 1) {\n\t\treturn new SQL(conditions);\n\t}\n\n\treturn new SQL([\n\t\tnew StringChunk('('),\n\t\tsql.join(conditions, new StringChunk(' or ')),\n\t\tnew StringChunk(')'),\n\t]);\n}\n\n/**\n * Negate the meaning of an expression using the `not` keyword.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars _not_ made by GM or Ford.\n * db.select().from(cars)\n * .where(not(inArray(cars.make, ['GM', 'Ford'])))\n * ```\n */\nexport function not(condition: SQLWrapper): SQL {\n\treturn sql`not ${condition}`;\n}\n\n/**\n * Test that the first expression passed is greater than\n * the second expression.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made after 2000.\n * db.select().from(cars)\n * .where(gt(cars.year, 2000))\n * ```\n *\n * @see gte for greater-than-or-equal\n */\nexport const gt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} > ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that the first expression passed is greater than\n * or equal to the second expression. Use `gt` to\n * test whether an expression is strictly greater\n * than another.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made on or after 2000.\n * db.select().from(cars)\n * .where(gte(cars.year, 2000))\n * ```\n *\n * @see gt for a strictly greater-than condition\n */\nexport const gte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} >= ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that the first expression passed is less than\n * the second expression.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made before 2000.\n * db.select().from(cars)\n * .where(lt(cars.year, 2000))\n * ```\n *\n * @see lte for greater-than-or-equal\n */\nexport const lt: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} < ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test that the first expression passed is less than\n * or equal to the second expression.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made before 2000.\n * db.select().from(cars)\n * .where(lte(cars.year, 2000))\n * ```\n *\n * @see lt for a strictly less-than condition\n */\nexport const lte: BinaryOperator = (left: SQLWrapper, right: unknown): SQL => {\n\treturn sql`${left} <= ${bindIfParam(right, left)}`;\n};\n\n/**\n * Test whether the first parameter, a column or expression,\n * has a value from a list passed as the second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made by Ford or GM.\n * db.select().from(cars)\n * .where(inArray(cars.make, ['Ford', 'GM']))\n * ```\n *\n * @see notInArray for the inverse of this test\n */\nexport function inArray(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function inArray(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function inArray(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function inArray(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('inArray requires at least one value');\n\t\t}\n\t\treturn sql`${column} in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\n\treturn sql`${column} in ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test whether the first parameter, a column or expression,\n * has a value that is not present in a list passed as the\n * second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made by any company except Ford or GM.\n * db.select().from(cars)\n * .where(notInArray(cars.make, ['Ford', 'GM']))\n * ```\n *\n * @see inArray for the inverse of this test\n */\nexport function notInArray(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function notInArray(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function notInArray(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function notInArray(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('notInArray requires at least one value');\n\t\t}\n\t\treturn sql`${column} not in ${values.map((v) => bindIfParam(v, column))}`;\n\t}\n\n\treturn sql`${column} not in ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test whether an expression is NULL. By the SQL standard,\n * NULL is neither equal nor not equal to itself, so\n * it's recommended to use `isNull` and `notIsNull` for\n * comparisons to NULL.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars that have no discontinuedAt date.\n * db.select().from(cars)\n * .where(isNull(cars.discontinuedAt))\n * ```\n *\n * @see isNotNull for the inverse of this test\n */\nexport function isNull(value: SQLWrapper): SQL {\n\treturn sql`${value} is null`;\n}\n\n/**\n * Test whether an expression is not NULL. By the SQL standard,\n * NULL is neither equal nor not equal to itself, so\n * it's recommended to use `isNull` and `notIsNull` for\n * comparisons to NULL.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars that have been discontinued.\n * db.select().from(cars)\n * .where(isNotNull(cars.discontinuedAt))\n * ```\n *\n * @see isNull for the inverse of this test\n */\nexport function isNotNull(value: SQLWrapper): SQL {\n\treturn sql`${value} is not null`;\n}\n\n/**\n * Test whether a subquery evaluates to have any rows.\n *\n * ## Examples\n *\n * ```ts\n * // Users whose `homeCity` column has a match in a cities\n * // table.\n * db\n * .select()\n * .from(users)\n * .where(\n * exists(db.select()\n * .from(cities)\n * .where(eq(users.homeCity, cities.id))),\n * );\n * ```\n *\n * @see notExists for the inverse of this test\n */\nexport function exists(subquery: SQLWrapper): SQL {\n\treturn sql`exists ${subquery}`;\n}\n\n/**\n * Test whether a subquery doesn't include any result\n * rows.\n *\n * ## Examples\n *\n * ```ts\n * // Users whose `homeCity` column doesn't match\n * // a row in the cities table.\n * db\n * .select()\n * .from(users)\n * .where(\n * notExists(db.select()\n * .from(cities)\n * .where(eq(users.homeCity, cities.id))),\n * );\n * ```\n *\n * @see exists for the inverse of this test\n */\nexport function notExists(subquery: SQLWrapper): SQL {\n\treturn sql`not exists ${subquery}`;\n}\n\n/**\n * Test whether an expression is between two values. This\n * is an easier way to express range tests, which would be\n * expressed mathematically as `x <= a <= y` but in SQL\n * would have to be like `a >= x AND a <= y`.\n *\n * Between is inclusive of the endpoints: if `column`\n * is equal to `min` or `max`, it will be TRUE.\n *\n * ## Examples\n *\n * ```ts\n * // Select cars made between 1990 and 2000\n * db.select().from(cars)\n * .where(between(cars.year, 1990, 2000))\n * ```\n *\n * @see notBetween for the inverse of this test\n */\nexport function between(\n\tcolumn: SQL.Aliased,\n\tmin: T | SQLWrapper,\n\tmax: T | SQLWrapper,\n): SQL;\nexport function between(\n\tcolumn: TColumn,\n\tmin: GetColumnData | SQLWrapper,\n\tmax: GetColumnData | SQLWrapper,\n): SQL;\nexport function between(\n\tcolumn: Exclude,\n\tmin: unknown,\n\tmax: unknown,\n): SQL;\nexport function between(column: SQLWrapper, min: unknown, max: unknown): SQL {\n\treturn sql`${column} between ${bindIfParam(min, column)} and ${\n\t\tbindIfParam(\n\t\t\tmax,\n\t\t\tcolumn,\n\t\t)\n\t}`;\n}\n\n/**\n * Test whether an expression is not between two values.\n *\n * This, like `between`, includes its endpoints, so if\n * the `column` is equal to `min` or `max`, in this case\n * it will evaluate to FALSE.\n *\n * ## Examples\n *\n * ```ts\n * // Exclude cars made in the 1970s\n * db.select().from(cars)\n * .where(notBetween(cars.year, 1970, 1979))\n * ```\n *\n * @see between for the inverse of this test\n */\nexport function notBetween(\n\tcolumn: SQL.Aliased,\n\tmin: T | SQLWrapper,\n\tmax: T | SQLWrapper,\n): SQL;\nexport function notBetween(\n\tcolumn: TColumn,\n\tmin: GetColumnData | SQLWrapper,\n\tmax: GetColumnData | SQLWrapper,\n): SQL;\nexport function notBetween(\n\tcolumn: Exclude,\n\tmin: unknown,\n\tmax: unknown,\n): SQL;\nexport function notBetween(\n\tcolumn: SQLWrapper,\n\tmin: unknown,\n\tmax: unknown,\n): SQL {\n\treturn sql`${column} not between ${\n\t\tbindIfParam(\n\t\t\tmin,\n\t\t\tcolumn,\n\t\t)\n\t} and ${bindIfParam(max, column)}`;\n}\n\n/**\n * Compare a column to a pattern, which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars with 'Turbo' in their names.\n * db.select().from(cars)\n * .where(like(cars.name, '%Turbo%'))\n * ```\n *\n * @see ilike for a case-insensitive version of this condition\n */\nexport function like(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} like ${value}`;\n}\n\n/**\n * The inverse of like - this tests that a given column\n * does not match a pattern, which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars that don't have \"ROver\" in their name.\n * db.select().from(cars)\n * .where(notLike(cars.name, '%Rover%'))\n * ```\n *\n * @see like for the inverse condition\n * @see notIlike for a case-insensitive version of this condition\n */\nexport function notLike(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} not like ${value}`;\n}\n\n/**\n * Case-insensitively compare a column to a pattern,\n * which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * Unlike like, this performs a case-insensitive comparison.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars with 'Turbo' in their names.\n * db.select().from(cars)\n * .where(ilike(cars.name, '%Turbo%'))\n * ```\n *\n * @see like for a case-sensitive version of this condition\n */\nexport function ilike(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} ilike ${value}`;\n}\n\n/**\n * The inverse of ilike - this case-insensitively tests that a given column\n * does not match a pattern, which can include `%` and `_`\n * characters to match multiple variations. Including `%`\n * in the pattern matches zero or more characters, and including\n * `_` will match a single character.\n *\n * ## Examples\n *\n * ```ts\n * // Select all cars that don't have \"Rover\" in their name.\n * db.select().from(cars)\n * .where(notLike(cars.name, '%Rover%'))\n * ```\n *\n * @see ilike for the inverse condition\n * @see notLike for a case-sensitive version of this condition\n */\nexport function notIlike(column: Column, value: string | SQLWrapper): SQL {\n\treturn sql`${column} not ilike ${value}`;\n}\n\n/**\n * Test that a column or expression contains all elements of\n * the list passed as the second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select posts where its tags contain \"Typescript\" and \"ORM\".\n * db.select().from(posts)\n * .where(arrayContains(posts.tags, ['Typescript', 'ORM']))\n * ```\n *\n * @see arrayContained to find if an array contains all elements of a column or expression\n * @see arrayOverlaps to find if a column or expression contains any elements of an array\n */\nexport function arrayContains(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContains(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContains(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function arrayContains(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('arrayContains requires at least one value');\n\t\t}\n\t\tconst array = sql`${bindIfParam(values, column)}`;\n\t\treturn sql`${column} @> ${array}`;\n\t}\n\n\treturn sql`${column} @> ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test that the list passed as the second argument contains\n * all elements of a column or expression.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select posts where its tags contain \"Typescript\", \"ORM\" or both,\n * // but filtering posts that have additional tags.\n * db.select().from(posts)\n * .where(arrayContained(posts.tags, ['Typescript', 'ORM']))\n * ```\n *\n * @see arrayContains to find if a column or expression contains all elements of an array\n * @see arrayOverlaps to find if a column or expression contains any elements of an array\n */\nexport function arrayContained(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContained(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayContained(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function arrayContained(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('arrayContained requires at least one value');\n\t\t}\n\t\tconst array = sql`${bindIfParam(values, column)}`;\n\t\treturn sql`${column} <@ ${array}`;\n\t}\n\n\treturn sql`${column} <@ ${bindIfParam(values, column)}`;\n}\n\n/**\n * Test that a column or expression contains any elements of\n * the list passed as the second argument.\n *\n * ## Throws\n *\n * The argument passed in the second array can't be empty:\n * if an empty is provided, this method will throw.\n *\n * ## Examples\n *\n * ```ts\n * // Select posts where its tags contain \"Typescript\", \"ORM\" or both.\n * db.select().from(posts)\n * .where(arrayOverlaps(posts.tags, ['Typescript', 'ORM']))\n * ```\n *\n * @see arrayContains to find if a column or expression contains all elements of an array\n * @see arrayContained to find if an array contains all elements of a column or expression\n */\nexport function arrayOverlaps(\n\tcolumn: SQL.Aliased,\n\tvalues: (T | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayOverlaps(\n\tcolumn: TColumn,\n\tvalues: (GetColumnData | Placeholder) | SQLWrapper,\n): SQL;\nexport function arrayOverlaps(\n\tcolumn: Exclude,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL;\nexport function arrayOverlaps(\n\tcolumn: SQLWrapper,\n\tvalues: (unknown | Placeholder)[] | SQLWrapper,\n): SQL {\n\tif (Array.isArray(values)) {\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('arrayOverlaps requires at least one value');\n\t\t}\n\t\tconst array = sql`${bindIfParam(values, column)}`;\n\t\treturn sql`${column} && ${array}`;\n\t}\n\n\treturn sql`${column} && ${bindIfParam(values, column)}`;\n}\n", "import type { AnyColumn } from '../../column.ts';\nimport type { SQL, SQLWrapper } from '../sql.ts';\nimport { sql } from '../sql.ts';\n\n/**\n * Used in sorting, this specifies that the given\n * column or expression should be sorted in ascending\n * order. By the SQL standard, ascending order is the\n * default, so it is not usually necessary to specify\n * ascending sort order.\n *\n * ## Examples\n *\n * ```ts\n * // Return cars, starting with the oldest models\n * // and going in ascending order to the newest.\n * db.select().from(cars)\n * .orderBy(asc(cars.year));\n * ```\n *\n * @see desc to sort in descending order\n */\nexport function asc(column: AnyColumn | SQLWrapper): SQL {\n\treturn sql`${column} asc`;\n}\n\n/**\n * Used in sorting, this specifies that the given\n * column or expression should be sorted in descending\n * order.\n *\n * ## Examples\n *\n * ```ts\n * // Select users, with the most recently created\n * // records coming first.\n * db.select().from(users)\n * .orderBy(desc(users.createdAt));\n * ```\n *\n * @see asc to sort in ascending order\n */\nexport function desc(column: AnyColumn | SQLWrapper): SQL {\n\treturn sql`${column} desc`;\n}\n", "import { entityKind } from '~/entity.ts';\n\nexport interface Logger {\n\tlogQuery(query: string, params: unknown[]): void;\n}\n\nexport interface LogWriter {\n\twrite(message: string): void;\n}\n\nexport class ConsoleLogWriter implements LogWriter {\n\tstatic readonly [entityKind]: string = 'ConsoleLogWriter';\n\n\twrite(message: string) {\n\t\tconsole.log(message);\n\t}\n}\n\nexport class DefaultLogger implements Logger {\n\tstatic readonly [entityKind]: string = 'DefaultLogger';\n\n\treadonly writer: LogWriter;\n\n\tconstructor(config?: { writer: LogWriter }) {\n\t\tthis.writer = config?.writer ?? new ConsoleLogWriter();\n\t}\n\n\tlogQuery(query: string, params: unknown[]): void {\n\t\tconst stringifiedParams = params.map((p) => {\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(p);\n\t\t\t} catch {\n\t\t\t\treturn String(p);\n\t\t\t}\n\t\t});\n\t\tconst paramsStr = stringifiedParams.length ? ` -- params: [${stringifiedParams.join(', ')}]` : '';\n\t\tthis.writer.write(`Query: ${query}${paramsStr}`);\n\t}\n}\n\nexport class NoopLogger implements Logger {\n\tstatic readonly [entityKind]: string = 'NoopLogger';\n\n\tlogQuery(): void {\n\t\t// noop\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\n\nexport abstract class QueryPromise implements Promise {\n\tstatic readonly [entityKind]: string = 'QueryPromise';\n\n\t[Symbol.toStringTag] = 'QueryPromise';\n\n\tcatch(\n\t\tonRejected?: ((reason: any) => TResult | PromiseLike) | null | undefined,\n\t): Promise {\n\t\treturn this.then(undefined, onRejected);\n\t}\n\n\tfinally(onFinally?: (() => void) | null | undefined): Promise {\n\t\treturn this.then(\n\t\t\t(value) => {\n\t\t\t\tonFinally?.();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(reason) => {\n\t\t\t\tonFinally?.();\n\t\t\t\tthrow reason;\n\t\t\t},\n\t\t);\n\t}\n\n\tthen(\n\t\tonFulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null,\n\t\tonRejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null,\n\t): Promise {\n\t\treturn this.execute().then(onFulfilled, onRejected);\n\t}\n\n\tabstract execute(): Promise;\n}\n", "import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { PgColumn, PgColumnBuilder, PgColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type PgTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:PgInlineForeignKeys');\n\nexport class PgTable extends Table {\n\tstatic readonly [entityKind]: string = 'PgTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/**@internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]: ((self: Record) => PgTableExtraConfig) | undefined =\n\t\tundefined;\n}\n\nexport type AnyPgTable = {}> = PgTable>;\n\nexport type PgTableWithColumns =\n\t& PgTable\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\n/** @internal */\nexport function pgTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildColumns) => PgTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): PgTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns;\n\tdialect: 'pg';\n}> {\n\tconst rawTable = new PgTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'pg';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as PgColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\n\tif (extraConfig) {\n\t\ttable[PgTable.Symbol.ExtraConfigBuilder] = extraConfig as any;\n\t}\n\n\treturn table;\n}\n\nexport interface PgTableFn {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns) => PgTableExtraConfig,\n\t): PgTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'pg';\n\t}>;\n}\n\nexport const pgTable: PgTableFn = (name, columns, extraConfig) => {\n\treturn pgTableWithSchema(name, columns, extraConfig, undefined);\n};\n\nexport function pgTableCreator(customizeTableName: (name: string) => string): PgTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn pgTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnyPgColumn, PgColumn } from './columns/index.ts';\nimport { PgTable } from './table.ts';\n\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumn extends AnyPgColumn<{ tableName: TTableName }>,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n>(config: { name?: string; columns: [TColumn, ...TColumns] }): PrimaryKeyBuilder;\n/**\n * @deprecated: Please use primaryKey({ columns: [] }) instead of this function\n * @param columns\n */\nexport function primaryKey<\n\tTTableName extends string,\n\tTColumns extends AnyPgColumn<{ tableName: TTableName }>[],\n>(...columns: TColumns): PrimaryKeyBuilder;\nexport function primaryKey(...config: any) {\n\tif (config[0].columns) {\n\t\treturn new PrimaryKeyBuilder(config[0].columns, config[0].name);\n\t}\n\treturn new PrimaryKeyBuilder(config);\n}\n\nexport class PrimaryKeyBuilder {\n\tstatic readonly [entityKind]: string = 'PgPrimaryKeyBuilder';\n\n\t/** @internal */\n\tcolumns: PgColumn[];\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tcolumns: PgColumn[],\n\t\tname?: string,\n\t) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\t/** @internal */\n\tbuild(table: PgTable): PrimaryKey {\n\t\treturn new PrimaryKey(table, this.columns, this.name);\n\t}\n}\n\nexport class PrimaryKey {\n\tstatic readonly [entityKind]: string = 'PgPrimaryKey';\n\n\treadonly columns: AnyPgColumn<{}>[];\n\treadonly name?: string;\n\n\tconstructor(readonly table: PgTable, columns: AnyPgColumn<{}>[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name ?? `${this.table[PgTable.Symbol.Name]}_${this.columns.map((column) => column.name).join('_')}_pk`;\n\t}\n}\n", "import { type AnyTable, type InferModelFromColumns, isTable, Table } from '~/table.ts';\nimport { type AnyColumn, Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { PrimaryKeyBuilder } from './pg-core/primary-keys.ts';\nimport {\n\tand,\n\tasc,\n\tbetween,\n\tdesc,\n\teq,\n\texists,\n\tgt,\n\tgte,\n\tilike,\n\tinArray,\n\tisNotNull,\n\tisNull,\n\tlike,\n\tlt,\n\tlte,\n\tne,\n\tnot,\n\tnotBetween,\n\tnotExists,\n\tnotIlike,\n\tnotInArray,\n\tnotLike,\n\tor,\n} from './sql/expressions/index.ts';\nimport { type Placeholder, SQL, sql } from './sql/sql.ts';\nimport type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.ts';\n\nexport abstract class Relation {\n\tstatic readonly [entityKind]: string = 'Relation';\n\n\tdeclare readonly $brand: 'Relation';\n\treadonly referencedTableName: TTableName;\n\tfieldName!: string;\n\n\tconstructor(\n\t\treadonly sourceTable: Table,\n\t\treadonly referencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly relationName: string | undefined,\n\t) {\n\t\tthis.referencedTableName = referencedTable[Table.Symbol.Name] as TTableName;\n\t}\n\n\tabstract withFieldName(fieldName: string): Relation;\n}\n\nexport class Relations<\n\tTTableName extends string = string,\n\tTConfig extends Record = Record,\n> {\n\tstatic readonly [entityKind]: string = 'Relations';\n\n\tdeclare readonly $brand: 'Relations';\n\n\tconstructor(\n\t\treadonly table: AnyTable<{ name: TTableName }>,\n\t\treadonly config: (helpers: TableRelationsHelpers) => TConfig,\n\t) {}\n}\n\nexport class One<\n\tTTableName extends string = string,\n\tTIsNullable extends boolean = boolean,\n> extends Relation {\n\tstatic readonly [entityKind]: string = 'One';\n\n\tdeclare protected $relationBrand: 'One';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config:\n\t\t\t| RelationConfig<\n\t\t\t\tTTableName,\n\t\t\t\tstring,\n\t\t\t\tAnyColumn<{ tableName: TTableName }>[]\n\t\t\t>\n\t\t\t| undefined,\n\t\treadonly isNullable: TIsNullable,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): One {\n\t\tconst relation = new One(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t\tthis.isNullable,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport class Many extends Relation {\n\tstatic readonly [entityKind]: string = 'Many';\n\n\tdeclare protected $relationBrand: 'Many';\n\n\tconstructor(\n\t\tsourceTable: Table,\n\t\treferencedTable: AnyTable<{ name: TTableName }>,\n\t\treadonly config: { relationName: string } | undefined,\n\t) {\n\t\tsuper(sourceTable, referencedTable, config?.relationName);\n\t}\n\n\twithFieldName(fieldName: string): Many {\n\t\tconst relation = new Many(\n\t\t\tthis.sourceTable,\n\t\t\tthis.referencedTable,\n\t\t\tthis.config,\n\t\t);\n\t\trelation.fieldName = fieldName;\n\t\treturn relation;\n\t}\n}\n\nexport type TableRelationsKeysOnly<\n\tTSchema extends Record,\n\tTTableName extends string,\n\tK extends keyof TSchema,\n> = TSchema[K] extends Relations ? K : never;\n\nexport type ExtractTableRelationsFromSchema<\n\tTSchema extends Record,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TableRelationsKeysOnly<\n\t\t\t\tTSchema,\n\t\t\t\tTTableName,\n\t\t\t\tK\n\t\t\t>\n\t\t]: TSchema[K] extends Relations ? TConfig : never;\n\t}\n>;\n\nexport type ExtractObjectValues = T[keyof T];\n\nexport type ExtractRelationsFromTableExtraConfigSchema<\n\tTConfig extends unknown[],\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TConfig as TConfig[K] extends Relations ? K\n\t\t\t\t: never\n\t\t]: TConfig[K] extends Relations ? TRelationConfig\n\t\t\t: never;\n\t}\n>;\n\nexport function getOperators() {\n\treturn {\n\t\tand,\n\t\tbetween,\n\t\teq,\n\t\texists,\n\t\tgt,\n\t\tgte,\n\t\tilike,\n\t\tinArray,\n\t\tisNull,\n\t\tisNotNull,\n\t\tlike,\n\t\tlt,\n\t\tlte,\n\t\tne,\n\t\tnot,\n\t\tnotBetween,\n\t\tnotExists,\n\t\tnotLike,\n\t\tnotIlike,\n\t\tnotInArray,\n\t\tor,\n\t\tsql,\n\t};\n}\n\nexport type Operators = ReturnType;\n\nexport function getOrderByOperators() {\n\treturn {\n\t\tsql,\n\t\tasc,\n\t\tdesc,\n\t};\n}\n\nexport type OrderByOperators = ReturnType;\n\nexport type FindTableByDBName<\n\tTSchema extends TablesRelationalConfig,\n\tTTableName extends string,\n> = ExtractObjectValues<\n\t{\n\t\t[\n\t\t\tK in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K\n\t\t\t\t: never\n\t\t]: TSchema[K];\n\t}\n>;\n\nexport type DBQueryConfig<\n\tTRelationType extends 'one' | 'many' = 'one' | 'many',\n\tTIsRoot extends boolean = boolean,\n\tTSchema extends TablesRelationalConfig = TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig = TableRelationalConfig,\n> =\n\t& {\n\t\tcolumns?: {\n\t\t\t[K in keyof TTableConfig['columns']]?: boolean;\n\t\t};\n\t\twith?: {\n\t\t\t[K in keyof TTableConfig['relations']]?:\n\t\t\t\t| true\n\t\t\t\t| DBQueryConfig<\n\t\t\t\t\tTTableConfig['relations'][K] extends One ? 'one' : 'many',\n\t\t\t\t\tfalse,\n\t\t\t\t\tTSchema,\n\t\t\t\t\tFindTableByDBName<\n\t\t\t\t\t\tTSchema,\n\t\t\t\t\t\tTTableConfig['relations'][K]['referencedTableName']\n\t\t\t\t\t>\n\t\t\t\t>;\n\t\t};\n\t\textras?:\n\t\t\t| Record\n\t\t\t| ((\n\t\t\t\tfields: Simplify<\n\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t>,\n\t\t\t\toperators: { sql: Operators['sql'] },\n\t\t\t) => Record);\n\t}\n\t& (TRelationType extends 'many' ? \n\t\t\t& {\n\t\t\t\twhere?:\n\t\t\t\t\t| SQL\n\t\t\t\t\t| undefined\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: Operators,\n\t\t\t\t\t) => SQL | undefined);\n\t\t\t\torderBy?:\n\t\t\t\t\t| ValueOrArray\n\t\t\t\t\t| ((\n\t\t\t\t\t\tfields: Simplify<\n\t\t\t\t\t\t\t[TTableConfig['columns']] extends [never] ? {}\n\t\t\t\t\t\t\t\t: TTableConfig['columns']\n\t\t\t\t\t\t>,\n\t\t\t\t\t\toperators: OrderByOperators,\n\t\t\t\t\t) => ValueOrArray);\n\t\t\t\tlimit?: number | Placeholder;\n\t\t\t}\n\t\t\t& (TIsRoot extends true ? {\n\t\t\t\t\toffset?: number | Placeholder;\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t: {});\n\nexport interface TableRelationalConfig {\n\ttsName: string;\n\tdbName: string;\n\tcolumns: Record;\n\trelations: Record;\n\tprimaryKey: AnyColumn[];\n\tschema?: string;\n}\n\nexport type TablesRelationalConfig = Record;\n\nexport interface RelationalSchemaConfig<\n\tTSchema extends TablesRelationalConfig,\n> {\n\tfullSchema: Record;\n\tschema: TSchema;\n\ttableNamesMap: Record;\n}\n\nexport type ExtractTablesWithRelations<\n\tTSchema extends Record,\n> = {\n\t[\n\t\tK in keyof TSchema as TSchema[K] extends Table ? K\n\t\t\t: never\n\t]: TSchema[K] extends Table ? {\n\t\t\ttsName: K & string;\n\t\t\tdbName: TSchema[K]['_']['name'];\n\t\t\tcolumns: TSchema[K]['_']['columns'];\n\t\t\trelations: ExtractTableRelationsFromSchema<\n\t\t\t\tTSchema,\n\t\t\t\tTSchema[K]['_']['name']\n\t\t\t>;\n\t\t\tprimaryKey: AnyColumn[];\n\t\t}\n\t\t: never;\n};\n\nexport type ReturnTypeOrValue = T extends (...args: any[]) => infer R ? R\n\t: T;\n\nexport type BuildRelationResult<\n\tTSchema extends TablesRelationalConfig,\n\tTInclude,\n\tTRelations extends Record,\n> = {\n\t[\n\t\tK in\n\t\t\t& NonUndefinedKeysOnly\n\t\t\t& keyof TRelations\n\t]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<\n\t\t\tTSchema,\n\t\t\tFindTableByDBName,\n\t\t\tAssume>\n\t\t> extends infer TResult ? TRel extends One ? \n\t\t\t\t\t| TResult\n\t\t\t\t\t| (Equal extends true ? null : never)\n\t\t\t: TResult[]\n\t\t: never\n\t\t: never;\n};\n\nexport type NonUndefinedKeysOnly =\n\t& ExtractObjectValues<\n\t\t{\n\t\t\t[K in keyof T as T[K] extends undefined ? never : K]: K;\n\t\t}\n\t>\n\t& keyof T;\n\nexport type BuildQueryResult<\n\tTSchema extends TablesRelationalConfig,\n\tTTableConfig extends TableRelationalConfig,\n\tTFullSelection extends true | Record,\n> = Equal extends true ? InferModelFromColumns\n\t: TFullSelection extends Record ? Simplify<\n\t\t\t& (TFullSelection['columns'] extends Record ? InferModelFromColumns<\n\t\t\t\t\t{\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tK in Equal<\n\t\t\t\t\t\t\t\tExclude<\n\t\t\t\t\t\t\t\t\tTFullSelection['columns'][\n\t\t\t\t\t\t\t\t\t\t& keyof TFullSelection['columns']\n\t\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t>,\n\t\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t\t> extends true ? Exclude<\n\t\t\t\t\t\t\t\t\tkeyof TTableConfig['columns'],\n\t\t\t\t\t\t\t\t\tNonUndefinedKeysOnly\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t: \n\t\t\t\t\t\t\t\t\t& {\n\t\t\t\t\t\t\t\t\t\t[K in keyof TFullSelection['columns']]: Equal<\n\t\t\t\t\t\t\t\t\t\t\tTFullSelection['columns'][K],\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t> extends true ? K\n\t\t\t\t\t\t\t\t\t\t\t: never;\n\t\t\t\t\t\t\t\t\t}[keyof TFullSelection['columns']]\n\t\t\t\t\t\t\t\t\t& keyof TTableConfig['columns']\n\t\t\t\t\t\t]: TTableConfig['columns'][K];\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t: InferModelFromColumns)\n\t\t\t& (TFullSelection['extras'] extends\n\t\t\t\t| Record\n\t\t\t\t| ((...args: any[]) => Record) ? {\n\t\t\t\t\t[\n\t\t\t\t\t\tK in NonUndefinedKeysOnly<\n\t\t\t\t\t\t\tReturnTypeOrValue\n\t\t\t\t\t\t>\n\t\t\t\t\t]: Assume<\n\t\t\t\t\t\tReturnTypeOrValue[K],\n\t\t\t\t\t\tSQL.Aliased\n\t\t\t\t\t>['_']['type'];\n\t\t\t\t}\n\t\t\t\t: {})\n\t\t\t& (TFullSelection['with'] extends Record ? BuildRelationResult<\n\t\t\t\t\tTSchema,\n\t\t\t\t\tTFullSelection['with'],\n\t\t\t\t\tTTableConfig['relations']\n\t\t\t\t>\n\t\t\t\t: {})\n\t\t>\n\t: never;\n\nexport interface RelationConfig<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> {\n\trelationName?: string;\n\tfields: TColumns;\n\treferences: ColumnsWithTable;\n}\n\nexport function extractTablesRelationalConfig<\n\tTTables extends TablesRelationalConfig,\n>(\n\tschema: Record,\n\tconfigHelpers: (table: Table) => any,\n): { tables: TTables; tableNamesMap: Record } {\n\tif (\n\t\tObject.keys(schema).length === 1\n\t\t&& 'default' in schema\n\t\t&& !is(schema['default'], Table)\n\t) {\n\t\tschema = schema['default'] as Record;\n\t}\n\n\t// table DB name -> schema table key\n\tconst tableNamesMap: Record = {};\n\t// Table relations found before their tables - need to buffer them until we know the schema table key\n\tconst relationsBuffer: Record<\n\t\tstring,\n\t\t{ relations: Record; primaryKey?: AnyColumn[] }\n\t> = {};\n\tconst tablesConfig: TablesRelationalConfig = {};\n\tfor (const [key, value] of Object.entries(schema)) {\n\t\tif (isTable(value)) {\n\t\t\tconst dbName = value[Table.Symbol.Name];\n\t\t\tconst bufferedRelations = relationsBuffer[dbName];\n\t\t\ttableNamesMap[dbName] = key;\n\t\t\ttablesConfig[key] = {\n\t\t\t\ttsName: key,\n\t\t\t\tdbName: value[Table.Symbol.Name],\n\t\t\t\tschema: value[Table.Symbol.Schema],\n\t\t\t\tcolumns: value[Table.Symbol.Columns],\n\t\t\t\trelations: bufferedRelations?.relations ?? {},\n\t\t\t\tprimaryKey: bufferedRelations?.primaryKey ?? [],\n\t\t\t};\n\n\t\t\t// Fill in primary keys\n\t\t\tfor (\n\t\t\t\tconst column of Object.values(\n\t\t\t\t\t(value as Table)[Table.Symbol.Columns],\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (column.primary) {\n\t\t\t\t\ttablesConfig[key]!.primaryKey.push(column);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.(value);\n\t\t\tif (extraConfig) {\n\t\t\t\tfor (const configEntry of Object.values(extraConfig)) {\n\t\t\t\t\tif (is(configEntry, PrimaryKeyBuilder)) {\n\t\t\t\t\t\ttablesConfig[key]!.primaryKey.push(...configEntry.columns);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (is(value, Relations)) {\n\t\t\tconst dbName: string = value.table[Table.Symbol.Name];\n\t\t\tconst tableName = tableNamesMap[dbName];\n\t\t\tconst relations: Record = value.config(\n\t\t\t\tconfigHelpers(value.table),\n\t\t\t);\n\t\t\tlet primaryKey: AnyColumn[] | undefined;\n\n\t\t\tfor (const [relationName, relation] of Object.entries(relations)) {\n\t\t\t\tif (tableName) {\n\t\t\t\t\tconst tableConfig = tablesConfig[tableName]!;\n\t\t\t\t\ttableConfig.relations[relationName] = relation;\n\t\t\t\t\tif (primaryKey) {\n\t\t\t\t\t\ttableConfig.primaryKey.push(...primaryKey);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!(dbName in relationsBuffer)) {\n\t\t\t\t\t\trelationsBuffer[dbName] = {\n\t\t\t\t\t\t\trelations: {},\n\t\t\t\t\t\t\tprimaryKey,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\trelationsBuffer[dbName]!.relations[relationName] = relation;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { tables: tablesConfig as TTables, tableNamesMap };\n}\n\nexport function relations<\n\tTTableName extends string,\n\tTRelations extends Record>,\n>(\n\ttable: AnyTable<{ name: TTableName }>,\n\trelations: (helpers: TableRelationsHelpers) => TRelations,\n): Relations {\n\treturn new Relations(\n\t\ttable,\n\t\t(helpers: TableRelationsHelpers) =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(relations(helpers)).map(([key, value]) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue.withFieldName(key),\n\t\t\t\t]),\n\t\t\t) as TRelations,\n\t);\n}\n\nexport function createOne(sourceTable: Table) {\n\treturn function one<\n\t\tTForeignTable extends Table,\n\t\tTColumns extends [\n\t\t\tAnyColumn<{ tableName: TTableName }>,\n\t\t\t...AnyColumn<{ tableName: TTableName }>[],\n\t\t],\n\t>(\n\t\ttable: TForeignTable,\n\t\tconfig?: RelationConfig,\n\t): One<\n\t\tTForeignTable['_']['name'],\n\t\tEqual\n\t> {\n\t\treturn new One(\n\t\t\tsourceTable,\n\t\t\ttable,\n\t\t\tconfig,\n\t\t\t(config?.fields.reduce((res, f) => res && f.notNull, true)\n\t\t\t\t?? false) as Equal,\n\t\t);\n\t};\n}\n\nexport function createMany(sourceTable: Table) {\n\treturn function many(\n\t\treferencedTable: TForeignTable,\n\t\tconfig?: { relationName: string },\n\t): Many {\n\t\treturn new Many(sourceTable, referencedTable, config);\n\t};\n}\n\nexport interface NormalizedRelation {\n\tfields: AnyColumn[];\n\treferences: AnyColumn[];\n}\n\nexport function normalizeRelation(\n\tschema: TablesRelationalConfig,\n\ttableNamesMap: Record,\n\trelation: Relation,\n): NormalizedRelation {\n\tif (is(relation, One) && relation.config) {\n\t\treturn {\n\t\t\tfields: relation.config.fields,\n\t\t\treferences: relation.config.references,\n\t\t};\n\t}\n\n\tconst referencedTableTsName = tableNamesMap[relation.referencedTable[Table.Symbol.Name]];\n\tif (!referencedTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${relation.referencedTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst referencedTableConfig = schema[referencedTableTsName];\n\tif (!referencedTableConfig) {\n\t\tthrow new Error(`Table \"${referencedTableTsName}\" not found in schema`);\n\t}\n\n\tconst sourceTable = relation.sourceTable;\n\tconst sourceTableTsName = tableNamesMap[sourceTable[Table.Symbol.Name]];\n\tif (!sourceTableTsName) {\n\t\tthrow new Error(\n\t\t\t`Table \"${sourceTable[Table.Symbol.Name]}\" not found in schema`,\n\t\t);\n\t}\n\n\tconst reverseRelations: Relation[] = [];\n\tfor (\n\t\tconst referencedTableRelation of Object.values(\n\t\t\treferencedTableConfig.relations,\n\t\t)\n\t) {\n\t\tif (\n\t\t\t(relation.relationName\n\t\t\t\t&& relation !== referencedTableRelation\n\t\t\t\t&& referencedTableRelation.relationName === relation.relationName)\n\t\t\t|| (!relation.relationName\n\t\t\t\t&& referencedTableRelation.referencedTable === relation.sourceTable)\n\t\t) {\n\t\t\treverseRelations.push(referencedTableRelation);\n\t\t}\n\t}\n\n\tif (reverseRelations.length > 1) {\n\t\tthrow relation.relationName\n\t\t\t? new Error(\n\t\t\t\t`There are multiple relations with name \"${relation.relationName}\" in table \"${referencedTableTsName}\"`,\n\t\t\t)\n\t\t\t: new Error(\n\t\t\t\t`There are multiple relations between \"${referencedTableTsName}\" and \"${\n\t\t\t\t\trelation.sourceTable[Table.Symbol.Name]\n\t\t\t\t}\". Please specify relation name`,\n\t\t\t);\n\t}\n\n\tif (\n\t\treverseRelations[0]\n\t\t&& is(reverseRelations[0], One)\n\t\t&& reverseRelations[0].config\n\t) {\n\t\treturn {\n\t\t\tfields: reverseRelations[0].config.references,\n\t\t\treferences: reverseRelations[0].config.fields,\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`There is not enough information to infer relation \"${sourceTableTsName}.${relation.fieldName}\"`,\n\t);\n}\n\nexport function createTableRelationsHelpers(\n\tsourceTable: AnyTable<{ name: TTableName }>,\n) {\n\treturn {\n\t\tone: createOne(sourceTable),\n\t\tmany: createMany(sourceTable),\n\t};\n}\n\nexport type TableRelationsHelpers = ReturnType<\n\ttypeof createTableRelationsHelpers\n>;\n\nexport interface BuildRelationalQueryResult<\n\tTTable extends Table = Table,\n\tTColumn extends Column = Column,\n> {\n\ttableTsKey: string;\n\tselection: {\n\t\tdbKey: string;\n\t\ttsKey: string;\n\t\tfield: TColumn | SQL | SQL.Aliased;\n\t\trelationTableTsKey: string | undefined;\n\t\tisJson: boolean;\n\t\tisExtra?: boolean;\n\t\tselection: BuildRelationalQueryResult['selection'];\n\t}[];\n\tsql: TTable | SQL;\n}\n\nexport function mapRelationalRow(\n\ttablesConfig: TablesRelationalConfig,\n\ttableConfig: TableRelationalConfig,\n\trow: unknown[],\n\tbuildQueryResultSelection: BuildRelationalQueryResult['selection'],\n\tmapColumnValue: (value: unknown) => unknown = (value) => value,\n): Record {\n\tconst result: Record = {};\n\n\tfor (\n\t\tconst [\n\t\t\tselectionItemIndex,\n\t\t\tselectionItem,\n\t\t] of buildQueryResultSelection.entries()\n\t) {\n\t\tif (selectionItem.isJson) {\n\t\t\tconst relation = tableConfig.relations[selectionItem.tsKey]!;\n\t\t\tconst rawSubRows = row[selectionItemIndex] as\n\t\t\t\t| unknown[]\n\t\t\t\t| null\n\t\t\t\t| [null]\n\t\t\t\t| string;\n\t\t\tconst subRows = typeof rawSubRows === 'string'\n\t\t\t\t? (JSON.parse(rawSubRows) as unknown[])\n\t\t\t\t: rawSubRows;\n\t\t\tresult[selectionItem.tsKey] = is(relation, One)\n\t\t\t\t? subRows\n\t\t\t\t\t&& mapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRows,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t: (subRows as unknown[][]).map((subRow) =>\n\t\t\t\t\tmapRelationalRow(\n\t\t\t\t\t\ttablesConfig,\n\t\t\t\t\t\ttablesConfig[selectionItem.relationTableTsKey!]!,\n\t\t\t\t\t\tsubRow,\n\t\t\t\t\t\tselectionItem.selection,\n\t\t\t\t\t\tmapColumnValue,\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t} else {\n\t\t\tconst value = mapColumnValue(row[selectionItemIndex]);\n\t\t\tconst field = selectionItem.field!;\n\t\t\tlet decoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tresult[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);\n\t\t}\n\t}\n\n\treturn result;\n}\n", "import { is } from '~/entity.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\nimport { type AnyColumn, Column } from '~/column.ts';\n\n/**\n * Returns the number of values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number employees with null values\n * db.select({ value: count() }).from(employees)\n * // Number of employees where `name` is not null\n * db.select({ value: count(employees.name) }).from(employees)\n * ```\n * \n * @see countDistinct to get the number of non-duplicate values in `expression`\n */\nexport function count(expression?: SQLWrapper): SQL {\n return sql`count(${expression || sql.raw('*')})`.mapWith(Number);\n}\n\n/**\n * Returns the number of non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Number of employees where `name` is distinct\n * db.select({ value: countDistinct(employees.name) }).from(employees)\n * ```\n * \n * @see count to get the number of values in `expression`, including duplicates\n */\nexport function countDistinct(expression: SQLWrapper): SQL {\n return sql`count(distinct ${expression})`.mapWith(Number);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee\n * db.select({ value: avg(employees.salary) }).from(employees)\n * ```\n * \n * @see avgDistinct to get the average of all non-null and non-duplicate values in `expression`\n */\nexport function avg(expression: SQLWrapper): SQL {\n return sql`avg(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the average (arithmetic mean) of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Average salary of an employee where `salary` is distinct\n * db.select({ value: avgDistinct(employees.salary) }).from(employees)\n * ```\n * \n * @see avg to get the average of all non-null values in `expression`, including duplicates\n */\nexport function avgDistinct(expression: SQLWrapper): SQL {\n return sql`avg(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary\n * db.select({ value: sum(employees.salary) }).from(employees)\n * ```\n * \n * @see sumDistinct to get the sum of all non-null and non-duplicate values in `expression`\n */\nexport function sum(expression: SQLWrapper): SQL {\n return sql`sum(${expression})`.mapWith(String);\n}\n\n/**\n * Returns the sum of all non-null and non-duplicate values in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // Sum of every employee's salary where `salary` is distinct (no duplicates)\n * db.select({ value: sumDistinct(employees.salary) }).from(employees)\n * ```\n * \n * @see sum to get the sum of all non-null values in `expression`, including duplicates\n */\nexport function sumDistinct(expression: SQLWrapper): SQL {\n return sql`sum(distinct ${expression})`.mapWith(String);\n}\n\n/**\n * Returns the maximum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the highest salary\n * db.select({ value: max(employees.salary) }).from(employees)\n * ```\n */\nexport function max(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n return sql`max(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n\n/**\n * Returns the minimum value in `expression`.\n *\n * ## Examples\n *\n * ```ts\n * // The employee with the lowest salary\n * db.select({ value: min(employees.salary) }).from(employees)\n * ```\n */\nexport function min(expression: T): SQL<(T extends AnyColumn ? T['_']['data'] : string) | null> {\n return sql`min(${expression})`.mapWith(is(expression, Column) ? expression : String) as any;\n}\n", "import type { AnyColumn } from './column.ts';\nimport { Column } from './column.ts';\nimport { is } from './entity.ts';\nimport type { Logger } from './logger.ts';\nimport type { SelectedFieldsOrdered } from './operations.ts';\nimport type { TableLike } from './query-builders/select.types.ts';\nimport { Param, SQL, View } from './sql/sql.ts';\nimport type { DriverValueDecoder } from './sql/sql.ts';\nimport { Subquery, SubqueryConfig } from './subquery.ts';\nimport { getTableName, Table } from './table.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\n/** @internal */\nexport function mapResultRow(\n\tcolumns: SelectedFieldsOrdered,\n\trow: unknown[],\n\tjoinsNotNullableMap: Record | undefined,\n): TResult {\n\t// Key -> nested object key, value -> table name if all fields in the nested object are from the same table, false otherwise\n\tconst nullifyMap: Record = {};\n\n\tconst result = columns.reduce>(\n\t\t(result, { path, field }, columnIndex) => {\n\t\t\tlet decoder: DriverValueDecoder;\n\t\t\tif (is(field, Column)) {\n\t\t\t\tdecoder = field;\n\t\t\t} else if (is(field, SQL)) {\n\t\t\t\tdecoder = field.decoder;\n\t\t\t} else {\n\t\t\t\tdecoder = field.sql.decoder;\n\t\t\t}\n\t\t\tlet node = result;\n\t\t\tfor (const [pathChunkIndex, pathChunk] of path.entries()) {\n\t\t\t\tif (pathChunkIndex < path.length - 1) {\n\t\t\t\t\tif (!(pathChunk in node)) {\n\t\t\t\t\t\tnode[pathChunk] = {};\n\t\t\t\t\t}\n\t\t\t\t\tnode = node[pathChunk];\n\t\t\t\t} else {\n\t\t\t\t\tconst rawValue = row[columnIndex]!;\n\t\t\t\t\tconst value = node[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);\n\n\t\t\t\t\tif (joinsNotNullableMap && is(field, Column) && path.length === 2) {\n\t\t\t\t\t\tconst objectName = path[0]!;\n\t\t\t\t\t\tif (!(objectName in nullifyMap)) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = value === null ? getTableName(field.table) : false;\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttypeof nullifyMap[objectName] === 'string' && nullifyMap[objectName] !== getTableName(field.table)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tnullifyMap[objectName] = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\t{},\n\t);\n\n\t// Nullify all nested objects from nullifyMap that are nullable\n\tif (joinsNotNullableMap && Object.keys(nullifyMap).length > 0) {\n\t\tfor (const [objectName, tableName] of Object.entries(nullifyMap)) {\n\t\t\tif (typeof tableName === 'string' && !joinsNotNullableMap[tableName]) {\n\t\t\t\tresult[objectName] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result as TResult;\n}\n\n/** @internal */\nexport function orderSelectedFields(\n\tfields: Record,\n\tpathPrefix?: string[],\n): SelectedFieldsOrdered {\n\treturn Object.entries(fields).reduce>((result, [name, field]) => {\n\t\tif (typeof name !== 'string') {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst newPath = pathPrefix ? [...pathPrefix, name] : [name];\n\t\tif (is(field, Column) || is(field, SQL) || is(field, SQL.Aliased)) {\n\t\t\tresult.push({ path: newPath, field });\n\t\t} else if (is(field, Table)) {\n\t\t\tresult.push(...orderSelectedFields(field[Table.Symbol.Columns], newPath));\n\t\t} else {\n\t\t\tresult.push(...orderSelectedFields(field as Record, newPath));\n\t\t}\n\t\treturn result;\n\t}, []) as SelectedFieldsOrdered;\n}\n\nexport function haveSameKeys(left: Record, right: Record) {\n\tconst leftKeys = Object.keys(left);\n\tconst rightKeys = Object.keys(right);\n\n\tif (leftKeys.length !== rightKeys.length) {\n\t\treturn false;\n\t}\n\n\tfor (const [index, key] of leftKeys.entries()) {\n\t\tif (key !== rightKeys[index]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/** @internal */\nexport function mapUpdateSet(table: Table, values: Record): UpdateSet {\n\tconst entries: [string, UpdateSet[string]][] = Object.entries(values)\n\t\t.filter(([, value]) => value !== undefined)\n\t\t.map(([key, value]) => {\n\t\t\t// eslint-disable-next-line unicorn/prefer-ternary\n\t\t\tif (is(value, SQL)) {\n\t\t\t\treturn [key, value];\n\t\t\t} else {\n\t\t\t\treturn [key, new Param(value, table[Table.Symbol.Columns][key])];\n\t\t\t}\n\t\t});\n\n\tif (entries.length === 0) {\n\t\tthrow new Error('No values to set');\n\t}\n\n\treturn Object.fromEntries(entries);\n}\n\nexport type UpdateSet = Record;\n\nexport type OneOrMany = T | T[];\n\nexport type Update = Simplify<\n\t& {\n\t\t[K in Exclude]: T[K];\n\t}\n\t& TUpdate\n>;\n\nexport type Simplify =\n\t& {\n\t\t// @ts-ignore - \"Type parameter 'K' has a circular constraint\", not sure why\n\t\t[K in keyof T]: T[K];\n\t}\n\t& {};\n\nexport type SimplifyMappedType = [T] extends [unknown] ? T : never;\n\nexport type ShallowRecord = SimplifyMappedType<{ [P in K]: T }>;\n\nexport type Assume = T extends U ? T : U;\n\nexport type Equal = (() => T extends X ? 1 : 2) extends (() => T extends Y ? 1 : 2) ? true : false;\n\nexport interface DrizzleTypeError {\n\t$drizzleTypeError: T;\n}\n\nexport type ValueOrArray = T | T[];\n\n/** @internal */\nexport function applyMixins(baseClass: any, extendedClasses: any[]) {\n\tfor (const extendedClass of extendedClasses) {\n\t\tfor (const name of Object.getOwnPropertyNames(extendedClass.prototype)) {\n\t\t\tif (name === 'constructor') continue;\n\n\t\t\tObject.defineProperty(\n\t\t\t\tbaseClass.prototype,\n\t\t\t\tname,\n\t\t\t\tObject.getOwnPropertyDescriptor(extendedClass.prototype, name) || Object.create(null),\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport type Or = T1 extends true ? true : T2 extends true ? true : false;\n\nexport type IfThenElse = If extends true ? Then : Else;\n\nexport type PromiseOf = T extends Promise ? U : T;\n\nexport type Writable = {\n\t-readonly [P in keyof T]: T[P];\n};\n\nexport function getTableColumns(table: T): T['_']['columns'] {\n\treturn table[Table.Symbol.Columns];\n}\n\n/** @internal */\nexport function getTableLikeName(table: TableLike): string | undefined {\n\treturn is(table, Subquery)\n\t\t? table[SubqueryConfig].alias\n\t\t: is(table, View)\n\t\t? table[ViewBaseConfig].name\n\t\t: is(table, SQL)\n\t\t? undefined\n\t\t: table[Table.Symbol.IsAlias]\n\t\t? table[Table.Symbol.Name]\n\t\t: table[Table.Symbol.BaseName];\n}\n\nexport type ColumnsWithTable<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends AnyColumn<{ tableName: TTableName }>[],\n> = { [Key in keyof TColumns]: AnyColumn<{ tableName: TForeignTableName }> };\n\nexport interface DrizzleConfig = Record> {\n\tlogger?: boolean | Logger;\n\tschema?: TSchema;\n}\nexport type ValidateShape = T extends ValidShape\n\t? Exclude extends never ? TResult\n\t: DrizzleTypeError<\n\t\t`Invalid key(s): ${Exclude<(keyof T) & (string | number | bigint | boolean | null | undefined), keyof ValidShape>}`\n\t>\n\t: never;\n\nexport type KnownKeysOnly = {\n\t[K in keyof T]: K extends keyof U ? T[K] : never;\n};\n\nexport type IsAny = 0 extends (1 & T) ? true : false;\n", "import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { SQLiteColumn, SQLiteColumnBuilder, SQLiteColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { IndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type SQLiteTableExtraConfig = Record<\n\tstring,\n\t| IndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase>;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:SQLiteInlineForeignKeys');\n\nexport class SQLiteTable extends Table {\n\tstatic readonly [entityKind]: string = 'SQLiteTable';\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable;\n\n\t/** @internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record) => SQLiteTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnySQLiteTable = {}> = SQLiteTable<\n\tUpdateTableConfig\n>;\n\nexport type SQLiteTableWithColumns =\n\t& SQLiteTable\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport interface SQLiteTableFn {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns) => SQLiteTableExtraConfig,\n\t): SQLiteTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'sqlite';\n\t}>;\n}\n\nfunction sqliteTableBase<\n\tTTableName extends string,\n\tTColumnsMap extends Record,\n\tTSchema extends string | undefined,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig?: (self: BuildColumns) => SQLiteTableExtraConfig,\n\tschema?: TSchema,\n\tbaseName = name,\n): SQLiteTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchema;\n\tcolumns: BuildColumns;\n\tdialect: 'sqlite';\n}> {\n\tconst rawTable = new SQLiteTable<{\n\t\tname: TTableName;\n\t\tschema: TSchema;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'sqlite';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as SQLiteColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\n\tif (extraConfig) {\n\t\ttable[SQLiteTable.Symbol.ExtraConfigBuilder] = extraConfig as (\n\t\t\tself: Record,\n\t\t) => SQLiteTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport const sqliteTable: SQLiteTableFn = (name, columns, extraConfig) => {\n\treturn sqliteTableBase(name, columns, extraConfig);\n};\n\nexport function sqliteTableCreator(customizeTableName: (name: string) => string): SQLiteTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn sqliteTableBase(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnySQLiteColumn, SQLiteColumn } from './columns/index.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';\n\nexport type Reference = () => {\n\treadonly name?: string;\n\treadonly columns: SQLiteColumn[];\n\treadonly foreignTable: SQLiteTable;\n\treadonly foreignColumns: SQLiteColumn[];\n};\n\nexport class ForeignKeyBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteForeignKeyBuilder';\n\n\tdeclare _: {\n\t\tbrand: 'SQLiteForeignKeyBuilder';\n\t\tforeignTableName: 'TForeignTableName';\n\t};\n\n\t/** @internal */\n\treference: Reference;\n\n\t/** @internal */\n\t_onUpdate: UpdateDeleteAction | undefined;\n\n\t/** @internal */\n\t_onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(\n\t\tconfig: () => {\n\t\t\tname?: string;\n\t\t\tcolumns: SQLiteColumn[];\n\t\t\tforeignColumns: SQLiteColumn[];\n\t\t},\n\t\tactions?: {\n\t\t\tonUpdate?: UpdateDeleteAction;\n\t\t\tonDelete?: UpdateDeleteAction;\n\t\t} | undefined,\n\t) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn { name, columns, foreignTable: foreignColumns[0]!.table as SQLiteTable, foreignColumns };\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\n\tonUpdate(action: UpdateDeleteAction): this {\n\t\tthis._onUpdate = action;\n\t\treturn this;\n\t}\n\n\tonDelete(action: UpdateDeleteAction): this {\n\t\tthis._onDelete = action;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): ForeignKey {\n\t\treturn new ForeignKey(table, this);\n\t}\n}\n\nexport class ForeignKey {\n\tstatic readonly [entityKind]: string = 'SQLiteForeignKey';\n\n\treadonly reference: Reference;\n\treadonly onUpdate: UpdateDeleteAction | undefined;\n\treadonly onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(readonly table: SQLiteTable, builder: ForeignKeyBuilder) {\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\n\tgetName(): string {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[SQLiteTable.Symbol.Name],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0]!.table[SQLiteTable.Symbol.Name],\n\t\t\t...foreignColumnNames,\n\t\t];\n\t\treturn name ?? `${chunks.join('_')}_fk`;\n\t}\n}\n\ntype ColumnsWithTable<\n\tTTableName extends string,\n\tTColumns extends SQLiteColumn[],\n> = { [Key in keyof TColumns]: AnySQLiteColumn<{ tableName: TTableName }> };\n\n/**\n * @deprecated please use `foreignKey({ columns: [], foreignColumns: [] })` syntax without callback\n * @param config\n * @returns\n */\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnySQLiteColumn<{ tableName: TTableName }>, ...AnySQLiteColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: () => {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder;\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnySQLiteColumn<{ tableName: TTableName }>, ...AnySQLiteColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder;\nexport function foreignKey(\n\tconfig: any,\n): ForeignKeyBuilder {\n\tfunction mappedConfig() {\n\t\tif (typeof config === 'function') {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\tcolumns,\n\t\t\t\tforeignColumns,\n\t\t\t};\n\t\t}\n\t\treturn config;\n\t}\n\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SQLiteColumn } from './columns/common.ts';\nimport { SQLiteTable } from './table.ts';\n\nexport function uniqueKeyName(table: SQLiteTable, columns: string[]) {\n\treturn `${table[SQLiteTable.Symbol.Name]}_${columns.join('_')}_unique`;\n}\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: SQLiteColumn[];\n\n\tconstructor(\n\t\tcolumns: SQLiteColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: SQLiteTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [SQLiteColumn, ...SQLiteColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'SQLiteUniqueConstraint';\n\n\treadonly columns: SQLiteColumn[];\n\treadonly name?: string;\n\n\tconstructor(readonly table: SQLiteTable, columns: SQLiteColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport { Column } from '~/column.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/sqlite-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/sqlite-core/foreign-keys.ts';\nimport type { AnySQLiteTable, SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => SQLiteColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface SQLiteColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase {}\n\nexport abstract class SQLiteColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = object,\n> extends ColumnBuilder\n\timplements SQLiteColumnBuilderBase\n{\n\tstatic readonly [entityKind]: string = 'SQLiteColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: SQLiteColumn, table: SQLiteTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteColumn>;\n}\n\n// To understand how to use `SQLiteColumn` and `AnySQLiteColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class SQLiteColumn<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends Column {\n\tstatic readonly [entityKind]: string = 'SQLiteColumn';\n\n\tconstructor(\n\t\toverride readonly table: SQLiteTable,\n\t\tconfig: ColumnBuilderRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnySQLiteColumn> = {}> = SQLiteColumn<\n\tRequired, TPartial>>\n>;\n", "import type {\n\tColumnBuilderBaseConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tMakeColumnConfig,\n\tNotNull,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { OnConflict } from '~/sqlite-core/utils.ts';\nimport type { Equal, Or } from '~/utils.ts';\nimport type { AnySQLiteTable } from '../table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport interface PrimaryKeyConfig {\n\tautoIncrement?: boolean;\n\tonConflict?: OnConflict;\n}\n\nexport abstract class SQLiteBaseIntegerBuilder<\n\tT extends ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumnBuilder<\n\tT,\n\tTRuntimeConfig & { autoIncrement: boolean },\n\t{},\n\t{ primaryKeyHasDefault: true }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteBaseIntegerBuilder';\n\n\tconstructor(name: T['name'], dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\toverride primaryKey(config?: PrimaryKeyConfig): HasDefault> {\n\t\tif (config?.autoIncrement) {\n\t\t\tthis.config.autoIncrement = true;\n\t\t}\n\t\tthis.config.hasDefault = true;\n\t\treturn super.primaryKey() as HasDefault>;\n\t}\n\n\t/** @internal */\n\tabstract override build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBaseInteger>;\n}\n\nexport abstract class SQLiteBaseInteger<\n\tT extends ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumn {\n\tstatic readonly [entityKind]: string = 'SQLiteBaseInteger';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n\n\tgetSQLType(): string {\n\t\treturn 'integer';\n\t}\n}\n\nexport type SQLiteIntegerBuilderInitial = SQLiteIntegerBuilder<{\n\tname: TName;\n\tdataType: 'number';\n\tcolumnType: 'SQLiteInteger';\n\tdata: number;\n\tdriverParam: number;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteIntegerBuilder>\n\textends SQLiteBaseIntegerBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteIntegerBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'number', 'SQLiteInteger');\n\t}\n\n\tbuild(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteInteger> {\n\t\treturn new SQLiteInteger>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteInteger> extends SQLiteBaseInteger {\n\tstatic readonly [entityKind]: string = 'SQLiteInteger';\n}\n\nexport type SQLiteTimestampBuilderInitial = SQLiteTimestampBuilder<{\n\tname: TName;\n\tdataType: 'date';\n\tcolumnType: 'SQLiteTimestamp';\n\tdata: Date;\n\tdriverParam: number;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteTimestampBuilder>\n\textends SQLiteBaseIntegerBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTimestampBuilder';\n\n\tconstructor(name: T['name'], mode: 'timestamp' | 'timestamp_ms') {\n\t\tsuper(name, 'date', 'SQLiteTimestamp');\n\t\tthis.config.mode = mode;\n\t}\n\n\t/**\n\t * @deprecated Use `default()` with your own expression instead.\n\t *\n\t * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n\t */\n\tdefaultNow(): HasDefault {\n\t\treturn this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`) as any;\n\t}\n\n\tbuild(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTimestamp> {\n\t\treturn new SQLiteTimestamp>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteTimestamp>\n\textends SQLiteBaseInteger\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTimestamp';\n\n\treadonly mode: 'timestamp' | 'timestamp_ms' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): Date {\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn new Date(value * 1000);\n\t\t}\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date): number {\n\t\tconst unix = value.getTime();\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn Math.floor(unix / 1000);\n\t\t}\n\t\treturn unix;\n\t}\n}\n\nexport type SQLiteBooleanBuilderInitial = SQLiteBooleanBuilder<{\n\tname: TName;\n\tdataType: 'boolean';\n\tcolumnType: 'SQLiteBoolean';\n\tdata: boolean;\n\tdriverParam: number;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteBooleanBuilder>\n\textends SQLiteBaseIntegerBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteBooleanBuilder';\n\n\tconstructor(name: T['name'], mode: 'boolean') {\n\t\tsuper(name, 'boolean', 'SQLiteBoolean');\n\t\tthis.config.mode = mode;\n\t}\n\n\tbuild(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteBoolean> {\n\t\treturn new SQLiteBoolean>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteBoolean>\n\textends SQLiteBaseInteger\n{\n\tstatic readonly [entityKind]: string = 'SQLiteBoolean';\n\n\treadonly mode: 'boolean' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): boolean {\n\t\treturn Number(value) === 1;\n\t}\n\n\toverride mapToDriverValue(value: boolean): number {\n\t\treturn value ? 1 : 0;\n\t}\n}\n\nexport interface IntegerConfig<\n\tTMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =\n\t\t| 'number'\n\t\t| 'timestamp'\n\t\t| 'timestamp_ms'\n\t\t| 'boolean',\n> {\n\tmode: TMode;\n}\n\nexport function integer(\n\tname: TName,\n\tconfig?: IntegerConfig,\n): Or, Equal> extends true ? SQLiteTimestampBuilderInitial\n\t: Equal extends true ? SQLiteBooleanBuilderInitial\n\t: SQLiteIntegerBuilderInitial;\nexport function integer(name: string, config?: IntegerConfig) {\n\tif (config?.mode === 'timestamp' || config?.mode === 'timestamp_ms') {\n\t\treturn new SQLiteTimestampBuilder(name, config.mode);\n\t}\n\tif (config?.mode === 'boolean') {\n\t\treturn new SQLiteBooleanBuilder(name, config.mode);\n\t}\n\treturn new SQLiteIntegerBuilder(name);\n}\n\nexport const int = integer;\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnySQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Equal, Writable } from '~/utils.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport type SQLiteTextBuilderInitial = SQLiteTextBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'SQLiteText';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n}>;\n\nexport class SQLiteTextBuilder> extends SQLiteColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteTextBuilder';\n\n\tconstructor(name: T['name'], config: SQLiteTextConfig<'text', T['enumValues']>) {\n\t\tsuper(name, 'string', 'SQLiteText');\n\t\tthis.config.enumValues = config.enum;\n\t\tthis.config.length = config.length;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteText> {\n\t\treturn new SQLiteText>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class SQLiteText>\n\textends SQLiteColumn\n{\n\tstatic readonly [entityKind]: string = 'SQLiteText';\n\n\toverride readonly enumValues = this.config.enumValues;\n\n\treadonly length: number | undefined = this.config.length;\n\n\tconstructor(\n\t\ttable: AnySQLiteTable<{ name: T['tableName'] }>,\n\t\tconfig: SQLiteTextBuilder['config'],\n\t) {\n\t\tsuper(table, config);\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `text${this.config.length ? `(${this.config.length})` : ''}`;\n\t}\n}\n\nexport type SQLiteTextJsonBuilderInitial = SQLiteTextJsonBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'SQLiteTextJson';\n\tdata: unknown;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class SQLiteTextJsonBuilder>\n\textends SQLiteColumnBuilder\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJsonBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'SQLiteTextJson');\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnySQLiteTable<{ name: TTableName }>,\n\t): SQLiteTextJson> {\n\t\treturn new SQLiteTextJson>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class SQLiteTextJson>\n\textends SQLiteColumn\n{\n\tstatic readonly [entityKind]: string = 'SQLiteTextJson';\n\n\tgetSQLType(): string {\n\t\treturn 'text';\n\t}\n\n\toverride mapFromDriverValue(value: string): T['data'] {\n\t\treturn JSON.parse(value);\n\t}\n\n\toverride mapToDriverValue(value: T['data']): string {\n\t\treturn JSON.stringify(value);\n\t}\n}\n\nexport type SQLiteTextConfig<\n\tTMode extends 'text' | 'json',\n\tTEnum extends readonly string[] | string[] | undefined,\n> = TMode extends 'text' ? {\n\t\tmode?: TMode;\n\t\tlength?: number;\n\t\tenum?: TEnum;\n\t}\n\t: {\n\t\tmode?: TMode;\n\t};\n\nexport function text<\n\tTName extends string,\n\tU extends string,\n\tT extends Readonly<[U, ...U[]]>,\n\tTMode extends 'text' | 'json' = 'text' | 'json',\n>(\n\tname: TName,\n\tconfig: SQLiteTextConfig> = {} as SQLiteTextConfig>,\n): Equal extends true ? SQLiteTextJsonBuilderInitial\n\t: SQLiteTextBuilderInitial>\n{\n\treturn (config.mode === 'json'\n\t\t? new SQLiteTextJsonBuilder(name)\n\t\t: new SQLiteTextBuilder(name, config as SQLiteTextConfig<'text', Writable>)) as Equal extends true\n\t\t\t? SQLiteTextJsonBuilderInitial\n\t\t\t: SQLiteTextBuilderInitial>;\n}\n", "import { ColumnAliasProxyHandler, TableAliasProxyHandler } from './alias.ts';\nimport { Column } from './column.ts';\nimport { entityKind, is } from './entity.ts';\nimport { SQL, View } from './sql/sql.ts';\nimport { Subquery, SubqueryConfig } from './subquery.ts';\nimport { ViewBaseConfig } from './view-common.ts';\n\nexport class SelectionProxyHandler | View>\n\timplements ProxyHandler | View>\n{\n\tstatic readonly [entityKind]: string = 'SelectionProxyHandler';\n\n\tprivate config: {\n\t\t/**\n\t\t * Table alias for the columns\n\t\t */\n\t\talias?: string;\n\t\t/**\n\t\t * What to do when a field is an instance of `SQL.Aliased` and it's not a selection field (from a subquery)\n\t\t *\n\t\t * `sql` - return the underlying SQL expression\n\t\t *\n\t\t * `alias` - return the field alias\n\t\t */\n\t\tsqlAliasedBehavior: 'sql' | 'alias';\n\t\t/**\n\t\t * What to do when a field is an instance of `SQL` and it doesn't have an alias declared\n\t\t *\n\t\t * `sql` - return the underlying SQL expression\n\t\t *\n\t\t * `error` - return a DrizzleTypeError on type level and throw an error on runtime\n\t\t */\n\t\tsqlBehavior: 'sql' | 'error';\n\n\t\t/**\n\t\t * Whether to replace the original name of the column with the alias\n\t\t * Should be set to `true` for views creation\n\t\t * @default false\n\t\t */\n\t\treplaceOriginalName?: boolean;\n\t};\n\n\tconstructor(config: SelectionProxyHandler['config']) {\n\t\tthis.config = { ...config };\n\t}\n\n\tget(subquery: T, prop: string | symbol): any {\n\t\tif (prop === SubqueryConfig) {\n\t\t\treturn {\n\t\t\t\t...subquery[SubqueryConfig as keyof typeof subquery],\n\t\t\t\tselection: new Proxy(\n\t\t\t\t\t(subquery as Subquery)[SubqueryConfig].selection,\n\t\t\t\t\tthis as ProxyHandler>,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (prop === ViewBaseConfig) {\n\t\t\treturn {\n\t\t\t\t...subquery[ViewBaseConfig as keyof typeof subquery],\n\t\t\t\tselectedFields: new Proxy(\n\t\t\t\t\t(subquery as View)[ViewBaseConfig].selectedFields,\n\t\t\t\t\tthis as ProxyHandler>,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tif (typeof prop === 'symbol') {\n\t\t\treturn subquery[prop as keyof typeof subquery];\n\t\t}\n\n\t\tconst columns = is(subquery, Subquery)\n\t\t\t? subquery[SubqueryConfig].selection\n\t\t\t: is(subquery, View)\n\t\t\t? subquery[ViewBaseConfig].selectedFields\n\t\t\t: subquery;\n\t\tconst value: unknown = columns[prop as keyof typeof columns];\n\n\t\tif (is(value, SQL.Aliased)) {\n\t\t\t// Never return the underlying SQL expression for a field previously selected in a subquery\n\t\t\tif (this.config.sqlAliasedBehavior === 'sql' && !value.isSelectionField) {\n\t\t\t\treturn value.sql;\n\t\t\t}\n\n\t\t\tconst newValue = value.clone();\n\t\t\tnewValue.isSelectionField = true;\n\t\t\treturn newValue;\n\t\t}\n\n\t\tif (is(value, SQL)) {\n\t\t\tif (this.config.sqlBehavior === 'sql') {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tthrow new Error(\n\t\t\t\t`You tried to reference \"${prop}\" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using \".as('alias')\" method.`,\n\t\t\t);\n\t\t}\n\n\t\tif (is(value, Column)) {\n\t\t\tif (this.config.alias) {\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tvalue,\n\t\t\t\t\tnew ColumnAliasProxyHandler(\n\t\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\t\tvalue.table,\n\t\t\t\t\t\t\tnew TableAliasProxyHandler(this.config.alias, this.config.replaceOriginalName ?? false),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\n\t\tif (typeof value !== 'object' || value === null) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn new Proxy(value, new SelectionProxyHandler(this.config));\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type DrizzleTypeError, orderSelectedFields } from '~/utils.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\n\nexport type SQLiteDeleteWithout<\n\tT extends AnySQLiteDeleteBase,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T\n\t: Omit<\n\t\tSQLiteDeleteBase<\n\t\t\tT['_']['table'],\n\t\t\tT['_']['resultType'],\n\t\t\tT['_']['runResult'],\n\t\t\tT['_']['returning'],\n\t\t\tTDynamic,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>,\n\t\tT['_']['excludedMethods'] | K\n\t>;\n\nexport type SQLiteDelete<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning extends Record | undefined = undefined,\n> = SQLiteDeleteBase;\n\nexport interface SQLiteDeleteConfig {\n\twhere?: SQL | undefined;\n\ttable: SQLiteTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteDeleteReturningAll<\n\tT extends AnySQLiteDeleteBase,\n\tTDynamic extends boolean,\n> = SQLiteDeleteWithout<\n\tSQLiteDeleteBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tT['_']['dynamic'],\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteDeleteReturning<\n\tT extends AnySQLiteDeleteBase,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteDeleteWithout<\n\tSQLiteDeleteBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields,\n\t\tT['_']['dynamic'],\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteDeleteExecute = T['_']['returning'] extends undefined\n\t? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteDeletePrepare = SQLitePreparedQuery<{\n\ttype: T['_']['resultType'];\n\trun: T['_']['runResult'];\n\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t: T['_']['returning'][];\n\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t: T['_']['returning'] | undefined;\n\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t: any[][];\n\texecute: SQLiteDeleteExecute;\n}>;\n\nexport type SQLiteDeleteDynamic = SQLiteDelete<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type AnySQLiteDeleteBase = SQLiteDeleteBase;\n\nexport interface SQLiteDeleteBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning extends Record | undefined = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tQueryPromise,\n\tRunnableQuery,\n\tSQLWrapper\n{\n\treadonly _: {\n\t\tdialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteDeleteBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning extends Record | undefined = undefined,\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteDelete';\n\n\t/** @internal */\n\tconfig: SQLiteDeleteConfig;\n\n\tconstructor(\n\t\tprivate table: TTable,\n\t\tprivate session: SQLiteSession,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, withList };\n\t}\n\n\t/**\n\t * Adds a `where` clause to the query.\n\t *\n\t * Calling this method will delete only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param where the `where` clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be deleted.\n\t *\n\t * ```ts\n\t * // Delete all cars with green color\n\t * db.delete(cars).where(eq(cars.color, 'green'));\n\t * // or\n\t * db.delete(cars).where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Delete all BMW cars with a green color\n\t * db.delete(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Delete all cars with the green or blue color\n\t * db.delete(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteDeleteWithout {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the deleted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete#delete-with-return}\n\t *\n\t * @example\n\t * ```ts\n\t * // Delete all cars with the green color and return all fields\n\t * const deletedCars: Car[] = await db.delete(cars)\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Delete all cars with the green color and return only their id and brand fields\n\t * const deletedCarsIdsAndBrands: { id: number, brand: string }[] = await db.delete(cars)\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteDeleteReturningAll;\n\treturning(\n\t\tfields: TSelectedFields,\n\t): SQLiteDeleteReturning;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteDeleteReturning {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildDeleteQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteDeletePrepare {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t) as SQLiteDeletePrepare;\n\t}\n\n\tprepare(): SQLiteDeletePrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(placeholderValues?: Record): Promise> {\n\t\treturn this._prepare().execute(placeholderValues) as SQLiteDeleteExecute;\n\t}\n\n\t$dynamic(): SQLiteDeleteDynamic {\n\t\treturn this as any;\n\t}\n}\n", "import { entityKind, is } from '~/entity.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport { Param, SQL, sql } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { IndexColumn } from '~/sqlite-core/indexes.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport { type DrizzleTypeError, mapUpdateSet, orderSelectedFields, type Simplify } from '~/utils.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport type { SelectedFieldsFlat, SelectedFieldsOrdered } from './select.types.ts';\nimport type { SQLiteUpdateSetSource } from './update.ts';\n\nexport interface SQLiteInsertConfig {\n\ttable: TTable;\n\tvalues: Record[];\n\twithList?: Subquery[];\n\tonConflict?: SQL;\n\treturning?: SelectedFieldsOrdered;\n}\n\nexport type SQLiteInsertValue = Simplify<\n\t{\n\t\t[Key in keyof TTable['$inferInsert']]: TTable['$inferInsert'][Key] | SQL | Placeholder;\n\t}\n>;\n\nexport class SQLiteInsertBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteInsertBuilder';\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tvalues(value: SQLiteInsertValue): SQLiteInsertBase;\n\tvalues(values: SQLiteInsertValue[]): SQLiteInsertBase;\n\tvalues(\n\t\tvalues: SQLiteInsertValue | SQLiteInsertValue[],\n\t): SQLiteInsertBase {\n\t\tvalues = Array.isArray(values) ? values : [values];\n\t\tif (values.length === 0) {\n\t\t\tthrow new Error('values() must be called with at least one value');\n\t\t}\n\t\tconst mappedValues = values.map((entry) => {\n\t\t\tconst result: Record = {};\n\t\t\tconst cols = this.table[Table.Symbol.Columns];\n\t\t\tfor (const colKey of Object.keys(entry)) {\n\t\t\t\tconst colValue = entry[colKey as keyof typeof entry];\n\t\t\t\tresult[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n\n\t\t// if (mappedValues.length > 1 && mappedValues.some((t) => Object.keys(t).length === 0)) {\n\t\t// \tthrow new Error(\n\t\t// \t\t`One of the values you want to insert is empty. In SQLite you can insert only one empty object per statement. For this case Drizzle with use \"INSERT INTO ... DEFAULT VALUES\" syntax`,\n\t\t// \t);\n\t\t// }\n\n\t\treturn new SQLiteInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);\n\t}\n}\n\nexport type SQLiteInsertWithout =\n\tTDynamic extends true ? T\n\t\t: Omit<\n\t\t\tSQLiteInsertBase<\n\t\t\t\tT['_']['table'],\n\t\t\t\tT['_']['resultType'],\n\t\t\t\tT['_']['runResult'],\n\t\t\t\tT['_']['returning'],\n\t\t\t\tTDynamic,\n\t\t\t\tT['_']['excludedMethods'] | K\n\t\t\t>,\n\t\t\tT['_']['excludedMethods'] | K\n\t\t>;\n\nexport type SQLiteInsertReturning<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFieldsFlat,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertReturningAll<\n\tT extends AnySQLiteInsert,\n\tTDynamic extends boolean,\n> = SQLiteInsertWithout<\n\tSQLiteInsertBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteInsertOnConflictDoUpdateConfig = {\n\ttarget: IndexColumn | IndexColumn[];\n\twhere?: SQL;\n\tset: SQLiteUpdateSetSource;\n};\n\nexport type SQLiteInsertDynamic = SQLiteInsert<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteInsertExecute = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteInsertPrepare = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteInsertExecute;\n\t}\n>;\n\nexport type AnySQLiteInsert = SQLiteInsertBase;\n\nexport type SQLiteInsert<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = any,\n> = SQLiteInsertBase;\n\nexport interface SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends\n\tSQLWrapper,\n\tQueryPromise,\n\tRunnableQuery\n{\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteInsertBase<\n\tTTable extends SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteInsert';\n\n\t/** @internal */\n\tconfig: SQLiteInsertConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tvalues: SQLiteInsertConfig['values'],\n\t\tprivate session: SQLiteSession,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { table, values, withList };\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the inserted rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#insert-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and return all fields\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t *\n\t * // Insert one row and return only the id\n\t * const insertedCarId: { id: number }[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning({ id: cars.id });\n\t * ```\n\t */\n\treturning(): SQLiteInsertReturningAll;\n\treturning(\n\t\tfields: TSelectedFields,\n\t): SQLiteInsertReturning;\n\treturning(\n\t\tfields: SelectedFieldsFlat = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteInsertWithout {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `on conflict do nothing` clause to the query.\n\t *\n\t * Calling this method simply avoids inserting a row as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#on-conflict-do-nothing}\n\t *\n\t * @param config The `target` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Insert one row and cancel the insert if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing();\n\t *\n\t * // Explicitly specify conflict target\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoNothing({ target: cars.id });\n\t * ```\n\t */\n\tonConflictDoNothing(config: { target?: IndexColumn | IndexColumn[]; where?: SQL } = {}): this {\n\t\tif (config.target === undefined) {\n\t\t\tthis.config.onConflict = sql`do nothing`;\n\t\t} else {\n\t\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\t\tthis.config.onConflict = sql`${targetSql} do nothing${whereSql}`;\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an `on conflict do update` clause to the query.\n\t *\n\t * Calling this method will update the existing row that conflicts with the row proposed for insertion as its alternative action.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert#upserts-and-conflicts}\n\t *\n\t * @param config The `target`, `set` and `where` clauses.\n\t *\n\t * @example\n\t * ```ts\n\t * // Update the row if there's a conflict\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'Porsche' }\n\t * });\n\t *\n\t * // Upsert with 'where' clause\n\t * await db.insert(cars)\n\t * .values({ id: 1, brand: 'BMW' })\n\t * .onConflictDoUpdate({\n\t * target: cars.id,\n\t * set: { brand: 'newBMW' },\n\t * where: sql`${cars.createdAt} > '2023-01-01'::date`,\n\t * });\n\t * ```\n\t */\n\tonConflictDoUpdate(config: SQLiteInsertOnConflictDoUpdateConfig): this {\n\t\tconst targetSql = Array.isArray(config.target) ? sql`${config.target}` : sql`${[config.target]}`;\n\t\tconst whereSql = config.where ? sql` where ${config.where}` : sql``;\n\t\tconst setSql = this.dialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));\n\t\tthis.config.onConflict = sql`${targetSql} do update set ${setSql}${whereSql}`;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildInsertQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteInsertPrepare {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t) as SQLiteInsertPrepare;\n\t}\n\n\tprepare(): SQLiteInsertPrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteInsertExecute;\n\t}\n\n\t$dynamic(): SQLiteInsertDynamic {\n\t\treturn this as any;\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { ColumnsSelection} from '~/sql/sql.ts';\nimport { View } from '~/sql/sql.ts';\n\nexport abstract class SQLiteViewBase<\n\tTName extends string = string,\n\tTExisting extends boolean = boolean,\n\tTSelection extends ColumnsSelection = ColumnsSelection,\n> extends View {\n\tstatic readonly [entityKind]: string = 'SQLiteViewBase';\n\n\tdeclare _: View['_'] & {\n\t\tviewBrand: 'SQLiteView';\n\t};\n}\n", "import { aliasedTable, aliasedTableColumn, mapColumnsInAliasedSQLToAlias, mapColumnsInSQLToAlias } from '~/alias.ts';\nimport type { AnyColumn } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport { DrizzleError } from '~/errors.ts';\nimport type { MigrationConfig, MigrationMeta } from '~/migrator.ts';\nimport {\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tgetOperators,\n\tgetOrderByOperators,\n\tMany,\n\tnormalizeRelation,\n\tOne,\n\ttype Relation,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { Name } from '~/sql/index.ts';\nimport { and, eq } from '~/sql/index.ts';\nimport { Param, type QueryWithTypings, SQL, sql, type SQLChunk } from '~/sql/sql.ts';\nimport { SQLiteColumn } from '~/sqlite-core/columns/index.ts';\nimport type { SQLiteDeleteConfig, SQLiteInsertConfig, SQLiteUpdateConfig } from '~/sqlite-core/query-builders/index.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery, SubqueryConfig } from '~/subquery.ts';\nimport { getTableName, Table } from '~/table.ts';\nimport { orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport type {\n\tSelectedFieldsOrdered,\n\tSQLiteSelectConfig,\n\tSQLiteSelectJoinConfig,\n} from './query-builders/select.types.ts';\nimport type { SQLiteSession } from './session.ts';\nimport { SQLiteViewBase } from './view-base.ts';\n\nexport abstract class SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteDialect';\n\n\tescapeName(name: string): string {\n\t\treturn `\"${name}\"`;\n\t}\n\n\tescapeParam(_num: number): string {\n\t\treturn '?';\n\t}\n\n\tescapeString(str: string): string {\n\t\treturn `'${str.replace(/'/g, \"''\")}'`;\n\t}\n\n\tprivate buildWithCTE(queries: Subquery[] | undefined): SQL | undefined {\n\t\tif (!queries?.length) return undefined;\n\n\t\tconst withSqlChunks = [sql`with `];\n\t\tfor (const [i, w] of queries.entries()) {\n\t\t\twithSqlChunks.push(sql`${sql.identifier(w[SubqueryConfig].alias)} as (${w[SubqueryConfig].sql})`);\n\t\t\tif (i < queries.length - 1) {\n\t\t\t\twithSqlChunks.push(sql`, `);\n\t\t\t}\n\t\t}\n\t\twithSqlChunks.push(sql` `);\n\t\treturn sql.join(withSqlChunks);\n\t}\n\n\tbuildDeleteQuery({ table, where, returning, withList }: SQLiteDeleteConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\treturn sql`${withSql}delete from ${table}${whereSql}${returningSql}`;\n\t}\n\n\tbuildUpdateSet(table: SQLiteTable, set: UpdateSet): SQL {\n\t\tconst setEntries = Object.entries(set);\n\n\t\tconst setSize = setEntries.length;\n\t\treturn sql.join(\n\t\t\tsetEntries\n\t\t\t\t.flatMap(([colName, value], i): SQL[] => {\n\t\t\t\t\tconst col: SQLiteColumn = table[Table.Symbol.Columns][colName]!;\n\t\t\t\t\tconst res = sql`${sql.identifier(col.name)} = ${value}`;\n\t\t\t\t\tif (i < setSize - 1) {\n\t\t\t\t\t\treturn [res, sql.raw(', ')];\n\t\t\t\t\t}\n\t\t\t\t\treturn [res];\n\t\t\t\t}),\n\t\t);\n\t}\n\n\tbuildUpdateQuery({ table, set, where, returning, withList }: SQLiteUpdateConfig): SQL {\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst setSql = this.buildUpdateSet(table, set);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\treturn sql`${withSql}update ${table} set ${setSql}${whereSql}${returningSql}`;\n\t}\n\n\t/**\n\t * Builds selection SQL with provided fields/expressions\n\t *\n\t * Examples:\n\t *\n\t * `select from`\n\t *\n\t * `insert ... returning `\n\t *\n\t * If `isSingleTable` is true, then columns won't be prefixed with table name\n\t */\n\tprivate buildSelection(\n\t\tfields: SelectedFieldsOrdered,\n\t\t{ isSingleTable = false }: { isSingleTable?: boolean } = {},\n\t): SQL {\n\t\tconst columnsLen = fields.length;\n\n\t\tconst chunks = fields\n\t\t\t.flatMap(({ field }, i) => {\n\t\t\t\tconst chunk: SQLChunk[] = [];\n\n\t\t\t\tif (is(field, SQL.Aliased) && field.isSelectionField) {\n\t\t\t\t\tchunk.push(sql.identifier(field.fieldAlias));\n\t\t\t\t} else if (is(field, SQL.Aliased) || is(field, SQL)) {\n\t\t\t\t\tconst query = is(field, SQL.Aliased) ? field.sql : field;\n\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(\n\t\t\t\t\t\t\tnew SQL(\n\t\t\t\t\t\t\t\tquery.queryChunks.map((c) => {\n\t\t\t\t\t\t\t\t\tif (is(c, Column)) {\n\t\t\t\t\t\t\t\t\t\treturn sql.identifier(c.name);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn c;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(query);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (is(field, SQL.Aliased)) {\n\t\t\t\t\t\tchunk.push(sql` as ${sql.identifier(field.fieldAlias)}`);\n\t\t\t\t\t}\n\t\t\t\t} else if (is(field, Column)) {\n\t\t\t\t\tconst tableName = field.table[Table.Symbol.Name];\n\t\t\t\t\tconst columnName = field.name;\n\t\t\t\t\tif (isSingleTable) {\n\t\t\t\t\t\tchunk.push(sql.identifier(columnName));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchunk.push(sql`${sql.identifier(tableName)}.${sql.identifier(columnName)}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (i < columnsLen - 1) {\n\t\t\t\t\tchunk.push(sql`, `);\n\t\t\t\t}\n\n\t\t\t\treturn chunk;\n\t\t\t});\n\n\t\treturn sql.join(chunks);\n\t}\n\n\tbuildSelectQuery(\n\t\t{\n\t\t\twithList,\n\t\t\tfields,\n\t\t\tfieldsFlat,\n\t\t\twhere,\n\t\t\thaving,\n\t\t\ttable,\n\t\t\tjoins,\n\t\t\torderBy,\n\t\t\tgroupBy,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tdistinct,\n\t\t\tsetOperators,\n\t\t}: SQLiteSelectConfig,\n\t): SQL {\n\t\tconst fieldsList = fieldsFlat ?? orderSelectedFields(fields);\n\t\tfor (const f of fieldsList) {\n\t\t\tif (\n\t\t\t\tis(f.field, Column)\n\t\t\t\t&& getTableName(f.field.table)\n\t\t\t\t\t!== (is(table, Subquery)\n\t\t\t\t\t\t? table[SubqueryConfig].alias\n\t\t\t\t\t\t: is(table, SQLiteViewBase)\n\t\t\t\t\t\t? table[ViewBaseConfig].name\n\t\t\t\t\t\t: is(table, SQL)\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: getTableName(table))\n\t\t\t\t&& !((table) =>\n\t\t\t\t\tjoins?.some(({ alias }) =>\n\t\t\t\t\t\talias === (table[Table.Symbol.IsAlias] ? getTableName(table) : table[Table.Symbol.BaseName])\n\t\t\t\t\t))(f.field.table)\n\t\t\t) {\n\t\t\t\tconst tableName = getTableName(f.field.table);\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Your \"${\n\t\t\t\t\t\tf.path.join('->')\n\t\t\t\t\t}\" field references a column \"${tableName}\".\"${f.field.name}\", but the table \"${tableName}\" is not part of the query! Did you forget to join it?`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst isSingleTable = !joins || joins.length === 0;\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst distinctSql = distinct ? sql` distinct` : undefined;\n\n\t\tconst selection = this.buildSelection(fieldsList, { isSingleTable });\n\n\t\tconst tableSql = (() => {\n\t\t\tif (is(table, Table) && table[Table.Symbol.OriginalName] !== table[Table.Symbol.Name]) {\n\t\t\t\treturn sql`${sql.identifier(table[Table.Symbol.OriginalName])} ${sql.identifier(table[Table.Symbol.Name])}`;\n\t\t\t}\n\n\t\t\treturn table;\n\t\t})();\n\n\t\tconst joinsArray: SQL[] = [];\n\n\t\tif (joins) {\n\t\t\tfor (const [index, joinMeta] of joins.entries()) {\n\t\t\t\tif (index === 0) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t\tconst table = joinMeta.table;\n\n\t\t\t\tif (is(table, SQLiteTable)) {\n\t\t\t\t\tconst tableName = table[SQLiteTable.Symbol.Name];\n\t\t\t\t\tconst tableSchema = table[SQLiteTable.Symbol.Schema];\n\t\t\t\t\tconst origTableName = table[SQLiteTable.Symbol.OriginalName];\n\t\t\t\t\tconst alias = tableName === origTableName ? undefined : joinMeta.alias;\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${tableSchema ? sql`${sql.identifier(tableSchema)}.` : undefined}${\n\t\t\t\t\t\t\tsql.identifier(origTableName)\n\t\t\t\t\t\t}${alias && sql` ${sql.identifier(alias)}`} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tjoinsArray.push(\n\t\t\t\t\t\tsql`${sql.raw(joinMeta.joinType)} join ${table} on ${joinMeta.on}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (index < joins.length - 1) {\n\t\t\t\t\tjoinsArray.push(sql` `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst joinsSql = sql.join(joinsArray);\n\n\t\tconst whereSql = where ? sql` where ${where}` : undefined;\n\n\t\tconst havingSql = having ? sql` having ${having}` : undefined;\n\n\t\tconst orderByList: (SQLiteColumn | SQL | SQL.Aliased)[] = [];\n\t\tif (orderBy) {\n\t\t\tfor (const [index, orderByValue] of orderBy.entries()) {\n\t\t\t\torderByList.push(orderByValue);\n\n\t\t\t\tif (index < orderBy.length - 1) {\n\t\t\t\t\torderByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst groupByList: (SQL | AnyColumn | SQL.Aliased)[] = [];\n\t\tif (groupBy) {\n\t\t\tfor (const [index, groupByValue] of groupBy.entries()) {\n\t\t\t\tgroupByList.push(groupByValue);\n\n\t\t\t\tif (index < groupBy.length - 1) {\n\t\t\t\t\tgroupByList.push(sql`, `);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst groupBySql = groupByList.length > 0 ? sql` group by ${sql.join(groupByList)}` : undefined;\n\n\t\tconst orderBySql = orderByList.length > 0 ? sql` order by ${sql.join(orderByList)}` : undefined;\n\n\t\tconst limitSql = limit ? sql` limit ${limit}` : undefined;\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\tconst finalQuery =\n\t\t\tsql`${withSql}select${distinctSql} ${selection} from ${tableSql}${joinsSql}${whereSql}${groupBySql}${havingSql}${orderBySql}${limitSql}${offsetSql}`;\n\n\t\tif (setOperators.length > 0) {\n\t\t\treturn this.buildSetOperations(finalQuery, setOperators);\n\t\t}\n\n\t\treturn finalQuery;\n\t}\n\n\tbuildSetOperations(leftSelect: SQL, setOperators: SQLiteSelectConfig['setOperators']): SQL {\n\t\tconst [setOperator, ...rest] = setOperators;\n\n\t\tif (!setOperator) {\n\t\t\tthrow new Error('Cannot pass undefined values to any set operator');\n\t\t}\n\n\t\tif (rest.length === 0) {\n\t\t\treturn this.buildSetOperationQuery({ leftSelect, setOperator });\n\t\t}\n\n\t\t// Some recursive magic here\n\t\treturn this.buildSetOperations(\n\t\t\tthis.buildSetOperationQuery({ leftSelect, setOperator }),\n\t\t\trest,\n\t\t);\n\t}\n\n\tbuildSetOperationQuery({\n\t\tleftSelect,\n\t\tsetOperator: { type, isAll, rightSelect, limit, orderBy, offset },\n\t}: { leftSelect: SQL; setOperator: SQLiteSelectConfig['setOperators'][number] }): SQL {\n\t\t// SQLite doesn't support parenthesis in set operations\n\t\tconst leftChunk = sql`${leftSelect.getSQL()} `;\n\t\tconst rightChunk = sql`${rightSelect.getSQL()}`;\n\n\t\tlet orderBySql;\n\t\tif (orderBy && orderBy.length > 0) {\n\t\t\tconst orderByValues: (SQL | Name)[] = [];\n\n\t\t\t// The next bit is necessary because the sql operator replaces ${table.column} with `table`.`column`\n\t\t\t// which is invalid Sql syntax, Table from one of the SELECTs cannot be used in global ORDER clause\n\t\t\tfor (const singleOrderBy of orderBy) {\n\t\t\t\tif (is(singleOrderBy, SQLiteColumn)) {\n\t\t\t\t\torderByValues.push(sql.identifier(singleOrderBy.name));\n\t\t\t\t} else if (is(singleOrderBy, SQL)) {\n\t\t\t\t\tfor (let i = 0; i < singleOrderBy.queryChunks.length; i++) {\n\t\t\t\t\t\tconst chunk = singleOrderBy.queryChunks[i];\n\n\t\t\t\t\t\tif (is(chunk, SQLiteColumn)) {\n\t\t\t\t\t\t\tsingleOrderBy.queryChunks[i] = sql.identifier(chunk.name);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t} else {\n\t\t\t\t\torderByValues.push(sql`${singleOrderBy}`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\torderBySql = sql` order by ${sql.join(orderByValues, sql`, `)}`;\n\t\t}\n\n\t\tconst limitSql = limit ? sql` limit ${limit}` : undefined;\n\n\t\tconst operatorChunk = sql.raw(`${type} ${isAll ? 'all ' : ''}`);\n\n\t\tconst offsetSql = offset ? sql` offset ${offset}` : undefined;\n\n\t\treturn sql`${leftChunk}${operatorChunk}${rightChunk}${orderBySql}${limitSql}${offsetSql}`;\n\t}\n\n\tbuildInsertQuery({ table, values, onConflict, returning, withList }: SQLiteInsertConfig): SQL {\n\t\t// const isSingleValue = values.length === 1;\n\t\tconst valuesSqlList: ((SQLChunk | SQL)[] | SQL)[] = [];\n\t\tconst columns: Record = table[Table.Symbol.Columns];\n\n\t\tconst colEntries: [string, SQLiteColumn][] = Object.entries(columns);\n\t\tconst insertOrder = colEntries.map(([, column]) => sql.identifier(column.name));\n\n\t\tfor (const [valueIndex, value] of values.entries()) {\n\t\t\tconst valueList: (SQLChunk | SQL)[] = [];\n\t\t\tfor (const [fieldName, col] of colEntries) {\n\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\tif (colValue === undefined || (is(colValue, Param) && colValue.value === undefined)) {\n\t\t\t\t\tlet defaultValue;\n\t\t\t\t\tif (col.default !== null && col.default !== undefined) {\n\t\t\t\t\t\tdefaultValue = is(col.default, SQL) ? col.default : sql.param(col.default, col);\n\t\t\t\t\t\t// eslint-disable-next-line unicorn/no-negated-condition\n\t\t\t\t\t} else if (col.defaultFn !== undefined) {\n\t\t\t\t\t\tconst defaultFnResult = col.defaultFn();\n\t\t\t\t\t\tdefaultValue = is(defaultFnResult, SQL) ? defaultFnResult : sql.param(defaultFnResult, col);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdefaultValue = sql`null`;\n\t\t\t\t\t}\n\t\t\t\t\tvalueList.push(defaultValue);\n\t\t\t\t} else {\n\t\t\t\t\tvalueList.push(colValue);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvaluesSqlList.push(valueList);\n\t\t\tif (valueIndex < values.length - 1) {\n\t\t\t\tvaluesSqlList.push(sql`, `);\n\t\t\t}\n\t\t}\n\n\t\tconst withSql = this.buildWithCTE(withList);\n\n\t\tconst valuesSql = sql.join(valuesSqlList);\n\n\t\tconst returningSql = returning\n\t\t\t? sql` returning ${this.buildSelection(returning, { isSingleTable: true })}`\n\t\t\t: undefined;\n\n\t\tconst onConflictSql = onConflict ? sql` on conflict ${onConflict}` : undefined;\n\n\t\t// if (isSingleValue && valuesSqlList.length === 0){\n\t\t// \treturn sql`insert into ${table} default values ${onConflictSql}${returningSql}`;\n\t\t// }\n\n\t\treturn sql`${withSql}insert into ${table} ${insertOrder} values ${valuesSql}${onConflictSql}${returningSql}`;\n\t}\n\n\tsqlToQuery(sql: SQL): QueryWithTypings {\n\t\treturn sql.toQuery({\n\t\t\tescapeName: this.escapeName,\n\t\t\tescapeParam: this.escapeParam,\n\t\t\tescapeString: this.escapeString,\n\t\t});\n\t}\n\n\tbuildRelationalQuery({\n\t\tfullSchema,\n\t\tschema,\n\t\ttableNamesMap,\n\t\ttable,\n\t\ttableConfig,\n\t\tqueryConfig: config,\n\t\ttableAlias,\n\t\tnestedQueryRelation,\n\t\tjoinOn,\n\t}: {\n\t\tfullSchema: Record;\n\t\tschema: TablesRelationalConfig;\n\t\ttableNamesMap: Record;\n\t\ttable: SQLiteTable;\n\t\ttableConfig: TableRelationalConfig;\n\t\tqueryConfig: true | DBQueryConfig<'many', true>;\n\t\ttableAlias: string;\n\t\tnestedQueryRelation?: Relation;\n\t\tjoinOn?: SQL;\n\t}): BuildRelationalQueryResult {\n\t\tlet selection: BuildRelationalQueryResult['selection'] = [];\n\t\tlet limit, offset, orderBy: SQLiteSelectConfig['orderBy'] = [], where;\n\t\tconst joins: SQLiteSelectJoinConfig[] = [];\n\n\t\tif (config === true) {\n\t\t\tconst selectionEntries = Object.entries(tableConfig.columns);\n\t\t\tselection = selectionEntries.map((\n\t\t\t\t[key, value],\n\t\t\t) => ({\n\t\t\t\tdbKey: value.name,\n\t\t\t\ttsKey: key,\n\t\t\t\tfield: aliasedTableColumn(value as SQLiteColumn, tableAlias),\n\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\tisJson: false,\n\t\t\t\tselection: [],\n\t\t\t}));\n\t\t} else {\n\t\t\tconst aliasedColumns = Object.fromEntries(\n\t\t\t\tObject.entries(tableConfig.columns).map(([key, value]) => [key, aliasedTableColumn(value, tableAlias)]),\n\t\t\t);\n\n\t\t\tif (config.where) {\n\t\t\t\tconst whereSql = typeof config.where === 'function'\n\t\t\t\t\t? config.where(aliasedColumns, getOperators())\n\t\t\t\t\t: config.where;\n\t\t\t\twhere = whereSql && mapColumnsInSQLToAlias(whereSql, tableAlias);\n\t\t\t}\n\n\t\t\tconst fieldsSelection: { tsKey: string; value: SQLiteColumn | SQL.Aliased }[] = [];\n\t\t\tlet selectedColumns: string[] = [];\n\n\t\t\t// Figure out which columns to select\n\t\t\tif (config.columns) {\n\t\t\t\tlet isIncludeMode = false;\n\n\t\t\t\tfor (const [field, value] of Object.entries(config.columns)) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field in tableConfig.columns) {\n\t\t\t\t\t\tif (!isIncludeMode && value === true) {\n\t\t\t\t\t\t\tisIncludeMode = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tselectedColumns.push(field);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (selectedColumns.length > 0) {\n\t\t\t\t\tselectedColumns = isIncludeMode\n\t\t\t\t\t\t? selectedColumns.filter((c) => config.columns?.[c] === true)\n\t\t\t\t\t\t: Object.keys(tableConfig.columns).filter((key) => !selectedColumns.includes(key));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Select all columns if selection is not specified\n\t\t\t\tselectedColumns = Object.keys(tableConfig.columns);\n\t\t\t}\n\n\t\t\tfor (const field of selectedColumns) {\n\t\t\t\tconst column = tableConfig.columns[field]! as SQLiteColumn;\n\t\t\t\tfieldsSelection.push({ tsKey: field, value: column });\n\t\t\t}\n\n\t\t\tlet selectedRelations: {\n\t\t\t\ttsKey: string;\n\t\t\t\tqueryConfig: true | DBQueryConfig<'many', false>;\n\t\t\t\trelation: Relation;\n\t\t\t}[] = [];\n\n\t\t\t// Figure out which relations to select\n\t\t\tif (config.with) {\n\t\t\t\tselectedRelations = Object.entries(config.with)\n\t\t\t\t\t.filter((entry): entry is [typeof entry[0], NonNullable] => !!entry[1])\n\t\t\t\t\t.map(([tsKey, queryConfig]) => ({ tsKey, queryConfig, relation: tableConfig.relations[tsKey]! }));\n\t\t\t}\n\n\t\t\tlet extras;\n\n\t\t\t// Figure out which extras to select\n\t\t\tif (config.extras) {\n\t\t\t\textras = typeof config.extras === 'function'\n\t\t\t\t\t? config.extras(aliasedColumns, { sql })\n\t\t\t\t\t: config.extras;\n\t\t\t\tfor (const [tsKey, value] of Object.entries(extras)) {\n\t\t\t\t\tfieldsSelection.push({\n\t\t\t\t\t\ttsKey,\n\t\t\t\t\t\tvalue: mapColumnsInAliasedSQLToAlias(value, tableAlias),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Transform `fieldsSelection` into `selection`\n\t\t\t// `fieldsSelection` shouldn't be used after this point\n\t\t\tfor (const { tsKey, value } of fieldsSelection) {\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: is(value, SQL.Aliased) ? value.fieldAlias : tableConfig.columns[tsKey]!.name,\n\t\t\t\t\ttsKey,\n\t\t\t\t\tfield: is(value, Column) ? aliasedTableColumn(value, tableAlias) : value,\n\t\t\t\t\trelationTableTsKey: undefined,\n\t\t\t\t\tisJson: false,\n\t\t\t\t\tselection: [],\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tlet orderByOrig = typeof config.orderBy === 'function'\n\t\t\t\t? config.orderBy(aliasedColumns, getOrderByOperators())\n\t\t\t\t: config.orderBy ?? [];\n\t\t\tif (!Array.isArray(orderByOrig)) {\n\t\t\t\torderByOrig = [orderByOrig];\n\t\t\t}\n\t\t\torderBy = orderByOrig.map((orderByValue) => {\n\t\t\t\tif (is(orderByValue, Column)) {\n\t\t\t\t\treturn aliasedTableColumn(orderByValue, tableAlias) as SQLiteColumn;\n\t\t\t\t}\n\t\t\t\treturn mapColumnsInSQLToAlias(orderByValue, tableAlias);\n\t\t\t});\n\n\t\t\tlimit = config.limit;\n\t\t\toffset = config.offset;\n\n\t\t\t// Process all relations\n\t\t\tfor (\n\t\t\t\tconst {\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tqueryConfig: selectedRelationConfigValue,\n\t\t\t\t\trelation,\n\t\t\t\t} of selectedRelations\n\t\t\t) {\n\t\t\t\tconst normalizedRelation = normalizeRelation(schema, tableNamesMap, relation);\n\t\t\t\tconst relationTableName = relation.referencedTable[Table.Symbol.Name];\n\t\t\t\tconst relationTableTsName = tableNamesMap[relationTableName]!;\n\t\t\t\tconst relationTableAlias = `${tableAlias}_${selectedRelationTsKey}`;\n\t\t\t\t// const relationTable = schema[relationTableTsName]!;\n\t\t\t\tconst joinOn = and(\n\t\t\t\t\t...normalizedRelation.fields.map((field, i) =>\n\t\t\t\t\t\teq(\n\t\t\t\t\t\t\taliasedTableColumn(normalizedRelation.references[i]!, relationTableAlias),\n\t\t\t\t\t\t\taliasedTableColumn(field, tableAlias),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconst builtRelation = this.buildRelationalQuery({\n\t\t\t\t\tfullSchema,\n\t\t\t\t\tschema,\n\t\t\t\t\ttableNamesMap,\n\t\t\t\t\ttable: fullSchema[relationTableTsName] as SQLiteTable,\n\t\t\t\t\ttableConfig: schema[relationTableTsName]!,\n\t\t\t\t\tqueryConfig: is(relation, One)\n\t\t\t\t\t\t? (selectedRelationConfigValue === true\n\t\t\t\t\t\t\t? { limit: 1 }\n\t\t\t\t\t\t\t: { ...selectedRelationConfigValue, limit: 1 })\n\t\t\t\t\t\t: selectedRelationConfigValue,\n\t\t\t\t\ttableAlias: relationTableAlias,\n\t\t\t\t\tjoinOn,\n\t\t\t\t\tnestedQueryRelation: relation,\n\t\t\t\t});\n\t\t\t\tconst field = (sql`(${builtRelation.sql})`).as(selectedRelationTsKey);\n\t\t\t\tselection.push({\n\t\t\t\t\tdbKey: selectedRelationTsKey,\n\t\t\t\t\ttsKey: selectedRelationTsKey,\n\t\t\t\t\tfield,\n\t\t\t\t\trelationTableTsKey: relationTableTsName,\n\t\t\t\t\tisJson: true,\n\t\t\t\t\tselection: builtRelation.selection,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (selection.length === 0) {\n\t\t\tthrow new DrizzleError({\n\t\t\t\tmessage:\n\t\t\t\t\t`No fields selected for table \"${tableConfig.tsName}\" (\"${tableAlias}\"). You need to have at least one item in \"columns\", \"with\" or \"extras\". If you need to select all columns, omit the \"columns\" key or set it to undefined.`,\n\t\t\t});\n\t\t}\n\n\t\tlet result;\n\n\t\twhere = and(joinOn, where);\n\n\t\tif (nestedQueryRelation) {\n\t\t\tlet field = sql`json_array(${\n\t\t\t\tsql.join(\n\t\t\t\t\tselection.map(({ field }) =>\n\t\t\t\t\t\tis(field, SQLiteColumn) ? sql.identifier(field.name) : is(field, SQL.Aliased) ? field.sql : field\n\t\t\t\t\t),\n\t\t\t\t\tsql`, `,\n\t\t\t\t)\n\t\t\t})`;\n\t\t\tif (is(nestedQueryRelation, Many)) {\n\t\t\t\tfield = sql`coalesce(json_group_array(${field}), json_array())`;\n\t\t\t}\n\t\t\tconst nestedSelection = [{\n\t\t\t\tdbKey: 'data',\n\t\t\t\ttsKey: 'data',\n\t\t\t\tfield: field.as('data'),\n\t\t\t\tisJson: true,\n\t\t\t\trelationTableTsKey: tableConfig.tsName,\n\t\t\t\tselection,\n\t\t\t}];\n\n\t\t\tconst needsSubquery = limit !== undefined || offset !== undefined || orderBy.length > 0;\n\n\t\t\tif (needsSubquery) {\n\t\t\t\tresult = this.buildSelectQuery({\n\t\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\t\tfields: {},\n\t\t\t\t\tfieldsFlat: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpath: [],\n\t\t\t\t\t\t\tfield: sql.raw('*'),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\twhere,\n\t\t\t\t\tlimit,\n\t\t\t\t\toffset,\n\t\t\t\t\torderBy,\n\t\t\t\t\tsetOperators: [],\n\t\t\t\t});\n\n\t\t\t\twhere = undefined;\n\t\t\t\tlimit = undefined;\n\t\t\t\toffset = undefined;\n\t\t\t\torderBy = undefined;\n\t\t\t} else {\n\t\t\t\tresult = aliasedTable(table, tableAlias);\n\t\t\t}\n\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: is(result, SQLiteTable) ? result : new Subquery(result, {}, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: nestedSelection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t} else {\n\t\t\tresult = this.buildSelectQuery({\n\t\t\t\ttable: aliasedTable(table, tableAlias),\n\t\t\t\tfields: {},\n\t\t\t\tfieldsFlat: selection.map(({ field }) => ({\n\t\t\t\t\tpath: [],\n\t\t\t\t\tfield: is(field, Column) ? aliasedTableColumn(field, tableAlias) : field,\n\t\t\t\t})),\n\t\t\t\tjoins,\n\t\t\t\twhere,\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\torderBy,\n\t\t\t\tsetOperators: [],\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\ttableTsKey: tableConfig.tsName,\n\t\t\tsql: result,\n\t\t\tselection,\n\t\t};\n\t}\n}\n\nexport class SQLiteSyncDialect extends SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteSyncDialect';\n\n\tmigrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'sync', unknown, Record, TablesRelationalConfig>,\n\t\tconfig?: string | MigrationConfig,\n\t): void {\n\t\tconst migrationsTable = config === undefined\n\t\t\t? '__drizzle_migrations'\n\t\t\t: typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tsession.run(migrationTableCreate);\n\n\t\tconst dbMigrations = session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\t\tsession.run(sql`BEGIN`);\n\n\t\ttry {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tsession.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tsession.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsession.run(sql`COMMIT`);\n\t\t} catch (e) {\n\t\t\tsession.run(sql`ROLLBACK`);\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class SQLiteAsyncDialect extends SQLiteDialect {\n\tstatic readonly [entityKind]: string = 'SQLiteAsyncDialect';\n\n\tasync migrate(\n\t\tmigrations: MigrationMeta[],\n\t\tsession: SQLiteSession<'async', unknown, Record, TablesRelationalConfig>,\n\t\tconfig: string | MigrationConfig,\n\t): Promise {\n\t\tconst migrationsTable = typeof config === 'string'\n\t\t\t? '__drizzle_migrations'\n\t\t\t: config.migrationsTable ?? '__drizzle_migrations';\n\n\t\tconst migrationTableCreate = sql`\n\t\t\tCREATE TABLE IF NOT EXISTS ${sql.identifier(migrationsTable)} (\n\t\t\t\tid SERIAL PRIMARY KEY,\n\t\t\t\thash text NOT NULL,\n\t\t\t\tcreated_at numeric\n\t\t\t)\n\t\t`;\n\t\tawait session.run(migrationTableCreate);\n\n\t\tconst dbMigrations = await session.values<[number, string, string]>(\n\t\t\tsql`SELECT id, hash, created_at FROM ${sql.identifier(migrationsTable)} ORDER BY created_at DESC LIMIT 1`,\n\t\t);\n\n\t\tconst lastDbMigration = dbMigrations[0] ?? undefined;\n\n\t\tawait session.transaction(async (tx) => {\n\t\t\tfor (const migration of migrations) {\n\t\t\t\tif (!lastDbMigration || Number(lastDbMigration[2])! < migration.folderMillis) {\n\t\t\t\t\tfor (const stmt of migration.sql) {\n\t\t\t\t\t\tawait tx.run(sql.raw(stmt));\n\t\t\t\t\t}\n\t\t\t\t\tawait tx.run(\n\t\t\t\t\t\tsql`INSERT INTO ${\n\t\t\t\t\t\t\tsql.identifier(migrationsTable)\n\t\t\t\t\t\t} (\"hash\", \"created_at\") VALUES(${migration.hash}, ${migration.folderMillis})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/sql/index.ts';\n\nexport abstract class TypedQueryBuilder implements SQLWrapper {\n\tstatic readonly [entityKind]: string = 'TypedQueryBuilder';\n\n\tdeclare _: {\n\t\tselectedFields: TSelection;\n\t\tresult: TResult;\n\t};\n\n\t/** @internal */\n\tgetSelectedFields(): TSelection {\n\t\treturn this._.selectedFields;\n\t}\n\n\tabstract getSQL(): SQL;\n}\n", "import { entityKind, is } from '~/entity.ts';\nimport { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type {\n\tBuildSubquerySelection,\n\tGetSelectTableName,\n\tGetSelectTableSelection,\n\tJoinNullability,\n\tJoinType,\n\tSelectMode,\n\tSelectResult,\n\tSetOperator,\n} from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport { SQL, View } from '~/sql/sql.ts';\nimport type { ColumnsSelection, Placeholder, Query, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteColumn } from '~/sqlite-core/columns/index.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLiteSession } from '~/sqlite-core/session.ts';\nimport type { SubqueryWithSelection } from '~/sqlite-core/subquery.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { Subquery, SubqueryConfig } from '~/subquery.ts';\nimport { Table } from '~/table.ts';\nimport {\n\tapplyMixins,\n\tgetTableColumns,\n\tgetTableLikeName,\n\thaveSameKeys,\n\torderSelectedFields,\n\ttype ValueOrArray,\n} from '~/utils.ts';\nimport { ViewBaseConfig } from '~/view-common.ts';\nimport { SQLiteViewBase } from '../view-base.ts';\nimport type {\n\tAnySQLiteSelect,\n\tCreateSQLiteSelectFromBuilderMode,\n\tGetSQLiteSetOperators,\n\tSelectedFields,\n\tSetOperatorRightSelect,\n\tSQLiteCreateSetOperatorFn,\n\tSQLiteJoinFn,\n\tSQLiteSelectConfig,\n\tSQLiteSelectDynamic,\n\tSQLiteSelectExecute,\n\tSQLiteSelectHKT,\n\tSQLiteSelectHKTBase,\n\tSQLiteSelectPrepare,\n\tSQLiteSelectWithout,\n\tSQLiteSetOperatorExcludedMethods,\n\tSQLiteSetOperatorWithResult,\n} from './select.types.ts';\n\nexport class SQLiteSelectBuilder<\n\tTSelection extends SelectedFields | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTBuilderMode extends 'db' | 'qb' = 'db',\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSelectBuilder';\n\n\tprivate fields: TSelection;\n\tprivate session: SQLiteSession | undefined;\n\tprivate dialect: SQLiteDialect;\n\tprivate withList: Subquery[] | undefined;\n\tprivate distinct: boolean | undefined;\n\n\tconstructor(\n\t\tconfig: {\n\t\t\tfields: TSelection;\n\t\t\tsession: SQLiteSession | undefined;\n\t\t\tdialect: SQLiteDialect;\n\t\t\twithList?: Subquery[];\n\t\t\tdistinct?: boolean;\n\t\t},\n\t) {\n\t\tthis.fields = config.fields;\n\t\tthis.session = config.session;\n\t\tthis.dialect = config.dialect;\n\t\tthis.withList = config.withList;\n\t\tthis.distinct = config.distinct;\n\t}\n\n\tfrom(\n\t\tsource: TFrom,\n\t): CreateSQLiteSelectFromBuilderMode<\n\t\tTBuilderMode,\n\t\tGetSelectTableName,\n\t\tTResultType,\n\t\tTRunResult,\n\t\tTSelection extends undefined ? GetSelectTableSelection : TSelection,\n\t\tTSelection extends undefined ? 'single' : 'partial'\n\t> {\n\t\tconst isPartialSelect = !!this.fields;\n\n\t\tlet fields: SelectedFields;\n\t\tif (this.fields) {\n\t\t\tfields = this.fields;\n\t\t} else if (is(source, Subquery)) {\n\t\t\t// This is required to use the proxy handler to get the correct field values from the subquery\n\t\t\tfields = Object.fromEntries(\n\t\t\t\tObject.keys(source[SubqueryConfig].selection).map((\n\t\t\t\t\tkey,\n\t\t\t\t) => [key, source[key as unknown as keyof typeof source] as unknown as SelectedFields[string]]),\n\t\t\t);\n\t\t} else if (is(source, SQLiteViewBase)) {\n\t\t\tfields = source[ViewBaseConfig].selectedFields as SelectedFields;\n\t\t} else if (is(source, SQL)) {\n\t\t\tfields = {};\n\t\t} else {\n\t\t\tfields = getTableColumns(source);\n\t\t}\n\n\t\treturn new SQLiteSelectBase({\n\t\t\ttable: source,\n\t\t\tfields,\n\t\t\tisPartialSelect,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\twithList: this.withList,\n\t\t\tdistinct: this.distinct,\n\t\t}) as any;\n\t}\n}\n\nexport abstract class SQLiteSelectQueryBuilderBase<\n\tTHKT extends SQLiteSelectHKTBase,\n\tTTableName extends string | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode,\n\tTNullabilityMap extends Record = TTableName extends string ? Record\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection,\n> extends TypedQueryBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteSelectQueryBuilder';\n\n\toverride readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly hkt: THKT;\n\t\treadonly tableName: TTableName;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly selection: TSelection;\n\t\treadonly selectMode: TSelectMode;\n\t\treadonly nullabilityMap: TNullabilityMap;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TResult;\n\t\treadonly selectedFields: TSelectedFields;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteSelectConfig;\n\tprotected joinsNotNullableMap: Record;\n\tprivate tableName: string | undefined;\n\tprivate isPartialSelect: boolean;\n\tprotected session: SQLiteSession | undefined;\n\tprotected dialect: SQLiteDialect;\n\n\tconstructor(\n\t\t{ table, fields, isPartialSelect, session, dialect, withList, distinct }: {\n\t\t\ttable: SQLiteSelectConfig['table'];\n\t\t\tfields: SQLiteSelectConfig['fields'];\n\t\t\tisPartialSelect: boolean;\n\t\t\tsession: SQLiteSession | undefined;\n\t\t\tdialect: SQLiteDialect;\n\t\t\twithList: Subquery[] | undefined;\n\t\t\tdistinct: boolean | undefined;\n\t\t},\n\t) {\n\t\tsuper();\n\t\tthis.config = {\n\t\t\twithList,\n\t\t\ttable,\n\t\t\tfields: { ...fields },\n\t\t\tdistinct,\n\t\t\tsetOperators: [],\n\t\t};\n\t\tthis.isPartialSelect = isPartialSelect;\n\t\tthis.session = session;\n\t\tthis.dialect = dialect;\n\t\tthis._ = {\n\t\t\tselectedFields: fields as TSelectedFields,\n\t\t} as this['_'];\n\t\tthis.tableName = getTableLikeName(table);\n\t\tthis.joinsNotNullableMap = typeof this.tableName === 'string' ? { [this.tableName]: true } : {};\n\t}\n\n\tprivate createJoin(\n\t\tjoinType: TJoinType,\n\t): SQLiteJoinFn {\n\t\treturn (\n\t\t\ttable: SQLiteTable | Subquery | SQLiteViewBase | SQL,\n\t\t\ton: ((aliases: TSelection) => SQL | undefined) | SQL | undefined,\n\t\t) => {\n\t\t\tconst baseTableName = this.tableName;\n\t\t\tconst tableName = getTableLikeName(table);\n\n\t\t\tif (typeof tableName === 'string' && this.config.joins?.some((join) => join.alias === tableName)) {\n\t\t\t\tthrow new Error(`Alias \"${tableName}\" is already used in this query`);\n\t\t\t}\n\n\t\t\tif (!this.isPartialSelect) {\n\t\t\t\t// If this is the first join and this is not a partial select and we're not selecting from raw SQL, \"move\" the fields from the main table to the nested object\n\t\t\t\tif (Object.keys(this.joinsNotNullableMap).length === 1 && typeof baseTableName === 'string') {\n\t\t\t\t\tthis.config.fields = {\n\t\t\t\t\t\t[baseTableName]: this.config.fields,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (typeof tableName === 'string' && !is(table, SQL)) {\n\t\t\t\t\tconst selection = is(table, Subquery)\n\t\t\t\t\t\t? table[SubqueryConfig].selection\n\t\t\t\t\t\t: is(table, View)\n\t\t\t\t\t\t? table[ViewBaseConfig].selectedFields\n\t\t\t\t\t\t: table[Table.Symbol.Columns];\n\t\t\t\t\tthis.config.fields[tableName] = selection;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof on === 'function') {\n\t\t\t\ton = on(\n\t\t\t\t\tnew Proxy(\n\t\t\t\t\t\tthis.config.fields,\n\t\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t\t) as TSelection,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (!this.config.joins) {\n\t\t\t\tthis.config.joins = [];\n\t\t\t}\n\t\t\tthis.config.joins.push({ on, table, joinType, alias: tableName });\n\n\t\t\tif (typeof tableName === 'string') {\n\t\t\t\tswitch (joinType) {\n\t\t\t\t\tcase 'left': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'right': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'inner': {\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase 'full': {\n\t\t\t\t\t\tthis.joinsNotNullableMap = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries(this.joinsNotNullableMap).map(([key]) => [key, false]),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.joinsNotNullableMap[tableName] = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this as any;\n\t\t};\n\t}\n\n\t/**\n\t * Executes a `left join` operation by adding another table to the current query.\n\t *\n\t * Calling this method associates each row of the table with the corresponding row from the joined table, if a match is found. If no matching row exists, it sets all columns of the joined table to null.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#left-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User; pets: Pet | null }[] = await db.select()\n\t * .from(users)\n\t * .leftJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number; petId: number | null }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .leftJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\tleftJoin = this.createJoin('left');\n\n\t/**\n\t * Executes a `right join` operation by adding another table to the current query.\n\t *\n\t * Calling this method associates each row of the joined table with the corresponding row from the main table, if a match is found. If no matching row exists, it sets all columns of the main table to null.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#right-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User | null; pets: Pet }[] = await db.select()\n\t * .from(users)\n\t * .rightJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number | null; petId: number }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .rightJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\trightJoin = this.createJoin('right');\n\n\t/**\n\t * Executes an `inner join` operation, creating a new table by combining rows from two tables that have matching values.\n\t *\n\t * Calling this method retrieves rows that have corresponding entries in both joined tables. Rows without matching entries in either table are excluded, resulting in a table that includes only matching pairs.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#inner-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User; pets: Pet }[] = await db.select()\n\t * .from(users)\n\t * .innerJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number; petId: number }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .innerJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\tinnerJoin = this.createJoin('inner');\n\n\t/**\n\t * Executes a `full join` operation by combining rows from two tables into a new table.\n\t *\n\t * Calling this method retrieves all rows from both main and joined tables, merging rows with matching values and filling in `null` for non-matching columns.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/joins#full-join}\n\t *\n\t * @param table the table to join.\n\t * @param on the `on` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all users and their pets\n\t * const usersWithPets: { user: User | null; pets: Pet | null }[] = await db.select()\n\t * .from(users)\n\t * .fullJoin(pets, eq(users.id, pets.ownerId))\n\t *\n\t * // Select userId and petId\n\t * const usersIdsAndPetIds: { userId: number | null; petId: number | null }[] = await db.select({\n\t * userId: users.id,\n\t * petId: pets.id,\n\t * })\n\t * .from(users)\n\t * .fullJoin(pets, eq(users.id, pets.ownerId))\n\t * ```\n\t */\n\tfullJoin = this.createJoin('full');\n\n\tprivate createSetOperator(\n\t\ttype: SetOperator,\n\t\tisAll: boolean,\n\t): >(\n\t\trightSelection:\n\t\t\t| ((setOperators: GetSQLiteSetOperators) => SetOperatorRightSelect)\n\t\t\t| SetOperatorRightSelect,\n\t) => SQLiteSelectWithout<\n\t\tthis,\n\t\tTDynamic,\n\t\tSQLiteSetOperatorExcludedMethods,\n\t\ttrue\n\t> {\n\t\treturn (rightSelection) => {\n\t\t\tconst rightSelect = (typeof rightSelection === 'function'\n\t\t\t\t? rightSelection(getSQLiteSetOperators())\n\t\t\t\t: rightSelection) as TypedQueryBuilder<\n\t\t\t\t\tany,\n\t\t\t\t\tTResult\n\t\t\t\t>;\n\n\t\t\tif (!haveSameKeys(this.getSelectedFields(), rightSelect.getSelectedFields())) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Set operator error (union / intersect / except): selected fields are not the same or are in a different order',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.config.setOperators.push({ type, isAll, rightSelect });\n\t\t\treturn this as any;\n\t\t};\n\t}\n\n\t/**\n\t * Adds `union` set operator to the query.\n\t *\n\t * Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique names from customers and users tables\n\t * await db.select({ name: users.name })\n\t * .from(users)\n\t * .union(\n\t * db.select({ name: customers.name }).from(customers)\n\t * );\n\t * // or\n\t * import { union } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await union(\n\t * db.select({ name: users.name }).from(users),\n\t * db.select({ name: customers.name }).from(customers)\n\t * );\n\t * ```\n\t */\n\tunion = this.createSetOperator('union', false);\n\n\t/**\n\t * Adds `union all` set operator to the query.\n\t *\n\t * Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all transaction ids from both online and in-store sales\n\t * await db.select({ transaction: onlineSales.transactionId })\n\t * .from(onlineSales)\n\t * .unionAll(\n\t * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t * );\n\t * // or\n\t * import { unionAll } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await unionAll(\n\t * db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n\t * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n\t * );\n\t * ```\n\t */\n\tunionAll = this.createSetOperator('union', true);\n\n\t/**\n\t * Adds `intersect` set operator to the query.\n\t *\n\t * Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select course names that are offered in both departments A and B\n\t * await db.select({ courseName: depA.courseName })\n\t * .from(depA)\n\t * .intersect(\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * // or\n\t * import { intersect } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await intersect(\n\t * db.select({ courseName: depA.courseName }).from(depA),\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * ```\n\t */\n\tintersect = this.createSetOperator('intersect', false);\n\n\t/**\n\t * Adds `except` set operator to the query.\n\t *\n\t * Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all courses offered in department A but not in department B\n\t * await db.select({ courseName: depA.courseName })\n\t * .from(depA)\n\t * .except(\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * // or\n\t * import { except } from 'drizzle-orm/sqlite-core'\n\t *\n\t * await except(\n\t * db.select({ courseName: depA.courseName }).from(depA),\n\t * db.select({ courseName: depB.courseName }).from(depB)\n\t * );\n\t * ```\n\t */\n\texcept = this.createSetOperator('except', false);\n\n\t/** @internal */\n\taddSetOperators(setOperators: SQLiteSelectConfig['setOperators']): SQLiteSelectWithout<\n\t\tthis,\n\t\tTDynamic,\n\t\tSQLiteSetOperatorExcludedMethods,\n\t\ttrue\n\t> {\n\t\tthis.config.setOperators.push(...setOperators);\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `where` clause to the query.\n\t *\n\t * Calling this method will select only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#filtering}\n\t *\n\t * @param where the `where` clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be selected.\n\t *\n\t * ```ts\n\t * // Select all cars with green color\n\t * await db.select().from(cars).where(eq(cars.color, 'green'));\n\t * // or\n\t * await db.select().from(cars).where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Select all BMW cars with a green color\n\t * await db.select().from(cars).where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Select all cars with the green or blue color\n\t * await db.select().from(cars).where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(\n\t\twhere: ((aliases: TSelection) => SQL | undefined) | SQL | undefined,\n\t): SQLiteSelectWithout {\n\t\tif (typeof where === 'function') {\n\t\t\twhere = where(\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\t\t}\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `having` clause to the query.\n\t *\n\t * Calling this method will select only those rows that fulfill a specified condition. It is typically used with aggregate functions to filter the aggregated data based on a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n\t *\n\t * @param having the `having` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all brands with more than one car\n\t * await db.select({\n\t * \tbrand: cars.brand,\n\t * \tcount: sql`cast(count(${cars.id}) as int)`,\n\t * })\n\t * .from(cars)\n\t * .groupBy(cars.brand)\n\t * .having(({ count }) => gt(count, 1));\n\t * ```\n\t */\n\thaving(\n\t\thaving: ((aliases: this['_']['selection']) => SQL | undefined) | SQL | undefined,\n\t): SQLiteSelectWithout {\n\t\tif (typeof having === 'function') {\n\t\t\thaving = having(\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'sql', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\t\t}\n\t\tthis.config.having = having;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `group by` clause to the query.\n\t *\n\t * Calling this method will group rows that have the same values into summary rows, often used for aggregation purposes.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#aggregations}\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Group and count people by their last names\n\t * await db.select({\n\t * lastName: people.lastName,\n\t * count: sql`cast(count(*) as int)`\n\t * })\n\t * .from(people)\n\t * .groupBy(people.lastName);\n\t * ```\n\t */\n\tgroupBy(\n\t\tbuilder: (aliases: this['_']['selection']) => ValueOrArray,\n\t): SQLiteSelectWithout;\n\tgroupBy(...columns: (SQLiteColumn | SQL)[]): SQLiteSelectWithout;\n\tgroupBy(\n\t\t...columns:\n\t\t\t| [(aliases: this['_']['selection']) => ValueOrArray]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteSelectWithout {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst groupBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\t\t\tthis.config.groupBy = Array.isArray(groupBy) ? groupBy : [groupBy];\n\t\t} else {\n\t\t\tthis.config.groupBy = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `order by` clause to the query.\n\t *\n\t * Calling this method will sort the result-set in ascending or descending order. By default, the sort order is ascending.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#order-by}\n\t *\n\t * @example\n\t *\n\t * ```\n\t * // Select cars ordered by year\n\t * await db.select().from(cars).orderBy(cars.year);\n\t * ```\n\t *\n\t * You can specify whether results are in ascending or descending order with the `asc()` and `desc()` operators.\n\t *\n\t * ```ts\n\t * // Select cars ordered by year in descending order\n\t * await db.select().from(cars).orderBy(desc(cars.year));\n\t *\n\t * // Select cars ordered by year and price\n\t * await db.select().from(cars).orderBy(asc(cars.year), desc(cars.price));\n\t * ```\n\t */\n\torderBy(\n\t\tbuilder: (aliases: this['_']['selection']) => ValueOrArray,\n\t): SQLiteSelectWithout;\n\torderBy(...columns: (SQLiteColumn | SQL)[]): SQLiteSelectWithout;\n\torderBy(\n\t\t...columns:\n\t\t\t| [(aliases: this['_']['selection']) => ValueOrArray]\n\t\t\t| (SQLiteColumn | SQL | SQL.Aliased)[]\n\t): SQLiteSelectWithout {\n\t\tif (typeof columns[0] === 'function') {\n\t\t\tconst orderBy = columns[0](\n\t\t\t\tnew Proxy(\n\t\t\t\t\tthis.config.fields,\n\t\t\t\t\tnew SelectionProxyHandler({ sqlAliasedBehavior: 'alias', sqlBehavior: 'sql' }),\n\t\t\t\t) as TSelection,\n\t\t\t);\n\n\t\t\tconst orderByArray = Array.isArray(orderBy) ? orderBy : [orderBy];\n\n\t\t\tif (this.config.setOperators.length > 0) {\n\t\t\t\tthis.config.setOperators.at(-1)!.orderBy = orderByArray;\n\t\t\t} else {\n\t\t\t\tthis.config.orderBy = orderByArray;\n\t\t\t}\n\t\t} else {\n\t\t\tconst orderByArray = columns as (SQLiteColumn | SQL | SQL.Aliased)[];\n\n\t\t\tif (this.config.setOperators.length > 0) {\n\t\t\t\tthis.config.setOperators.at(-1)!.orderBy = orderByArray;\n\t\t\t} else {\n\t\t\t\tthis.config.orderBy = orderByArray;\n\t\t\t}\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `limit` clause to the query.\n\t *\n\t * Calling this method will set the maximum number of rows that will be returned by this query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t *\n\t * @param limit the `limit` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Get the first 10 people from this query.\n\t * await db.select().from(people).limit(10);\n\t * ```\n\t */\n\tlimit(limit: number | Placeholder): SQLiteSelectWithout {\n\t\tif (this.config.setOperators.length > 0) {\n\t\t\tthis.config.setOperators.at(-1)!.limit = limit;\n\t\t} else {\n\t\t\tthis.config.limit = limit;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds an `offset` clause to the query.\n\t *\n\t * Calling this method will skip a number of rows when returning results from this query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#limit--offset}\n\t *\n\t * @param offset the `offset` clause.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Get the 10th-20th people from this query.\n\t * await db.select().from(people).offset(10).limit(10);\n\t * ```\n\t */\n\toffset(offset: number | Placeholder): SQLiteSelectWithout {\n\t\tif (this.config.setOperators.length > 0) {\n\t\t\tthis.config.setOperators.at(-1)!.offset = offset;\n\t\t} else {\n\t\t\tthis.config.offset = offset;\n\t\t}\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildSelectQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\tas(\n\t\talias: TAlias,\n\t): SubqueryWithSelection {\n\t\treturn new Proxy(\n\t\t\tnew Subquery(this.getSQL(), this.config.fields, alias),\n\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t) as SubqueryWithSelection;\n\t}\n\n\t/** @internal */\n\toverride getSelectedFields(): this['_']['selectedFields'] {\n\t\treturn new Proxy(\n\t\t\tthis.config.fields,\n\t\t\tnew SelectionProxyHandler({ alias: this.tableName, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t) as this['_']['selectedFields'];\n\t}\n\n\t$dynamic(): SQLiteSelectDynamic {\n\t\treturn this;\n\t}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SQLiteSelectBase<\n\tTTableName extends string | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTSelection extends ColumnsSelection,\n\tTSelectMode extends SelectMode = 'single',\n\tTNullabilityMap extends Record = TTableName extends string ? Record\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult extends any[] = SelectResult[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection,\n> extends\n\tSQLiteSelectQueryBuilderBase<\n\t\tSQLiteSelectHKT,\n\t\tTTableName,\n\t\tTResultType,\n\t\tTRunResult,\n\t\tTSelection,\n\t\tTSelectMode,\n\t\tTNullabilityMap,\n\t\tTDynamic,\n\t\tTExcludedMethods,\n\t\tTResult,\n\t\tTSelectedFields\n\t>,\n\tQueryPromise\n{}\n\nexport class SQLiteSelectBase<\n\tTTableName extends string | undefined,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTSelection,\n\tTSelectMode extends SelectMode = 'single',\n\tTNullabilityMap extends Record = TTableName extends string ? Record\n\t\t: {},\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n\tTResult = SelectResult[],\n\tTSelectedFields extends ColumnsSelection = BuildSubquerySelection,\n> extends SQLiteSelectQueryBuilderBase<\n\tSQLiteSelectHKT,\n\tTTableName,\n\tTResultType,\n\tTRunResult,\n\tTSelection,\n\tTSelectMode,\n\tTNullabilityMap,\n\tTDynamic,\n\tTExcludedMethods,\n\tTResult,\n\tTSelectedFields\n> implements RunnableQuery, SQLWrapper {\n\tstatic readonly [entityKind]: string = 'SQLiteSelect';\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteSelectPrepare {\n\t\tif (!this.session) {\n\t\t\tthrow new Error('Cannot execute a query on a query builder. Please use a database instance instead.');\n\t\t}\n\t\tconst fieldsList = orderSelectedFields(this.config.fields);\n\t\tconst query = this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tfieldsList,\n\t\t\t'all',\n\t\t);\n\t\tquery.joinsNotNullableMap = this.joinsNotNullableMap;\n\t\treturn query as ReturnType;\n\t}\n\n\tprepare(): SQLiteSelectPrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\tasync execute(): Promise> {\n\t\treturn this.all() as SQLiteSelectExecute;\n\t}\n}\n\napplyMixins(SQLiteSelectBase, [QueryPromise]);\n\nfunction createSetOperator(type: SetOperator, isAll: boolean): SQLiteCreateSetOperatorFn {\n\treturn (leftSelect, rightSelect, ...restSelects) => {\n\t\tconst setOperators = [rightSelect, ...restSelects].map((select) => ({\n\t\t\ttype,\n\t\t\tisAll,\n\t\t\trightSelect: select as AnySQLiteSelect,\n\t\t}));\n\n\t\tfor (const setOperator of setOperators) {\n\t\t\tif (!haveSameKeys((leftSelect as any).getSelectedFields(), setOperator.rightSelect.getSelectedFields())) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Set operator error (union / intersect / except): selected fields are not the same or are in a different order',\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn (leftSelect as AnySQLiteSelect).addSetOperators(setOperators) as any;\n\t};\n}\n\nconst getSQLiteSetOperators = () => ({\n\tunion,\n\tunionAll,\n\tintersect,\n\texcept,\n});\n\n/**\n * Adds `union` set operator to the query.\n *\n * Calling this method will combine the result sets of the `select` statements and remove any duplicate rows that appear across them.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#union}\n *\n * @example\n *\n * ```ts\n * // Select all unique names from customers and users tables\n * import { union } from 'drizzle-orm/sqlite-core'\n *\n * await union(\n * db.select({ name: users.name }).from(users),\n * db.select({ name: customers.name }).from(customers)\n * );\n * // or\n * await db.select({ name: users.name })\n * .from(users)\n * .union(\n * db.select({ name: customers.name }).from(customers)\n * );\n * ```\n */\nexport const union = createSetOperator('union', false);\n\n/**\n * Adds `union all` set operator to the query.\n *\n * Calling this method will combine the result-set of the `select` statements and keep all duplicate rows that appear across them.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#union-all}\n *\n * @example\n *\n * ```ts\n * // Select all transaction ids from both online and in-store sales\n * import { unionAll } from 'drizzle-orm/sqlite-core'\n *\n * await unionAll(\n * db.select({ transaction: onlineSales.transactionId }).from(onlineSales),\n * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n * );\n * // or\n * await db.select({ transaction: onlineSales.transactionId })\n * .from(onlineSales)\n * .unionAll(\n * db.select({ transaction: inStoreSales.transactionId }).from(inStoreSales)\n * );\n * ```\n */\nexport const unionAll = createSetOperator('union', true);\n\n/**\n * Adds `intersect` set operator to the query.\n *\n * Calling this method will retain only the rows that are present in both result sets and eliminate duplicates.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#intersect}\n *\n * @example\n *\n * ```ts\n * // Select course names that are offered in both departments A and B\n * import { intersect } from 'drizzle-orm/sqlite-core'\n *\n * await intersect(\n * db.select({ courseName: depA.courseName }).from(depA),\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * // or\n * await db.select({ courseName: depA.courseName })\n * .from(depA)\n * .intersect(\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * ```\n */\nexport const intersect = createSetOperator('intersect', false);\n\n/**\n * Adds `except` set operator to the query.\n *\n * Calling this method will retrieve all unique rows from the left query, except for the rows that are present in the result set of the right query.\n *\n * See docs: {@link https://orm.drizzle.team/docs/set-operations#except}\n *\n * @example\n *\n * ```ts\n * // Select all courses offered in department A but not in department B\n * import { except } from 'drizzle-orm/sqlite-core'\n *\n * await except(\n * db.select({ courseName: depA.courseName }).from(depA),\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * // or\n * await db.select({ courseName: depA.courseName })\n * .from(depA)\n * .except(\n * db.select({ courseName: depB.courseName }).from(depB)\n * );\n * ```\n */\nexport const except = createSetOperator('except', false);\n", "import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { WithSubqueryWithSelection } from '~/sqlite-core/subquery.ts';\nimport { SQLiteSelectBuilder } from './select.ts';\nimport type { SelectedFields } from './select.types.ts';\nimport type { ColumnsSelection } from '~/sql/sql.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\n\nexport class QueryBuilder {\n\tstatic readonly [entityKind]: string = 'SQLiteQueryBuilder';\n\n\tprivate dialect: SQLiteSyncDialect | undefined;\n\n\t$with(alias: TAlias) {\n\t\tconst queryBuilder = this;\n\n\t\treturn {\n\t\t\tas(\n\t\t\t\tqb: TypedQueryBuilder | ((qb: QueryBuilder) => TypedQueryBuilder),\n\t\t\t): WithSubqueryWithSelection {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(queryBuilder);\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection;\n\t\t\t},\n\t\t};\n\t}\n\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\tfunction select(): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields?: TSelection,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\tfunction selectDistinct(): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields?: TSelection,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: undefined,\n\t\t\t\tdialect: self.getDialect(),\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\treturn { select, selectDistinct };\n\t}\n\n\tselect(): SQLiteSelectBuilder;\n\tselect(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselect(\n\t\tfields?: TSelection,\n\t): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({ fields: fields ?? undefined, session: undefined, dialect: this.getDialect() });\n\t}\n\n\tselectDistinct(): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields?: TSelection,\n\t): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: undefined,\n\t\t\tdialect: this.getDialect(),\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t// Lazy load dialect to avoid circular dependency\n\tprivate getDialect() {\n\t\tif (!this.dialect) {\n\t\t\tthis.dialect = new SQLiteSyncDialect();\n\t\t}\n\n\t\treturn this.dialect;\n\t}\n}\n", "import type { GetColumnData } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { SelectResultFields } from '~/query-builders/select.types.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteDialect } from '~/sqlite-core/dialect.ts';\nimport type { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { SQLiteTable } from '~/sqlite-core/table.ts';\nimport type { Subquery } from '~/subquery.ts';\nimport { type DrizzleTypeError, mapUpdateSet, orderSelectedFields, type UpdateSet } from '~/utils.ts';\nimport type { SQLiteColumn } from '../columns/common.ts';\nimport type { SelectedFields, SelectedFieldsOrdered } from './select.types.ts';\n\nexport interface SQLiteUpdateConfig {\n\twhere?: SQL | undefined;\n\tset: UpdateSet;\n\ttable: SQLiteTable;\n\treturning?: SelectedFieldsOrdered;\n\twithList?: Subquery[];\n}\n\nexport type SQLiteUpdateSetSource =\n\t& {\n\t\t[Key in keyof TTable['_']['columns']]?:\n\t\t\t| GetColumnData\n\t\t\t| SQL;\n\t}\n\t& {};\n\nexport class SQLiteUpdateBuilder<\n\tTTable extends SQLiteTable,\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteUpdateBuilder';\n\n\tdeclare readonly _: {\n\t\treadonly table: TTable;\n\t};\n\n\tconstructor(\n\t\tprotected table: TTable,\n\t\tprotected session: SQLiteSession,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprivate withList?: Subquery[],\n\t) {}\n\n\tset(values: SQLiteUpdateSetSource): SQLiteUpdateBase {\n\t\treturn new SQLiteUpdateBase(\n\t\t\tthis.table,\n\t\t\tmapUpdateSet(this.table, values),\n\t\t\tthis.session,\n\t\t\tthis.dialect,\n\t\t\tthis.withList,\n\t\t);\n\t}\n}\n\nexport type SQLiteUpdateWithout<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tK extends keyof T & string,\n> = TDynamic extends true ? T : Omit<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['returning'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods'] | K\n\t>,\n\tT['_']['excludedMethods'] | K\n>;\n\nexport type SQLiteUpdateReturningAll = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tT['_']['table']['$inferSelect'],\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateReturning<\n\tT extends AnySQLiteUpdate,\n\tTDynamic extends boolean,\n\tTSelectedFields extends SelectedFields,\n> = SQLiteUpdateWithout<\n\tSQLiteUpdateBase<\n\t\tT['_']['table'],\n\t\tT['_']['resultType'],\n\t\tT['_']['runResult'],\n\t\tSelectResultFields,\n\t\tTDynamic,\n\t\tT['_']['excludedMethods']\n\t>,\n\tTDynamic,\n\t'returning'\n>;\n\nexport type SQLiteUpdateExecute = T['_']['returning'] extends undefined ? T['_']['runResult']\n\t: T['_']['returning'][];\n\nexport type SQLiteUpdatePrepare = SQLitePreparedQuery<\n\t{\n\t\ttype: T['_']['resultType'];\n\t\trun: T['_']['runResult'];\n\t\tall: T['_']['returning'] extends undefined ? DrizzleTypeError<'.all() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'][];\n\t\tget: T['_']['returning'] extends undefined ? DrizzleTypeError<'.get() cannot be used without .returning()'>\n\t\t\t: T['_']['returning'];\n\t\tvalues: T['_']['returning'] extends undefined ? DrizzleTypeError<'.values() cannot be used without .returning()'>\n\t\t\t: any[][];\n\t\texecute: SQLiteUpdateExecute;\n\t}\n>;\n\nexport type SQLiteUpdateDynamic = SQLiteUpdate<\n\tT['_']['table'],\n\tT['_']['resultType'],\n\tT['_']['runResult'],\n\tT['_']['returning']\n>;\n\nexport type SQLiteUpdate<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = any,\n\tTReturning extends Record | undefined = Record | undefined,\n> = SQLiteUpdateBase;\n\ntype AnySQLiteUpdate = SQLiteUpdateBase;\n\nexport interface SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = undefined,\n\tTDynamic extends boolean = false,\n\tTExcludedMethods extends string = never,\n> extends SQLWrapper, QueryPromise {\n\treadonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly table: TTable;\n\t\treadonly resultType: TResultType;\n\t\treadonly runResult: TRunResult;\n\t\treadonly returning: TReturning;\n\t\treadonly dynamic: TDynamic;\n\t\treadonly excludedMethods: TExcludedMethods;\n\t\treadonly result: TReturning extends undefined ? TRunResult : TReturning[];\n\t};\n}\n\nexport class SQLiteUpdateBase<\n\tTTable extends SQLiteTable = SQLiteTable,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTResultType extends 'sync' | 'async' = 'sync' | 'async',\n\tTRunResult = unknown,\n\tTReturning = undefined,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTDynamic extends boolean = false,\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tTExcludedMethods extends string = never,\n> extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteUpdate';\n\n\t/** @internal */\n\tconfig: SQLiteUpdateConfig;\n\n\tconstructor(\n\t\ttable: TTable,\n\t\tset: UpdateSet,\n\t\tprivate session: SQLiteSession,\n\t\tprivate dialect: SQLiteDialect,\n\t\twithList?: Subquery[],\n\t) {\n\t\tsuper();\n\t\tthis.config = { set, table, withList };\n\t}\n\n\t/**\n\t * Adds a 'where' clause to the query.\n\t *\n\t * Calling this method will update only those rows that fulfill a specified condition.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param where the 'where' clause.\n\t *\n\t * @example\n\t * You can use conditional operators and `sql function` to filter the rows to be updated.\n\t *\n\t * ```ts\n\t * // Update all cars with green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'));\n\t * // or\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(sql`${cars.color} = 'green'`)\n\t * ```\n\t *\n\t * You can logically combine conditional operators with `and()` and `or()` operators:\n\t *\n\t * ```ts\n\t * // Update all BMW cars with a green color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(and(eq(cars.color, 'green'), eq(cars.brand, 'BMW')));\n\t *\n\t * // Update all cars with the green or blue color\n\t * db.update(cars).set({ color: 'red' })\n\t * .where(or(eq(cars.color, 'green'), eq(cars.color, 'blue')));\n\t * ```\n\t */\n\twhere(where: SQL | undefined): SQLiteUpdateWithout {\n\t\tthis.config.where = where;\n\t\treturn this as any;\n\t}\n\n\t/**\n\t * Adds a `returning` clause to the query.\n\t *\n\t * Calling this method will return the specified fields of the updated rows. If no fields are specified, all fields will be returned.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update#update-with-returning}\n\t *\n\t * @example\n\t * ```ts\n\t * // Update all cars with the green color and return all fields\n\t * const updatedCars: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning();\n\t *\n\t * // Update all cars with the green color and return only their id and brand fields\n\t * const updatedCarsIdsAndBrands: { id: number, brand: string }[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.color, 'green'))\n\t * .returning({ id: cars.id, brand: cars.brand });\n\t * ```\n\t */\n\treturning(): SQLiteUpdateReturningAll;\n\treturning(\n\t\tfields: TSelectedFields,\n\t): SQLiteUpdateReturning;\n\treturning(\n\t\tfields: SelectedFields = this.config.table[SQLiteTable.Symbol.Columns],\n\t): SQLiteUpdateWithout {\n\t\tthis.config.returning = orderSelectedFields(fields);\n\t\treturn this as any;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildUpdateQuery(this.config);\n\t}\n\n\ttoSQL(): Query {\n\t\tconst { typings: _typings, ...rest } = this.dialect.sqlToQuery(this.getSQL());\n\t\treturn rest;\n\t}\n\n\t/** @internal */\n\t_prepare(isOneTimeQuery = true): SQLiteUpdatePrepare {\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tthis.dialect.sqlToQuery(this.getSQL()),\n\t\t\tthis.config.returning,\n\t\t\tthis.config.returning ? 'all' : 'run',\n\t\t) as SQLiteUpdatePrepare;\n\t}\n\n\tprepare(): SQLiteUpdatePrepare {\n\t\treturn this._prepare(false);\n\t}\n\n\trun: ReturnType['run'] = (placeholderValues) => {\n\t\treturn this._prepare().run(placeholderValues);\n\t};\n\n\tall: ReturnType['all'] = (placeholderValues) => {\n\t\treturn this._prepare().all(placeholderValues);\n\t};\n\n\tget: ReturnType['get'] = (placeholderValues) => {\n\t\treturn this._prepare().get(placeholderValues);\n\t};\n\n\tvalues: ReturnType['values'] = (placeholderValues) => {\n\t\treturn this._prepare().values(placeholderValues);\n\t};\n\n\toverride async execute(): Promise> {\n\t\treturn (this.config.returning ? this.all() : this.run()) as SQLiteUpdateExecute;\n\t}\n\n\t$dynamic(): SQLiteUpdateDynamic {\n\t\treturn this as any;\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport {\n\ttype BuildQueryResult,\n\ttype BuildRelationalQueryResult,\n\ttype DBQueryConfig,\n\tmapRelationalRow,\n\ttype TableRelationalConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { Query, QueryWithTypings, SQL, SQLWrapper } from '~/sql/sql.ts';\nimport type { KnownKeysOnly } from '~/utils.ts';\nimport type { SQLiteDialect } from '../dialect.ts';\nimport type { PreparedQueryConfig, SQLitePreparedQuery, SQLiteSession } from '../session.ts';\nimport type { SQLiteTable } from '../table.ts';\n\nexport type SQLiteRelationalQueryKind = TMode extends 'async'\n\t? SQLiteRelationalQuery\n\t: SQLiteSyncRelationalQuery;\n\nexport class RelationalQueryBuilder<\n\tTMode extends 'sync' | 'async',\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n\tTFields extends TableRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteAsyncRelationalQueryBuilder';\n\n\tconstructor(\n\t\tprotected mode: TMode,\n\t\tprotected fullSchema: Record,\n\t\tprotected schema: TSchema,\n\t\tprotected tableNamesMap: Record,\n\t\tprotected table: SQLiteTable,\n\t\tprotected tableConfig: TableRelationalConfig,\n\t\tprotected dialect: SQLiteDialect,\n\t\tprotected session: SQLiteSession<'async', unknown, TFullSchema, TSchema>,\n\t) {}\n\n\tfindMany>(\n\t\tconfig?: KnownKeysOnly>,\n\t): SQLiteRelationalQueryKind[]> {\n\t\treturn (this.mode === 'sync'\n\t\t\t? new SQLiteSyncRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t\t'many',\n\t\t\t)\n\t\t\t: new SQLiteRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? (config as DBQueryConfig<'many', true>) : {},\n\t\t\t\t'many',\n\t\t\t)) as SQLiteRelationalQueryKind[]>;\n\t}\n\n\tfindFirst, 'limit'>>(\n\t\tconfig?: KnownKeysOnly, 'limit'>>,\n\t): SQLiteRelationalQueryKind | undefined> {\n\t\treturn (this.mode === 'sync'\n\t\t\t? new SQLiteSyncRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t\t'first',\n\t\t\t)\n\t\t\t: new SQLiteRelationalQuery(\n\t\t\t\tthis.fullSchema,\n\t\t\t\tthis.schema,\n\t\t\t\tthis.tableNamesMap,\n\t\t\t\tthis.table,\n\t\t\t\tthis.tableConfig,\n\t\t\t\tthis.dialect,\n\t\t\t\tthis.session,\n\t\t\t\tconfig ? { ...(config as DBQueryConfig<'many', true> | undefined), limit: 1 } : { limit: 1 },\n\t\t\t\t'first',\n\t\t\t)) as SQLiteRelationalQueryKind | undefined>;\n\t}\n}\n\nexport class SQLiteRelationalQuery extends QueryPromise\n\timplements RunnableQuery, SQLWrapper\n{\n\tstatic readonly [entityKind]: string = 'SQLiteAsyncRelationalQuery';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly type: TType;\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tmode: 'many' | 'first';\n\n\tconstructor(\n\t\tprivate fullSchema: Record,\n\t\tprivate schema: TablesRelationalConfig,\n\t\tprivate tableNamesMap: Record,\n\t\tprivate table: SQLiteTable,\n\t\tprivate tableConfig: TableRelationalConfig,\n\t\tprivate dialect: SQLiteDialect,\n\t\tprivate session: SQLiteSession<'sync' | 'async', unknown, Record, TablesRelationalConfig>,\n\t\tprivate config: DBQueryConfig<'many', true> | true,\n\t\tmode: 'many' | 'first',\n\t) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t}\n\n\t/** @internal */\n\tgetSQL(): SQL {\n\t\treturn this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t}).sql as SQL;\n\t}\n\n\t/** @internal */\n\t_prepare(\n\t\tisOneTimeQuery = false,\n\t): SQLitePreparedQuery {\n\t\tconst { query, builtQuery } = this._toSQL();\n\n\t\treturn this.session[isOneTimeQuery ? 'prepareOneTimeQuery' : 'prepareQuery'](\n\t\t\tbuiltQuery,\n\t\t\tundefined,\n\t\t\tthis.mode === 'first' ? 'get' : 'all',\n\t\t\t(rawRows, mapColumnValue) => {\n\t\t\t\tconst rows = rawRows.map((row) =>\n\t\t\t\t\tmapRelationalRow(this.schema, this.tableConfig, row, query.selection, mapColumnValue)\n\t\t\t\t);\n\t\t\t\tif (this.mode === 'first') {\n\t\t\t\t\treturn rows[0] as TResult;\n\t\t\t\t}\n\t\t\t\treturn rows as TResult;\n\t\t\t},\n\t\t) as SQLitePreparedQuery;\n\t}\n\n\tprepare(): SQLitePreparedQuery {\n\t\treturn this._prepare(false);\n\t}\n\n\tprivate _toSQL(): { query: BuildRelationalQueryResult; builtQuery: QueryWithTypings } {\n\t\tconst query = this.dialect.buildRelationalQuery({\n\t\t\tfullSchema: this.fullSchema,\n\t\t\tschema: this.schema,\n\t\t\ttableNamesMap: this.tableNamesMap,\n\t\t\ttable: this.table,\n\t\t\ttableConfig: this.tableConfig,\n\t\t\tqueryConfig: this.config,\n\t\t\ttableAlias: this.tableConfig.tsName,\n\t\t});\n\n\t\tconst builtQuery = this.dialect.sqlToQuery(query.sql as SQL);\n\n\t\treturn { query, builtQuery };\n\t}\n\n\ttoSQL(): Query {\n\t\treturn this._toSQL().builtQuery;\n\t}\n\n\t/** @internal */\n\texecuteRaw(): TResult {\n\t\tif (this.mode === 'first') {\n\t\t\treturn this._prepare(false).get() as TResult;\n\t\t}\n\t\treturn this._prepare(false).all() as TResult;\n\t}\n\n\toverride async execute(): Promise {\n\t\treturn this.executeRaw();\n\t}\n}\n\nexport class SQLiteSyncRelationalQuery extends SQLiteRelationalQuery<'sync', TResult> {\n\tstatic readonly [entityKind]: string = 'SQLiteSyncRelationalQuery';\n\n\tsync(): TResult {\n\t\treturn this.executeRaw();\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { SQL, SQLWrapper } from '~/index.ts';\nimport { QueryPromise } from '~/query-promise.ts';\nimport type { RunnableQuery } from '~/runnable-query.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { SQLiteAsyncDialect } from '../dialect.ts';\n\ntype SQLiteRawAction = 'all' | 'get' | 'values' | 'run';\nexport interface SQLiteRawConfig {\n\taction: SQLiteRawAction;\n}\n\nexport interface SQLiteRaw\n\textends QueryPromise, RunnableQuery, SQLWrapper, PreparedQuery\n{}\n\nexport class SQLiteRaw extends QueryPromise\n\timplements RunnableQuery, SQLWrapper, PreparedQuery\n{\n\tstatic readonly [entityKind]: string = 'SQLiteRaw';\n\n\tdeclare readonly _: {\n\t\treadonly dialect: 'sqlite';\n\t\treadonly result: TResult;\n\t};\n\n\t/** @internal */\n\tconfig: SQLiteRawConfig;\n\n\tconstructor(\n\t\tpublic execute: () => Promise,\n\t\t/** @internal */\n\t\tpublic getSQL: () => SQL,\n\t\taction: SQLiteRawAction,\n\t\tprivate dialect: SQLiteAsyncDialect,\n\t\tprivate mapBatchResult: (result: unknown) => unknown,\n\t) {\n\t\tsuper();\n\t\tthis.config = { action };\n\t}\n\n\tgetQuery() {\n\t\treturn { ...this.dialect.sqlToQuery(this.getSQL()), method: this.config.action };\n\t}\n\n\tmapResult(result: unknown, isFromBatch?: boolean) {\n\t\treturn isFromBatch ? this.mapBatchResult(result) : result;\n\t}\n\n\t_prepare(): PreparedQuery {\n\t\treturn this;\n\t}\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport type { ExtractTablesWithRelations, RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport { SelectionProxyHandler } from '~/selection-proxy.ts';\nimport type { ColumnsSelection, SQLWrapper } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport {\n\tQueryBuilder,\n\tSQLiteDeleteBase,\n\tSQLiteInsertBuilder,\n\tSQLiteSelectBuilder,\n\tSQLiteUpdateBuilder,\n} from '~/sqlite-core/query-builders/index.ts';\nimport type {\n\tDBResult,\n\tResult,\n\tSQLiteSession,\n\tSQLiteTransaction,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport type { SQLiteTable } from '~/sqlite-core/table.ts';\nimport { WithSubquery } from '~/subquery.ts';\nimport type { DrizzleTypeError } from '~/utils.ts';\nimport { RelationalQueryBuilder } from './query-builders/query.ts';\nimport { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFields } from './query-builders/select.types.ts';\nimport type { WithSubqueryWithSelection } from './subquery.ts';\n\nexport class BaseSQLiteDatabase<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record = Record,\n\tTSchema extends TablesRelationalConfig = ExtractTablesWithRelations,\n> {\n\tstatic readonly [entityKind]: string = 'BaseSQLiteDatabase';\n\n\tdeclare readonly _: {\n\t\treadonly schema: TSchema | undefined;\n\t\treadonly tableNamesMap: Record;\n\t};\n\n\tquery: TFullSchema extends Record\n\t\t? DrizzleTypeError<'Seems like the schema generic is missing - did you forget to add it to your DB type?'>\n\t\t: {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder;\n\t\t};\n\n\tconstructor(\n\t\tprivate resultKind: TResultKind,\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t\t/** @internal */\n\t\treadonly session: SQLiteSession,\n\t\tschema: RelationalSchemaConfig | undefined,\n\t) {\n\t\tthis._ = schema\n\t\t\t? { schema: schema.schema, tableNamesMap: schema.tableNamesMap }\n\t\t\t: { schema: undefined, tableNamesMap: {} };\n\t\tthis.query = {} as typeof this['query'];\n\t\tconst query = this.query as {\n\t\t\t[K in keyof TSchema]: RelationalQueryBuilder;\n\t\t};\n\t\tif (this._.schema) {\n\t\t\tfor (const [tableName, columns] of Object.entries(this._.schema)) {\n\t\t\t\tquery[tableName as keyof TSchema] = new RelationalQueryBuilder(\n\t\t\t\t\tresultKind,\n\t\t\t\t\tschema!.fullSchema,\n\t\t\t\t\tthis._.schema,\n\t\t\t\t\tthis._.tableNamesMap,\n\t\t\t\t\tschema!.fullSchema[tableName] as SQLiteTable,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tdialect,\n\t\t\t\t\tsession as SQLiteSession as any,\n\t\t\t\t) as typeof query[keyof TSchema];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Creates a subquery that defines a temporary named result set as a CTE.\n\t *\n\t * It is useful for breaking down complex queries into simpler parts and for reusing the result set in subsequent parts of the query.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param alias The alias for the subquery.\n\t *\n\t * Failure to provide an alias will result in a DrizzleTypeError, preventing the subquery from being referenced in other queries.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Create a subquery with alias 'sq' and use it in the select query\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t *\n\t * To select arbitrary SQL values as fields in a CTE and reference them in other CTEs or in the main query, you need to add aliases to them:\n\t *\n\t * ```ts\n\t * // Select an arbitrary SQL value as a field in a CTE and reference it in the main query\n\t * const sq = db.$with('sq').as(db.select({\n\t * name: sql`upper(${users.name})`.as('name'),\n\t * })\n\t * .from(users));\n\t *\n\t * const result = await db.with(sq).select({ name: sq.name }).from(sq);\n\t * ```\n\t */\n\t$with(alias: TAlias) {\n\t\treturn {\n\t\t\tas(\n\t\t\t\tqb: TypedQueryBuilder | ((qb: QueryBuilder) => TypedQueryBuilder),\n\t\t\t): WithSubqueryWithSelection {\n\t\t\t\tif (typeof qb === 'function') {\n\t\t\t\t\tqb = qb(new QueryBuilder());\n\t\t\t\t}\n\n\t\t\t\treturn new Proxy(\n\t\t\t\t\tnew WithSubquery(qb.getSQL(), qb.getSelectedFields() as SelectedFields, alias, true),\n\t\t\t\t\tnew SelectionProxyHandler({ alias, sqlAliasedBehavior: 'alias', sqlBehavior: 'error' }),\n\t\t\t\t) as WithSubqueryWithSelection;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Incorporates a previously defined CTE (using `$with`) into the main query.\n\t *\n\t * This method allows the main query to reference a temporary named result set.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#with-clause}\n\t *\n\t * @param queries The CTEs to incorporate into the main query.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Define a subquery 'sq' as a CTE using $with\n\t * const sq = db.$with('sq').as(db.select().from(users).where(eq(users.id, 42)));\n\t *\n\t * // Incorporate the CTE 'sq' into the main query and select from it\n\t * const result = await db.with(sq).select().from(sq);\n\t * ```\n\t */\n\twith(...queries: WithSubquery[]) {\n\t\tconst self = this;\n\n\t\t/**\n\t\t * Creates a select query.\n\t\t *\n\t\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all columns and all rows from the 'cars' table\n\t\t * const allCars: Car[] = await db.select().from(cars);\n\t\t *\n\t\t * // Select specific columns and all rows from the 'cars' table\n\t\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * brand: cars.brand\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t *\n\t\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t\t *\n\t\t * ```ts\n\t\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t\t * id: cars.id,\n\t\t * lowerBrand: sql`lower(${cars.brand})`,\n\t\t * })\n\t\t * .from(cars);\n\t\t * ```\n\t\t */\n\t\tfunction select(): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction select(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Adds `distinct` expression to the select query.\n\t\t *\n\t\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t\t *\n\t\t * Use `.from()` method to specify which table to select from.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t\t *\n\t\t * @param fields The selection object.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Select all unique rows from the 'cars' table\n\t\t * await db.selectDistinct()\n\t\t * .from(cars)\n\t\t * .orderBy(cars.id, cars.brand, cars.color);\n\t\t *\n\t\t * // Select all unique brands from the 'cars' table\n\t\t * await db.selectDistinct({ brand: cars.brand })\n\t\t * .from(cars)\n\t\t * .orderBy(cars.brand);\n\t\t * ```\n\t\t */\n\t\tfunction selectDistinct(): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields: TSelection,\n\t\t): SQLiteSelectBuilder;\n\t\tfunction selectDistinct(\n\t\t\tfields?: SelectedFields,\n\t\t): SQLiteSelectBuilder {\n\t\t\treturn new SQLiteSelectBuilder({\n\t\t\t\tfields: fields ?? undefined,\n\t\t\t\tsession: self.session,\n\t\t\t\tdialect: self.dialect,\n\t\t\t\twithList: queries,\n\t\t\t\tdistinct: true,\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Creates an update query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t\t *\n\t\t * Use `.set()` method to specify which values to update.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t\t *\n\t\t * @param table The table to update.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Update all rows in the 'cars' table\n\t\t * await db.update(cars).set({ color: 'red' });\n\t\t *\n\t\t * // Update rows with filters and conditions\n\t\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t\t *\n\t\t * // Update with returning clause\n\t\t * const updatedCar: Car[] = await db.update(cars)\n\t\t * .set({ color: 'red' })\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction update(table: TTable): SQLiteUpdateBuilder {\n\t\t\treturn new SQLiteUpdateBuilder(table, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates an insert query.\n\t\t *\n\t\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t\t *\n\t\t * @param table The table to insert into.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Insert one row\n\t\t * await db.insert(cars).values({ brand: 'BMW' });\n\t\t *\n\t\t * // Insert multiple rows\n\t\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t\t *\n\t\t * // Insert with returning clause\n\t\t * const insertedCar: Car[] = await db.insert(cars)\n\t\t * .values({ brand: 'BMW' })\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction insert(into: TTable): SQLiteInsertBuilder {\n\t\t\treturn new SQLiteInsertBuilder(into, self.session, self.dialect, queries);\n\t\t}\n\n\t\t/**\n\t\t * Creates a delete query.\n\t\t *\n\t\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t\t *\n\t\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t\t *\n\t\t * @param table The table to delete from.\n\t\t *\n\t\t * @example\n\t\t *\n\t\t * ```ts\n\t\t * // Delete all rows in the 'cars' table\n\t\t * await db.delete(cars);\n\t\t *\n\t\t * // Delete rows with filters and conditions\n\t\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t\t *\n\t\t * // Delete with returning clause\n\t\t * const deletedCar: Car[] = await db.delete(cars)\n\t\t * .where(eq(cars.id, 1))\n\t\t * .returning();\n\t\t * ```\n\t\t */\n\t\tfunction delete_(from: TTable): SQLiteDeleteBase {\n\t\t\treturn new SQLiteDeleteBase(from, self.session, self.dialect, queries);\n\t\t}\n\n\t\treturn { select, selectDistinct, update, insert, delete: delete_ };\n\t}\n\n\t/**\n\t * Creates a select query.\n\t *\n\t * Calling this method with no arguments will select all columns from the table. Pass a selection object to specify the columns you want to select.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all columns and all rows from the 'cars' table\n\t * const allCars: Car[] = await db.select().from(cars);\n\t *\n\t * // Select specific columns and all rows from the 'cars' table\n\t * const carsIdsAndBrands: { id: number; brand: string }[] = await db.select({\n\t * id: cars.id,\n\t * brand: cars.brand\n\t * })\n\t * .from(cars);\n\t * ```\n\t *\n\t * Like in SQL, you can use arbitrary expressions as selection fields, not just table columns:\n\t *\n\t * ```ts\n\t * // Select specific columns along with expression and all rows from the 'cars' table\n\t * const carsIdsAndLowerNames: { id: number; lowerBrand: string }[] = await db.select({\n\t * id: cars.id,\n\t * lowerBrand: sql`lower(${cars.brand})`,\n\t * })\n\t * .from(cars);\n\t * ```\n\t */\n\tselect(): SQLiteSelectBuilder;\n\tselect(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselect(fields?: SelectedFields): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({ fields: fields ?? undefined, session: this.session, dialect: this.dialect });\n\t}\n\n\t/**\n\t * Adds `distinct` expression to the select query.\n\t *\n\t * Calling this method will return only unique values. When multiple columns are selected, it returns rows with unique combinations of values in these columns.\n\t *\n\t * Use `.from()` method to specify which table to select from.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/select#distinct}\n\t *\n\t * @param fields The selection object.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Select all unique rows from the 'cars' table\n\t * await db.selectDistinct()\n\t * .from(cars)\n\t * .orderBy(cars.id, cars.brand, cars.color);\n\t *\n\t * // Select all unique brands from the 'cars' table\n\t * await db.selectDistinct({ brand: cars.brand })\n\t * .from(cars)\n\t * .orderBy(cars.brand);\n\t * ```\n\t */\n\tselectDistinct(): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields: TSelection,\n\t): SQLiteSelectBuilder;\n\tselectDistinct(\n\t\tfields?: SelectedFields,\n\t): SQLiteSelectBuilder {\n\t\treturn new SQLiteSelectBuilder({\n\t\t\tfields: fields ?? undefined,\n\t\t\tsession: this.session,\n\t\t\tdialect: this.dialect,\n\t\t\tdistinct: true,\n\t\t});\n\t}\n\n\t/**\n\t * Creates an update query.\n\t *\n\t * Calling this method without `.where()` clause will update all rows in a table. The `.where()` clause specifies which rows should be updated.\n\t *\n\t * Use `.set()` method to specify which values to update.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/update}\n\t *\n\t * @param table The table to update.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Update all rows in the 'cars' table\n\t * await db.update(cars).set({ color: 'red' });\n\t *\n\t * // Update rows with filters and conditions\n\t * await db.update(cars).set({ color: 'red' }).where(eq(cars.brand, 'BMW'));\n\t *\n\t * // Update with returning clause\n\t * const updatedCar: Car[] = await db.update(cars)\n\t * .set({ color: 'red' })\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tupdate(table: TTable): SQLiteUpdateBuilder {\n\t\treturn new SQLiteUpdateBuilder(table, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates an insert query.\n\t *\n\t * Calling this method will create new rows in a table. Use `.values()` method to specify which values to insert.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/insert}\n\t *\n\t * @param table The table to insert into.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Insert one row\n\t * await db.insert(cars).values({ brand: 'BMW' });\n\t *\n\t * // Insert multiple rows\n\t * await db.insert(cars).values([{ brand: 'BMW' }, { brand: 'Porsche' }]);\n\t *\n\t * // Insert with returning clause\n\t * const insertedCar: Car[] = await db.insert(cars)\n\t * .values({ brand: 'BMW' })\n\t * .returning();\n\t * ```\n\t */\n\tinsert(into: TTable): SQLiteInsertBuilder {\n\t\treturn new SQLiteInsertBuilder(into, this.session, this.dialect);\n\t}\n\n\t/**\n\t * Creates a delete query.\n\t *\n\t * Calling this method without `.where()` clause will delete all rows in a table. The `.where()` clause specifies which rows should be deleted.\n\t *\n\t * See docs: {@link https://orm.drizzle.team/docs/delete}\n\t *\n\t * @param table The table to delete from.\n\t *\n\t * @example\n\t *\n\t * ```ts\n\t * // Delete all rows in the 'cars' table\n\t * await db.delete(cars);\n\t *\n\t * // Delete rows with filters and conditions\n\t * await db.delete(cars).where(eq(cars.color, 'green'));\n\t *\n\t * // Delete with returning clause\n\t * const deletedCar: Car[] = await db.delete(cars)\n\t * .where(eq(cars.id, 1))\n\t * .returning();\n\t * ```\n\t */\n\tdelete(from: TTable): SQLiteDeleteBase {\n\t\treturn new SQLiteDeleteBase(from, this.session, this.dialect);\n\t}\n\n\trun(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.run(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'run',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawRunValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult;\n\t\t}\n\t\treturn this.session.run(sql) as DBResult;\n\t}\n\n\tall(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.all(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'all',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawAllValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.all(sql) as DBResult;\n\t}\n\n\tget(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.get(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'get',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawGetValueFromBatchResult.bind(this.session),\n\t\t\t) as DBResult;\n\t\t}\n\t\treturn this.session.get(sql) as DBResult;\n\t}\n\n\tvalues(query: SQLWrapper): DBResult {\n\t\tconst sql = query.getSQL();\n\t\tif (this.resultKind === 'async') {\n\t\t\treturn new SQLiteRaw(\n\t\t\t\tasync () => this.session.values(sql),\n\t\t\t\t() => sql,\n\t\t\t\t'values',\n\t\t\t\tthis.dialect as SQLiteAsyncDialect,\n\t\t\t\tthis.session.extractRawValuesValueFromBatchResult.bind(this.session),\n\t\t\t) as any;\n\t\t}\n\t\treturn this.session.values(sql) as DBResult;\n\t}\n\n\ttransaction(\n\t\ttransaction: (tx: SQLiteTransaction) => Result,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result {\n\t\treturn this.session.transaction(transaction, config);\n\t}\n}\n\nexport type SQLiteWithReplicas = Q & { $primary: Q };\n\nexport const withReplicas = <\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n\tQ extends BaseSQLiteDatabase<\n\t\tTResultKind,\n\t\tTRunResult,\n\t\tTFullSchema,\n\t\tTSchema extends Record ? ExtractTablesWithRelations : TSchema\n\t>,\n>(\n\tprimary: Q,\n\treplicas: [Q, ...Q[]],\n\tgetReplica: (replicas: Q[]) => Q = () => replicas[Math.floor(Math.random() * replicas.length)]!,\n): SQLiteWithReplicas => {\n\tconst select: Q['select'] = (...args: []) => getReplica(replicas).select(...args);\n\tconst selectDistinct: Q['selectDistinct'] = (...args: []) => getReplica(replicas).selectDistinct(...args);\n\tconst $with: Q['with'] = (...args: []) => getReplica(replicas).with(...args);\n\n\tconst update: Q['update'] = (...args: [any]) => primary.update(...args);\n\tconst insert: Q['insert'] = (...args: [any]) => primary.insert(...args);\n\tconst $delete: Q['delete'] = (...args: [any]) => primary.delete(...args);\n\tconst run: Q['run'] = (...args: [any]) => primary.run(...args);\n\tconst all: Q['all'] = (...args: [any]) => primary.all(...args);\n\tconst get: Q['get'] = (...args: [any]) => primary.get(...args);\n\tconst values: Q['values'] = (...args: [any]) => primary.values(...args);\n\tconst transaction: Q['transaction'] = (...args: [any]) => primary.transaction(...args);\n\n\treturn {\n\t\t...primary,\n\t\tupdate,\n\t\tinsert,\n\t\tdelete: $delete,\n\t\trun,\n\t\tall,\n\t\tget,\n\t\tvalues,\n\t\ttransaction,\n\t\t$primary: primary,\n\t\tselect,\n\t\tselectDistinct,\n\t\twith: $with,\n\t\tget query() {\n\t\t\treturn getReplica(replicas).query;\n\t\t},\n\t};\n};\n", "import { entityKind } from '~/entity.ts';\nimport { DrizzleError, TransactionRollbackError } from '~/errors.ts';\nimport type { TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport type { Query, SQL } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect, SQLiteSyncDialect } from '~/sqlite-core/dialect.ts';\nimport { QueryPromise } from '../index.ts';\nimport { BaseSQLiteDatabase } from './db.ts';\nimport type { SQLiteRaw } from './query-builders/raw.ts';\nimport type { SelectedFieldsOrdered } from './query-builders/select.types.ts';\n\nexport interface PreparedQueryConfig {\n\ttype: 'sync' | 'async';\n\trun: unknown;\n\tall: unknown;\n\tget: unknown;\n\tvalues: unknown;\n\texecute: unknown;\n}\n\nexport class ExecuteResultSync extends QueryPromise {\n\tstatic readonly [entityKind]: string = 'ExecuteResultSync';\n\n\tconstructor(private resultCb: () => T) {\n\t\tsuper();\n\t}\n\n\toverride async execute(): Promise {\n\t\treturn this.resultCb();\n\t}\n\n\tsync(): T {\n\t\treturn this.resultCb();\n\t}\n}\n\nexport type ExecuteResult = TType extends 'async' ? Promise\n\t: ExecuteResultSync;\n\nexport abstract class SQLitePreparedQuery implements PreparedQuery {\n\tstatic readonly [entityKind]: string = 'PreparedQuery';\n\n\t/** @internal */\n\tjoinsNotNullableMap?: Record;\n\n\tconstructor(\n\t\tprivate mode: 'sync' | 'async',\n\t\tprivate executeMethod: SQLiteExecuteMethod,\n\t\tprotected query: Query,\n\t) {}\n\n\tgetQuery(): Query {\n\t\treturn this.query;\n\t}\n\n\tabstract run(placeholderValues?: Record): Result;\n\n\tmapRunResult(result: unknown, _isFromBatch?: boolean): unknown {\n\t\treturn result;\n\t}\n\n\tabstract all(placeholderValues?: Record): Result;\n\n\tmapAllResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract get(placeholderValues?: Record): Result;\n\n\tmapGetResult(_result: unknown, _isFromBatch?: boolean): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tabstract values(placeholderValues?: Record): Result;\n\n\texecute(placeholderValues?: Record): ExecuteResult {\n\t\tif (this.mode === 'async') {\n\t\t\treturn this[this.executeMethod](placeholderValues) as ExecuteResult;\n\t\t}\n\t\treturn new ExecuteResultSync(() => this[this.executeMethod](placeholderValues));\n\t}\n\n\tmapResult(response: unknown, isFromBatch?: boolean) {\n\t\tswitch (this.executeMethod) {\n\t\t\tcase 'run': {\n\t\t\t\treturn this.mapRunResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'all': {\n\t\t\t\treturn this.mapAllResult(response, isFromBatch);\n\t\t\t}\n\t\t\tcase 'get': {\n\t\t\t\treturn this.mapGetResult(response, isFromBatch);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport interface SQLiteTransactionConfig {\n\tbehavior?: 'deferred' | 'immediate' | 'exclusive';\n}\n\nexport type SQLiteExecuteMethod = 'run' | 'all' | 'get';\n\nexport abstract class SQLiteSession<\n\tTResultKind extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> {\n\tstatic readonly [entityKind]: string = 'SQLiteSession';\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly dialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultKind],\n\t) {}\n\n\tabstract prepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown,\n\t): SQLitePreparedQuery;\n\n\tprepareOneTimeQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t): SQLitePreparedQuery {\n\t\treturn this.prepareQuery(query, fields, executeMethod);\n\t}\n\n\tabstract transaction(\n\t\ttransaction: (tx: SQLiteTransaction) => Result,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Result;\n\n\trun(query: SQL): Result {\n\t\tconst staticQuery = this.dialect.sqlToQuery(query);\n\t\ttry {\n\t\t\treturn this.prepareOneTimeQuery(staticQuery, undefined, 'run').run() as Result;\n\t\t} catch (err) {\n\t\t\tthrow new DrizzleError({ cause: err, message: `Failed to run the query '${staticQuery.sql}'` });\n\t\t}\n\t}\n\n\t/** @internal */\n\textractRawRunValueFromBatchResult(result: unknown) {\n\t\treturn result;\n\t}\n\n\tall(query: SQL): Result {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run').all() as Result;\n\t}\n\n\t/** @internal */\n\textractRawAllValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tget(query: SQL): Result {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run').get() as Result;\n\t}\n\n\t/** @internal */\n\textractRawGetValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n\n\tvalues(\n\t\tquery: SQL,\n\t): Result {\n\t\treturn this.prepareOneTimeQuery(this.dialect.sqlToQuery(query), undefined, 'run').values() as Result<\n\t\t\tTResultKind,\n\t\t\tT[]\n\t\t>;\n\t}\n\n\t/** @internal */\n\textractRawValuesValueFromBatchResult(_result: unknown): unknown {\n\t\tthrow new Error('Not implemented');\n\t}\n}\n\nexport type Result = { sync: TResult; async: Promise }[TKind];\n\nexport type DBResult = { sync: TResult; async: SQLiteRaw }[TKind];\n\nexport abstract class SQLiteTransaction<\n\tTResultType extends 'sync' | 'async',\n\tTRunResult,\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> extends BaseSQLiteDatabase {\n\tstatic readonly [entityKind]: string = 'SQLiteTransaction';\n\n\tconstructor(\n\t\tresultType: TResultType,\n\t\tdialect: { sync: SQLiteSyncDialect; async: SQLiteAsyncDialect }[TResultType],\n\t\tsession: SQLiteSession,\n\t\tprotected schema: {\n\t\t\tfullSchema: Record;\n\t\t\tschema: TSchema;\n\t\t\ttableNamesMap: Record;\n\t\t} | undefined,\n\t\tprotected readonly nestedIndex = 0,\n\t) {\n\t\tsuper(resultType, dialect, session, schema);\n\t}\n\n\trollback(): never {\n\t\tthrow new TransactionRollbackError();\n\t}\n}\n", "import type { BuildColumns } from '~/column-builder.ts';\nimport { entityKind } from '~/entity.ts';\nimport { Table, type TableConfig as TableConfigBase, type UpdateTableConfig } from '~/table.ts';\nimport type { CheckBuilder } from './checks.ts';\nimport type { MySqlColumn, MySqlColumnBuilder, MySqlColumnBuilderBase } from './columns/common.ts';\nimport type { ForeignKey, ForeignKeyBuilder } from './foreign-keys.ts';\nimport type { AnyIndexBuilder } from './indexes.ts';\nimport type { PrimaryKeyBuilder } from './primary-keys.ts';\nimport type { UniqueConstraintBuilder } from './unique-constraint.ts';\n\nexport type MySqlTableExtraConfig = Record<\n\tstring,\n\t| AnyIndexBuilder\n\t| CheckBuilder\n\t| ForeignKeyBuilder\n\t| PrimaryKeyBuilder\n\t| UniqueConstraintBuilder\n>;\n\nexport type TableConfig = TableConfigBase;\n\n/** @internal */\nexport const InlineForeignKeys = Symbol.for('drizzle:MySqlInlineForeignKeys');\n\nexport class MySqlTable extends Table {\n\tstatic readonly [entityKind]: string = 'MySqlTable';\n\n\tdeclare protected $columns: T['columns'];\n\n\t/** @internal */\n\tstatic override readonly Symbol = Object.assign({}, Table.Symbol, {\n\t\tInlineForeignKeys: InlineForeignKeys as typeof InlineForeignKeys,\n\t});\n\n\t/** @internal */\n\toverride [Table.Symbol.Columns]!: NonNullable;\n\n\t/** @internal */\n\t[InlineForeignKeys]: ForeignKey[] = [];\n\n\t/** @internal */\n\toverride [Table.Symbol.ExtraConfigBuilder]:\n\t\t| ((self: Record) => MySqlTableExtraConfig)\n\t\t| undefined = undefined;\n}\n\nexport type AnyMySqlTable = {}> = MySqlTable<\n\tUpdateTableConfig\n>;\n\nexport type MySqlTableWithColumns =\n\t& MySqlTable\n\t& {\n\t\t[Key in keyof T['columns']]: T['columns'][Key];\n\t};\n\nexport function mysqlTableWithSchema<\n\tTTableName extends string,\n\tTSchemaName extends string | undefined,\n\tTColumnsMap extends Record,\n>(\n\tname: TTableName,\n\tcolumns: TColumnsMap,\n\textraConfig: ((self: BuildColumns) => MySqlTableExtraConfig) | undefined,\n\tschema: TSchemaName,\n\tbaseName = name,\n): MySqlTableWithColumns<{\n\tname: TTableName;\n\tschema: TSchemaName;\n\tcolumns: BuildColumns;\n\tdialect: 'mysql';\n}> {\n\tconst rawTable = new MySqlTable<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'mysql';\n\t}>(name, schema, baseName);\n\n\tconst builtColumns = Object.fromEntries(\n\t\tObject.entries(columns).map(([name, colBuilderBase]) => {\n\t\t\tconst colBuilder = colBuilderBase as MySqlColumnBuilder;\n\t\t\tconst column = colBuilder.build(rawTable);\n\t\t\trawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n\t\t\treturn [name, column];\n\t\t}),\n\t) as unknown as BuildColumns;\n\n\tconst table = Object.assign(rawTable, builtColumns);\n\n\ttable[Table.Symbol.Columns] = builtColumns;\n\n\tif (extraConfig) {\n\t\ttable[MySqlTable.Symbol.ExtraConfigBuilder] = extraConfig as unknown as (\n\t\t\tself: Record,\n\t\t) => MySqlTableExtraConfig;\n\t}\n\n\treturn table;\n}\n\nexport interface MySqlTableFn {\n\t<\n\t\tTTableName extends string,\n\t\tTColumnsMap extends Record,\n\t>(\n\t\tname: TTableName,\n\t\tcolumns: TColumnsMap,\n\t\textraConfig?: (self: BuildColumns) => MySqlTableExtraConfig,\n\t): MySqlTableWithColumns<{\n\t\tname: TTableName;\n\t\tschema: TSchemaName;\n\t\tcolumns: BuildColumns;\n\t\tdialect: 'mysql';\n\t}>;\n}\n\nexport const mysqlTable: MySqlTableFn = (name, columns, extraConfig) => {\n\treturn mysqlTableWithSchema(name, columns, extraConfig, undefined, name);\n};\n\nexport function mysqlTableCreator(customizeTableName: (name: string) => string): MySqlTableFn {\n\treturn (name, columns, extraConfig) => {\n\t\treturn mysqlTableWithSchema(customizeTableName(name) as typeof name, columns, extraConfig, undefined, name);\n\t};\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnyMySqlColumn, MySqlColumn } from './columns/index.ts';\nimport { MySqlTable } from './table.ts';\n\nexport type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';\n\nexport type Reference = () => {\n\treadonly name?: string;\n\treadonly columns: MySqlColumn[];\n\treadonly foreignTable: MySqlTable;\n\treadonly foreignColumns: MySqlColumn[];\n};\n\nexport class ForeignKeyBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlForeignKeyBuilder';\n\n\t/** @internal */\n\treference: Reference;\n\n\t/** @internal */\n\t_onUpdate: UpdateDeleteAction | undefined;\n\n\t/** @internal */\n\t_onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(\n\t\tconfig: () => {\n\t\t\tname?: string;\n\t\t\tcolumns: MySqlColumn[];\n\t\t\tforeignColumns: MySqlColumn[];\n\t\t},\n\t\tactions?: {\n\t\t\tonUpdate?: UpdateDeleteAction;\n\t\t\tonDelete?: UpdateDeleteAction;\n\t\t} | undefined,\n\t) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn { name, columns, foreignTable: foreignColumns[0]!.table as MySqlTable, foreignColumns };\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\n\tonUpdate(action: UpdateDeleteAction): this {\n\t\tthis._onUpdate = action;\n\t\treturn this;\n\t}\n\n\tonDelete(action: UpdateDeleteAction): this {\n\t\tthis._onDelete = action;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: MySqlTable): ForeignKey {\n\t\treturn new ForeignKey(table, this);\n\t}\n}\n\nexport type AnyForeignKeyBuilder = ForeignKeyBuilder;\n\nexport class ForeignKey {\n\tstatic readonly [entityKind]: string = 'MySqlForeignKey';\n\n\treadonly reference: Reference;\n\treadonly onUpdate: UpdateDeleteAction | undefined;\n\treadonly onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(readonly table: MySqlTable, builder: ForeignKeyBuilder) {\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\n\tgetName(): string {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[MySqlTable.Symbol.Name],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0]!.table[MySqlTable.Symbol.Name],\n\t\t\t...foreignColumnNames,\n\t\t];\n\t\treturn name ?? `${chunks.join('_')}_fk`;\n\t}\n}\n\ntype ColumnsWithTable<\n\tTTableName extends string,\n\tTColumns extends MySqlColumn[],\n> = { [Key in keyof TColumns]: AnyMySqlColumn<{ tableName: TTableName }> };\n\nexport type GetColumnsTable = (\n\tTColumns extends MySqlColumn ? TColumns\n\t\t: TColumns extends MySqlColumn[] ? TColumns[number]\n\t\t: never\n) extends AnyMySqlColumn<{ tableName: infer TTableName extends string }> ? TTableName\n\t: never;\n\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnyMySqlColumn<{ tableName: TTableName }>, ...AnyMySqlColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder {\n\tfunction mappedConfig() {\n\t\tconst { name, columns, foreignColumns } = config;\n\t\treturn {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tforeignColumns,\n\t\t};\n\t}\n\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { MySqlColumn } from './columns/index.ts';\nimport { MySqlTable } from './table.ts';\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport function uniqueKeyName(table: MySqlTable, columns: string[]) {\n\treturn `${table[MySqlTable.Symbol.Name]}_${columns.join('_')}_unique`;\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: MySqlColumn[];\n\n\tconstructor(\n\t\tcolumns: MySqlColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\t/** @internal */\n\tbuild(table: MySqlTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [MySqlColumn, ...MySqlColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'MySqlUniqueConstraint';\n\n\treadonly columns: MySqlColumn[];\n\treadonly name?: string;\n\treadonly nullsNotDistinct: boolean = false;\n\n\tconstructor(readonly table: MySqlTable, columns: MySqlColumn[], name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "import { ColumnBuilder } from '~/column-builder.ts';\nimport type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tHasDefault,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { ForeignKey, UpdateDeleteAction } from '~/mysql-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/mysql-core/foreign-keys.ts';\nimport type { AnyMySqlTable, MySqlTable } from '~/mysql-core/table.ts';\nimport type { Update } from '~/utils.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\n\nexport interface ReferenceConfig {\n\tref: () => MySqlColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface MySqlColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase {}\n\nexport abstract class MySqlColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig & {\n\t\tdata: any;\n\t},\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder\n\timplements MySqlColumnBuilderBase\n{\n\tstatic readonly [entityKind]: string = 'MySqlColumnBuilder';\n\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\treferences(ref: ReferenceConfig['ref'], actions: ReferenceConfig['actions'] = {}): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(name?: string): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: MySqlColumn, table: MySqlTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn ((ref, actions) => {\n\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t});\n\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t}\n\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t}\n\t\t\t\treturn builder.build(table);\n\t\t\t})(ref, actions);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlColumn>;\n}\n\n// To understand how to use `MySqlColumn` and `AnyMySqlColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class MySqlColumn<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends Column {\n\tstatic readonly [entityKind]: string = 'MySqlColumn';\n\n\tconstructor(\n\t\toverride readonly table: MySqlTable,\n\t\tconfig: ColumnBuilderRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyMySqlColumn> = {}> = MySqlColumn<\n\tRequired, TPartial>>\n>;\n\nexport interface MySqlColumnWithAutoIncrementConfig {\n\tautoIncrement: boolean;\n}\n\nexport abstract class MySqlColumnBuilderWithAutoIncrement<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends MySqlColumnBuilder {\n\tstatic readonly [entityKind]: string = 'MySqlColumnBuilderWithAutoIncrement';\n\n\tconstructor(name: NonNullable, dataType: T['dataType'], columnType: T['columnType']) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\tautoincrement(): HasDefault {\n\t\tthis.config.autoIncrement = true;\n\t\tthis.config.hasDefault = true;\n\t\treturn this as HasDefault;\n\t}\n}\n\nexport abstract class MySqlColumnWithAutoIncrement<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = object,\n> extends MySqlColumn {\n\tstatic readonly [entityKind]: string = 'MySqlColumnWithAutoIncrement';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlCharBuilderInitial = MySqlCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlChar';\n\tdata: TEnum[number];\n\tdriverParam: number | string;\n\tenumValues: TEnum;\n}>;\n\nexport class MySqlCharBuilder> extends MySqlColumnBuilder<\n\tT,\n\tMySqlCharConfig\n> {\n\tstatic readonly [entityKind]: string = 'MySqlCharBuilder';\n\n\tconstructor(name: T['name'], config: MySqlCharConfig) {\n\t\tsuper(name, 'string', 'MySqlChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlChar & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlChar & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class MySqlChar>\n\textends MySqlColumn>\n{\n\tstatic readonly [entityKind]: string = 'MySqlChar';\n\n\treadonly length: number | undefined = this.config.length;\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface MySqlCharConfig {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char>(\n\tname: TName,\n\tconfig: MySqlCharConfig> = {},\n): MySqlCharBuilderInitial> {\n\treturn new MySqlCharBuilder(name, config);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarBinaryBuilderInitial = MySqlVarBinaryBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'MySqlVarBinary';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class MySqlVarBinaryBuilder>\n\textends MySqlColumnBuilder\n{\n\tstatic readonly [entityKind]: string = 'MySqlVarBinaryBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarbinaryOptions) {\n\t\tsuper(name, 'string', 'MySqlVarBinary');\n\t\tthis.config.length = config?.length;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarBinary> {\n\t\treturn new MySqlVarBinary>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class MySqlVarBinary<\n\tT extends ColumnBaseConfig<'string', 'MySqlVarBinary'>,\n> extends MySqlColumn {\n\tstatic readonly [entityKind]: string = 'MySqlVarBinary';\n\n\tlength: number | undefined = this.config.length;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varbinary` : `varbinary(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarbinaryOptions {\n\tlength: number;\n}\n\nexport function varbinary(\n\tname: TName,\n\toptions: MySqlVarbinaryOptions,\n): MySqlVarBinaryBuilderInitial {\n\treturn new MySqlVarBinaryBuilder(name, options);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyMySqlTable } from '~/mysql-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { MySqlColumn, MySqlColumnBuilder } from './common.ts';\n\nexport type MySqlVarCharBuilderInitial = MySqlVarCharBuilder<\n\t{\n\t\tname: TName;\n\t\tdataType: 'string';\n\t\tcolumnType: 'MySqlVarChar';\n\t\tdata: TEnum[number];\n\t\tdriverParam: number | string;\n\t\tenumValues: TEnum;\n\t}\n>;\n\nexport class MySqlVarCharBuilder>\n\textends MySqlColumnBuilder>\n{\n\tstatic readonly [entityKind]: string = 'MySqlVarCharBuilder';\n\n\t/** @internal */\n\tconstructor(name: T['name'], config: MySqlVarCharConfig) {\n\t\tsuper(name, 'string', 'MySqlVarChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enum = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyMySqlTable<{ name: TTableName }>,\n\t): MySqlVarChar & { enumValues: T['enumValues'] }> {\n\t\treturn new MySqlVarChar & { enumValues: T['enumValues'] }>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t);\n\t}\n}\n\nexport class MySqlVarChar>\n\textends MySqlColumn>\n{\n\tstatic readonly [entityKind]: string = 'MySqlVarChar';\n\n\treadonly length: number | undefined = this.config.length;\n\n\toverride readonly enumValues = this.config.enum;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface MySqlVarCharConfig {\n\tlength: number;\n\tenum?: TEnum;\n}\n\nexport function varchar>(\n\tname: TName,\n\tconfig: MySqlVarCharConfig>,\n): MySqlVarCharBuilderInitial> {\n\treturn new MySqlVarCharBuilder(name, config);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { AnyPgColumn, PgColumn } from './columns/index.ts';\nimport { PgTable } from './table.ts';\n\nexport type UpdateDeleteAction = 'cascade' | 'restrict' | 'no action' | 'set null' | 'set default';\n\nexport type Reference = () => {\n\treadonly name?: string;\n\treadonly columns: PgColumn[];\n\treadonly foreignTable: PgTable;\n\treadonly foreignColumns: PgColumn[];\n};\n\nexport class ForeignKeyBuilder {\n\tstatic readonly [entityKind]: string = 'PgForeignKeyBuilder';\n\n\t/** @internal */\n\treference: Reference;\n\n\t/** @internal */\n\t_onUpdate: UpdateDeleteAction | undefined = 'no action';\n\n\t/** @internal */\n\t_onDelete: UpdateDeleteAction | undefined = 'no action';\n\n\tconstructor(\n\t\tconfig: () => {\n\t\t\tname?: string;\n\t\t\tcolumns: PgColumn[];\n\t\t\tforeignColumns: PgColumn[];\n\t\t},\n\t\tactions?: {\n\t\t\tonUpdate?: UpdateDeleteAction;\n\t\t\tonDelete?: UpdateDeleteAction;\n\t\t} | undefined,\n\t) {\n\t\tthis.reference = () => {\n\t\t\tconst { name, columns, foreignColumns } = config();\n\t\t\treturn { name, columns, foreignTable: foreignColumns[0]!.table as PgTable, foreignColumns };\n\t\t};\n\t\tif (actions) {\n\t\t\tthis._onUpdate = actions.onUpdate;\n\t\t\tthis._onDelete = actions.onDelete;\n\t\t}\n\t}\n\n\tonUpdate(action: UpdateDeleteAction): this {\n\t\tthis._onUpdate = action === undefined ? 'no action' : action;\n\t\treturn this;\n\t}\n\n\tonDelete(action: UpdateDeleteAction): this {\n\t\tthis._onDelete = action === undefined ? 'no action' : action;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: PgTable): ForeignKey {\n\t\treturn new ForeignKey(table, this);\n\t}\n}\n\nexport type AnyForeignKeyBuilder = ForeignKeyBuilder;\n\nexport class ForeignKey {\n\tstatic readonly [entityKind]: string = 'PgForeignKey';\n\n\treadonly reference: Reference;\n\treadonly onUpdate: UpdateDeleteAction | undefined;\n\treadonly onDelete: UpdateDeleteAction | undefined;\n\n\tconstructor(readonly table: PgTable, builder: ForeignKeyBuilder) {\n\t\tthis.reference = builder.reference;\n\t\tthis.onUpdate = builder._onUpdate;\n\t\tthis.onDelete = builder._onDelete;\n\t}\n\n\tgetName(): string {\n\t\tconst { name, columns, foreignColumns } = this.reference();\n\t\tconst columnNames = columns.map((column) => column.name);\n\t\tconst foreignColumnNames = foreignColumns.map((column) => column.name);\n\t\tconst chunks = [\n\t\t\tthis.table[PgTable.Symbol.Name],\n\t\t\t...columnNames,\n\t\t\tforeignColumns[0]!.table[PgTable.Symbol.Name],\n\t\t\t...foreignColumnNames,\n\t\t];\n\t\treturn name ?? `${chunks.join('_')}_fk`;\n\t}\n}\n\ntype ColumnsWithTable<\n\tTTableName extends string,\n\tTColumns extends PgColumn[],\n> = { [Key in keyof TColumns]: AnyPgColumn<{ tableName: TTableName }> };\n\nexport function foreignKey<\n\tTTableName extends string,\n\tTForeignTableName extends string,\n\tTColumns extends [AnyPgColumn<{ tableName: TTableName }>, ...AnyPgColumn<{ tableName: TTableName }>[]],\n>(\n\tconfig: {\n\t\tname?: string;\n\t\tcolumns: TColumns;\n\t\tforeignColumns: ColumnsWithTable;\n\t},\n): ForeignKeyBuilder {\n\tfunction mappedConfig() {\n\t\tconst { name, columns, foreignColumns } = config;\n\t\treturn {\n\t\t\tname,\n\t\t\tcolumns,\n\t\t\tforeignColumns,\n\t\t};\n\t}\n\n\treturn new ForeignKeyBuilder(mappedConfig);\n}\n", "import { entityKind } from '~/entity.ts';\nimport type { PgColumn } from './columns/index.ts';\nimport { PgTable } from './table.ts';\n\nexport function unique(name?: string): UniqueOnConstraintBuilder {\n\treturn new UniqueOnConstraintBuilder(name);\n}\n\nexport function uniqueKeyName(table: PgTable, columns: string[]) {\n\treturn `${table[PgTable.Symbol.Name]}_${columns.join('_')}_unique`;\n}\n\nexport class UniqueConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'PgUniqueConstraintBuilder';\n\n\t/** @internal */\n\tcolumns: PgColumn[];\n\t/** @internal */\n\tnullsNotDistinctConfig = false;\n\n\tconstructor(\n\t\tcolumns: PgColumn[],\n\t\tprivate name?: string,\n\t) {\n\t\tthis.columns = columns;\n\t}\n\n\tnullsNotDistinct() {\n\t\tthis.nullsNotDistinctConfig = true;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuild(table: PgTable): UniqueConstraint {\n\t\treturn new UniqueConstraint(table, this.columns, this.nullsNotDistinctConfig, this.name);\n\t}\n}\n\nexport class UniqueOnConstraintBuilder {\n\tstatic readonly [entityKind]: string = 'PgUniqueOnConstraintBuilder';\n\n\t/** @internal */\n\tname?: string;\n\n\tconstructor(\n\t\tname?: string,\n\t) {\n\t\tthis.name = name;\n\t}\n\n\ton(...columns: [PgColumn, ...PgColumn[]]) {\n\t\treturn new UniqueConstraintBuilder(columns, this.name);\n\t}\n}\n\nexport class UniqueConstraint {\n\tstatic readonly [entityKind]: string = 'PgUniqueConstraint';\n\n\treadonly columns: PgColumn[];\n\treadonly name?: string;\n\treadonly nullsNotDistinct: boolean = false;\n\n\tconstructor(readonly table: PgTable, columns: PgColumn[], nullsNotDistinct: boolean, name?: string) {\n\t\tthis.columns = columns;\n\t\tthis.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n\t\tthis.nullsNotDistinct = nullsNotDistinct;\n\t}\n\n\tgetName() {\n\t\treturn this.name;\n\t}\n}\n", "function parsePgArrayValue(arrayString: string, startFrom: number, inQuotes: boolean): [string, number] {\n\tfor (let i = startFrom; i < arrayString.length; i++) {\n\t\tconst char = arrayString[i];\n\n\t\tif (char === '\\\\') {\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '\"') {\n\t\t\treturn [arrayString.slice(startFrom, i).replace(/\\\\/g, ''), i + 1];\n\t\t}\n\n\t\tif (inQuotes) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === ',' || char === '}') {\n\t\t\treturn [arrayString.slice(startFrom, i).replace(/\\\\/g, ''), i];\n\t\t}\n\t}\n\n\treturn [arrayString.slice(startFrom).replace(/\\\\/g, ''), arrayString.length];\n}\n\nexport function parsePgNestedArray(arrayString: string, startFrom = 0): [any[], number] {\n\tconst result: any[] = [];\n\tlet i = startFrom;\n\tlet lastCharIsComma = false;\n\n\twhile (i < arrayString.length) {\n\t\tconst char = arrayString[i];\n\n\t\tif (char === ',') {\n\t\t\tif (lastCharIsComma || i === startFrom) {\n\t\t\t\tresult.push('');\n\t\t\t}\n\t\t\tlastCharIsComma = true;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tlastCharIsComma = false;\n\n\t\tif (char === '\\\\') {\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '\"') {\n\t\t\tconst [value, startFrom] = parsePgArrayValue(arrayString, i + 1, true);\n\t\t\tresult.push(value);\n\t\t\ti = startFrom;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (char === '}') {\n\t\t\treturn [result, i + 1];\n\t\t}\n\n\t\tif (char === '{') {\n\t\t\tconst [value, startFrom] = parsePgNestedArray(arrayString, i + 1);\n\t\t\tresult.push(value);\n\t\t\ti = startFrom;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [value, newStartFrom] = parsePgArrayValue(arrayString, i, false);\n\t\tresult.push(value);\n\t\ti = newStartFrom;\n\t}\n\n\treturn [result, i];\n}\n\nexport function parsePgArray(arrayString: string): any[] {\n\tconst [result] = parsePgNestedArray(arrayString, 1);\n\treturn result;\n}\n\nexport function makePgArray(array: any[]): string {\n\treturn `{${\n\t\tarray.map((item) => {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\treturn makePgArray(item);\n\t\t\t}\n\n\t\t\tif (typeof item === 'string') {\n\t\t\t\treturn `\"${item.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')}\"`;\n\t\t\t}\n\n\t\t\treturn `${item}`;\n\t\t}).join(',')\n\t}}`;\n}\n", "import type {\n\tColumnBuilderBase,\n\tColumnBuilderBaseConfig,\n\tColumnBuilderExtraConfig,\n\tColumnBuilderRuntimeConfig,\n\tColumnDataType,\n\tMakeColumnConfig,\n} from '~/column-builder.ts';\nimport { ColumnBuilder } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { Column } from '~/column.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Update } from '~/utils.ts';\n\nimport type { ForeignKey, UpdateDeleteAction } from '~/pg-core/foreign-keys.ts';\nimport { ForeignKeyBuilder } from '~/pg-core/foreign-keys.ts';\nimport type { AnyPgTable, PgTable } from '~/pg-core/table.ts';\nimport { uniqueKeyName } from '../unique-constraint.ts';\nimport { makePgArray, parsePgArray } from '../utils/array.ts';\nimport { iife } from '~/tracing-utils.ts';\n\nexport interface ReferenceConfig {\n\tref: () => PgColumn;\n\tactions: {\n\t\tonUpdate?: UpdateDeleteAction;\n\t\tonDelete?: UpdateDeleteAction;\n\t};\n}\n\nexport interface PgColumnBuilderBase<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTTypeConfig extends object = object,\n> extends ColumnBuilderBase {}\n\nexport abstract class PgColumnBuilder<\n\tT extends ColumnBuilderBaseConfig = ColumnBuilderBaseConfig,\n\tTRuntimeConfig extends object = object,\n\tTTypeConfig extends object = object,\n\tTExtraConfig extends ColumnBuilderExtraConfig = ColumnBuilderExtraConfig,\n> extends ColumnBuilder\n\timplements PgColumnBuilderBase\n{\n\tprivate foreignKeyConfigs: ReferenceConfig[] = [];\n\n\tstatic readonly [entityKind]: string = 'PgColumnBuilder';\n\n\tarray(size?: number): PgArrayBuilder<\n\t\t& {\n\t\t\tname: T['name'];\n\t\t\tdataType: 'array';\n\t\t\tcolumnType: 'PgArray';\n\t\t\tdata: T['data'][];\n\t\t\tdriverParam: T['driverParam'][] | string;\n\t\t\tenumValues: T['enumValues'];\n\t\t}\n\t\t& (T extends { notNull: true } ? { notNull: true } : {})\n\t\t& (T extends { hasDefault: true } ? { hasDefault: true } : {}),\n\t\tT\n\t> {\n\t\treturn new PgArrayBuilder(this.config.name, this as PgColumnBuilder, size);\n\t}\n\n\treferences(\n\t\tref: ReferenceConfig['ref'],\n\t\tactions: ReferenceConfig['actions'] = {},\n\t): this {\n\t\tthis.foreignKeyConfigs.push({ ref, actions });\n\t\treturn this;\n\t}\n\n\tunique(\n\t\tname?: string,\n\t\tconfig?: { nulls: 'distinct' | 'not distinct' },\n\t): this {\n\t\tthis.config.isUnique = true;\n\t\tthis.config.uniqueName = name;\n\t\tthis.config.uniqueType = config?.nulls;\n\t\treturn this;\n\t}\n\n\t/** @internal */\n\tbuildForeignKeys(column: PgColumn, table: PgTable): ForeignKey[] {\n\t\treturn this.foreignKeyConfigs.map(({ ref, actions }) => {\n\t\t\treturn iife(\n\t\t\t\t(ref, actions) => {\n\t\t\t\t\tconst builder = new ForeignKeyBuilder(() => {\n\t\t\t\t\t\tconst foreignColumn = ref();\n\t\t\t\t\t\treturn { columns: [column], foreignColumns: [foreignColumn] };\n\t\t\t\t\t});\n\t\t\t\t\tif (actions.onUpdate) {\n\t\t\t\t\t\tbuilder.onUpdate(actions.onUpdate);\n\t\t\t\t\t}\n\t\t\t\t\tif (actions.onDelete) {\n\t\t\t\t\t\tbuilder.onDelete(actions.onDelete);\n\t\t\t\t\t}\n\t\t\t\t\treturn builder.build(table);\n\t\t\t\t},\n\t\t\t\tref,\n\t\t\t\tactions,\n\t\t\t);\n\t\t});\n\t}\n\n\t/** @internal */\n\tabstract build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgColumn>;\n}\n\n// To understand how to use `PgColumn` and `PgColumn`, see `Column` and `AnyColumn` documentation.\nexport abstract class PgColumn<\n\tT extends ColumnBaseConfig = ColumnBaseConfig,\n\tTRuntimeConfig extends object = {},\n\tTTypeConfig extends object = {},\n> extends Column {\n\tstatic readonly [entityKind]: string = 'PgColumn';\n\n\tconstructor(\n\t\toverride readonly table: PgTable,\n\t\tconfig: ColumnBuilderRuntimeConfig,\n\t) {\n\t\tif (!config.uniqueName) {\n\t\t\tconfig.uniqueName = uniqueKeyName(table, [config.name]);\n\t\t}\n\t\tsuper(table, config);\n\t}\n}\n\nexport type AnyPgColumn> = {}> = PgColumn<\n\tRequired, TPartial>>\n>;\n\nexport class PgArrayBuilder<\n\tT extends ColumnBuilderBaseConfig<'array', 'PgArray'>,\n\tTBase extends ColumnBuilderBaseConfig,\n> extends PgColumnBuilder<\n\tT,\n\t{\n\t\tbaseBuilder: PgColumnBuilder;\n\t\tsize: number | undefined;\n\t},\n\t{\n\t\tbaseBuilder: PgColumnBuilder;\n\t}\n> {\n\tstatic override readonly [entityKind] = 'PgArrayBuilder';\n\n\tconstructor(\n\t\tname: string,\n\t\tbaseBuilder: PgArrayBuilder['config']['baseBuilder'],\n\t\tsize: number | undefined,\n\t) {\n\t\tsuper(name, 'array', 'PgArray');\n\t\tthis.config.baseBuilder = baseBuilder;\n\t\tthis.config.size = size;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgArray, TBase> {\n\t\tconst baseColumn = this.config.baseBuilder.build(table);\n\t\treturn new PgArray, TBase>(\n\t\t\ttable as AnyPgTable<{ name: MakeColumnConfig['tableName'] }>,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig,\n\t\t\tbaseColumn,\n\t\t);\n\t}\n}\n\nexport class PgArray<\n\tT extends ColumnBaseConfig<'array', 'PgArray'>,\n\tTBase extends ColumnBuilderBaseConfig,\n> extends PgColumn {\n\treadonly size: number | undefined;\n\n\tstatic readonly [entityKind]: string = 'PgArray';\n\n\tconstructor(\n\t\ttable: AnyPgTable<{ name: T['tableName'] }>,\n\t\tconfig: PgArrayBuilder['config'],\n\t\treadonly baseColumn: PgColumn,\n\t\treadonly range?: [number | undefined, number | undefined],\n\t) {\n\t\tsuper(table, config);\n\t\tthis.size = config.size;\n\t}\n\n\tgetSQLType(): string {\n\t\treturn `${this.baseColumn.getSQLType()}[${typeof this.size === 'number' ? this.size : ''}]`;\n\t}\n\n\toverride mapFromDriverValue(value: unknown[] | string): T['data'] {\n\t\tif (typeof value === 'string') {\n\t\t\t// Thank you node-postgres for not parsing enum arrays\n\t\t\tvalue = parsePgArray(value);\n\t\t}\n\t\treturn value.map((v) => this.baseColumn.mapFromDriverValue(v));\n\t}\n\n\toverride mapToDriverValue(value: unknown[], isNestedArray = false): unknown[] | string {\n\t\tconst a = value.map((v) =>\n\t\t\tv === null\n\t\t\t\t? null\n\t\t\t\t: is(this.baseColumn, PgArray)\n\t\t\t\t? this.baseColumn.mapToDriverValue(v as unknown[], true)\n\t\t\t\t: this.baseColumn.mapToDriverValue(v)\n\t\t);\n\t\tif (isNestedArray) return a;\n\t\treturn makePgArray(a);\n\t}\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgCharBuilderInitial = PgCharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgChar';\n\tdata: TEnum[number];\n\tenumValues: TEnum;\n\tdriverParam: string;\n}>;\n\nexport class PgCharBuilder> extends PgColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'PgCharBuilder';\n\n\tconstructor(name: string, config: PgCharConfig) {\n\t\tsuper(name, 'string', 'PgChar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enumValues = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgChar> {\n\t\treturn new PgChar>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class PgChar>\n\textends PgColumn\n{\n\tstatic readonly [entityKind]: string = 'PgChar';\n\n\treadonly length = this.config.length;\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `char` : `char(${this.length})`;\n\t}\n}\n\nexport interface PgCharConfig {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function char>(\n\tname: TName,\n\tconfig: PgCharConfig> = {},\n): PgCharBuilderInitial> {\n\treturn new PgCharBuilder(name, config);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { sql } from '~/sql/sql.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgUUIDBuilderInitial = PgUUIDBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgUUID';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgUUIDBuilder> extends PgColumnBuilder {\n\tstatic readonly [entityKind]: string = 'PgUUIDBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'string', 'PgUUID');\n\t}\n\n\t/**\n\t * Adds `default gen_random_uuid()` to the column definition.\n\t */\n\tdefaultRandom(): ReturnType {\n\t\treturn this.default(sql`gen_random_uuid()`) as ReturnType;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgUUID> {\n\t\treturn new PgUUID>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class PgUUID> extends PgColumn {\n\tstatic readonly [entityKind]: string = 'PgUUID';\n\n\tgetSQLType(): string {\n\t\treturn 'uuid';\n\t}\n}\n\nexport function uuid(name: TName): PgUUIDBuilderInitial {\n\treturn new PgUUIDBuilder(name);\n}\n", "import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport type { Writable } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from './common.ts';\n\nexport type PgVarcharBuilderInitial = PgVarcharBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgVarchar';\n\tdata: TEnum[number];\n\tdriverParam: string;\n\tenumValues: TEnum;\n}>;\n\nexport class PgVarcharBuilder> extends PgColumnBuilder<\n\tT,\n\t{ length: number | undefined; enumValues: T['enumValues'] }\n> {\n\tstatic readonly [entityKind]: string = 'PgVarcharBuilder';\n\n\tconstructor(name: string, config: PgVarcharConfig) {\n\t\tsuper(name, 'string', 'PgVarchar');\n\t\tthis.config.length = config.length;\n\t\tthis.config.enumValues = config.enum;\n\t}\n\n\t/** @internal */\n\toverride build(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgVarchar> {\n\t\treturn new PgVarchar>(table, this.config as ColumnBuilderRuntimeConfig);\n\t}\n}\n\nexport class PgVarchar>\n\textends PgColumn\n{\n\tstatic readonly [entityKind]: string = 'PgVarchar';\n\n\treadonly length = this.config.length;\n\toverride readonly enumValues = this.config.enumValues;\n\n\tgetSQLType(): string {\n\t\treturn this.length === undefined ? `varchar` : `varchar(${this.length})`;\n\t}\n}\n\nexport interface PgVarcharConfig {\n\tlength?: number;\n\tenum?: TEnum;\n}\n\nexport function varchar>(\n\tname: TName,\n\tconfig: PgVarcharConfig> = {},\n): PgVarcharBuilderInitial> {\n\treturn new PgVarcharBuilder(name, config);\n}\n", "export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n", "export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n", "import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n", "import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n", "import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n", "import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n", "export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n", "import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n", null, "import { integer, sqliteTable, text, index } from \"drizzle-orm/sqlite-core\";\nimport { createInsertSchema } from \"drizzle-zod\";\nimport * as z from \"zod\";\n\n// ==================== API Keys \u8868 ====================\nexport const apiKeys = sqliteTable(\"api_keys\", {\n id: text(\"id\").primaryKey(),\n key: text(\"key\").notNull().unique(), // API Key \u503C\n keyPrefix: text(\"key_prefix\").notNull(), // Key \u524D\u7F00\u7528\u4E8E\u663E\u793A (\u5982 vmail_xxx...)\n name: text(\"name\"), // API Key \u540D\u79F0\n rateLimit: integer(\"rate_limit\").default(100), // \u6BCF\u5206\u949F\u8BF7\u6C42\u9650\u5236\n isActive: integer(\"is_active\", { mode: \"boolean\" }).default(true).notNull(),\n lastUsedAt: integer(\"last_used_at\", { mode: \"timestamp\" }),\n expiresAt: integer(\"expires_at\", { mode: \"timestamp\" }),\n createdAt: integer(\"created_at\", { mode: \"timestamp\" }).notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\nexport const insertApiKeySchema = createInsertSchema(apiKeys);\nexport type InsertApiKey = z.infer;\nexport type ApiKey = typeof apiKeys.$inferSelect;\n\n// ==================== Mailboxes \u8868 ====================\nexport const mailboxes = sqliteTable(\"mailboxes\", {\n id: text(\"id\").primaryKey(),\n address: text(\"address\").notNull().unique(), // \u5B8C\u6574\u90AE\u7BB1\u5730\u5740\n domain: text(\"domain\").notNull(), // \u90AE\u7BB1\u57DF\u540D\n expiresAt: integer(\"expires_at\", { mode: \"timestamp\" }),\n apiKeyId: text(\"api_key_id\").notNull(), // \u5173\u8054\u7684 API Key ID\n createdAt: integer(\"created_at\", { mode: \"timestamp\" }).notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\nexport const insertMailboxSchema = createInsertSchema(mailboxes);\nexport type InsertMailbox = z.infer;\nexport type Mailbox = typeof mailboxes.$inferSelect;\n\n// \u5B9A\u4E49 Header \u7C7B\u578B\uFF0C\u7528\u4E8E\u5B58\u50A8\u90AE\u4EF6\u5934\u4FE1\u606F\nexport type Header = Record;\n\n// \u5B9A\u4E49 Address \u7C7B\u578B\uFF0C\u7528\u4E8E\u5B58\u50A8\u53D1\u4EF6\u4EBA\u3001\u6536\u4EF6\u4EBA\u7B49\u5730\u5740\u4FE1\u606F\nexport type Address = {\n address: string;\n name: string;\n};\n\n// \u5B9A\u4E49 Email \u7C7B\u578B\uFF0C\u901A\u8FC7 drizzle-orm \u4ECE\u6570\u636E\u5E93\u8868\u7ED3\u6784\u63A8\u65AD\u5F97\u51FA\nexport type Email = typeof emails.$inferSelect;\n\n// \u4F7F\u7528 drizzle-orm \u5B9A\u4E49 emails \u8868\u7684\u7ED3\u6784\nexport const emails = sqliteTable(\"emails\", {\n id: text(\"id\").primaryKey(),\n messageFrom: text(\"message_from\").notNull(),\n messageTo: text(\"message_to\").notNull(),\n headers: text(\"headers\", { mode: \"json\" }).$type().notNull(),\n from: text(\"from\", { mode: \"json\" }).$type
().notNull(),\n sender: text(\"sender\", { mode: \"json\" }).$type
(),\n replyTo: text(\"reply_to\", { mode: \"json\" }).$type(),\n deliveredTo: text(\"delivered_to\"),\n returnPath: text(\"return_path\"),\n to: text(\"to\", { mode: \"json\" }).$type(),\n cc: text(\"cc\", { mode: \"json\" }).$type(),\n bcc: text(\"bcc\", { mode: \"json\" }).$type(),\n subject: text(\"subject\"),\n messageId: text(\"message_id\").notNull(),\n inReplyTo: text(\"in_reply_to\"),\n references: text(\"references\"),\n date: text(\"date\"),\n html: text(\"html\"),\n text: text(\"text\"),\n createdAt: integer(\"created_at\", { mode: \"timestamp\" }).notNull(),\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\n// \u4F7F\u7528 Zod \u5B9A\u4E49 Address \u5BF9\u8C61\u7684\u9A8C\u8BC1 schema\nconst AddressSchema = z.object({\n address: z.string(),\n name: z.string(),\n});\n\n// \u4F7F\u7528 drizzle-zod \u57FA\u4E8E emails \u8868\u7ED3\u6784\u521B\u5EFA\u7528\u4E8E\u63D2\u5165\u64CD\u4F5C\u7684 Zod schema\nexport const insertEmailSchema = createInsertSchema(emails, {\n headers: z.array(z.record(z.string())),\n from: AddressSchema,\n sender: AddressSchema.optional(),\n replyTo: z.array(AddressSchema).optional(),\n to: z.array(AddressSchema).optional(),\n cc: z.array(AddressSchema).optional(),\n bcc: z.array(AddressSchema).optional(),\n});\n\n// \u5B9A\u4E49 InsertEmail \u7C7B\u578B\uFF0C\u4ECE Zod schema \u63A8\u65AD\nexport type InsertEmail = z.infer;\n\n// ==================== Site Stats \u8868 ====================\nexport const siteStats = sqliteTable(\"site_stats\", {\n id: text(\"id\").primaryKey(), // \u7EDF\u8BA1\u9879 ID (\u56FA\u5B9A\u4E3A 'global')\n totalAddressesCreated: integer(\"total_addresses_created\").default(0).notNull(), // \u7D2F\u8BA1\u521B\u5EFA\u90AE\u5740\u6570\u91CF\n totalEmailsReceived: integer(\"total_emails_received\").default(0).notNull(), // \u7D2F\u8BA1\u63A5\u6536\u90AE\u4EF6\u6570\u91CF\n totalApiCalls: integer(\"total_api_calls\").default(0).notNull(), // \u7D2F\u8BA1 API \u8C03\u7528\u6B21\u6570\n totalApiKeysCreated: integer(\"total_api_keys_created\").default(0).notNull(), // \u7D2F\u8BA1\u521B\u5EFA API Key \u6570\u91CF\n updatedAt: integer(\"updated_at\", { mode: \"timestamp\" }).notNull(),\n});\n\nexport type SiteStats = typeof siteStats.$inferSelect;", "import { count, desc, asc, eq, and, inArray, lt, sql } from \"drizzle-orm\";\n// fix: \u5C06\u6570\u636E\u5E93\u7C7B\u578B\u4ECE LibSQLDatabase \u66F4\u6539\u4E3A DrizzleD1Database\uFF0C\u4EE5\u5339\u914D Cloudflare D1\nimport { DrizzleD1Database } from \"drizzle-orm/d1\";\n// refactor: \u66F4\u65B0 schema \u7684\u5BFC\u5165\u8DEF\u5F84\nimport { emails, InsertEmail, apiKeys, InsertApiKey, mailboxes, InsertMailbox, siteStats, SiteStats } from \"./schema\";\n\nexport async function insertEmail(db: DrizzleD1Database, email: InsertEmail) {\n try {\n await db.insert(emails).values(email).execute();\n } catch (e) {\n console.error(e);\n }\n}\n\nexport async function getEmails(db: DrizzleD1Database) {\n try {\n return await db.select().from(emails).execute();\n } catch (e) {\n return [];\n }\n}\n\n// \u51FD\u6570\u91CD\u547D\u540D\uFF1A\u5C06 getEmail \u91CD\u547D\u540D\u4E3A findEmailById \u4EE5\u5339\u914D worker \u4E2D\u7684\u8C03\u7528\nexport async function findEmailById(db: DrizzleD1Database, id: string) {\n try {\n const result = await db\n .select()\n .from(emails)\n .where(and(eq(emails.id, id)))\n .execute();\n if (result.length != 1) {\n return null;\n }\n return result[0];\n } catch (e) {\n return null;\n }\n}\n\n// \u8BE5\u51FD\u6570\u5DF2\u4E0D\u518D\u9700\u8981\uFF0C\u56E0\u4E3A\u5BC6\u7801\u73B0\u5728\u662F\u90AE\u7BB1\u5730\u5740\u7684\u52A0\u5BC6\u7248\u672C\n// export async function getEmailByPassword(db: DrizzleD1Database, id: string) {\n// ...\n// }\n\nexport async function getEmailsByMessageTo(\n db: DrizzleD1Database,\n messageTo: string\n) {\n try {\n return await db\n .select()\n .from(emails)\n .where(eq(emails.messageTo, messageTo))\n .orderBy(desc(emails.createdAt))\n .execute();\n } catch (e) {\n return [];\n }\n}\n\nexport async function getEmailsCount(db: DrizzleD1Database) {\n try {\n const res = await db.select({ count: count() }).from(emails);\n return res[0]?.count;\n } catch (e) {\n return 0;\n }\n}\n\n// \u65B0\u589E\u51FD\u6570\uFF1A\u6DFB\u52A0 worker \u4E2D\u7F3A\u5931\u7684 deleteEmails \u51FD\u6570\nexport async function deleteEmails(db: DrizzleD1Database, ids: string[]) {\n if (!ids || ids.length === 0) {\n return { count: 0 };\n }\n try {\n const result = await db.delete(emails).where(inArray(emails.id, ids));\n return { count: result.rowsAffected };\n } catch (e) {\n console.error(e);\n return { count: 0 };\n }\n}\n\n/**\n * \u65B0\u589E\u51FD\u6570\uFF1A\u6839\u636E\u63D0\u4F9B\u7684\u8FC7\u671F\u65F6\u95F4\u5220\u9664\u6B64\u65F6\u95F4\u4E4B\u524D\u7684\u6240\u6709\u90AE\u4EF6\u3002\n * @param db Drizzle \u6570\u636E\u5E93\u5B9E\u4F8B\u3002\n * @param expirationTime \u4E00\u4E2A Date \u5BF9\u8C61\uFF0C\u8868\u793A\u8FC7\u671F\u65F6\u95F4\u70B9\u3002\n * @returns \u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u5DF2\u5220\u9664\u90AE\u4EF6\u6570\u91CF\u7684\u5BF9\u8C61\uFF0C\u6216\u5728\u51FA\u9519\u65F6\u8FD4\u56DE { count: 0 }\u3002\n */\nexport async function deleteExpiredEmails(db: DrizzleD1Database, expirationTime: Date) {\n try {\n // \u4F7F\u7528Drizzle\u7684lt\uFF08\u5C0F\u4E8E\uFF09\u64CD\u4F5C\u7B26\u6765\u6BD4\u8F83createdAt\u5B57\u6BB5\u548CexpirationTime\n const result = await db.delete(emails).where(lt(emails.createdAt, expirationTime)).execute();\n // \u8FD4\u56DE\u53D7\u5F71\u54CD\u7684\u884C\u6570\uFF0C\u5373\u5DF2\u5220\u9664\u7684\u90AE\u4EF6\u6570\u91CF\n return { count: result.rowsAffected };\n } catch (e) {\n // \u5982\u679C\u5728\u5220\u9664\u8FC7\u7A0B\u4E2D\u53D1\u751F\u9519\u8BEF\uFF0C\u5219\u5728\u63A7\u5236\u53F0\u6253\u5370\u9519\u8BEF\u4FE1\u606F\n console.error('\u6E05\u7406\u8FC7\u671F\u90AE\u4EF6\u5931\u8D25:', e);\n // \u5E76\u8FD4\u56DE\u4E00\u4E2A\u8868\u793A\u5220\u9664\u6570\u91CF\u4E3A0\u7684\u5BF9\u8C61\n return { count: 0 };\n }\n}\n\n// ==================== API Key \u76F8\u5173\u51FD\u6570 ====================\n\n/**\n * \u901A\u8FC7 API Key \u503C\u67E5\u627E\u8BB0\u5F55\n */\nexport async function findApiKeyByKey(db: DrizzleD1Database, key: string) {\n try {\n const result = await db\n .select()\n .from(apiKeys)\n .where(eq(apiKeys.key, key))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findApiKeyByKey error:', e);\n return null;\n }\n}\n\n/**\n * \u66F4\u65B0 API Key \u6700\u540E\u4F7F\u7528\u65F6\u95F4\n */\nexport async function updateApiKeyLastUsed(db: DrizzleD1Database, id: string) {\n try {\n await db\n .update(apiKeys)\n .set({ lastUsedAt: new Date(), updatedAt: new Date() })\n .where(eq(apiKeys.id, id))\n .execute();\n } catch (e) {\n console.error('updateApiKeyLastUsed error:', e);\n }\n}\n\n/**\n * \u521B\u5EFA API Key\n */\nexport async function insertApiKey(db: DrizzleD1Database, apiKey: InsertApiKey) {\n try {\n await db.insert(apiKeys).values(apiKey).execute();\n return apiKey;\n } catch (e) {\n console.error('insertApiKey error:', e);\n return null;\n }\n}\n\n// ==================== Mailbox \u76F8\u5173\u51FD\u6570 ====================\n\n/**\n * \u521B\u5EFA\u90AE\u7BB1\n */\nexport async function insertMailbox(db: DrizzleD1Database, mailbox: InsertMailbox) {\n try {\n await db.insert(mailboxes).values(mailbox).execute();\n return mailbox;\n } catch (e) {\n console.error('insertMailbox error:', e);\n throw e;\n }\n}\n\n/**\n * \u901A\u8FC7 ID \u67E5\u627E\u90AE\u7BB1\n */\nexport async function findMailboxById(db: DrizzleD1Database, id: string) {\n try {\n const result = await db\n .select()\n .from(mailboxes)\n .where(eq(mailboxes.id, id))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findMailboxById error:', e);\n return null;\n }\n}\n\n/**\n * \u901A\u8FC7\u90AE\u7BB1\u5730\u5740\u67E5\u627E\u90AE\u7BB1\n */\nexport async function findMailboxByAddress(db: DrizzleD1Database, address: string) {\n try {\n const result = await db\n .select()\n .from(mailboxes)\n .where(eq(mailboxes.address, address))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findMailboxByAddress error:', e);\n return null;\n }\n}\n\n/**\n * \u83B7\u53D6\u90AE\u7BB1\u7684\u90AE\u4EF6\u5217\u8868\uFF08\u5E26\u5206\u9875\uFF09\n */\nexport async function getMailboxMessages(\n db: DrizzleD1Database,\n address: string,\n options: { page: number; limit: number; sort: 'asc' | 'desc' }\n) {\n try {\n const offset = (options.page - 1) * options.limit;\n const orderFn = options.sort === 'asc' ? asc : desc;\n\n const [messages, countResult] = await Promise.all([\n db\n .select()\n .from(emails)\n .where(eq(emails.messageTo, address))\n .orderBy(orderFn(emails.createdAt))\n .limit(options.limit)\n .offset(offset)\n .execute(),\n db\n .select({ count: count() })\n .from(emails)\n .where(eq(emails.messageTo, address))\n .execute(),\n ]);\n\n const total = countResult[0]?.count || 0;\n\n return {\n messages,\n total,\n totalPages: Math.ceil(total / options.limit),\n };\n } catch (e) {\n console.error('getMailboxMessages error:', e);\n return { messages: [], total: 0, totalPages: 0 };\n }\n}\n\n/**\n * \u83B7\u53D6\u7279\u5B9A\u90AE\u7BB1\u7684\u7279\u5B9A\u90AE\u4EF6\uFF08\u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\uFF09\n */\nexport async function findMailboxMessage(\n db: DrizzleD1Database,\n address: string,\n messageId: string\n) {\n try {\n const result = await db\n .select()\n .from(emails)\n .where(and(eq(emails.id, messageId), eq(emails.messageTo, address)))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('findMailboxMessage error:', e);\n return null;\n }\n}\n\n/**\n * \u5220\u9664\u7279\u5B9A\u90AE\u7BB1\u7684\u7279\u5B9A\u90AE\u4EF6\uFF08\u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\uFF09\n */\nexport async function deleteMailboxMessage(\n db: DrizzleD1Database,\n address: string,\n messageId: string\n) {\n try {\n const result = await db\n .delete(emails)\n .where(and(eq(emails.id, messageId), eq(emails.messageTo, address)))\n .execute();\n return result.rowsAffected > 0;\n } catch (e) {\n console.error('deleteMailboxMessage error:', e);\n return false;\n }\n}\n\n/**\n * \u83B7\u53D6\u90AE\u7BB1\u7684\u90AE\u4EF6\u6570\u91CF\n */\nexport async function getMailboxMessageCount(\n db: DrizzleD1Database,\n address: string\n) {\n try {\n const result = await db\n .select({ count: count() })\n .from(emails)\n .where(eq(emails.messageTo, address))\n .execute();\n return result[0]?.count || 0;\n } catch (e) {\n console.error('getMailboxMessageCount error:', e);\n return 0;\n }\n}\n\n/**\n * \u5220\u9664\u8FC7\u671F\u7684\u90AE\u7BB1\n */\nexport async function deleteExpiredMailboxes(db: DrizzleD1Database) {\n try {\n const now = new Date();\n const result = await db\n .delete(mailboxes)\n .where(lt(mailboxes.expiresAt, now))\n .execute();\n return { count: result.rowsAffected };\n } catch (e) {\n console.error('deleteExpiredMailboxes error:', e);\n return { count: 0 };\n }\n}\n\n// ==================== Site Stats \u76F8\u5173\u51FD\u6570 ====================\n\nconst GLOBAL_STATS_ID = 'global';\n\n/**\n * \u83B7\u53D6\u7AD9\u70B9\u7EDF\u8BA1\u6570\u636E\n */\nexport async function getSiteStats(db: DrizzleD1Database): Promise {\n try {\n const result = await db\n .select()\n .from(siteStats)\n .where(eq(siteStats.id, GLOBAL_STATS_ID))\n .execute();\n return result.length === 1 ? result[0] : null;\n } catch (e) {\n console.error('getSiteStats error:', e);\n return null;\n }\n}\n\n/**\n * \u521D\u59CB\u5316\u7AD9\u70B9\u7EDF\u8BA1\u8BB0\u5F55\uFF08\u5982\u679C\u4E0D\u5B58\u5728\uFF09\n */\nexport async function initSiteStats(db: DrizzleD1Database) {\n try {\n const existing = await getSiteStats(db);\n if (!existing) {\n await db.insert(siteStats).values({\n id: GLOBAL_STATS_ID,\n totalAddressesCreated: 0,\n totalEmailsReceived: 0,\n totalApiCalls: 0,\n totalApiKeysCreated: 0,\n updatedAt: new Date(),\n }).execute();\n }\n } catch (e) {\n console.error('initSiteStats error:', e);\n }\n}\n\n/**\n * \u589E\u52A0\u90AE\u4EF6\u63A5\u6536\u8BA1\u6570\n */\nexport async function incrementEmailsReceived(db: DrizzleD1Database, amount: number = 1) {\n try {\n await initSiteStats(db);\n await db\n .update(siteStats)\n .set({\n totalEmailsReceived: sql`${siteStats.totalEmailsReceived} + ${amount}`,\n updatedAt: new Date(),\n })\n .where(eq(siteStats.id, GLOBAL_STATS_ID))\n .execute();\n } catch (e) {\n console.error('incrementEmailsReceived error:', e);\n }\n}\n\n/**\n * \u589E\u52A0\u90AE\u7BB1\u5730\u5740\u521B\u5EFA\u8BA1\u6570\n */\nexport async function incrementAddressesCreated(db: DrizzleD1Database, amount: number = 1) {\n try {\n await initSiteStats(db);\n await db\n .update(siteStats)\n .set({\n totalAddressesCreated: sql`${siteStats.totalAddressesCreated} + ${amount}`,\n updatedAt: new Date(),\n })\n .where(eq(siteStats.id, GLOBAL_STATS_ID))\n .execute();\n } catch (e) {\n console.error('incrementAddressesCreated error:', e);\n }\n}\n\n/**\n * \u589E\u52A0 API Key \u521B\u5EFA\u8BA1\u6570\n */\nexport async function incrementApiKeysCreated(db: DrizzleD1Database, amount: number = 1) {\n try {\n await initSiteStats(db);\n await db\n .update(siteStats)\n .set({\n totalApiKeysCreated: sql`${siteStats.totalApiKeysCreated} + ${amount}`,\n updatedAt: new Date(),\n })\n .where(eq(siteStats.id, GLOBAL_STATS_ID))\n .execute();\n } catch (e) {\n console.error('incrementApiKeysCreated error:', e);\n }\n}\n\n/**\n * \u589E\u52A0 API \u8C03\u7528\u8BA1\u6570\n */\nexport async function incrementApiCalls(db: DrizzleD1Database, amount: number = 1) {\n try {\n await initSiteStats(db);\n await db\n .update(siteStats)\n .set({\n totalApiCalls: sql`${siteStats.totalApiCalls} + ${amount}`,\n updatedAt: new Date(),\n })\n .where(eq(siteStats.id, GLOBAL_STATS_ID))\n .execute();\n } catch (e) {\n console.error('incrementApiCalls error:', e);\n }\n}", "/// \n\nimport type { BatchItem } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { NoopLogger } from '~/logger.ts';\nimport type { RelationalSchemaConfig, TablesRelationalConfig } from '~/relations.ts';\nimport type { PreparedQuery } from '~/session.ts';\nimport { fillPlaceholders, type Query, sql } from '~/sql/sql.ts';\nimport type { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport { SQLiteTransaction } from '~/sqlite-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/sqlite-core/query-builders/select.types.ts';\nimport type {\n\tPreparedQueryConfig as PreparedQueryConfigBase,\n\tSQLiteExecuteMethod,\n\tSQLiteTransactionConfig,\n} from '~/sqlite-core/session.ts';\nimport { SQLitePreparedQuery, SQLiteSession } from '~/sqlite-core/session.ts';\nimport { mapResultRow } from '~/utils.ts';\n\nexport interface SQLiteD1SessionOptions {\n\tlogger?: Logger;\n}\n\ntype PreparedQueryConfig = Omit;\n\nexport class SQLiteD1Session<\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteSession<'async', D1Result, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'SQLiteD1Session';\n\n\tprivate logger: Logger;\n\n\tconstructor(\n\t\tprivate client: D1Database,\n\t\tdialect: SQLiteAsyncDialect,\n\t\tprivate schema: RelationalSchemaConfig | undefined,\n\t\tprivate options: SQLiteD1SessionOptions = {},\n\t) {\n\t\tsuper(dialect);\n\t\tthis.logger = options.logger ?? new NoopLogger();\n\t}\n\n\tprepareQuery(\n\t\tquery: Query,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t): D1PreparedQuery {\n\t\tconst stmt = this.client.prepare(query.sql);\n\t\treturn new D1PreparedQuery(stmt, query, this.logger, fields, executeMethod, customResultMapper);\n\t}\n\n\t/*override */ async batch>(queries: T) {\n\t\tconst preparedQueries: PreparedQuery[] = [];\n\t\tconst builtQueries: D1PreparedStatement[] = [];\n\n\t\tfor (const query of queries) {\n\t\t\tconst preparedQuery = query._prepare();\n\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\tpreparedQueries.push(preparedQuery);\n\t\t\tif (builtQuery.params.length > 0) {\n\t\t\t\tbuiltQueries.push((preparedQuery as D1PreparedQuery).stmt.bind(...builtQuery.params));\n\t\t\t} else {\n\t\t\t\tconst builtQuery = preparedQuery.getQuery();\n\t\t\t\tbuiltQueries.push(\n\t\t\t\t\tthis.client.prepare(builtQuery.sql).bind(...builtQuery.params),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// const queryToType: (\n\t\t// \t| { mode: 'all' }\n\t\t// \t| {\n\t\t// \t\tmode: 'all_mapped';\n\t\t// \t\tconfig: { fields: SelectedFieldsOrdered; joinsNotNullableMap?: Record };\n\t\t// \t}\n\t\t// \t| { mode: 'get' }\n\t\t// \t| { mode: 'values' }\n\t\t// \t| { mode: 'raw' }\n\t\t// \t| { mode: 'rqb'; mapper: any }\n\t\t// )[] = [];\n\n\t\t// const builtQueries: D1PreparedStatement[] = queries.map((query) => {\n\t\t// \tif (is(query, SQLiteSelectBase)) {\n\t\t// \t\tconst prepared = query.prepare() as D1PreparedQuery;\n\t\t// \t\tprepared.fields === undefined\n\t\t// \t\t\t? queryToType.push({ mode: 'all' })\n\t\t// \t\t\t: queryToType.push({\n\t\t// \t\t\t\tmode: 'all_mapped',\n\t\t// \t\t\t\tconfig: { fields: prepared.fields, joinsNotNullableMap: prepared.joinsNotNullableMap },\n\t\t// \t\t\t});\n\t\t// \t\treturn prepared.stmt.bind(...prepared.params);\n\t\t// \t} else if (\n\t\t// \t\tis(query, SQLiteInsertBase) || is(query, SQLiteUpdateBase)\n\t\t// \t\t|| is(query, SQLiteDeleteBase)\n\t\t// \t) {\n\t\t// \t\tconst prepared = query.prepare() as D1PreparedQuery;\n\t\t// \t\tqueryToType.push(\n\t\t// \t\t\tquery.config.returning\n\t\t// \t\t\t\t? {\n\t\t// \t\t\t\t\tmode: 'all_mapped',\n\t\t// \t\t\t\t\tconfig: { fields: query.config.returning },\n\t\t// \t\t\t\t}\n\t\t// \t\t\t\t: { mode: 'raw' },\n\t\t// \t\t);\n\t\t// \t\treturn prepared.stmt.bind(...prepared.params);\n\t\t// \t} else if (is(query, SQLiteRaw)) {\n\t\t// \t\tconst builtQuery = this.dialect.sqlToQuery(query.getSQL());\n\t\t// \t\tqueryToType.push(\n\t\t// \t\t\tquery.config.action === 'run' ? { mode: 'raw' } : { mode: query.config.action },\n\t\t// \t\t);\n\t\t// \t\treturn this.client.prepare(builtQuery.sql).bind(...builtQuery.params);\n\t\t// \t} else if (is(query, SQLiteRelationalQuery)) {\n\t\t// \t\tconst preparedRqb = query.prepare() as D1PreparedQuery;\n\t\t// \t\tqueryToType.push({ mode: 'rqb', mapper: preparedRqb.customResultMapper });\n\t\t// \t\treturn preparedRqb.stmt.bind(...preparedRqb.params);\n\t\t// \t}\n\t\t// \tthrow new DrizzleError({ message: 'You can use only drizzle queries in D1 batch API' });\n\t\t// });\n\n\t\tconst batchResults = await this.client.batch(builtQueries);\n\t\treturn batchResults.map((result, i) => preparedQueries[i]!.mapResult(result, true));\n\n\t\t// const res = this.client.batch(builtQueries).then((stmt) =>\n\t\t// \tstmt.map(({ results }, index) => {\n\t\t// \t\tconst action = queryToType[index]!;\n\t\t// \t\tif (action.mode === 'all') {\n\t\t// \t\t\treturn results;\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'all_mapped') {\n\t\t// \t\t\tconst mappedRows = this.d1ToRawMapping(results);\n\t\t// \t\t\treturn mappedRows!.map((row) => {\n\t\t// \t\t\t\treturn mapResultRow(\n\t\t// \t\t\t\t\taction.config.fields,\n\t\t// \t\t\t\t\trow,\n\t\t// \t\t\t\t\taction.config.joinsNotNullableMap,\n\t\t// \t\t\t\t);\n\t\t// \t\t\t});\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'get') {\n\t\t// \t\t\treturn results![0] as unknown[];\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'values') {\n\t\t// \t\t\treturn this.d1ToRawMapping(results);\n\t\t// \t\t}\n\t\t// \t\tif (action.mode === 'raw') {\n\t\t// \t\t\treturn stmt[index];\n\t\t// \t\t}\n\t\t// \t\treturn action.mapper(this.d1ToRawMapping(results));\n\t\t// \t})\n\t\t// );\n\t\t// return res;\n\t}\n\n\toverride extractRawAllValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results;\n\t}\n\n\toverride extractRawGetValueFromBatchResult(result: unknown): unknown {\n\t\treturn (result as D1Result).results[0];\n\t}\n\n\toverride extractRawValuesValueFromBatchResult(result: unknown): unknown {\n\t\treturn d1ToRawMapping((result as D1Result).results);\n\t}\n\n\toverride async transaction(\n\t\ttransaction: (tx: D1Transaction) => T | Promise,\n\t\tconfig?: SQLiteTransactionConfig,\n\t): Promise {\n\t\tconst tx = new D1Transaction('async', this.dialect, this, this.schema);\n\t\tawait this.run(sql.raw(`begin${config?.behavior ? ' ' + config.behavior : ''}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.run(sql`commit`);\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.run(sql`rollback`);\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\nexport class D1Transaction<\n\tTFullSchema extends Record,\n\tTSchema extends TablesRelationalConfig,\n> extends SQLiteTransaction<'async', D1Result, TFullSchema, TSchema> {\n\tstatic readonly [entityKind]: string = 'D1Transaction';\n\n\toverride async transaction(transaction: (tx: D1Transaction) => Promise): Promise {\n\t\tconst savepointName = `sp${this.nestedIndex}`;\n\t\tconst tx = new D1Transaction('async', this.dialect, this.session, this.schema, this.nestedIndex + 1);\n\t\tawait this.session.run(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.run(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (err) {\n\t\t\tawait this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n/**\n * This function was taken from the D1 implementation: https://github.com/cloudflare/workerd/blob/4aae9f4c7ae30a59a88ca868c4aff88bda85c956/src/cloudflare/internal/d1-api.ts#L287\n * It may cause issues with duplicated column names in join queries, which should be fixed on the D1 side.\n * @param results\n * @returns\n */\nfunction d1ToRawMapping(results: any) {\n\tconst rows: unknown[][] = [];\n\tfor (const row of results) {\n\t\tconst entry = Object.keys(row).map((k) => row[k]);\n\t\trows.push(entry);\n\t}\n\treturn rows;\n}\n\nexport class D1PreparedQuery extends SQLitePreparedQuery<\n\t{ type: 'async'; run: D1Result; all: T['all']; get: T['get']; values: T['values']; execute: T['execute'] }\n> {\n\tstatic readonly [entityKind]: string = 'D1PreparedQuery';\n\n\t/** @internal */\n\tcustomResultMapper?: (rows: unknown[][], mapColumnValue?: (value: unknown) => unknown) => unknown;\n\n\t/** @internal */\n\tfields?: SelectedFieldsOrdered;\n\n\t/** @internal */\n\tstmt: D1PreparedStatement;\n\n\tconstructor(\n\t\tstmt: D1PreparedStatement,\n\t\tquery: Query,\n\t\tprivate logger: Logger,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\texecuteMethod: SQLiteExecuteMethod,\n\t\tcustomResultMapper?: (rows: unknown[][]) => unknown,\n\t) {\n\t\tsuper('async', executeMethod, query);\n\t\tthis.customResultMapper = customResultMapper;\n\t\tthis.fields = fields;\n\t\tthis.stmt = stmt;\n\t}\n\n\trun(placeholderValues?: Record): Promise {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).run();\n\t}\n\n\tasync all(placeholderValues?: Record): Promise {\n\t\tconst { fields, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => this.mapAllResult(results!));\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\treturn this.mapAllResult(rows);\n\t}\n\n\toverride mapAllResult(rows: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\trows = d1ToRawMapping((rows as D1Result).results);\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn rows;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper(rows as unknown[][]);\n\t\t}\n\n\t\treturn (rows as unknown[][]).map((row) => mapResultRow(this.fields!, row, this.joinsNotNullableMap));\n\t}\n\n\tasync get(placeholderValues?: Record): Promise {\n\t\tconst { fields, joinsNotNullableMap, query, logger, stmt, customResultMapper } = this;\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst params = fillPlaceholders(query.params, placeholderValues ?? {});\n\t\t\tlogger.logQuery(query.sql, params);\n\t\t\treturn stmt.bind(...params).all().then(({ results }) => results![0]);\n\t\t}\n\n\t\tconst rows = await this.values(placeholderValues);\n\n\t\tif (!rows[0]) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (customResultMapper) {\n\t\t\treturn customResultMapper(rows) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(fields!, rows[0], joinsNotNullableMap);\n\t}\n\n\toverride mapGetResult(result: unknown, isFromBatch?: boolean): unknown {\n\t\tif (isFromBatch) {\n\t\t\tresult = d1ToRawMapping((result as D1Result).results)[0];\n\t\t}\n\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (this.customResultMapper) {\n\t\t\treturn this.customResultMapper([result as unknown[]]) as T['all'];\n\t\t}\n\n\t\treturn mapResultRow(this.fields!, result as unknown[], this.joinsNotNullableMap);\n\t}\n\n\tvalues(placeholderValues?: Record): Promise {\n\t\tconst params = fillPlaceholders(this.query.params, placeholderValues ?? {});\n\t\tthis.logger.logQuery(this.query.sql, params);\n\t\treturn this.stmt.bind(...params).raw();\n\t}\n}\n", "/// \nimport type { BatchItem, BatchResponse } from '~/batch.ts';\nimport { entityKind } from '~/entity.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {\n\tcreateTableRelationsHelpers,\n\textractTablesRelationalConfig,\n\ttype ExtractTablesWithRelations,\n\ttype RelationalSchemaConfig,\n\ttype TablesRelationalConfig,\n} from '~/relations.ts';\nimport { BaseSQLiteDatabase } from '~/sqlite-core/db.ts';\nimport { SQLiteAsyncDialect } from '~/sqlite-core/dialect.ts';\nimport type { DrizzleConfig } from '~/utils.ts';\nimport { SQLiteD1Session } from './session.ts';\n\nexport class DrizzleD1Database<\n\tTSchema extends Record = Record,\n> extends BaseSQLiteDatabase<'async', D1Result, TSchema> {\n\tstatic readonly [entityKind]: string = 'LibSQLDatabase';\n\n\t/** @internal */\n\tdeclare readonly session: SQLiteD1Session>;\n\n\tasync batch, T extends Readonly<[U, ...U[]]>>(\n\t\tbatch: T,\n\t): Promise> {\n\t\treturn this.session.batch(batch) as Promise>;\n\t}\n}\n\nexport function drizzle = Record>(\n\tclient: D1Database,\n\tconfig: DrizzleConfig = {},\n): DrizzleD1Database {\n\tconst dialect = new SQLiteAsyncDialect();\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: RelationalSchemaConfig | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tcreateTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst session = new SQLiteD1Session(client, dialect, schema, { logger });\n\treturn new DrizzleD1Database('async', dialect, session, schema) as DrizzleD1Database;\n}\n", "import { drizzle, DrizzleD1Database } from \"drizzle-orm/d1\";\n\n// \u4FEE\u6539 getWebTursoDB \u4E3A getD1DB\uFF0C\u5E76\u9002\u914D D1 \u6570\u636E\u5E93\nexport function getD1DB(db: D1Database): DrizzleD1Database {\n return drizzle(db);\n}", "/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nexport let nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n", "export const textEncoder = new TextEncoder();\n\nconst base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst base64Lookup = new Uint8Array(256);\nfor (var i = 0; i < base64Chars.length; i++) {\n base64Lookup[base64Chars.charCodeAt(i)] = i;\n}\n\nexport function decodeBase64(base64) {\n let bufferLength = Math.ceil(base64.length / 4) * 3;\n const len = base64.length;\n\n let p = 0;\n\n if (base64.length % 4 === 3) {\n bufferLength--;\n } else if (base64.length % 4 === 2) {\n bufferLength -= 2;\n } else if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arrayBuffer = new ArrayBuffer(bufferLength);\n const bytes = new Uint8Array(arrayBuffer);\n\n for (let i = 0; i < len; i += 4) {\n let encoded1 = base64Lookup[base64.charCodeAt(i)];\n let encoded2 = base64Lookup[base64.charCodeAt(i + 1)];\n let encoded3 = base64Lookup[base64.charCodeAt(i + 2)];\n let encoded4 = base64Lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arrayBuffer;\n}\n\nexport function getDecoder(charset) {\n charset = charset || 'utf8';\n let decoder;\n\n try {\n decoder = new TextDecoder(charset);\n } catch (err) {\n decoder = new TextDecoder('windows-1252');\n }\n\n return decoder;\n}\n\n/**\n * Converts a Blob into an ArrayBuffer\n * @param {Blob} blob Blob to convert\n * @returns {ArrayBuffer} Converted value\n */\nexport async function blobToArrayBuffer(blob) {\n if ('arrayBuffer' in blob) {\n return await blob.arrayBuffer();\n }\n\n const fr = new FileReader();\n\n return new Promise((resolve, reject) => {\n fr.onload = function (e) {\n resolve(e.target.result);\n };\n\n fr.onerror = function (e) {\n reject(fr.error);\n };\n\n fr.readAsArrayBuffer(blob);\n });\n}\n\nexport function getHex(c) {\n if (\n (c >= 0x30 /* 0 */ && c <= 0x39) /* 9 */ ||\n (c >= 0x61 /* a */ && c <= 0x66) /* f */ ||\n (c >= 0x41 /* A */ && c <= 0x46) /* F */\n ) {\n return String.fromCharCode(c);\n }\n return false;\n}\n\n/**\n * Decode a complete mime word encoded string\n *\n * @param {String} str Mime word encoded string\n * @return {String} Decoded unicode string\n */\nexport function decodeWord(charset, encoding, str) {\n // RFC2231 added language tag to the encoding\n // see: https://tools.ietf.org/html/rfc2231#section-5\n // this implementation silently ignores this tag\n let splitPos = charset.indexOf('*');\n if (splitPos >= 0) {\n charset = charset.substr(0, splitPos);\n }\n\n encoding = encoding.toUpperCase();\n\n let byteStr;\n\n if (encoding === 'Q') {\n str = str\n // remove spaces between = and hex char, this might indicate invalidly applied line splitting\n .replace(/=\\s+([0-9a-fA-F])/g, '=$1')\n // convert all underscores to spaces\n .replace(/[_\\s]/g, ' ');\n\n let buf = textEncoder.encode(str);\n let encodedBytes = [];\n for (let i = 0, len = buf.length; i < len; i++) {\n let c = buf[i];\n if (i <= len - 2 && c === 0x3d /* = */) {\n let c1 = getHex(buf[i + 1]);\n let c2 = getHex(buf[i + 2]);\n if (c1 && c2) {\n let c = parseInt(c1 + c2, 16);\n encodedBytes.push(c);\n i += 2;\n continue;\n }\n }\n encodedBytes.push(c);\n }\n byteStr = new ArrayBuffer(encodedBytes.length);\n let dataView = new DataView(byteStr);\n for (let i = 0, len = encodedBytes.length; i < len; i++) {\n dataView.setUint8(i, encodedBytes[i]);\n }\n } else if (encoding === 'B') {\n byteStr = decodeBase64(str.replace(/[^a-zA-Z0-9\\+\\/=]+/g, ''));\n } else {\n // keep as is, convert ArrayBuffer to unicode string, assume utf8\n byteStr = textEncoder.encode(str);\n }\n\n return getDecoder(charset).decode(byteStr);\n}\n\nexport function decodeWords(str) {\n let joinString = true;\n let done = false;\n\n while (!done) {\n let result = (str || '')\n .toString()\n // find base64 words that can be joined\n .replace(\n /(=\\?([^?]+)\\?[Bb]\\?([^?]*)\\?=)\\s*(?==\\?([^?]+)\\?[Bb]\\?[^?]*\\?=)/g,\n (match, left, chLeft, encodedLeftStr, chRight) => {\n if (!joinString) {\n return match;\n }\n // only mark b64 chunks to be joined if charsets match and left side does not end with =\n if (chLeft === chRight && encodedLeftStr.length % 4 === 0 && !/=$/.test(encodedLeftStr)) {\n // set a joiner marker\n return left + '__\\x00JOIN\\x00__';\n }\n\n return match;\n }\n )\n // find QP words that can be joined\n .replace(\n /(=\\?([^?]+)\\?[Qq]\\?[^?]*\\?=)\\s*(?==\\?([^?]+)\\?[Qq]\\?[^?]*\\?=)/g,\n (match, left, chLeft, chRight) => {\n if (!joinString) {\n return match;\n }\n // only mark QP chunks to be joined if charsets match\n if (chLeft === chRight) {\n // set a joiner marker\n return left + '__\\x00JOIN\\x00__';\n }\n return match;\n }\n )\n // join base64 encoded words\n .replace(/(\\?=)?__\\x00JOIN\\x00__(=\\?([^?]+)\\?[QqBb]\\?)?/g, '')\n // remove spaces between mime encoded words\n .replace(/(=\\?[^?]+\\?[QqBb]\\?[^?]*\\?=)\\s+(?==\\?[^?]+\\?[QqBb]\\?[^?]*\\?=)/g, '$1')\n // decode words\n .replace(/=\\?([\\w_\\-*]+)\\?([QqBb])\\?([^?]*)\\?=/g, (m, charset, encoding, text) =>\n decodeWord(charset, encoding, text)\n );\n\n if (joinString && result.indexOf('\\ufffd') >= 0) {\n // text contains \\ufffd (EF BF BD), so unicode conversion failed, retry without joining strings\n joinString = false;\n } else {\n return result;\n }\n }\n}\n\nexport function decodeURIComponentWithCharset(encodedStr, charset) {\n charset = charset || 'utf-8';\n\n let encodedBytes = [];\n for (let i = 0; i < encodedStr.length; i++) {\n let c = encodedStr.charAt(i);\n if (c === '%' && /^[a-f0-9]{2}/i.test(encodedStr.substr(i + 1, 2))) {\n // encoded sequence\n let byte = encodedStr.substr(i + 1, 2);\n i += 2;\n encodedBytes.push(parseInt(byte, 16));\n } else if (c.charCodeAt(0) > 126) {\n c = textEncoder.encode(c);\n for (let j = 0; j < c.length; j++) {\n encodedBytes.push(c[j]);\n }\n } else {\n // \"normal\" char\n encodedBytes.push(c.charCodeAt(0));\n }\n }\n\n const byteStr = new ArrayBuffer(encodedBytes.length);\n const dataView = new DataView(byteStr);\n for (let i = 0, len = encodedBytes.length; i < len; i++) {\n dataView.setUint8(i, encodedBytes[i]);\n }\n\n return getDecoder(charset).decode(byteStr);\n}\n\nexport function decodeParameterValueContinuations(header) {\n // handle parameter value continuations\n // https://tools.ietf.org/html/rfc2231#section-3\n\n // preprocess values\n let paramKeys = new Map();\n\n Object.keys(header.params).forEach(key => {\n let match = key.match(/\\*((\\d+)\\*?)?$/);\n if (!match) {\n // nothing to do here, does not seem like a continuation param\n return;\n }\n\n let actualKey = key.substr(0, match.index).toLowerCase();\n let nr = Number(match[2]) || 0;\n\n let paramVal;\n if (!paramKeys.has(actualKey)) {\n paramVal = {\n charset: false,\n values: []\n };\n paramKeys.set(actualKey, paramVal);\n } else {\n paramVal = paramKeys.get(actualKey);\n }\n\n let value = header.params[key];\n if (nr === 0 && match[0].charAt(match[0].length - 1) === '*' && (match = value.match(/^([^']*)'[^']*'(.*)$/))) {\n paramVal.charset = match[1] || 'utf-8';\n value = match[2];\n }\n\n paramVal.values.push({ nr, value });\n\n // remove the old reference\n delete header.params[key];\n });\n\n paramKeys.forEach((paramVal, key) => {\n header.params[key] = decodeURIComponentWithCharset(\n paramVal.values\n .sort((a, b) => a.nr - b.nr)\n .map(a => a.value)\n .join(''),\n paramVal.charset\n );\n });\n}\n", "import { blobToArrayBuffer } from './decode-strings.js';\n\nexport default class PassThroughDecoder {\n constructor() {\n this.chunks = [];\n }\n\n update(line) {\n this.chunks.push(line);\n this.chunks.push('\\n');\n }\n\n finalize() {\n // convert an array of arraybuffers into a blob and then back into a single arraybuffer\n return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));\n }\n}\n", "import { decodeBase64, blobToArrayBuffer } from './decode-strings.js';\n\nexport default class Base64Decoder {\n constructor(opts) {\n opts = opts || {};\n\n this.decoder = opts.decoder || new TextDecoder();\n\n this.maxChunkSize = 100 * 1024;\n\n this.chunks = [];\n\n this.remainder = '';\n }\n\n update(buffer) {\n let str = this.decoder.decode(buffer);\n\n if (/[^a-zA-Z0-9+\\/]/.test(str)) {\n str = str.replace(/[^a-zA-Z0-9+\\/]+/g, '');\n }\n\n this.remainder += str;\n\n if (this.remainder.length >= this.maxChunkSize) {\n let allowedBytes = Math.floor(this.remainder.length / 4) * 4;\n let base64Str;\n\n if (allowedBytes === this.remainder.length) {\n base64Str = this.remainder;\n this.remainder = '';\n } else {\n base64Str = this.remainder.substr(0, allowedBytes);\n this.remainder = this.remainder.substr(allowedBytes);\n }\n\n if (base64Str.length) {\n this.chunks.push(decodeBase64(base64Str));\n }\n }\n }\n\n finalize() {\n if (this.remainder && !/^=+$/.test(this.remainder)) {\n this.chunks.push(decodeBase64(this.remainder));\n }\n\n return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));\n }\n}\n", "import { blobToArrayBuffer } from './decode-strings.js';\n\n// Regex patterns compiled once for performance\nconst VALID_QP_REGEX = /^=[a-f0-9]{2}$/i;\nconst QP_SPLIT_REGEX = /(?==[a-f0-9]{2})/i;\nconst SOFT_LINE_BREAK_REGEX = /=\\r?\\n/g;\nconst PARTIAL_QP_ENDING_REGEX = /=[a-fA-F0-9]?$/;\n\nexport default class QPDecoder {\n constructor(opts) {\n opts = opts || {};\n\n this.decoder = opts.decoder || new TextDecoder();\n\n this.maxChunkSize = 100 * 1024;\n\n this.remainder = '';\n\n this.chunks = [];\n }\n\n decodeQPBytes(encodedBytes) {\n let buf = new ArrayBuffer(encodedBytes.length);\n let dataView = new DataView(buf);\n for (let i = 0, len = encodedBytes.length; i < len; i++) {\n dataView.setUint8(i, parseInt(encodedBytes[i], 16));\n }\n return buf;\n }\n\n decodeChunks(str) {\n // unwrap newlines\n str = str.replace(SOFT_LINE_BREAK_REGEX, '');\n\n let list = str.split(QP_SPLIT_REGEX);\n let encodedBytes = [];\n for (let part of list) {\n if (part.charAt(0) !== '=') {\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n this.chunks.push(part);\n continue;\n }\n\n if (part.length === 3) {\n // Validate that this is actually a valid QP sequence\n if (VALID_QP_REGEX.test(part)) {\n encodedBytes.push(part.substr(1));\n } else {\n // Not a valid QP sequence, treat as literal text\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n this.chunks.push(part);\n }\n continue;\n }\n\n if (part.length > 3) {\n // First 3 chars should be a valid QP sequence\n const firstThree = part.substr(0, 3);\n if (VALID_QP_REGEX.test(firstThree)) {\n encodedBytes.push(part.substr(1, 2));\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n\n part = part.substr(3);\n this.chunks.push(part);\n } else {\n // Not a valid QP sequence, treat entire part as literal\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n this.chunks.push(part);\n }\n }\n }\n if (encodedBytes.length) {\n this.chunks.push(this.decodeQPBytes(encodedBytes));\n encodedBytes = [];\n }\n }\n\n update(buffer) {\n // expect full lines, so add line terminator as well\n let str = this.decoder.decode(buffer) + '\\n';\n\n str = this.remainder + str;\n\n if (str.length < this.maxChunkSize) {\n this.remainder = str;\n return;\n }\n\n this.remainder = '';\n\n let partialEnding = str.match(PARTIAL_QP_ENDING_REGEX);\n if (partialEnding) {\n if (partialEnding.index === 0) {\n this.remainder = str;\n return;\n }\n this.remainder = str.substr(partialEnding.index);\n str = str.substr(0, partialEnding.index);\n }\n\n this.decodeChunks(str);\n }\n\n finalize() {\n if (this.remainder.length) {\n this.decodeChunks(this.remainder);\n this.remainder = '';\n }\n\n // convert an array of arraybuffers into a blob and then back into a single arraybuffer\n return blobToArrayBuffer(new Blob(this.chunks, { type: 'application/octet-stream' }));\n }\n}\n", "import { getDecoder, decodeParameterValueContinuations, textEncoder } from './decode-strings.js';\nimport PassThroughDecoder from './pass-through-decoder.js';\nimport Base64Decoder from './base64-decoder.js';\nimport QPDecoder from './qp-decoder.js';\n\nexport default class MimeNode {\n constructor(options) {\n this.options = options || {};\n\n this.postalMime = this.options.postalMime;\n\n this.root = !!this.options.parentNode;\n this.childNodes = [];\n\n if (this.options.parentNode) {\n this.parentNode = this.options.parentNode;\n\n this.depth = this.parentNode.depth + 1;\n if (this.depth > this.options.maxNestingDepth) {\n throw new Error(`Maximum MIME nesting depth of ${this.options.maxNestingDepth} levels exceeded`);\n }\n\n this.options.parentNode.childNodes.push(this);\n } else {\n this.depth = 0;\n }\n\n this.state = 'header';\n\n this.headerLines = [];\n this.headerSize = 0;\n\n this.contentType = {\n value: 'text/plain',\n default: true\n };\n\n this.contentTransferEncoding = {\n value: '8bit'\n };\n\n this.contentDisposition = {\n value: ''\n };\n\n this.headers = [];\n\n this.contentDecoder = false;\n }\n\n setupContentDecoder(transferEncoding) {\n if (/base64/i.test(transferEncoding)) {\n this.contentDecoder = new Base64Decoder();\n } else if (/quoted-printable/i.test(transferEncoding)) {\n this.contentDecoder = new QPDecoder({ decoder: getDecoder(this.contentType.parsed.params.charset) });\n } else {\n this.contentDecoder = new PassThroughDecoder();\n }\n }\n\n async finalize() {\n if (this.state === 'finished') {\n return;\n }\n\n if (this.state === 'header') {\n this.processHeaders();\n }\n\n // remove self from boundary listing\n let boundaries = this.postalMime.boundaries;\n for (let i = boundaries.length - 1; i >= 0; i--) {\n let boundary = boundaries[i];\n if (boundary.node === this) {\n boundaries.splice(i, 1);\n break;\n }\n }\n\n await this.finalizeChildNodes();\n\n this.content = this.contentDecoder ? await this.contentDecoder.finalize() : null;\n\n this.state = 'finished';\n }\n\n async finalizeChildNodes() {\n for (let childNode of this.childNodes) {\n await childNode.finalize();\n }\n }\n\n parseStructuredHeader(str) {\n let response = {\n value: false,\n params: {}\n };\n\n let key = false;\n let value = '';\n let stage = 'value';\n\n let quote = false;\n let escaped = false;\n let chr;\n\n for (let i = 0, len = str.length; i < len; i++) {\n chr = str.charAt(i);\n switch (stage) {\n case 'key':\n if (chr === '=') {\n key = value.trim().toLowerCase();\n stage = 'value';\n value = '';\n break;\n }\n value += chr;\n break;\n case 'value':\n if (escaped) {\n value += chr;\n } else if (chr === '\\\\') {\n escaped = true;\n continue;\n } else if (quote && chr === quote) {\n quote = false;\n } else if (!quote && chr === '\"') {\n quote = chr;\n } else if (!quote && chr === ';') {\n if (key === false) {\n response.value = value.trim();\n } else {\n response.params[key] = value.trim();\n }\n stage = 'key';\n value = '';\n } else {\n value += chr;\n }\n escaped = false;\n break;\n }\n }\n\n // finalize remainder\n value = value.trim();\n if (stage === 'value') {\n if (key === false) {\n // default value\n response.value = value;\n } else {\n // subkey value\n response.params[key] = value;\n }\n } else if (value) {\n // treat as key without value, see emptykey:\n // Header-Key: somevalue; key=value; emptykey\n response.params[value.toLowerCase()] = '';\n }\n\n if (response.value) {\n response.value = response.value.toLowerCase();\n }\n\n // convert Parameter Value Continuations into single strings\n decodeParameterValueContinuations(response);\n\n return response;\n }\n\n decodeFlowedText(str, delSp) {\n return (\n str\n .split(/\\r?\\n/)\n // remove soft linebreaks\n // soft linebreaks are added after space symbols\n .reduce((previousValue, currentValue) => {\n if (/ $/.test(previousValue) && !/(^|\\n)-- $/.test(previousValue)) {\n if (delSp) {\n // delsp adds space to text to be able to fold it\n // these spaces can be removed once the text is unfolded\n return previousValue.slice(0, -1) + currentValue;\n } else {\n return previousValue + currentValue;\n }\n } else {\n return previousValue + '\\n' + currentValue;\n }\n })\n // remove whitespace stuffing\n // http://tools.ietf.org/html/rfc3676#section-4.4\n .replace(/^ /gm, '')\n );\n }\n\n getTextContent() {\n if (!this.content) {\n return '';\n }\n\n let str = getDecoder(this.contentType.parsed.params.charset).decode(this.content);\n\n if (/^flowed$/i.test(this.contentType.parsed.params.format)) {\n str = this.decodeFlowedText(str, /^yes$/i.test(this.contentType.parsed.params.delsp));\n }\n\n return str;\n }\n\n processHeaders() {\n for (let i = this.headerLines.length - 1; i >= 0; i--) {\n let line = this.headerLines[i];\n if (i && /^\\s/.test(line)) {\n this.headerLines[i - 1] += '\\n' + line;\n this.headerLines.splice(i, 1);\n } else {\n // remove folding and extra WS\n line = line.replace(/\\s+/g, ' ');\n let sep = line.indexOf(':');\n let key = sep < 0 ? line.trim() : line.substr(0, sep).trim();\n let value = sep < 0 ? '' : line.substr(sep + 1).trim();\n this.headers.push({ key: key.toLowerCase(), originalKey: key, value });\n\n switch (key.toLowerCase()) {\n case 'content-type':\n if (this.contentType.default) {\n this.contentType = { value, parsed: {} };\n }\n break;\n case 'content-transfer-encoding':\n this.contentTransferEncoding = { value, parsed: {} };\n break;\n case 'content-disposition':\n this.contentDisposition = { value, parsed: {} };\n break;\n case 'content-id':\n this.contentId = value;\n break;\n case 'content-description':\n this.contentDescription = value;\n break;\n }\n }\n }\n\n this.contentType.parsed = this.parseStructuredHeader(this.contentType.value);\n this.contentType.multipart = /^multipart\\//i.test(this.contentType.parsed.value)\n ? this.contentType.parsed.value.substr(this.contentType.parsed.value.indexOf('/') + 1)\n : false;\n\n if (this.contentType.multipart && this.contentType.parsed.params.boundary) {\n // add self to boundary terminator listing\n this.postalMime.boundaries.push({\n value: textEncoder.encode(this.contentType.parsed.params.boundary),\n node: this\n });\n }\n\n this.contentDisposition.parsed = this.parseStructuredHeader(this.contentDisposition.value);\n\n this.contentTransferEncoding.encoding = this.contentTransferEncoding.value\n .toLowerCase()\n .split(/[^\\w-]/)\n .shift();\n\n this.setupContentDecoder(this.contentTransferEncoding.encoding);\n }\n\n feed(line) {\n switch (this.state) {\n case 'header':\n if (!line.length) {\n this.state = 'body';\n return this.processHeaders();\n }\n\n this.headerSize += line.length;\n\n if (this.headerSize > this.options.maxHeadersSize) {\n let error = new Error(`Maximum header size of ${this.options.maxHeadersSize} bytes exceeded`);\n throw error;\n }\n\n this.headerLines.push(getDecoder().decode(line));\n break;\n case 'body': {\n // add line to body\n this.contentDecoder.update(line);\n }\n }\n }\n}\n", "// Entity map from https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references\nexport const htmlEntities = {\n 'Æ': '\\u00C6',\n 'Æ': '\\u00C6',\n '&': '\\u0026',\n '&': '\\u0026',\n 'Á': '\\u00C1',\n 'Á': '\\u00C1',\n 'Ă': '\\u0102',\n 'Â': '\\u00C2',\n 'Â': '\\u00C2',\n 'А': '\\u0410',\n '𝔄': '\\uD835\\uDD04',\n 'À': '\\u00C0',\n 'À': '\\u00C0',\n 'Α': '\\u0391',\n 'Ā': '\\u0100',\n '⩓': '\\u2A53',\n 'Ą': '\\u0104',\n '𝔸': '\\uD835\\uDD38',\n '⁡': '\\u2061',\n 'Å': '\\u00C5',\n 'Å': '\\u00C5',\n '𝒜': '\\uD835\\uDC9C',\n '≔': '\\u2254',\n 'Ã': '\\u00C3',\n 'Ã': '\\u00C3',\n 'Ä': '\\u00C4',\n 'Ä': '\\u00C4',\n '∖': '\\u2216',\n '⫧': '\\u2AE7',\n '⌆': '\\u2306',\n 'Б': '\\u0411',\n '∵': '\\u2235',\n 'ℬ': '\\u212C',\n 'Β': '\\u0392',\n '𝔅': '\\uD835\\uDD05',\n '𝔹': '\\uD835\\uDD39',\n '˘': '\\u02D8',\n 'ℬ': '\\u212C',\n '≎': '\\u224E',\n 'Ч': '\\u0427',\n '©': '\\u00A9',\n '©': '\\u00A9',\n 'Ć': '\\u0106',\n '⋒': '\\u22D2',\n 'ⅅ': '\\u2145',\n 'ℭ': '\\u212D',\n 'Č': '\\u010C',\n 'Ç': '\\u00C7',\n 'Ç': '\\u00C7',\n 'Ĉ': '\\u0108',\n '∰': '\\u2230',\n 'Ċ': '\\u010A',\n '¸': '\\u00B8',\n '·': '\\u00B7',\n 'ℭ': '\\u212D',\n 'Χ': '\\u03A7',\n '⊙': '\\u2299',\n '⊖': '\\u2296',\n '⊕': '\\u2295',\n '⊗': '\\u2297',\n '∲': '\\u2232',\n '”': '\\u201D',\n '’': '\\u2019',\n '∷': '\\u2237',\n '⩴': '\\u2A74',\n '≡': '\\u2261',\n '∯': '\\u222F',\n '∮': '\\u222E',\n 'ℂ': '\\u2102',\n '∐': '\\u2210',\n '∳': '\\u2233',\n '⨯': '\\u2A2F',\n '𝒞': '\\uD835\\uDC9E',\n '⋓': '\\u22D3',\n '≍': '\\u224D',\n 'ⅅ': '\\u2145',\n '⤑': '\\u2911',\n 'Ђ': '\\u0402',\n 'Ѕ': '\\u0405',\n 'Џ': '\\u040F',\n '‡': '\\u2021',\n '↡': '\\u21A1',\n '⫤': '\\u2AE4',\n 'Ď': '\\u010E',\n 'Д': '\\u0414',\n '∇': '\\u2207',\n 'Δ': '\\u0394',\n '𝔇': '\\uD835\\uDD07',\n '´': '\\u00B4',\n '˙': '\\u02D9',\n '˝': '\\u02DD',\n '`': '\\u0060',\n '˜': '\\u02DC',\n '⋄': '\\u22C4',\n 'ⅆ': '\\u2146',\n '𝔻': '\\uD835\\uDD3B',\n '¨': '\\u00A8',\n '⃜': '\\u20DC',\n '≐': '\\u2250',\n '∯': '\\u222F',\n '¨': '\\u00A8',\n '⇓': '\\u21D3',\n '⇐': '\\u21D0',\n '⇔': '\\u21D4',\n '⫤': '\\u2AE4',\n '⟸': '\\u27F8',\n '⟺': '\\u27FA',\n '⟹': '\\u27F9',\n '⇒': '\\u21D2',\n '⊨': '\\u22A8',\n '⇑': '\\u21D1',\n '⇕': '\\u21D5',\n '∥': '\\u2225',\n '↓': '\\u2193',\n '⤓': '\\u2913',\n '⇵': '\\u21F5',\n '̑': '\\u0311',\n '⥐': '\\u2950',\n '⥞': '\\u295E',\n '↽': '\\u21BD',\n '⥖': '\\u2956',\n '⥟': '\\u295F',\n '⇁': '\\u21C1',\n '⥗': '\\u2957',\n '⊤': '\\u22A4',\n '↧': '\\u21A7',\n '⇓': '\\u21D3',\n '𝒟': '\\uD835\\uDC9F',\n 'Đ': '\\u0110',\n 'Ŋ': '\\u014A',\n 'Ð': '\\u00D0',\n 'Ð': '\\u00D0',\n 'É': '\\u00C9',\n 'É': '\\u00C9',\n 'Ě': '\\u011A',\n 'Ê': '\\u00CA',\n 'Ê': '\\u00CA',\n 'Э': '\\u042D',\n 'Ė': '\\u0116',\n '𝔈': '\\uD835\\uDD08',\n 'È': '\\u00C8',\n 'È': '\\u00C8',\n '∈': '\\u2208',\n 'Ē': '\\u0112',\n '◻': '\\u25FB',\n '▫': '\\u25AB',\n 'Ę': '\\u0118',\n '𝔼': '\\uD835\\uDD3C',\n 'Ε': '\\u0395',\n '⩵': '\\u2A75',\n '≂': '\\u2242',\n '⇌': '\\u21CC',\n 'ℰ': '\\u2130',\n '⩳': '\\u2A73',\n 'Η': '\\u0397',\n 'Ë': '\\u00CB',\n 'Ë': '\\u00CB',\n '∃': '\\u2203',\n 'ⅇ': '\\u2147',\n 'Ф': '\\u0424',\n '𝔉': '\\uD835\\uDD09',\n '◼': '\\u25FC',\n '▪': '\\u25AA',\n '𝔽': '\\uD835\\uDD3D',\n '∀': '\\u2200',\n 'ℱ': '\\u2131',\n 'ℱ': '\\u2131',\n 'Ѓ': '\\u0403',\n '>': '\\u003E',\n '>': '\\u003E',\n 'Γ': '\\u0393',\n 'Ϝ': '\\u03DC',\n 'Ğ': '\\u011E',\n 'Ģ': '\\u0122',\n 'Ĝ': '\\u011C',\n 'Г': '\\u0413',\n 'Ġ': '\\u0120',\n '𝔊': '\\uD835\\uDD0A',\n '⋙': '\\u22D9',\n '𝔾': '\\uD835\\uDD3E',\n '≥': '\\u2265',\n '⋛': '\\u22DB',\n '≧': '\\u2267',\n '⪢': '\\u2AA2',\n '≷': '\\u2277',\n '⩾': '\\u2A7E',\n '≳': '\\u2273',\n '𝒢': '\\uD835\\uDCA2',\n '≫': '\\u226B',\n 'Ъ': '\\u042A',\n 'ˇ': '\\u02C7',\n '^': '\\u005E',\n 'Ĥ': '\\u0124',\n 'ℌ': '\\u210C',\n 'ℋ': '\\u210B',\n 'ℍ': '\\u210D',\n '─': '\\u2500',\n 'ℋ': '\\u210B',\n 'Ħ': '\\u0126',\n '≎': '\\u224E',\n '≏': '\\u224F',\n 'Е': '\\u0415',\n 'IJ': '\\u0132',\n 'Ё': '\\u0401',\n 'Í': '\\u00CD',\n 'Í': '\\u00CD',\n 'Î': '\\u00CE',\n 'Î': '\\u00CE',\n 'И': '\\u0418',\n 'İ': '\\u0130',\n 'ℑ': '\\u2111',\n 'Ì': '\\u00CC',\n 'Ì': '\\u00CC',\n 'ℑ': '\\u2111',\n 'Ī': '\\u012A',\n 'ⅈ': '\\u2148',\n '⇒': '\\u21D2',\n '∬': '\\u222C',\n '∫': '\\u222B',\n '⋂': '\\u22C2',\n '⁣': '\\u2063',\n '⁢': '\\u2062',\n 'Į': '\\u012E',\n '𝕀': '\\uD835\\uDD40',\n 'Ι': '\\u0399',\n 'ℐ': '\\u2110',\n 'Ĩ': '\\u0128',\n 'І': '\\u0406',\n 'Ï': '\\u00CF',\n 'Ï': '\\u00CF',\n 'Ĵ': '\\u0134',\n 'Й': '\\u0419',\n '𝔍': '\\uD835\\uDD0D',\n '𝕁': '\\uD835\\uDD41',\n '𝒥': '\\uD835\\uDCA5',\n 'Ј': '\\u0408',\n 'Є': '\\u0404',\n 'Х': '\\u0425',\n 'Ќ': '\\u040C',\n 'Κ': '\\u039A',\n 'Ķ': '\\u0136',\n 'К': '\\u041A',\n '𝔎': '\\uD835\\uDD0E',\n '𝕂': '\\uD835\\uDD42',\n '𝒦': '\\uD835\\uDCA6',\n 'Љ': '\\u0409',\n '<': '\\u003C',\n '<': '\\u003C',\n 'Ĺ': '\\u0139',\n 'Λ': '\\u039B',\n '⟪': '\\u27EA',\n 'ℒ': '\\u2112',\n '↞': '\\u219E',\n 'Ľ': '\\u013D',\n 'Ļ': '\\u013B',\n 'Л': '\\u041B',\n '⟨': '\\u27E8',\n '←': '\\u2190',\n '⇤': '\\u21E4',\n '⇆': '\\u21C6',\n '⌈': '\\u2308',\n '⟦': '\\u27E6',\n '⥡': '\\u2961',\n '⇃': '\\u21C3',\n '⥙': '\\u2959',\n '⌊': '\\u230A',\n '↔': '\\u2194',\n '⥎': '\\u294E',\n '⊣': '\\u22A3',\n '↤': '\\u21A4',\n '⥚': '\\u295A',\n '⊲': '\\u22B2',\n '⧏': '\\u29CF',\n '⊴': '\\u22B4',\n '⥑': '\\u2951',\n '⥠': '\\u2960',\n '↿': '\\u21BF',\n '⥘': '\\u2958',\n '↼': '\\u21BC',\n '⥒': '\\u2952',\n '⇐': '\\u21D0',\n '⇔': '\\u21D4',\n '⋚': '\\u22DA',\n '≦': '\\u2266',\n '≶': '\\u2276',\n '⪡': '\\u2AA1',\n '⩽': '\\u2A7D',\n '≲': '\\u2272',\n '𝔏': '\\uD835\\uDD0F',\n '⋘': '\\u22D8',\n '⇚': '\\u21DA',\n 'Ŀ': '\\u013F',\n '⟵': '\\u27F5',\n '⟷': '\\u27F7',\n '⟶': '\\u27F6',\n '⟸': '\\u27F8',\n '⟺': '\\u27FA',\n '⟹': '\\u27F9',\n '𝕃': '\\uD835\\uDD43',\n '↙': '\\u2199',\n '↘': '\\u2198',\n 'ℒ': '\\u2112',\n '↰': '\\u21B0',\n 'Ł': '\\u0141',\n '≪': '\\u226A',\n '⤅': '\\u2905',\n 'М': '\\u041C',\n ' ': '\\u205F',\n 'ℳ': '\\u2133',\n '𝔐': '\\uD835\\uDD10',\n '∓': '\\u2213',\n '𝕄': '\\uD835\\uDD44',\n 'ℳ': '\\u2133',\n 'Μ': '\\u039C',\n 'Њ': '\\u040A',\n 'Ń': '\\u0143',\n 'Ň': '\\u0147',\n 'Ņ': '\\u0145',\n 'Н': '\\u041D',\n '​': '\\u200B',\n '​': '\\u200B',\n '​': '\\u200B',\n '​': '\\u200B',\n '≫': '\\u226B',\n '≪': '\\u226A',\n ' ': '\\u000A',\n '𝔑': '\\uD835\\uDD11',\n '⁠': '\\u2060',\n ' ': '\\u00A0',\n 'ℕ': '\\u2115',\n '⫬': '\\u2AEC',\n '≢': '\\u2262',\n '≭': '\\u226D',\n '∦': '\\u2226',\n '∉': '\\u2209',\n '≠': '\\u2260',\n '≂̸': '\\u2242\\u0338',\n '∄': '\\u2204',\n '≯': '\\u226F',\n '≱': '\\u2271',\n '≧̸': '\\u2267\\u0338',\n '≫̸': '\\u226B\\u0338',\n '≹': '\\u2279',\n '⩾̸': '\\u2A7E\\u0338',\n '≵': '\\u2275',\n '≎̸': '\\u224E\\u0338',\n '≏̸': '\\u224F\\u0338',\n '⋪': '\\u22EA',\n '⧏̸': '\\u29CF\\u0338',\n '⋬': '\\u22EC',\n '≮': '\\u226E',\n '≰': '\\u2270',\n '≸': '\\u2278',\n '≪̸': '\\u226A\\u0338',\n '⩽̸': '\\u2A7D\\u0338',\n '≴': '\\u2274',\n '⪢̸': '\\u2AA2\\u0338',\n '⪡̸': '\\u2AA1\\u0338',\n '⊀': '\\u2280',\n '⪯̸': '\\u2AAF\\u0338',\n '⋠': '\\u22E0',\n '∌': '\\u220C',\n '⋫': '\\u22EB',\n '⧐̸': '\\u29D0\\u0338',\n '⋭': '\\u22ED',\n '⊏̸': '\\u228F\\u0338',\n '⋢': '\\u22E2',\n '⊐̸': '\\u2290\\u0338',\n '⋣': '\\u22E3',\n '⊂⃒': '\\u2282\\u20D2',\n '⊈': '\\u2288',\n '⊁': '\\u2281',\n '⪰̸': '\\u2AB0\\u0338',\n '⋡': '\\u22E1',\n '≿̸': '\\u227F\\u0338',\n '⊃⃒': '\\u2283\\u20D2',\n '⊉': '\\u2289',\n '≁': '\\u2241',\n '≄': '\\u2244',\n '≇': '\\u2247',\n '≉': '\\u2249',\n '∤': '\\u2224',\n '𝒩': '\\uD835\\uDCA9',\n 'Ñ': '\\u00D1',\n 'Ñ': '\\u00D1',\n 'Ν': '\\u039D',\n 'Œ': '\\u0152',\n 'Ó': '\\u00D3',\n 'Ó': '\\u00D3',\n 'Ô': '\\u00D4',\n 'Ô': '\\u00D4',\n 'О': '\\u041E',\n 'Ő': '\\u0150',\n '𝔒': '\\uD835\\uDD12',\n 'Ò': '\\u00D2',\n 'Ò': '\\u00D2',\n 'Ō': '\\u014C',\n 'Ω': '\\u03A9',\n 'Ο': '\\u039F',\n '𝕆': '\\uD835\\uDD46',\n '“': '\\u201C',\n '‘': '\\u2018',\n '⩔': '\\u2A54',\n '𝒪': '\\uD835\\uDCAA',\n 'Ø': '\\u00D8',\n 'Ø': '\\u00D8',\n 'Õ': '\\u00D5',\n 'Õ': '\\u00D5',\n '⨷': '\\u2A37',\n 'Ö': '\\u00D6',\n 'Ö': '\\u00D6',\n '‾': '\\u203E',\n '⏞': '\\u23DE',\n '⎴': '\\u23B4',\n '⏜': '\\u23DC',\n '∂': '\\u2202',\n 'П': '\\u041F',\n '𝔓': '\\uD835\\uDD13',\n 'Φ': '\\u03A6',\n 'Π': '\\u03A0',\n '±': '\\u00B1',\n 'ℌ': '\\u210C',\n 'ℙ': '\\u2119',\n '⪻': '\\u2ABB',\n '≺': '\\u227A',\n '⪯': '\\u2AAF',\n '≼': '\\u227C',\n '≾': '\\u227E',\n '″': '\\u2033',\n '∏': '\\u220F',\n '∷': '\\u2237',\n '∝': '\\u221D',\n '𝒫': '\\uD835\\uDCAB',\n 'Ψ': '\\u03A8',\n '"': '\\u0022',\n '"': '\\u0022',\n '𝔔': '\\uD835\\uDD14',\n 'ℚ': '\\u211A',\n '𝒬': '\\uD835\\uDCAC',\n '⤐': '\\u2910',\n '®': '\\u00AE',\n '®': '\\u00AE',\n 'Ŕ': '\\u0154',\n '⟫': '\\u27EB',\n '↠': '\\u21A0',\n '⤖': '\\u2916',\n 'Ř': '\\u0158',\n 'Ŗ': '\\u0156',\n 'Р': '\\u0420',\n 'ℜ': '\\u211C',\n '∋': '\\u220B',\n '⇋': '\\u21CB',\n '⥯': '\\u296F',\n 'ℜ': '\\u211C',\n 'Ρ': '\\u03A1',\n '⟩': '\\u27E9',\n '→': '\\u2192',\n '⇥': '\\u21E5',\n '⇄': '\\u21C4',\n '⌉': '\\u2309',\n '⟧': '\\u27E7',\n '⥝': '\\u295D',\n '⇂': '\\u21C2',\n '⥕': '\\u2955',\n '⌋': '\\u230B',\n '⊢': '\\u22A2',\n '↦': '\\u21A6',\n '⥛': '\\u295B',\n '⊳': '\\u22B3',\n '⧐': '\\u29D0',\n '⊵': '\\u22B5',\n '⥏': '\\u294F',\n '⥜': '\\u295C',\n '↾': '\\u21BE',\n '⥔': '\\u2954',\n '⇀': '\\u21C0',\n '⥓': '\\u2953',\n '⇒': '\\u21D2',\n 'ℝ': '\\u211D',\n '⥰': '\\u2970',\n '⇛': '\\u21DB',\n 'ℛ': '\\u211B',\n '↱': '\\u21B1',\n '⧴': '\\u29F4',\n 'Щ': '\\u0429',\n 'Ш': '\\u0428',\n 'Ь': '\\u042C',\n 'Ś': '\\u015A',\n '⪼': '\\u2ABC',\n 'Š': '\\u0160',\n 'Ş': '\\u015E',\n 'Ŝ': '\\u015C',\n 'С': '\\u0421',\n '𝔖': '\\uD835\\uDD16',\n '↓': '\\u2193',\n '←': '\\u2190',\n '→': '\\u2192',\n '↑': '\\u2191',\n 'Σ': '\\u03A3',\n '∘': '\\u2218',\n '𝕊': '\\uD835\\uDD4A',\n '√': '\\u221A',\n '□': '\\u25A1',\n '⊓': '\\u2293',\n '⊏': '\\u228F',\n '⊑': '\\u2291',\n '⊐': '\\u2290',\n '⊒': '\\u2292',\n '⊔': '\\u2294',\n '𝒮': '\\uD835\\uDCAE',\n '⋆': '\\u22C6',\n '⋐': '\\u22D0',\n '⋐': '\\u22D0',\n '⊆': '\\u2286',\n '≻': '\\u227B',\n '⪰': '\\u2AB0',\n '≽': '\\u227D',\n '≿': '\\u227F',\n '∋': '\\u220B',\n '∑': '\\u2211',\n '⋑': '\\u22D1',\n '⊃': '\\u2283',\n '⊇': '\\u2287',\n '⋑': '\\u22D1',\n 'Þ': '\\u00DE',\n 'Þ': '\\u00DE',\n '™': '\\u2122',\n 'Ћ': '\\u040B',\n 'Ц': '\\u0426',\n ' ': '\\u0009',\n 'Τ': '\\u03A4',\n 'Ť': '\\u0164',\n 'Ţ': '\\u0162',\n 'Т': '\\u0422',\n '𝔗': '\\uD835\\uDD17',\n '∴': '\\u2234',\n 'Θ': '\\u0398',\n '  ': '\\u205F\\u200A',\n ' ': '\\u2009',\n '∼': '\\u223C',\n '≃': '\\u2243',\n '≅': '\\u2245',\n '≈': '\\u2248',\n '𝕋': '\\uD835\\uDD4B',\n '⃛': '\\u20DB',\n '𝒯': '\\uD835\\uDCAF',\n 'Ŧ': '\\u0166',\n 'Ú': '\\u00DA',\n 'Ú': '\\u00DA',\n '↟': '\\u219F',\n '⥉': '\\u2949',\n 'Ў': '\\u040E',\n 'Ŭ': '\\u016C',\n 'Û': '\\u00DB',\n 'Û': '\\u00DB',\n 'У': '\\u0423',\n 'Ű': '\\u0170',\n '𝔘': '\\uD835\\uDD18',\n 'Ù': '\\u00D9',\n 'Ù': '\\u00D9',\n 'Ū': '\\u016A',\n '_': '\\u005F',\n '⏟': '\\u23DF',\n '⎵': '\\u23B5',\n '⏝': '\\u23DD',\n '⋃': '\\u22C3',\n '⊎': '\\u228E',\n 'Ų': '\\u0172',\n '𝕌': '\\uD835\\uDD4C',\n '↑': '\\u2191',\n '⤒': '\\u2912',\n '⇅': '\\u21C5',\n '↕': '\\u2195',\n '⥮': '\\u296E',\n '⊥': '\\u22A5',\n '↥': '\\u21A5',\n '⇑': '\\u21D1',\n '⇕': '\\u21D5',\n '↖': '\\u2196',\n '↗': '\\u2197',\n 'ϒ': '\\u03D2',\n 'Υ': '\\u03A5',\n 'Ů': '\\u016E',\n '𝒰': '\\uD835\\uDCB0',\n 'Ũ': '\\u0168',\n 'Ü': '\\u00DC',\n 'Ü': '\\u00DC',\n '⊫': '\\u22AB',\n '⫫': '\\u2AEB',\n 'В': '\\u0412',\n '⊩': '\\u22A9',\n '⫦': '\\u2AE6',\n '⋁': '\\u22C1',\n '‖': '\\u2016',\n '‖': '\\u2016',\n '∣': '\\u2223',\n '|': '\\u007C',\n '❘': '\\u2758',\n '≀': '\\u2240',\n ' ': '\\u200A',\n '𝔙': '\\uD835\\uDD19',\n '𝕍': '\\uD835\\uDD4D',\n '𝒱': '\\uD835\\uDCB1',\n '⊪': '\\u22AA',\n 'Ŵ': '\\u0174',\n '⋀': '\\u22C0',\n '𝔚': '\\uD835\\uDD1A',\n '𝕎': '\\uD835\\uDD4E',\n '𝒲': '\\uD835\\uDCB2',\n '𝔛': '\\uD835\\uDD1B',\n 'Ξ': '\\u039E',\n '𝕏': '\\uD835\\uDD4F',\n '𝒳': '\\uD835\\uDCB3',\n 'Я': '\\u042F',\n 'Ї': '\\u0407',\n 'Ю': '\\u042E',\n 'Ý': '\\u00DD',\n 'Ý': '\\u00DD',\n 'Ŷ': '\\u0176',\n 'Ы': '\\u042B',\n '𝔜': '\\uD835\\uDD1C',\n '𝕐': '\\uD835\\uDD50',\n '𝒴': '\\uD835\\uDCB4',\n 'Ÿ': '\\u0178',\n 'Ж': '\\u0416',\n 'Ź': '\\u0179',\n 'Ž': '\\u017D',\n 'З': '\\u0417',\n 'Ż': '\\u017B',\n '​': '\\u200B',\n 'Ζ': '\\u0396',\n 'ℨ': '\\u2128',\n 'ℤ': '\\u2124',\n '𝒵': '\\uD835\\uDCB5',\n 'á': '\\u00E1',\n 'á': '\\u00E1',\n 'ă': '\\u0103',\n '∾': '\\u223E',\n '∾̳': '\\u223E\\u0333',\n '∿': '\\u223F',\n 'â': '\\u00E2',\n 'â': '\\u00E2',\n '´': '\\u00B4',\n '´': '\\u00B4',\n 'а': '\\u0430',\n 'æ': '\\u00E6',\n 'æ': '\\u00E6',\n '⁡': '\\u2061',\n '𝔞': '\\uD835\\uDD1E',\n 'à': '\\u00E0',\n 'à': '\\u00E0',\n 'ℵ': '\\u2135',\n 'ℵ': '\\u2135',\n 'α': '\\u03B1',\n 'ā': '\\u0101',\n '⨿': '\\u2A3F',\n '&': '\\u0026',\n '&': '\\u0026',\n '∧': '\\u2227',\n '⩕': '\\u2A55',\n '⩜': '\\u2A5C',\n '⩘': '\\u2A58',\n '⩚': '\\u2A5A',\n '∠': '\\u2220',\n '⦤': '\\u29A4',\n '∠': '\\u2220',\n '∡': '\\u2221',\n '⦨': '\\u29A8',\n '⦩': '\\u29A9',\n '⦪': '\\u29AA',\n '⦫': '\\u29AB',\n '⦬': '\\u29AC',\n '⦭': '\\u29AD',\n '⦮': '\\u29AE',\n '⦯': '\\u29AF',\n '∟': '\\u221F',\n '⊾': '\\u22BE',\n '⦝': '\\u299D',\n '∢': '\\u2222',\n 'Å': '\\u00C5',\n '⍼': '\\u237C',\n 'ą': '\\u0105',\n '𝕒': '\\uD835\\uDD52',\n '≈': '\\u2248',\n '⩰': '\\u2A70',\n '⩯': '\\u2A6F',\n '≊': '\\u224A',\n '≋': '\\u224B',\n ''': '\\u0027',\n '≈': '\\u2248',\n '≊': '\\u224A',\n 'å': '\\u00E5',\n 'å': '\\u00E5',\n '𝒶': '\\uD835\\uDCB6',\n '*': '\\u002A',\n '≈': '\\u2248',\n '≍': '\\u224D',\n 'ã': '\\u00E3',\n 'ã': '\\u00E3',\n 'ä': '\\u00E4',\n 'ä': '\\u00E4',\n '∳': '\\u2233',\n '⨑': '\\u2A11',\n '⫭': '\\u2AED',\n '≌': '\\u224C',\n '϶': '\\u03F6',\n '‵': '\\u2035',\n '∽': '\\u223D',\n '⋍': '\\u22CD',\n '⊽': '\\u22BD',\n '⌅': '\\u2305',\n '⌅': '\\u2305',\n '⎵': '\\u23B5',\n '⎶': '\\u23B6',\n '≌': '\\u224C',\n 'б': '\\u0431',\n '„': '\\u201E',\n '∵': '\\u2235',\n '∵': '\\u2235',\n '⦰': '\\u29B0',\n '϶': '\\u03F6',\n 'ℬ': '\\u212C',\n 'β': '\\u03B2',\n 'ℶ': '\\u2136',\n '≬': '\\u226C',\n '𝔟': '\\uD835\\uDD1F',\n '⋂': '\\u22C2',\n '◯': '\\u25EF',\n '⋃': '\\u22C3',\n '⨀': '\\u2A00',\n '⨁': '\\u2A01',\n '⨂': '\\u2A02',\n '⨆': '\\u2A06',\n '★': '\\u2605',\n '▽': '\\u25BD',\n '△': '\\u25B3',\n '⨄': '\\u2A04',\n '⋁': '\\u22C1',\n '⋀': '\\u22C0',\n '⤍': '\\u290D',\n '⧫': '\\u29EB',\n '▪': '\\u25AA',\n '▴': '\\u25B4',\n '▾': '\\u25BE',\n '◂': '\\u25C2',\n '▸': '\\u25B8',\n '␣': '\\u2423',\n '▒': '\\u2592',\n '░': '\\u2591',\n '▓': '\\u2593',\n '█': '\\u2588',\n '=⃥': '\\u003D\\u20E5',\n '≡⃥': '\\u2261\\u20E5',\n '⌐': '\\u2310',\n '𝕓': '\\uD835\\uDD53',\n '⊥': '\\u22A5',\n '⊥': '\\u22A5',\n '⋈': '\\u22C8',\n '╗': '\\u2557',\n '╔': '\\u2554',\n '╖': '\\u2556',\n '╓': '\\u2553',\n '═': '\\u2550',\n '╦': '\\u2566',\n '╩': '\\u2569',\n '╤': '\\u2564',\n '╧': '\\u2567',\n '╝': '\\u255D',\n '╚': '\\u255A',\n '╜': '\\u255C',\n '╙': '\\u2559',\n '║': '\\u2551',\n '╬': '\\u256C',\n '╣': '\\u2563',\n '╠': '\\u2560',\n '╫': '\\u256B',\n '╢': '\\u2562',\n '╟': '\\u255F',\n '⧉': '\\u29C9',\n '╕': '\\u2555',\n '╒': '\\u2552',\n '┐': '\\u2510',\n '┌': '\\u250C',\n '─': '\\u2500',\n '╥': '\\u2565',\n '╨': '\\u2568',\n '┬': '\\u252C',\n '┴': '\\u2534',\n '⊟': '\\u229F',\n '⊞': '\\u229E',\n '⊠': '\\u22A0',\n '╛': '\\u255B',\n '╘': '\\u2558',\n '┘': '\\u2518',\n '└': '\\u2514',\n '│': '\\u2502',\n '╪': '\\u256A',\n '╡': '\\u2561',\n '╞': '\\u255E',\n '┼': '\\u253C',\n '┤': '\\u2524',\n '├': '\\u251C',\n '‵': '\\u2035',\n '˘': '\\u02D8',\n '¦': '\\u00A6',\n '¦': '\\u00A6',\n '𝒷': '\\uD835\\uDCB7',\n '⁏': '\\u204F',\n '∽': '\\u223D',\n '⋍': '\\u22CD',\n '\': '\\u005C',\n '⧅': '\\u29C5',\n '⟈': '\\u27C8',\n '•': '\\u2022',\n '•': '\\u2022',\n '≎': '\\u224E',\n '⪮': '\\u2AAE',\n '≏': '\\u224F',\n '≏': '\\u224F',\n 'ć': '\\u0107',\n '∩': '\\u2229',\n '⩄': '\\u2A44',\n '⩉': '\\u2A49',\n '⩋': '\\u2A4B',\n '⩇': '\\u2A47',\n '⩀': '\\u2A40',\n '∩︀': '\\u2229\\uFE00',\n '⁁': '\\u2041',\n 'ˇ': '\\u02C7',\n '⩍': '\\u2A4D',\n 'č': '\\u010D',\n 'ç': '\\u00E7',\n 'ç': '\\u00E7',\n 'ĉ': '\\u0109',\n '⩌': '\\u2A4C',\n '⩐': '\\u2A50',\n 'ċ': '\\u010B',\n '¸': '\\u00B8',\n '¸': '\\u00B8',\n '⦲': '\\u29B2',\n '¢': '\\u00A2',\n '¢': '\\u00A2',\n '·': '\\u00B7',\n '𝔠': '\\uD835\\uDD20',\n 'ч': '\\u0447',\n '✓': '\\u2713',\n '✓': '\\u2713',\n 'χ': '\\u03C7',\n '○': '\\u25CB',\n '⧃': '\\u29C3',\n 'ˆ': '\\u02C6',\n '≗': '\\u2257',\n '↺': '\\u21BA',\n '↻': '\\u21BB',\n '®': '\\u00AE',\n 'Ⓢ': '\\u24C8',\n '⊛': '\\u229B',\n '⊚': '\\u229A',\n '⊝': '\\u229D',\n '≗': '\\u2257',\n '⨐': '\\u2A10',\n '⫯': '\\u2AEF',\n '⧂': '\\u29C2',\n '♣': '\\u2663',\n '♣': '\\u2663',\n ':': '\\u003A',\n '≔': '\\u2254',\n '≔': '\\u2254',\n ',': '\\u002C',\n '@': '\\u0040',\n '∁': '\\u2201',\n '∘': '\\u2218',\n '∁': '\\u2201',\n 'ℂ': '\\u2102',\n '≅': '\\u2245',\n '⩭': '\\u2A6D',\n '∮': '\\u222E',\n '𝕔': '\\uD835\\uDD54',\n '∐': '\\u2210',\n '©': '\\u00A9',\n '©': '\\u00A9',\n '℗': '\\u2117',\n '↵': '\\u21B5',\n '✗': '\\u2717',\n '𝒸': '\\uD835\\uDCB8',\n '⫏': '\\u2ACF',\n '⫑': '\\u2AD1',\n '⫐': '\\u2AD0',\n '⫒': '\\u2AD2',\n '⋯': '\\u22EF',\n '⤸': '\\u2938',\n '⤵': '\\u2935',\n '⋞': '\\u22DE',\n '⋟': '\\u22DF',\n '↶': '\\u21B6',\n '⤽': '\\u293D',\n '∪': '\\u222A',\n '⩈': '\\u2A48',\n '⩆': '\\u2A46',\n '⩊': '\\u2A4A',\n '⊍': '\\u228D',\n '⩅': '\\u2A45',\n '∪︀': '\\u222A\\uFE00',\n '↷': '\\u21B7',\n '⤼': '\\u293C',\n '⋞': '\\u22DE',\n '⋟': '\\u22DF',\n '⋎': '\\u22CE',\n '⋏': '\\u22CF',\n '¤': '\\u00A4',\n '¤': '\\u00A4',\n '↶': '\\u21B6',\n '↷': '\\u21B7',\n '⋎': '\\u22CE',\n '⋏': '\\u22CF',\n '∲': '\\u2232',\n '∱': '\\u2231',\n '⌭': '\\u232D',\n '⇓': '\\u21D3',\n '⥥': '\\u2965',\n '†': '\\u2020',\n 'ℸ': '\\u2138',\n '↓': '\\u2193',\n '‐': '\\u2010',\n '⊣': '\\u22A3',\n '⤏': '\\u290F',\n '˝': '\\u02DD',\n 'ď': '\\u010F',\n 'д': '\\u0434',\n 'ⅆ': '\\u2146',\n '‡': '\\u2021',\n '⇊': '\\u21CA',\n '⩷': '\\u2A77',\n '°': '\\u00B0',\n '°': '\\u00B0',\n 'δ': '\\u03B4',\n '⦱': '\\u29B1',\n '⥿': '\\u297F',\n '𝔡': '\\uD835\\uDD21',\n '⇃': '\\u21C3',\n '⇂': '\\u21C2',\n '⋄': '\\u22C4',\n '⋄': '\\u22C4',\n '♦': '\\u2666',\n '♦': '\\u2666',\n '¨': '\\u00A8',\n 'ϝ': '\\u03DD',\n '⋲': '\\u22F2',\n '÷': '\\u00F7',\n '÷': '\\u00F7',\n '÷': '\\u00F7',\n '⋇': '\\u22C7',\n '⋇': '\\u22C7',\n 'ђ': '\\u0452',\n '⌞': '\\u231E',\n '⌍': '\\u230D',\n '$': '\\u0024',\n '𝕕': '\\uD835\\uDD55',\n '˙': '\\u02D9',\n '≐': '\\u2250',\n '≑': '\\u2251',\n '∸': '\\u2238',\n '∔': '\\u2214',\n '⊡': '\\u22A1',\n '⌆': '\\u2306',\n '↓': '\\u2193',\n '⇊': '\\u21CA',\n '⇃': '\\u21C3',\n '⇂': '\\u21C2',\n '⤐': '\\u2910',\n '⌟': '\\u231F',\n '⌌': '\\u230C',\n '𝒹': '\\uD835\\uDCB9',\n 'ѕ': '\\u0455',\n '⧶': '\\u29F6',\n 'đ': '\\u0111',\n '⋱': '\\u22F1',\n '▿': '\\u25BF',\n '▾': '\\u25BE',\n '⇵': '\\u21F5',\n '⥯': '\\u296F',\n '⦦': '\\u29A6',\n 'џ': '\\u045F',\n '⟿': '\\u27FF',\n '⩷': '\\u2A77',\n '≑': '\\u2251',\n 'é': '\\u00E9',\n 'é': '\\u00E9',\n '⩮': '\\u2A6E',\n 'ě': '\\u011B',\n '≖': '\\u2256',\n 'ê': '\\u00EA',\n 'ê': '\\u00EA',\n '≕': '\\u2255',\n 'э': '\\u044D',\n 'ė': '\\u0117',\n 'ⅇ': '\\u2147',\n '≒': '\\u2252',\n '𝔢': '\\uD835\\uDD22',\n '⪚': '\\u2A9A',\n 'è': '\\u00E8',\n 'è': '\\u00E8',\n '⪖': '\\u2A96',\n '⪘': '\\u2A98',\n '⪙': '\\u2A99',\n '⏧': '\\u23E7',\n 'ℓ': '\\u2113',\n '⪕': '\\u2A95',\n '⪗': '\\u2A97',\n 'ē': '\\u0113',\n '∅': '\\u2205',\n '∅': '\\u2205',\n '∅': '\\u2205',\n ' ': '\\u2004',\n ' ': '\\u2005',\n ' ': '\\u2003',\n 'ŋ': '\\u014B',\n ' ': '\\u2002',\n 'ę': '\\u0119',\n '𝕖': '\\uD835\\uDD56',\n '⋕': '\\u22D5',\n '⧣': '\\u29E3',\n '⩱': '\\u2A71',\n 'ε': '\\u03B5',\n 'ε': '\\u03B5',\n 'ϵ': '\\u03F5',\n '≖': '\\u2256',\n '≕': '\\u2255',\n '≂': '\\u2242',\n '⪖': '\\u2A96',\n '⪕': '\\u2A95',\n '=': '\\u003D',\n '≟': '\\u225F',\n '≡': '\\u2261',\n '⩸': '\\u2A78',\n '⧥': '\\u29E5',\n '≓': '\\u2253',\n '⥱': '\\u2971',\n 'ℯ': '\\u212F',\n '≐': '\\u2250',\n '≂': '\\u2242',\n 'η': '\\u03B7',\n 'ð': '\\u00F0',\n 'ð': '\\u00F0',\n 'ë': '\\u00EB',\n 'ë': '\\u00EB',\n '€': '\\u20AC',\n '!': '\\u0021',\n '∃': '\\u2203',\n 'ℰ': '\\u2130',\n 'ⅇ': '\\u2147',\n '≒': '\\u2252',\n 'ф': '\\u0444',\n '♀': '\\u2640',\n 'ffi': '\\uFB03',\n 'ff': '\\uFB00',\n 'ffl': '\\uFB04',\n '𝔣': '\\uD835\\uDD23',\n 'fi': '\\uFB01',\n 'fj': '\\u0066\\u006A',\n '♭': '\\u266D',\n 'fl': '\\uFB02',\n '▱': '\\u25B1',\n 'ƒ': '\\u0192',\n '𝕗': '\\uD835\\uDD57',\n '∀': '\\u2200',\n '⋔': '\\u22D4',\n '⫙': '\\u2AD9',\n '⨍': '\\u2A0D',\n '½': '\\u00BD',\n '½': '\\u00BD',\n '⅓': '\\u2153',\n '¼': '\\u00BC',\n '¼': '\\u00BC',\n '⅕': '\\u2155',\n '⅙': '\\u2159',\n '⅛': '\\u215B',\n '⅔': '\\u2154',\n '⅖': '\\u2156',\n '¾': '\\u00BE',\n '¾': '\\u00BE',\n '⅗': '\\u2157',\n '⅜': '\\u215C',\n '⅘': '\\u2158',\n '⅚': '\\u215A',\n '⅝': '\\u215D',\n '⅞': '\\u215E',\n '⁄': '\\u2044',\n '⌢': '\\u2322',\n '𝒻': '\\uD835\\uDCBB',\n '≧': '\\u2267',\n '⪌': '\\u2A8C',\n 'ǵ': '\\u01F5',\n 'γ': '\\u03B3',\n 'ϝ': '\\u03DD',\n '⪆': '\\u2A86',\n 'ğ': '\\u011F',\n 'ĝ': '\\u011D',\n 'г': '\\u0433',\n 'ġ': '\\u0121',\n '≥': '\\u2265',\n '⋛': '\\u22DB',\n '≥': '\\u2265',\n '≧': '\\u2267',\n '⩾': '\\u2A7E',\n '⩾': '\\u2A7E',\n '⪩': '\\u2AA9',\n '⪀': '\\u2A80',\n '⪂': '\\u2A82',\n '⪄': '\\u2A84',\n '⋛︀': '\\u22DB\\uFE00',\n '⪔': '\\u2A94',\n '𝔤': '\\uD835\\uDD24',\n '≫': '\\u226B',\n '⋙': '\\u22D9',\n 'ℷ': '\\u2137',\n 'ѓ': '\\u0453',\n '≷': '\\u2277',\n '⪒': '\\u2A92',\n '⪥': '\\u2AA5',\n '⪤': '\\u2AA4',\n '≩': '\\u2269',\n '⪊': '\\u2A8A',\n '⪊': '\\u2A8A',\n '⪈': '\\u2A88',\n '⪈': '\\u2A88',\n '≩': '\\u2269',\n '⋧': '\\u22E7',\n '𝕘': '\\uD835\\uDD58',\n '`': '\\u0060',\n 'ℊ': '\\u210A',\n '≳': '\\u2273',\n '⪎': '\\u2A8E',\n '⪐': '\\u2A90',\n '>': '\\u003E',\n '>': '\\u003E',\n '⪧': '\\u2AA7',\n '⩺': '\\u2A7A',\n '⋗': '\\u22D7',\n '⦕': '\\u2995',\n '⩼': '\\u2A7C',\n '⪆': '\\u2A86',\n '⥸': '\\u2978',\n '⋗': '\\u22D7',\n '⋛': '\\u22DB',\n '⪌': '\\u2A8C',\n '≷': '\\u2277',\n '≳': '\\u2273',\n '≩︀': '\\u2269\\uFE00',\n '≩︀': '\\u2269\\uFE00',\n '⇔': '\\u21D4',\n ' ': '\\u200A',\n '½': '\\u00BD',\n 'ℋ': '\\u210B',\n 'ъ': '\\u044A',\n '↔': '\\u2194',\n '⥈': '\\u2948',\n '↭': '\\u21AD',\n 'ℏ': '\\u210F',\n 'ĥ': '\\u0125',\n '♥': '\\u2665',\n '♥': '\\u2665',\n '…': '\\u2026',\n '⊹': '\\u22B9',\n '𝔥': '\\uD835\\uDD25',\n '⤥': '\\u2925',\n '⤦': '\\u2926',\n '⇿': '\\u21FF',\n '∻': '\\u223B',\n '↩': '\\u21A9',\n '↪': '\\u21AA',\n '𝕙': '\\uD835\\uDD59',\n '―': '\\u2015',\n '𝒽': '\\uD835\\uDCBD',\n 'ℏ': '\\u210F',\n 'ħ': '\\u0127',\n '⁃': '\\u2043',\n '‐': '\\u2010',\n 'í': '\\u00ED',\n 'í': '\\u00ED',\n '⁣': '\\u2063',\n 'î': '\\u00EE',\n 'î': '\\u00EE',\n 'и': '\\u0438',\n 'е': '\\u0435',\n '¡': '\\u00A1',\n '¡': '\\u00A1',\n '⇔': '\\u21D4',\n '𝔦': '\\uD835\\uDD26',\n 'ì': '\\u00EC',\n 'ì': '\\u00EC',\n 'ⅈ': '\\u2148',\n '⨌': '\\u2A0C',\n '∭': '\\u222D',\n '⧜': '\\u29DC',\n '℩': '\\u2129',\n 'ij': '\\u0133',\n 'ī': '\\u012B',\n 'ℑ': '\\u2111',\n 'ℐ': '\\u2110',\n 'ℑ': '\\u2111',\n 'ı': '\\u0131',\n '⊷': '\\u22B7',\n 'Ƶ': '\\u01B5',\n '∈': '\\u2208',\n '℅': '\\u2105',\n '∞': '\\u221E',\n '⧝': '\\u29DD',\n 'ı': '\\u0131',\n '∫': '\\u222B',\n '⊺': '\\u22BA',\n 'ℤ': '\\u2124',\n '⊺': '\\u22BA',\n '⨗': '\\u2A17',\n '⨼': '\\u2A3C',\n 'ё': '\\u0451',\n 'į': '\\u012F',\n '𝕚': '\\uD835\\uDD5A',\n 'ι': '\\u03B9',\n '⨼': '\\u2A3C',\n '¿': '\\u00BF',\n '¿': '\\u00BF',\n '𝒾': '\\uD835\\uDCBE',\n '∈': '\\u2208',\n '⋹': '\\u22F9',\n '⋵': '\\u22F5',\n '⋴': '\\u22F4',\n '⋳': '\\u22F3',\n '∈': '\\u2208',\n '⁢': '\\u2062',\n 'ĩ': '\\u0129',\n 'і': '\\u0456',\n 'ï': '\\u00EF',\n 'ï': '\\u00EF',\n 'ĵ': '\\u0135',\n 'й': '\\u0439',\n '𝔧': '\\uD835\\uDD27',\n 'ȷ': '\\u0237',\n '𝕛': '\\uD835\\uDD5B',\n '𝒿': '\\uD835\\uDCBF',\n 'ј': '\\u0458',\n 'є': '\\u0454',\n 'κ': '\\u03BA',\n 'ϰ': '\\u03F0',\n 'ķ': '\\u0137',\n 'к': '\\u043A',\n '𝔨': '\\uD835\\uDD28',\n 'ĸ': '\\u0138',\n 'х': '\\u0445',\n 'ќ': '\\u045C',\n '𝕜': '\\uD835\\uDD5C',\n '𝓀': '\\uD835\\uDCC0',\n '⇚': '\\u21DA',\n '⇐': '\\u21D0',\n '⤛': '\\u291B',\n '⤎': '\\u290E',\n '≦': '\\u2266',\n '⪋': '\\u2A8B',\n '⥢': '\\u2962',\n 'ĺ': '\\u013A',\n '⦴': '\\u29B4',\n 'ℒ': '\\u2112',\n 'λ': '\\u03BB',\n '⟨': '\\u27E8',\n '⦑': '\\u2991',\n '⟨': '\\u27E8',\n '⪅': '\\u2A85',\n '«': '\\u00AB',\n '«': '\\u00AB',\n '←': '\\u2190',\n '⇤': '\\u21E4',\n '⤟': '\\u291F',\n '⤝': '\\u291D',\n '↩': '\\u21A9',\n '↫': '\\u21AB',\n '⤹': '\\u2939',\n '⥳': '\\u2973',\n '↢': '\\u21A2',\n '⪫': '\\u2AAB',\n '⤙': '\\u2919',\n '⪭': '\\u2AAD',\n '⪭︀': '\\u2AAD\\uFE00',\n '⤌': '\\u290C',\n '❲': '\\u2772',\n '{': '\\u007B',\n '[': '\\u005B',\n '⦋': '\\u298B',\n '⦏': '\\u298F',\n '⦍': '\\u298D',\n 'ľ': '\\u013E',\n 'ļ': '\\u013C',\n '⌈': '\\u2308',\n '{': '\\u007B',\n 'л': '\\u043B',\n '⤶': '\\u2936',\n '“': '\\u201C',\n '„': '\\u201E',\n '⥧': '\\u2967',\n '⥋': '\\u294B',\n '↲': '\\u21B2',\n '≤': '\\u2264',\n '←': '\\u2190',\n '↢': '\\u21A2',\n '↽': '\\u21BD',\n '↼': '\\u21BC',\n '⇇': '\\u21C7',\n '↔': '\\u2194',\n '⇆': '\\u21C6',\n '⇋': '\\u21CB',\n '↭': '\\u21AD',\n '⋋': '\\u22CB',\n '⋚': '\\u22DA',\n '≤': '\\u2264',\n '≦': '\\u2266',\n '⩽': '\\u2A7D',\n '⩽': '\\u2A7D',\n '⪨': '\\u2AA8',\n '⩿': '\\u2A7F',\n '⪁': '\\u2A81',\n '⪃': '\\u2A83',\n '⋚︀': '\\u22DA\\uFE00',\n '⪓': '\\u2A93',\n '⪅': '\\u2A85',\n '⋖': '\\u22D6',\n '⋚': '\\u22DA',\n '⪋': '\\u2A8B',\n '≶': '\\u2276',\n '≲': '\\u2272',\n '⥼': '\\u297C',\n '⌊': '\\u230A',\n '𝔩': '\\uD835\\uDD29',\n '≶': '\\u2276',\n '⪑': '\\u2A91',\n '↽': '\\u21BD',\n '↼': '\\u21BC',\n '⥪': '\\u296A',\n '▄': '\\u2584',\n 'љ': '\\u0459',\n '≪': '\\u226A',\n '⇇': '\\u21C7',\n '⌞': '\\u231E',\n '⥫': '\\u296B',\n '◺': '\\u25FA',\n 'ŀ': '\\u0140',\n '⎰': '\\u23B0',\n '⎰': '\\u23B0',\n '≨': '\\u2268',\n '⪉': '\\u2A89',\n '⪉': '\\u2A89',\n '⪇': '\\u2A87',\n '⪇': '\\u2A87',\n '≨': '\\u2268',\n '⋦': '\\u22E6',\n '⟬': '\\u27EC',\n '⇽': '\\u21FD',\n '⟦': '\\u27E6',\n '⟵': '\\u27F5',\n '⟷': '\\u27F7',\n '⟼': '\\u27FC',\n '⟶': '\\u27F6',\n '↫': '\\u21AB',\n '↬': '\\u21AC',\n '⦅': '\\u2985',\n '𝕝': '\\uD835\\uDD5D',\n '⨭': '\\u2A2D',\n '⨴': '\\u2A34',\n '∗': '\\u2217',\n '_': '\\u005F',\n '◊': '\\u25CA',\n '◊': '\\u25CA',\n '⧫': '\\u29EB',\n '(': '\\u0028',\n '⦓': '\\u2993',\n '⇆': '\\u21C6',\n '⌟': '\\u231F',\n '⇋': '\\u21CB',\n '⥭': '\\u296D',\n '‎': '\\u200E',\n '⊿': '\\u22BF',\n '‹': '\\u2039',\n '𝓁': '\\uD835\\uDCC1',\n '↰': '\\u21B0',\n '≲': '\\u2272',\n '⪍': '\\u2A8D',\n '⪏': '\\u2A8F',\n '[': '\\u005B',\n '‘': '\\u2018',\n '‚': '\\u201A',\n 'ł': '\\u0142',\n '<': '\\u003C',\n '<': '\\u003C',\n '⪦': '\\u2AA6',\n '⩹': '\\u2A79',\n '⋖': '\\u22D6',\n '⋋': '\\u22CB',\n '⋉': '\\u22C9',\n '⥶': '\\u2976',\n '⩻': '\\u2A7B',\n '⦖': '\\u2996',\n '◃': '\\u25C3',\n '⊴': '\\u22B4',\n '◂': '\\u25C2',\n '⥊': '\\u294A',\n '⥦': '\\u2966',\n '≨︀': '\\u2268\\uFE00',\n '≨︀': '\\u2268\\uFE00',\n '∺': '\\u223A',\n '¯': '\\u00AF',\n '¯': '\\u00AF',\n '♂': '\\u2642',\n '✠': '\\u2720',\n '✠': '\\u2720',\n '↦': '\\u21A6',\n '↦': '\\u21A6',\n '↧': '\\u21A7',\n '↤': '\\u21A4',\n '↥': '\\u21A5',\n '▮': '\\u25AE',\n '⨩': '\\u2A29',\n 'м': '\\u043C',\n '—': '\\u2014',\n '∡': '\\u2221',\n '𝔪': '\\uD835\\uDD2A',\n '℧': '\\u2127',\n 'µ': '\\u00B5',\n 'µ': '\\u00B5',\n '∣': '\\u2223',\n '*': '\\u002A',\n '⫰': '\\u2AF0',\n '·': '\\u00B7',\n '·': '\\u00B7',\n '−': '\\u2212',\n '⊟': '\\u229F',\n '∸': '\\u2238',\n '⨪': '\\u2A2A',\n '⫛': '\\u2ADB',\n '…': '\\u2026',\n '∓': '\\u2213',\n '⊧': '\\u22A7',\n '𝕞': '\\uD835\\uDD5E',\n '∓': '\\u2213',\n '𝓂': '\\uD835\\uDCC2',\n '∾': '\\u223E',\n 'μ': '\\u03BC',\n '⊸': '\\u22B8',\n '⊸': '\\u22B8',\n '⋙̸': '\\u22D9\\u0338',\n '≫⃒': '\\u226B\\u20D2',\n '≫̸': '\\u226B\\u0338',\n '⇍': '\\u21CD',\n '⇎': '\\u21CE',\n '⋘̸': '\\u22D8\\u0338',\n '≪⃒': '\\u226A\\u20D2',\n '≪̸': '\\u226A\\u0338',\n '⇏': '\\u21CF',\n '⊯': '\\u22AF',\n '⊮': '\\u22AE',\n '∇': '\\u2207',\n 'ń': '\\u0144',\n '∠⃒': '\\u2220\\u20D2',\n '≉': '\\u2249',\n '⩰̸': '\\u2A70\\u0338',\n '≋̸': '\\u224B\\u0338',\n 'ʼn': '\\u0149',\n '≉': '\\u2249',\n '♮': '\\u266E',\n '♮': '\\u266E',\n 'ℕ': '\\u2115',\n ' ': '\\u00A0',\n ' ': '\\u00A0',\n '≎̸': '\\u224E\\u0338',\n '≏̸': '\\u224F\\u0338',\n '⩃': '\\u2A43',\n 'ň': '\\u0148',\n 'ņ': '\\u0146',\n '≇': '\\u2247',\n '⩭̸': '\\u2A6D\\u0338',\n '⩂': '\\u2A42',\n 'н': '\\u043D',\n '–': '\\u2013',\n '≠': '\\u2260',\n '⇗': '\\u21D7',\n '⤤': '\\u2924',\n '↗': '\\u2197',\n '↗': '\\u2197',\n '≐̸': '\\u2250\\u0338',\n '≢': '\\u2262',\n '⤨': '\\u2928',\n '≂̸': '\\u2242\\u0338',\n '∄': '\\u2204',\n '∄': '\\u2204',\n '𝔫': '\\uD835\\uDD2B',\n '≧̸': '\\u2267\\u0338',\n '≱': '\\u2271',\n '≱': '\\u2271',\n '≧̸': '\\u2267\\u0338',\n '⩾̸': '\\u2A7E\\u0338',\n '⩾̸': '\\u2A7E\\u0338',\n '≵': '\\u2275',\n '≯': '\\u226F',\n '≯': '\\u226F',\n '⇎': '\\u21CE',\n '↮': '\\u21AE',\n '⫲': '\\u2AF2',\n '∋': '\\u220B',\n '⋼': '\\u22FC',\n '⋺': '\\u22FA',\n '∋': '\\u220B',\n 'њ': '\\u045A',\n '⇍': '\\u21CD',\n '≦̸': '\\u2266\\u0338',\n '↚': '\\u219A',\n '‥': '\\u2025',\n '≰': '\\u2270',\n '↚': '\\u219A',\n '↮': '\\u21AE',\n '≰': '\\u2270',\n '≦̸': '\\u2266\\u0338',\n '⩽̸': '\\u2A7D\\u0338',\n '⩽̸': '\\u2A7D\\u0338',\n '≮': '\\u226E',\n '≴': '\\u2274',\n '≮': '\\u226E',\n '⋪': '\\u22EA',\n '⋬': '\\u22EC',\n '∤': '\\u2224',\n '𝕟': '\\uD835\\uDD5F',\n '¬': '\\u00AC',\n '¬': '\\u00AC',\n '∉': '\\u2209',\n '⋹̸': '\\u22F9\\u0338',\n '⋵̸': '\\u22F5\\u0338',\n '∉': '\\u2209',\n '⋷': '\\u22F7',\n '⋶': '\\u22F6',\n '∌': '\\u220C',\n '∌': '\\u220C',\n '⋾': '\\u22FE',\n '⋽': '\\u22FD',\n '∦': '\\u2226',\n '∦': '\\u2226',\n '⫽⃥': '\\u2AFD\\u20E5',\n '∂̸': '\\u2202\\u0338',\n '⨔': '\\u2A14',\n '⊀': '\\u2280',\n '⋠': '\\u22E0',\n '⪯̸': '\\u2AAF\\u0338',\n '⊀': '\\u2280',\n '⪯̸': '\\u2AAF\\u0338',\n '⇏': '\\u21CF',\n '↛': '\\u219B',\n '⤳̸': '\\u2933\\u0338',\n '↝̸': '\\u219D\\u0338',\n '↛': '\\u219B',\n '⋫': '\\u22EB',\n '⋭': '\\u22ED',\n '⊁': '\\u2281',\n '⋡': '\\u22E1',\n '⪰̸': '\\u2AB0\\u0338',\n '𝓃': '\\uD835\\uDCC3',\n '∤': '\\u2224',\n '∦': '\\u2226',\n '≁': '\\u2241',\n '≄': '\\u2244',\n '≄': '\\u2244',\n '∤': '\\u2224',\n '∦': '\\u2226',\n '⋢': '\\u22E2',\n '⋣': '\\u22E3',\n '⊄': '\\u2284',\n '⫅̸': '\\u2AC5\\u0338',\n '⊈': '\\u2288',\n '⊂⃒': '\\u2282\\u20D2',\n '⊈': '\\u2288',\n '⫅̸': '\\u2AC5\\u0338',\n '⊁': '\\u2281',\n '⪰̸': '\\u2AB0\\u0338',\n '⊅': '\\u2285',\n '⫆̸': '\\u2AC6\\u0338',\n '⊉': '\\u2289',\n '⊃⃒': '\\u2283\\u20D2',\n '⊉': '\\u2289',\n '⫆̸': '\\u2AC6\\u0338',\n '≹': '\\u2279',\n 'ñ': '\\u00F1',\n 'ñ': '\\u00F1',\n '≸': '\\u2278',\n '⋪': '\\u22EA',\n '⋬': '\\u22EC',\n '⋫': '\\u22EB',\n '⋭': '\\u22ED',\n 'ν': '\\u03BD',\n '#': '\\u0023',\n '№': '\\u2116',\n ' ': '\\u2007',\n '⊭': '\\u22AD',\n '⤄': '\\u2904',\n '≍⃒': '\\u224D\\u20D2',\n '⊬': '\\u22AC',\n '≥⃒': '\\u2265\\u20D2',\n '>⃒': '\\u003E\\u20D2',\n '⧞': '\\u29DE',\n '⤂': '\\u2902',\n '≤⃒': '\\u2264\\u20D2',\n '<⃒': '\\u003C\\u20D2',\n '⊴⃒': '\\u22B4\\u20D2',\n '⤃': '\\u2903',\n '⊵⃒': '\\u22B5\\u20D2',\n '∼⃒': '\\u223C\\u20D2',\n '⇖': '\\u21D6',\n '⤣': '\\u2923',\n '↖': '\\u2196',\n '↖': '\\u2196',\n '⤧': '\\u2927',\n 'Ⓢ': '\\u24C8',\n 'ó': '\\u00F3',\n 'ó': '\\u00F3',\n '⊛': '\\u229B',\n '⊚': '\\u229A',\n 'ô': '\\u00F4',\n 'ô': '\\u00F4',\n 'о': '\\u043E',\n '⊝': '\\u229D',\n 'ő': '\\u0151',\n '⨸': '\\u2A38',\n '⊙': '\\u2299',\n '⦼': '\\u29BC',\n 'œ': '\\u0153',\n '⦿': '\\u29BF',\n '𝔬': '\\uD835\\uDD2C',\n '˛': '\\u02DB',\n 'ò': '\\u00F2',\n 'ò': '\\u00F2',\n '⧁': '\\u29C1',\n '⦵': '\\u29B5',\n 'Ω': '\\u03A9',\n '∮': '\\u222E',\n '↺': '\\u21BA',\n '⦾': '\\u29BE',\n '⦻': '\\u29BB',\n '‾': '\\u203E',\n '⧀': '\\u29C0',\n 'ō': '\\u014D',\n 'ω': '\\u03C9',\n 'ο': '\\u03BF',\n '⦶': '\\u29B6',\n '⊖': '\\u2296',\n '𝕠': '\\uD835\\uDD60',\n '⦷': '\\u29B7',\n '⦹': '\\u29B9',\n '⊕': '\\u2295',\n '∨': '\\u2228',\n '↻': '\\u21BB',\n '⩝': '\\u2A5D',\n 'ℴ': '\\u2134',\n 'ℴ': '\\u2134',\n 'ª': '\\u00AA',\n 'ª': '\\u00AA',\n 'º': '\\u00BA',\n 'º': '\\u00BA',\n '⊶': '\\u22B6',\n '⩖': '\\u2A56',\n '⩗': '\\u2A57',\n '⩛': '\\u2A5B',\n 'ℴ': '\\u2134',\n 'ø': '\\u00F8',\n 'ø': '\\u00F8',\n '⊘': '\\u2298',\n 'õ': '\\u00F5',\n 'õ': '\\u00F5',\n '⊗': '\\u2297',\n '⨶': '\\u2A36',\n 'ö': '\\u00F6',\n 'ö': '\\u00F6',\n '⌽': '\\u233D',\n '∥': '\\u2225',\n '¶': '\\u00B6',\n '¶': '\\u00B6',\n '∥': '\\u2225',\n '⫳': '\\u2AF3',\n '⫽': '\\u2AFD',\n '∂': '\\u2202',\n 'п': '\\u043F',\n '%': '\\u0025',\n '.': '\\u002E',\n '‰': '\\u2030',\n '⊥': '\\u22A5',\n '‱': '\\u2031',\n '𝔭': '\\uD835\\uDD2D',\n 'φ': '\\u03C6',\n 'ϕ': '\\u03D5',\n 'ℳ': '\\u2133',\n '☎': '\\u260E',\n 'π': '\\u03C0',\n '⋔': '\\u22D4',\n 'ϖ': '\\u03D6',\n 'ℏ': '\\u210F',\n 'ℎ': '\\u210E',\n 'ℏ': '\\u210F',\n '+': '\\u002B',\n '⨣': '\\u2A23',\n '⊞': '\\u229E',\n '⨢': '\\u2A22',\n '∔': '\\u2214',\n '⨥': '\\u2A25',\n '⩲': '\\u2A72',\n '±': '\\u00B1',\n '±': '\\u00B1',\n '⨦': '\\u2A26',\n '⨧': '\\u2A27',\n '±': '\\u00B1',\n '⨕': '\\u2A15',\n '𝕡': '\\uD835\\uDD61',\n '£': '\\u00A3',\n '£': '\\u00A3',\n '≺': '\\u227A',\n '⪳': '\\u2AB3',\n '⪷': '\\u2AB7',\n '≼': '\\u227C',\n '⪯': '\\u2AAF',\n '≺': '\\u227A',\n '⪷': '\\u2AB7',\n '≼': '\\u227C',\n '⪯': '\\u2AAF',\n '⪹': '\\u2AB9',\n '⪵': '\\u2AB5',\n '⋨': '\\u22E8',\n '≾': '\\u227E',\n '′': '\\u2032',\n 'ℙ': '\\u2119',\n '⪵': '\\u2AB5',\n '⪹': '\\u2AB9',\n '⋨': '\\u22E8',\n '∏': '\\u220F',\n '⌮': '\\u232E',\n '⌒': '\\u2312',\n '⌓': '\\u2313',\n '∝': '\\u221D',\n '∝': '\\u221D',\n '≾': '\\u227E',\n '⊰': '\\u22B0',\n '𝓅': '\\uD835\\uDCC5',\n 'ψ': '\\u03C8',\n ' ': '\\u2008',\n '𝔮': '\\uD835\\uDD2E',\n '⨌': '\\u2A0C',\n '𝕢': '\\uD835\\uDD62',\n '⁗': '\\u2057',\n '𝓆': '\\uD835\\uDCC6',\n 'ℍ': '\\u210D',\n '⨖': '\\u2A16',\n '?': '\\u003F',\n '≟': '\\u225F',\n '"': '\\u0022',\n '"': '\\u0022',\n '⇛': '\\u21DB',\n '⇒': '\\u21D2',\n '⤜': '\\u291C',\n '⤏': '\\u290F',\n '⥤': '\\u2964',\n '∽̱': '\\u223D\\u0331',\n 'ŕ': '\\u0155',\n '√': '\\u221A',\n '⦳': '\\u29B3',\n '⟩': '\\u27E9',\n '⦒': '\\u2992',\n '⦥': '\\u29A5',\n '⟩': '\\u27E9',\n '»': '\\u00BB',\n '»': '\\u00BB',\n '→': '\\u2192',\n '⥵': '\\u2975',\n '⇥': '\\u21E5',\n '⤠': '\\u2920',\n '⤳': '\\u2933',\n '⤞': '\\u291E',\n '↪': '\\u21AA',\n '↬': '\\u21AC',\n '⥅': '\\u2945',\n '⥴': '\\u2974',\n '↣': '\\u21A3',\n '↝': '\\u219D',\n '⤚': '\\u291A',\n '∶': '\\u2236',\n 'ℚ': '\\u211A',\n '⤍': '\\u290D',\n '❳': '\\u2773',\n '}': '\\u007D',\n ']': '\\u005D',\n '⦌': '\\u298C',\n '⦎': '\\u298E',\n '⦐': '\\u2990',\n 'ř': '\\u0159',\n 'ŗ': '\\u0157',\n '⌉': '\\u2309',\n '}': '\\u007D',\n 'р': '\\u0440',\n '⤷': '\\u2937',\n '⥩': '\\u2969',\n '”': '\\u201D',\n '”': '\\u201D',\n '↳': '\\u21B3',\n 'ℜ': '\\u211C',\n 'ℛ': '\\u211B',\n 'ℜ': '\\u211C',\n 'ℝ': '\\u211D',\n '▭': '\\u25AD',\n '®': '\\u00AE',\n '®': '\\u00AE',\n '⥽': '\\u297D',\n '⌋': '\\u230B',\n '𝔯': '\\uD835\\uDD2F',\n '⇁': '\\u21C1',\n '⇀': '\\u21C0',\n '⥬': '\\u296C',\n 'ρ': '\\u03C1',\n 'ϱ': '\\u03F1',\n '→': '\\u2192',\n '↣': '\\u21A3',\n '⇁': '\\u21C1',\n '⇀': '\\u21C0',\n '⇄': '\\u21C4',\n '⇌': '\\u21CC',\n '⇉': '\\u21C9',\n '↝': '\\u219D',\n '⋌': '\\u22CC',\n '˚': '\\u02DA',\n '≓': '\\u2253',\n '⇄': '\\u21C4',\n '⇌': '\\u21CC',\n '‏': '\\u200F',\n '⎱': '\\u23B1',\n '⎱': '\\u23B1',\n '⫮': '\\u2AEE',\n '⟭': '\\u27ED',\n '⇾': '\\u21FE',\n '⟧': '\\u27E7',\n '⦆': '\\u2986',\n '𝕣': '\\uD835\\uDD63',\n '⨮': '\\u2A2E',\n '⨵': '\\u2A35',\n ')': '\\u0029',\n '⦔': '\\u2994',\n '⨒': '\\u2A12',\n '⇉': '\\u21C9',\n '›': '\\u203A',\n '𝓇': '\\uD835\\uDCC7',\n '↱': '\\u21B1',\n ']': '\\u005D',\n '’': '\\u2019',\n '’': '\\u2019',\n '⋌': '\\u22CC',\n '⋊': '\\u22CA',\n '▹': '\\u25B9',\n '⊵': '\\u22B5',\n '▸': '\\u25B8',\n '⧎': '\\u29CE',\n '⥨': '\\u2968',\n '℞': '\\u211E',\n 'ś': '\\u015B',\n '‚': '\\u201A',\n '≻': '\\u227B',\n '⪴': '\\u2AB4',\n '⪸': '\\u2AB8',\n 'š': '\\u0161',\n '≽': '\\u227D',\n '⪰': '\\u2AB0',\n 'ş': '\\u015F',\n 'ŝ': '\\u015D',\n '⪶': '\\u2AB6',\n '⪺': '\\u2ABA',\n '⋩': '\\u22E9',\n '⨓': '\\u2A13',\n '≿': '\\u227F',\n 'с': '\\u0441',\n '⋅': '\\u22C5',\n '⊡': '\\u22A1',\n '⩦': '\\u2A66',\n '⇘': '\\u21D8',\n '⤥': '\\u2925',\n '↘': '\\u2198',\n '↘': '\\u2198',\n '§': '\\u00A7',\n '§': '\\u00A7',\n ';': '\\u003B',\n '⤩': '\\u2929',\n '∖': '\\u2216',\n '∖': '\\u2216',\n '✶': '\\u2736',\n '𝔰': '\\uD835\\uDD30',\n '⌢': '\\u2322',\n '♯': '\\u266F',\n 'щ': '\\u0449',\n 'ш': '\\u0448',\n '∣': '\\u2223',\n '∥': '\\u2225',\n '­': '\\u00AD',\n '­': '\\u00AD',\n 'σ': '\\u03C3',\n 'ς': '\\u03C2',\n 'ς': '\\u03C2',\n '∼': '\\u223C',\n '⩪': '\\u2A6A',\n '≃': '\\u2243',\n '≃': '\\u2243',\n '⪞': '\\u2A9E',\n '⪠': '\\u2AA0',\n '⪝': '\\u2A9D',\n '⪟': '\\u2A9F',\n '≆': '\\u2246',\n '⨤': '\\u2A24',\n '⥲': '\\u2972',\n '←': '\\u2190',\n '∖': '\\u2216',\n '⨳': '\\u2A33',\n '⧤': '\\u29E4',\n '∣': '\\u2223',\n '⌣': '\\u2323',\n '⪪': '\\u2AAA',\n '⪬': '\\u2AAC',\n '⪬︀': '\\u2AAC\\uFE00',\n 'ь': '\\u044C',\n '/': '\\u002F',\n '⧄': '\\u29C4',\n '⌿': '\\u233F',\n '𝕤': '\\uD835\\uDD64',\n '♠': '\\u2660',\n '♠': '\\u2660',\n '∥': '\\u2225',\n '⊓': '\\u2293',\n '⊓︀': '\\u2293\\uFE00',\n '⊔': '\\u2294',\n '⊔︀': '\\u2294\\uFE00',\n '⊏': '\\u228F',\n '⊑': '\\u2291',\n '⊏': '\\u228F',\n '⊑': '\\u2291',\n '⊐': '\\u2290',\n '⊒': '\\u2292',\n '⊐': '\\u2290',\n '⊒': '\\u2292',\n '□': '\\u25A1',\n '□': '\\u25A1',\n '▪': '\\u25AA',\n '▪': '\\u25AA',\n '→': '\\u2192',\n '𝓈': '\\uD835\\uDCC8',\n '∖': '\\u2216',\n '⌣': '\\u2323',\n '⋆': '\\u22C6',\n '☆': '\\u2606',\n '★': '\\u2605',\n 'ϵ': '\\u03F5',\n 'ϕ': '\\u03D5',\n '¯': '\\u00AF',\n '⊂': '\\u2282',\n '⫅': '\\u2AC5',\n '⪽': '\\u2ABD',\n '⊆': '\\u2286',\n '⫃': '\\u2AC3',\n '⫁': '\\u2AC1',\n '⫋': '\\u2ACB',\n '⊊': '\\u228A',\n '⪿': '\\u2ABF',\n '⥹': '\\u2979',\n '⊂': '\\u2282',\n '⊆': '\\u2286',\n '⫅': '\\u2AC5',\n '⊊': '\\u228A',\n '⫋': '\\u2ACB',\n '⫇': '\\u2AC7',\n '⫕': '\\u2AD5',\n '⫓': '\\u2AD3',\n '≻': '\\u227B',\n '⪸': '\\u2AB8',\n '≽': '\\u227D',\n '⪰': '\\u2AB0',\n '⪺': '\\u2ABA',\n '⪶': '\\u2AB6',\n '⋩': '\\u22E9',\n '≿': '\\u227F',\n '∑': '\\u2211',\n '♪': '\\u266A',\n '¹': '\\u00B9',\n '¹': '\\u00B9',\n '²': '\\u00B2',\n '²': '\\u00B2',\n '³': '\\u00B3',\n '³': '\\u00B3',\n '⊃': '\\u2283',\n '⫆': '\\u2AC6',\n '⪾': '\\u2ABE',\n '⫘': '\\u2AD8',\n '⊇': '\\u2287',\n '⫄': '\\u2AC4',\n '⟉': '\\u27C9',\n '⫗': '\\u2AD7',\n '⥻': '\\u297B',\n '⫂': '\\u2AC2',\n '⫌': '\\u2ACC',\n '⊋': '\\u228B',\n '⫀': '\\u2AC0',\n '⊃': '\\u2283',\n '⊇': '\\u2287',\n '⫆': '\\u2AC6',\n '⊋': '\\u228B',\n '⫌': '\\u2ACC',\n '⫈': '\\u2AC8',\n '⫔': '\\u2AD4',\n '⫖': '\\u2AD6',\n '⇙': '\\u21D9',\n '⤦': '\\u2926',\n '↙': '\\u2199',\n '↙': '\\u2199',\n '⤪': '\\u292A',\n 'ß': '\\u00DF',\n 'ß': '\\u00DF',\n '⌖': '\\u2316',\n 'τ': '\\u03C4',\n '⎴': '\\u23B4',\n 'ť': '\\u0165',\n 'ţ': '\\u0163',\n 'т': '\\u0442',\n '⃛': '\\u20DB',\n '⌕': '\\u2315',\n '𝔱': '\\uD835\\uDD31',\n '∴': '\\u2234',\n '∴': '\\u2234',\n 'θ': '\\u03B8',\n 'ϑ': '\\u03D1',\n 'ϑ': '\\u03D1',\n '≈': '\\u2248',\n '∼': '\\u223C',\n ' ': '\\u2009',\n '≈': '\\u2248',\n '∼': '\\u223C',\n 'þ': '\\u00FE',\n 'þ': '\\u00FE',\n '˜': '\\u02DC',\n '×': '\\u00D7',\n '×': '\\u00D7',\n '⊠': '\\u22A0',\n '⨱': '\\u2A31',\n '⨰': '\\u2A30',\n '∭': '\\u222D',\n '⤨': '\\u2928',\n '⊤': '\\u22A4',\n '⌶': '\\u2336',\n '⫱': '\\u2AF1',\n '𝕥': '\\uD835\\uDD65',\n '⫚': '\\u2ADA',\n '⤩': '\\u2929',\n '‴': '\\u2034',\n '™': '\\u2122',\n '▵': '\\u25B5',\n '▿': '\\u25BF',\n '◃': '\\u25C3',\n '⊴': '\\u22B4',\n '≜': '\\u225C',\n '▹': '\\u25B9',\n '⊵': '\\u22B5',\n '◬': '\\u25EC',\n '≜': '\\u225C',\n '⨺': '\\u2A3A',\n '⨹': '\\u2A39',\n '⧍': '\\u29CD',\n '⨻': '\\u2A3B',\n '⏢': '\\u23E2',\n '𝓉': '\\uD835\\uDCC9',\n 'ц': '\\u0446',\n 'ћ': '\\u045B',\n 'ŧ': '\\u0167',\n '≬': '\\u226C',\n '↞': '\\u219E',\n '↠': '\\u21A0',\n '⇑': '\\u21D1',\n '⥣': '\\u2963',\n 'ú': '\\u00FA',\n 'ú': '\\u00FA',\n '↑': '\\u2191',\n 'ў': '\\u045E',\n 'ŭ': '\\u016D',\n 'û': '\\u00FB',\n 'û': '\\u00FB',\n 'у': '\\u0443',\n '⇅': '\\u21C5',\n 'ű': '\\u0171',\n '⥮': '\\u296E',\n '⥾': '\\u297E',\n '𝔲': '\\uD835\\uDD32',\n 'ù': '\\u00F9',\n 'ù': '\\u00F9',\n '↿': '\\u21BF',\n '↾': '\\u21BE',\n '▀': '\\u2580',\n '⌜': '\\u231C',\n '⌜': '\\u231C',\n '⌏': '\\u230F',\n '◸': '\\u25F8',\n 'ū': '\\u016B',\n '¨': '\\u00A8',\n '¨': '\\u00A8',\n 'ų': '\\u0173',\n '𝕦': '\\uD835\\uDD66',\n '↑': '\\u2191',\n '↕': '\\u2195',\n '↿': '\\u21BF',\n '↾': '\\u21BE',\n '⊎': '\\u228E',\n 'υ': '\\u03C5',\n 'ϒ': '\\u03D2',\n 'υ': '\\u03C5',\n '⇈': '\\u21C8',\n '⌝': '\\u231D',\n '⌝': '\\u231D',\n '⌎': '\\u230E',\n 'ů': '\\u016F',\n '◹': '\\u25F9',\n '𝓊': '\\uD835\\uDCCA',\n '⋰': '\\u22F0',\n 'ũ': '\\u0169',\n '▵': '\\u25B5',\n '▴': '\\u25B4',\n '⇈': '\\u21C8',\n 'ü': '\\u00FC',\n 'ü': '\\u00FC',\n '⦧': '\\u29A7',\n '⇕': '\\u21D5',\n '⫨': '\\u2AE8',\n '⫩': '\\u2AE9',\n '⊨': '\\u22A8',\n '⦜': '\\u299C',\n 'ϵ': '\\u03F5',\n 'ϰ': '\\u03F0',\n '∅': '\\u2205',\n 'ϕ': '\\u03D5',\n 'ϖ': '\\u03D6',\n '∝': '\\u221D',\n '↕': '\\u2195',\n 'ϱ': '\\u03F1',\n 'ς': '\\u03C2',\n '⊊︀': '\\u228A\\uFE00',\n '⫋︀': '\\u2ACB\\uFE00',\n '⊋︀': '\\u228B\\uFE00',\n '⫌︀': '\\u2ACC\\uFE00',\n 'ϑ': '\\u03D1',\n '⊲': '\\u22B2',\n '⊳': '\\u22B3',\n 'в': '\\u0432',\n '⊢': '\\u22A2',\n '∨': '\\u2228',\n '⊻': '\\u22BB',\n '≚': '\\u225A',\n '⋮': '\\u22EE',\n '|': '\\u007C',\n '|': '\\u007C',\n '𝔳': '\\uD835\\uDD33',\n '⊲': '\\u22B2',\n '⊂⃒': '\\u2282\\u20D2',\n '⊃⃒': '\\u2283\\u20D2',\n '𝕧': '\\uD835\\uDD67',\n '∝': '\\u221D',\n '⊳': '\\u22B3',\n '𝓋': '\\uD835\\uDCCB',\n '⫋︀': '\\u2ACB\\uFE00',\n '⊊︀': '\\u228A\\uFE00',\n '⫌︀': '\\u2ACC\\uFE00',\n '⊋︀': '\\u228B\\uFE00',\n '⦚': '\\u299A',\n 'ŵ': '\\u0175',\n '⩟': '\\u2A5F',\n '∧': '\\u2227',\n '≙': '\\u2259',\n '℘': '\\u2118',\n '𝔴': '\\uD835\\uDD34',\n '𝕨': '\\uD835\\uDD68',\n '℘': '\\u2118',\n '≀': '\\u2240',\n '≀': '\\u2240',\n '𝓌': '\\uD835\\uDCCC',\n '⋂': '\\u22C2',\n '◯': '\\u25EF',\n '⋃': '\\u22C3',\n '▽': '\\u25BD',\n '𝔵': '\\uD835\\uDD35',\n '⟺': '\\u27FA',\n '⟷': '\\u27F7',\n 'ξ': '\\u03BE',\n '⟸': '\\u27F8',\n '⟵': '\\u27F5',\n '⟼': '\\u27FC',\n '⋻': '\\u22FB',\n '⨀': '\\u2A00',\n '𝕩': '\\uD835\\uDD69',\n '⨁': '\\u2A01',\n '⨂': '\\u2A02',\n '⟹': '\\u27F9',\n '⟶': '\\u27F6',\n '𝓍': '\\uD835\\uDCCD',\n '⨆': '\\u2A06',\n '⨄': '\\u2A04',\n '△': '\\u25B3',\n '⋁': '\\u22C1',\n '⋀': '\\u22C0',\n 'ý': '\\u00FD',\n 'ý': '\\u00FD',\n 'я': '\\u044F',\n 'ŷ': '\\u0177',\n 'ы': '\\u044B',\n '¥': '\\u00A5',\n '¥': '\\u00A5',\n '𝔶': '\\uD835\\uDD36',\n 'ї': '\\u0457',\n '𝕪': '\\uD835\\uDD6A',\n '𝓎': '\\uD835\\uDCCE',\n 'ю': '\\u044E',\n 'ÿ': '\\u00FF',\n 'ÿ': '\\u00FF',\n 'ź': '\\u017A',\n 'ž': '\\u017E',\n 'з': '\\u0437',\n 'ż': '\\u017C',\n 'ℨ': '\\u2128',\n 'ζ': '\\u03B6',\n '𝔷': '\\uD835\\uDD37',\n 'ж': '\\u0436',\n '⇝': '\\u21DD',\n '𝕫': '\\uD835\\uDD6B',\n '𝓏': '\\uD835\\uDCCF',\n '‍': '\\u200D',\n '‌': '\\u200C'\n};\n\nexport default htmlEntities;\n", "import htmlEntities from './html-entities.js';\n\nexport function decodeHTMLEntities(str) {\n return str.replace(/&(#\\d+|#x[a-f0-9]+|[a-z]+\\d*);?/gi, (match, entity) => {\n if (typeof htmlEntities[match] === 'string') {\n return htmlEntities[match];\n }\n\n if (entity.charAt(0) !== '#' || match.charAt(match.length - 1) !== ';') {\n // keep as is, invalid or unknown sequence\n return match;\n }\n\n let codePoint;\n if (entity.charAt(1) === 'x') {\n // hex\n codePoint = parseInt(entity.substr(2), 16);\n } else {\n // dec\n codePoint = parseInt(entity.substr(1), 10);\n }\n\n var output = '';\n\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n // Invalid range, return a replacement character instead\n return '\\uFFFD';\n }\n\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n\n output += String.fromCharCode(codePoint);\n\n return output;\n });\n}\n\nexport function escapeHtml(str) {\n return str.trim().replace(/[<>\"'?&]/g, c => {\n let hex = c.charCodeAt(0).toString(16);\n if (hex.length < 2) {\n hex = '0' + hex;\n }\n return '&#x' + hex.toUpperCase() + ';';\n });\n}\n\nexport function textToHtml(str) {\n let html = escapeHtml(str).replace(/\\n/g, '
');\n return '
' + html + '
';\n}\n\nexport function htmlToText(str) {\n str = str\n // we can't process tags on multiple lines so remove newlines first\n .replace(/\\r?\\n/g, '\\u0001')\n .replace(/<\\!\\-\\-.*?\\-\\->/gi, ' ')\n\n .replace(/]*>/gi, '\\n')\n .replace(/<\\/?(p|div|table|tr|td|th)\\b[^>]*>/gi, '\\n\\n')\n .replace(/]*>.*?<\\/script\\b[^>]*>/gi, ' ')\n .replace(/^.*]*>/i, '')\n .replace(/^.*<\\/head\\b[^>]*>/i, '')\n .replace(/^.*<\\!doctype\\b[^>]*>/i, '')\n .replace(/<\\/body\\b[^>]*>.*$/i, '')\n .replace(/<\\/html\\b[^>]*>.*$/i, '')\n\n .replace(/]*href\\s*=\\s*[\"']?([^\\s\"']+)[^>]*>/gi, ' ($1) ')\n\n .replace(/<\\/?(span|em|i|strong|b|u|a)\\b[^>]*>/gi, '')\n\n .replace(/]*>[\\n\\u0001\\s]*/gi, '* ')\n\n .replace(/]*>/g, '\\n-------------\\n')\n\n .replace(/<[^>]*>/g, ' ')\n\n // convert linebreak placeholders back to newlines\n .replace(/\\u0001/g, '\\n')\n\n .replace(/[ \\t]+/g, ' ')\n\n .replace(/^\\s+$/gm, '')\n\n .replace(/\\n\\n+/g, '\\n\\n')\n .replace(/^\\n+/, '\\n')\n .replace(/\\n+$/, '\\n');\n\n str = decodeHTMLEntities(str);\n\n return str;\n}\n\nfunction formatTextAddress(address) {\n return []\n .concat(address.name || [])\n .concat(address.name ? `<${address.address}>` : address.address)\n .join(' ');\n}\n\nfunction formatTextAddresses(addresses) {\n let parts = [];\n\n let processAddress = (address, partCounter) => {\n if (partCounter) {\n parts.push(', ');\n }\n\n if (address.group) {\n let groupStart = `${address.name}:`;\n let groupEnd = `;`;\n\n parts.push(groupStart);\n address.group.forEach(processAddress);\n parts.push(groupEnd);\n } else {\n parts.push(formatTextAddress(address));\n }\n };\n\n addresses.forEach(processAddress);\n\n return parts.join('');\n}\n\nfunction formatHtmlAddress(address) {\n return ``;\n}\n\nfunction formatHtmlAddresses(addresses) {\n let parts = [];\n\n let processAddress = (address, partCounter) => {\n if (partCounter) {\n parts.push('');\n }\n\n if (address.group) {\n let groupStart = ``;\n let groupEnd = ``;\n\n parts.push(groupStart);\n address.group.forEach(processAddress);\n parts.push(groupEnd);\n } else {\n parts.push(formatHtmlAddress(address));\n }\n };\n\n addresses.forEach(processAddress);\n\n return parts.join(' ');\n}\n\nfunction foldLines(str, lineLength, afterSpace) {\n str = (str || '').toString();\n lineLength = lineLength || 76;\n\n let pos = 0,\n len = str.length,\n result = '',\n line,\n match;\n\n while (pos < len) {\n line = str.substr(pos, lineLength);\n if (line.length < lineLength) {\n result += line;\n break;\n }\n if ((match = line.match(/^[^\\n\\r]*(\\r?\\n|\\r)/))) {\n line = match[0];\n result += line;\n pos += line.length;\n continue;\n } else if (\n (match = line.match(/(\\s+)[^\\s]*$/)) &&\n match[0].length - (afterSpace ? (match[1] || '').length : 0) < line.length\n ) {\n line = line.substr(0, line.length - (match[0].length - (afterSpace ? (match[1] || '').length : 0)));\n } else if ((match = str.substr(pos + line.length).match(/^[^\\s]+(\\s*)/))) {\n line = line + match[0].substr(0, match[0].length - (!afterSpace ? (match[1] || '').length : 0));\n }\n\n result += line;\n pos += line.length;\n if (pos < len) {\n result += '\\r\\n';\n }\n }\n\n return result;\n}\n\nexport function formatTextHeader(message) {\n let rows = [];\n\n if (message.from) {\n rows.push({ key: 'From', val: formatTextAddress(message.from) });\n }\n\n if (message.subject) {\n rows.push({ key: 'Subject', val: message.subject });\n }\n\n if (message.date) {\n let dateOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n\n let dateStr =\n typeof Intl === 'undefined'\n ? message.date\n : new Intl.DateTimeFormat('default', dateOptions).format(new Date(message.date));\n\n rows.push({ key: 'Date', val: dateStr });\n }\n\n if (message.to && message.to.length) {\n rows.push({ key: 'To', val: formatTextAddresses(message.to) });\n }\n\n if (message.cc && message.cc.length) {\n rows.push({ key: 'Cc', val: formatTextAddresses(message.cc) });\n }\n\n if (message.bcc && message.bcc.length) {\n rows.push({ key: 'Bcc', val: formatTextAddresses(message.bcc) });\n }\n\n // Align keys and values by adding space between these two\n // Also make sure that the separator line is as long as the longest line\n // Should end up with something like this:\n /*\n -----------------------------\n From: xx xx \n Subject: Example Subject\n Date: 16/02/2021, 02:57:06\n To: not@found.com\n -----------------------------\n */\n\n let maxKeyLength = rows\n .map(r => r.key.length)\n .reduce((acc, cur) => {\n return cur > acc ? cur : acc;\n }, 0);\n\n rows = rows.flatMap(row => {\n let sepLen = maxKeyLength - row.key.length;\n let prefix = `${row.key}: ${' '.repeat(sepLen)}`;\n let emptyPrefix = `${' '.repeat(row.key.length + 1)} ${' '.repeat(sepLen)}`;\n\n let foldedLines = foldLines(row.val, 80, true)\n .split(/\\r?\\n/)\n .map(line => line.trim());\n\n return foldedLines.map((line, i) => `${i ? emptyPrefix : prefix}${line}`);\n });\n\n let maxLineLength = rows\n .map(r => r.length)\n .reduce((acc, cur) => {\n return cur > acc ? cur : acc;\n }, 0);\n\n let lineMarker = '-'.repeat(maxLineLength);\n\n let template = `\n${lineMarker}\n${rows.join('\\n')}\n${lineMarker}\n`;\n\n return template;\n}\n\nexport function formatHtmlHeader(message) {\n let rows = [];\n\n if (message.from) {\n rows.push(\n ``\n );\n }\n\n if (message.subject) {\n rows.push(\n ``\n );\n }\n\n if (message.date) {\n let dateOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n };\n\n let dateStr =\n typeof Intl === 'undefined'\n ? message.date\n : new Intl.DateTimeFormat('default', dateOptions).format(new Date(message.date));\n\n rows.push(\n ``\n );\n }\n\n if (message.to && message.to.length) {\n rows.push(\n ``\n );\n }\n\n if (message.cc && message.cc.length) {\n rows.push(\n ``\n );\n }\n\n if (message.bcc && message.bcc.length) {\n rows.push(\n ``\n );\n }\n\n let template = ``;\n\n return template;\n}\n", "import { decodeWords } from './decode-strings.js';\n\n/**\n * Converts tokens for a single address into an address object\n *\n * @param {Array} tokens Tokens object\n * @return {Object} Address object\n */\nfunction _handleAddress(tokens) {\n let isGroup = false;\n let state = 'text';\n let address;\n let addresses = [];\n let data = {\n address: [],\n comment: [],\n group: [],\n text: [],\n textWasQuoted: [] // Track which text tokens came from inside quotes\n };\n let i;\n let len;\n let insideQuotes = false; // Track if we're currently inside a quoted string\n\n // Filter out , (comments) and regular text\n for (i = 0, len = tokens.length; i < len; i++) {\n let token = tokens[i];\n let prevToken = i ? tokens[i - 1] : null;\n if (token.type === 'operator') {\n switch (token.value) {\n case '<':\n state = 'address';\n insideQuotes = false;\n break;\n case '(':\n state = 'comment';\n insideQuotes = false;\n break;\n case ':':\n state = 'group';\n isGroup = true;\n insideQuotes = false;\n break;\n case '\"':\n // Track quote state for text tokens\n insideQuotes = !insideQuotes;\n state = 'text';\n break;\n default:\n state = 'text';\n insideQuotes = false;\n break;\n }\n } else if (token.value) {\n if (state === 'address') {\n // handle use case where unquoted name includes a \"<\"\n // Apple Mail truncates everything between an unexpected < and an address\n // and so will we\n token.value = token.value.replace(/^[^<]*<\\s*/, '');\n }\n\n if (prevToken && prevToken.noBreak && data[state].length) {\n // join values\n data[state][data[state].length - 1] += token.value;\n if (state === 'text' && insideQuotes) {\n data.textWasQuoted[data.textWasQuoted.length - 1] = true;\n }\n } else {\n data[state].push(token.value);\n if (state === 'text') {\n data.textWasQuoted.push(insideQuotes);\n }\n }\n }\n }\n\n // If there is no text but a comment, replace the two\n if (!data.text.length && data.comment.length) {\n data.text = data.comment;\n data.comment = [];\n }\n\n if (isGroup) {\n // http://tools.ietf.org/html/rfc2822#appendix-A.1.3\n data.text = data.text.join(' ');\n\n // Parse group members, but flatten any nested groups (RFC 5322 doesn't allow nesting)\n let groupMembers = [];\n if (data.group.length) {\n let parsedGroup = addressParser(data.group.join(','));\n // Flatten: if any member is itself a group, extract its members into the sequence\n parsedGroup.forEach(member => {\n if (member.group) {\n // Nested group detected - flatten it by adding its members directly\n groupMembers = groupMembers.concat(member.group);\n } else {\n groupMembers.push(member);\n }\n });\n }\n\n addresses.push({\n name: decodeWords(data.text || (address && address.name)),\n group: groupMembers\n });\n } else {\n // If no address was found, try to detect one from regular text\n if (!data.address.length && data.text.length) {\n for (i = data.text.length - 1; i >= 0; i--) {\n // Security fix: Do not extract email addresses from quoted strings\n // RFC 5321 allows @ inside quoted local-parts like \"user@domain\"@example.com\n // Extracting emails from quoted text leads to misrouting vulnerabilities\n if (!data.textWasQuoted[i] && data.text[i].match(/^[^@\\s]+@[^@\\s]+$/)) {\n data.address = data.text.splice(i, 1);\n data.textWasQuoted.splice(i, 1);\n break;\n }\n }\n\n let _regexHandler = function (address) {\n if (!data.address.length) {\n data.address = [address.trim()];\n return ' ';\n } else {\n return address;\n }\n };\n\n // still no address\n if (!data.address.length) {\n for (i = data.text.length - 1; i >= 0; i--) {\n // Security fix: Do not extract email addresses from quoted strings\n if (!data.textWasQuoted[i]) {\n // fixed the regex to parse email address correctly when email address has more than one @\n data.text[i] = data.text[i].replace(/\\s*\\b[^@\\s]+@[^\\s]+\\b\\s*/, _regexHandler).trim();\n if (data.address.length) {\n break;\n }\n }\n }\n }\n }\n\n // If there's still is no text but a comment exixts, replace the two\n if (!data.text.length && data.comment.length) {\n data.text = data.comment;\n data.comment = [];\n }\n\n // Keep only the first address occurence, push others to regular text\n if (data.address.length > 1) {\n data.text = data.text.concat(data.address.splice(1));\n }\n\n // Join values with spaces\n data.text = data.text.join(' ');\n data.address = data.address.join(' ');\n\n if (!data.address && /^=\\?[^=]+?=$/.test(data.text.trim())) {\n // try to extract words from text content\n const parsedSubAddresses = addressParser(decodeWords(data.text));\n if (parsedSubAddresses && parsedSubAddresses.length) {\n return parsedSubAddresses;\n }\n }\n\n if (!data.address && isGroup) {\n return [];\n } else {\n address = {\n address: data.address || data.text || '',\n name: decodeWords(data.text || data.address || '')\n };\n\n if (address.address === address.name) {\n if ((address.address || '').match(/@/)) {\n address.name = '';\n } else {\n address.address = '';\n }\n }\n\n addresses.push(address);\n }\n }\n\n return addresses;\n}\n\n/**\n * Creates a Tokenizer object for tokenizing address field strings\n *\n * @constructor\n * @param {String} str Address field string\n */\nclass Tokenizer {\n constructor(str) {\n this.str = (str || '').toString();\n this.operatorCurrent = '';\n this.operatorExpecting = '';\n this.node = null;\n this.escaped = false;\n\n this.list = [];\n /**\n * Operator tokens and which tokens are expected to end the sequence\n */\n this.operators = {\n '\"': '\"',\n '(': ')',\n '<': '>',\n ',': '',\n ':': ';',\n // Semicolons are not a legal delimiter per the RFC2822 grammar other\n // than for terminating a group, but they are also not valid for any\n // other use in this context. Given that some mail clients have\n // historically allowed the semicolon as a delimiter equivalent to the\n // comma in their UI, it makes sense to treat them the same as a comma\n // when used outside of a group.\n ';': ''\n };\n }\n\n /**\n * Tokenizes the original input string\n *\n * @return {Array} An array of operator|text tokens\n */\n tokenize() {\n let list = [];\n\n for (let i = 0, len = this.str.length; i < len; i++) {\n let chr = this.str.charAt(i);\n let nextChr = i < len - 1 ? this.str.charAt(i + 1) : null;\n this.checkChar(chr, nextChr);\n }\n\n this.list.forEach(node => {\n node.value = (node.value || '').toString().trim();\n if (node.value) {\n list.push(node);\n }\n });\n\n return list;\n }\n\n /**\n * Checks if a character is an operator or text and acts accordingly\n *\n * @param {String} chr Character from the address field\n */\n checkChar(chr, nextChr) {\n if (this.escaped) {\n // ignore next condition blocks\n } else if (chr === this.operatorExpecting) {\n this.node = {\n type: 'operator',\n value: chr\n };\n\n if (nextChr && ![' ', '\\t', '\\r', '\\n', ',', ';'].includes(nextChr)) {\n this.node.noBreak = true;\n }\n\n this.list.push(this.node);\n this.node = null;\n this.operatorExpecting = '';\n this.escaped = false;\n\n return;\n } else if (!this.operatorExpecting && chr in this.operators) {\n this.node = {\n type: 'operator',\n value: chr\n };\n this.list.push(this.node);\n this.node = null;\n this.operatorExpecting = this.operators[chr];\n this.escaped = false;\n return;\n } else if (['\"', \"'\"].includes(this.operatorExpecting) && chr === '\\\\') {\n this.escaped = true;\n return;\n }\n\n if (!this.node) {\n this.node = {\n type: 'text',\n value: ''\n };\n this.list.push(this.node);\n }\n\n if (chr === '\\n') {\n // Convert newlines to spaces. Carriage return is ignored as \\r and \\n usually\n // go together anyway and there already is a WS for \\n. Lone \\r means something is fishy.\n chr = ' ';\n }\n\n if (chr.charCodeAt(0) >= 0x21 || [' ', '\\t'].includes(chr)) {\n // skip command bytes\n this.node.value += chr;\n }\n\n this.escaped = false;\n }\n}\n\n/**\n * Parses structured e-mail addresses from an address field\n *\n * Example:\n *\n * 'Name '\n *\n * will be converted to\n *\n * [{name: 'Name', address: 'address@domain'}]\n *\n * @param {String} str Address field\n * @return {Array} An array of address objects\n */\nfunction addressParser(str, options) {\n options = options || {};\n\n let tokenizer = new Tokenizer(str);\n let tokens = tokenizer.tokenize();\n\n let addresses = [];\n let address = [];\n let parsedAddresses = [];\n\n tokens.forEach(token => {\n if (token.type === 'operator' && (token.value === ',' || token.value === ';')) {\n if (address.length) {\n addresses.push(address);\n }\n address = [];\n } else {\n address.push(token);\n }\n });\n\n if (address.length) {\n addresses.push(address);\n }\n\n addresses.forEach(address => {\n address = _handleAddress(address);\n if (address.length) {\n parsedAddresses = parsedAddresses.concat(address);\n }\n });\n\n if (options.flatten) {\n let addresses = [];\n let walkAddressList = list => {\n list.forEach(address => {\n if (address.group) {\n return walkAddressList(address.group);\n } else {\n addresses.push(address);\n }\n });\n };\n walkAddressList(parsedAddresses);\n return addresses;\n }\n\n return parsedAddresses;\n}\n\n// expose to the world\nexport default addressParser;\n", "// Code from: https://gist.githubusercontent.com/jonleighton/958841/raw/fb05a8632efb75d85d43deb593df04367ce48371/base64ArrayBuffer.js\n\n// Converts an ArrayBuffer directly to base64, without any intermediate 'convert to string then\n// use window.btoa' step. According to my tests, this appears to be a faster approach:\n// http://jsperf.com/encoding-xhr-image-data/5\n\n/*\nMIT LICENSE\n\nCopyright 2011 Jon Leighton\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nexport function base64ArrayBuffer(arrayBuffer) {\n var base64 = '';\n var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n var bytes = new Uint8Array(arrayBuffer);\n var byteLength = bytes.byteLength;\n var byteRemainder = byteLength % 3;\n var mainLength = byteLength - byteRemainder;\n\n var a, b, c, d;\n var chunk;\n\n // Main loop deals with bytes in chunks of 3\n for (var i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n }\n\n // Deal with the remaining bytes and padding\n if (byteRemainder == 1) {\n chunk = bytes[mainLength];\n\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n base64 += encodings[a] + encodings[b] + '==';\n } else if (byteRemainder == 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n base64 += encodings[a] + encodings[b] + encodings[c] + '=';\n }\n\n return base64;\n}\n", "import MimeNode from './mime-node.js';\nimport { textToHtml, htmlToText, formatTextHeader, formatHtmlHeader } from './text-format.js';\nimport addressParser from './address-parser.js';\nimport { decodeWords, textEncoder, blobToArrayBuffer } from './decode-strings.js';\nimport { base64ArrayBuffer } from './base64-encoder.js';\n\nexport { addressParser, decodeWords };\n\nconst MAX_NESTING_DEPTH = 256;\nconst MAX_HEADERS_SIZE = 2 * 1024 * 1024;\n\nexport default class PostalMime {\n static parse(buf, options) {\n const parser = new PostalMime(options);\n return parser.parse(buf);\n }\n\n constructor(options) {\n this.options = options || {};\n this.mimeOptions = {\n maxNestingDepth: this.options.maxNestingDepth || MAX_NESTING_DEPTH,\n maxHeadersSize: this.options.maxHeadersSize || MAX_HEADERS_SIZE\n };\n\n this.root = this.currentNode = new MimeNode({\n postalMime: this,\n ...this.mimeOptions\n });\n this.boundaries = [];\n\n this.textContent = {};\n this.attachments = [];\n\n this.attachmentEncoding =\n (this.options.attachmentEncoding || '')\n .toString()\n .replace(/[-_\\s]/g, '')\n .trim()\n .toLowerCase() || 'arraybuffer';\n\n this.started = false;\n }\n\n async finalize() {\n // close all pending nodes\n await this.root.finalize();\n }\n\n async processLine(line, isFinal) {\n let boundaries = this.boundaries;\n\n // check if this is a mime boundary\n if (boundaries.length && line.length > 2 && line[0] === 0x2d && line[1] === 0x2d) {\n // could be a boundary marker\n for (let i = boundaries.length - 1; i >= 0; i--) {\n let boundary = boundaries[i];\n\n if (line.length !== boundary.value.length + 2 && line.length !== boundary.value.length + 4) {\n continue;\n }\n\n let isTerminator = line.length === boundary.value.length + 4;\n\n if (isTerminator && (line[line.length - 2] !== 0x2d || line[line.length - 1] !== 0x2d)) {\n continue;\n }\n\n let boudaryMatches = true;\n for (let i = 0; i < boundary.value.length; i++) {\n if (line[i + 2] !== boundary.value[i]) {\n boudaryMatches = false;\n break;\n }\n }\n if (!boudaryMatches) {\n continue;\n }\n\n if (isTerminator) {\n await boundary.node.finalize();\n\n this.currentNode = boundary.node.parentNode || this.root;\n } else {\n // finalize any open child nodes (should be just one though)\n await boundary.node.finalizeChildNodes();\n\n this.currentNode = new MimeNode({\n postalMime: this,\n parentNode: boundary.node,\n ...this.mimeOptions\n });\n }\n\n if (isFinal) {\n return this.finalize();\n }\n\n return;\n }\n }\n\n this.currentNode.feed(line);\n\n if (isFinal) {\n return this.finalize();\n }\n }\n\n readLine() {\n let startPos = this.readPos;\n let endPos = this.readPos;\n\n let res = () => {\n return {\n bytes: new Uint8Array(this.buf, startPos, endPos - startPos),\n done: this.readPos >= this.av.length\n };\n };\n\n while (this.readPos < this.av.length) {\n const c = this.av[this.readPos++];\n\n if (c !== 0x0d && c !== 0x0a) {\n endPos = this.readPos;\n }\n\n if (c === 0x0a) {\n return res();\n }\n }\n\n return res();\n }\n\n async processNodeTree() {\n // get text nodes\n\n let textContent = {};\n\n let textTypes = new Set();\n let textMap = (this.textMap = new Map());\n\n let forceRfc822Attachments = this.forceRfc822Attachments();\n\n let walk = async (node, alternative, related) => {\n alternative = alternative || false;\n related = related || false;\n\n if (!node.contentType.multipart) {\n // is it inline message/rfc822\n if (this.isInlineMessageRfc822(node) && !forceRfc822Attachments) {\n const subParser = new PostalMime();\n node.subMessage = await subParser.parse(node.content);\n\n if (!textMap.has(node)) {\n textMap.set(node, {});\n }\n\n let textEntry = textMap.get(node);\n\n // default to text if there is no content\n if (node.subMessage.text || !node.subMessage.html) {\n textEntry.plain = textEntry.plain || [];\n textEntry.plain.push({ type: 'subMessage', value: node.subMessage });\n textTypes.add('plain');\n }\n\n if (node.subMessage.html) {\n textEntry.html = textEntry.html || [];\n textEntry.html.push({ type: 'subMessage', value: node.subMessage });\n textTypes.add('html');\n }\n\n if (subParser.textMap) {\n subParser.textMap.forEach((subTextEntry, subTextNode) => {\n textMap.set(subTextNode, subTextEntry);\n });\n }\n\n for (let attachment of node.subMessage.attachments || []) {\n this.attachments.push(attachment);\n }\n }\n\n // is it text?\n else if (this.isInlineTextNode(node)) {\n let textType = node.contentType.parsed.value.substr(node.contentType.parsed.value.indexOf('/') + 1);\n\n let selectorNode = alternative || node;\n if (!textMap.has(selectorNode)) {\n textMap.set(selectorNode, {});\n }\n\n let textEntry = textMap.get(selectorNode);\n textEntry[textType] = textEntry[textType] || [];\n textEntry[textType].push({ type: 'text', value: node.getTextContent() });\n textTypes.add(textType);\n }\n\n // is it an attachment\n else if (node.content) {\n const filename =\n node.contentDisposition.parsed.params.filename || node.contentType.parsed.params.name || null;\n const attachment = {\n filename: filename ? decodeWords(filename) : null,\n mimeType: node.contentType.parsed.value,\n disposition: node.contentDisposition.parsed.value || null\n };\n\n if (related && node.contentId) {\n attachment.related = true;\n }\n\n if (node.contentDescription) {\n attachment.description = node.contentDescription;\n }\n\n if (node.contentId) {\n attachment.contentId = node.contentId;\n }\n\n switch (node.contentType.parsed.value) {\n // Special handling for calendar events\n case 'text/calendar':\n case 'application/ics': {\n if (node.contentType.parsed.params.method) {\n attachment.method = node.contentType.parsed.params.method\n .toString()\n .toUpperCase()\n .trim();\n }\n\n // Enforce into unicode\n const decodedText = node.getTextContent().replace(/\\r?\\n/g, '\\n').replace(/\\n*$/, '\\n');\n attachment.content = textEncoder.encode(decodedText);\n break;\n }\n\n // Regular attachments\n default:\n attachment.content = node.content;\n }\n\n this.attachments.push(attachment);\n }\n } else if (node.contentType.multipart === 'alternative') {\n alternative = node;\n } else if (node.contentType.multipart === 'related') {\n related = node;\n }\n\n for (let childNode of node.childNodes) {\n await walk(childNode, alternative, related);\n }\n };\n\n await walk(this.root, false, []);\n\n textMap.forEach(mapEntry => {\n textTypes.forEach(textType => {\n if (!textContent[textType]) {\n textContent[textType] = [];\n }\n\n if (mapEntry[textType]) {\n mapEntry[textType].forEach(textEntry => {\n switch (textEntry.type) {\n case 'text':\n textContent[textType].push(textEntry.value);\n break;\n\n case 'subMessage':\n {\n switch (textType) {\n case 'html':\n textContent[textType].push(formatHtmlHeader(textEntry.value));\n break;\n case 'plain':\n textContent[textType].push(formatTextHeader(textEntry.value));\n break;\n }\n }\n break;\n }\n });\n } else {\n let alternativeType;\n switch (textType) {\n case 'html':\n alternativeType = 'plain';\n break;\n case 'plain':\n alternativeType = 'html';\n break;\n }\n\n (mapEntry[alternativeType] || []).forEach(textEntry => {\n switch (textEntry.type) {\n case 'text':\n switch (textType) {\n case 'html':\n textContent[textType].push(textToHtml(textEntry.value));\n break;\n case 'plain':\n textContent[textType].push(htmlToText(textEntry.value));\n break;\n }\n break;\n\n case 'subMessage':\n {\n switch (textType) {\n case 'html':\n textContent[textType].push(formatHtmlHeader(textEntry.value));\n break;\n case 'plain':\n textContent[textType].push(formatTextHeader(textEntry.value));\n break;\n }\n }\n break;\n }\n });\n }\n });\n });\n\n Object.keys(textContent).forEach(textType => {\n textContent[textType] = textContent[textType].join('\\n');\n });\n\n this.textContent = textContent;\n }\n\n isInlineTextNode(node) {\n if (node.contentDisposition.parsed.value === 'attachment') {\n // no matter the type, this is an attachment\n return false;\n }\n\n switch (node.contentType.parsed.value) {\n case 'text/html':\n case 'text/plain':\n return true;\n\n case 'text/calendar':\n case 'text/csv':\n default:\n return false;\n }\n }\n\n isInlineMessageRfc822(node) {\n if (node.contentType.parsed.value !== 'message/rfc822') {\n return false;\n }\n let disposition =\n node.contentDisposition.parsed.value || (this.options.rfc822Attachments ? 'attachment' : 'inline');\n return disposition === 'inline';\n }\n\n // Check if this is a specially crafted report email where message/rfc822 content should not be inlined\n forceRfc822Attachments() {\n if (this.options.forceRfc822Attachments) {\n return true;\n }\n\n let forceRfc822Attachments = false;\n let walk = node => {\n if (!node.contentType.multipart) {\n if (['message/delivery-status', 'message/feedback-report'].includes(node.contentType.parsed.value)) {\n forceRfc822Attachments = true;\n }\n }\n\n for (let childNode of node.childNodes) {\n walk(childNode);\n }\n };\n walk(this.root);\n return forceRfc822Attachments;\n }\n\n async resolveStream(stream) {\n let chunkLen = 0;\n let chunks = [];\n const reader = stream.getReader();\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n chunkLen += value.length;\n }\n\n const result = new Uint8Array(chunkLen);\n let chunkPointer = 0;\n for (let chunk of chunks) {\n result.set(chunk, chunkPointer);\n chunkPointer += chunk.length;\n }\n\n return result;\n }\n\n async parse(buf) {\n if (this.started) {\n throw new Error('Can not reuse parser, create a new PostalMime object');\n }\n this.started = true;\n\n // Check if the input is a readable stream and resolve it into an ArrayBuffer\n if (buf && typeof buf.getReader === 'function') {\n buf = await this.resolveStream(buf);\n }\n\n // Should it throw for an empty value instead of defaulting to an empty ArrayBuffer?\n buf = buf || new ArrayBuffer(0);\n\n // Cast string input to Uint8Array\n if (typeof buf === 'string') {\n buf = textEncoder.encode(buf);\n }\n\n // Cast Blob to ArrayBuffer\n if (buf instanceof Blob || Object.prototype.toString.call(buf) === '[object Blob]') {\n buf = await blobToArrayBuffer(buf);\n }\n\n // Cast Node.js Buffer object or Uint8Array into ArrayBuffer\n if (buf.buffer instanceof ArrayBuffer) {\n buf = new Uint8Array(buf).buffer;\n }\n\n this.buf = buf;\n\n this.av = new Uint8Array(buf);\n this.readPos = 0;\n\n while (this.readPos < this.av.length) {\n const line = this.readLine();\n\n await this.processLine(line.bytes, line.done);\n }\n\n await this.processNodeTree();\n\n const message = {\n headers: this.root.headers.map(entry => ({ key: entry.key, value: entry.value })).reverse()\n };\n\n for (const key of ['from', 'sender']) {\n const addressHeader = this.root.headers.find(line => line.key === key);\n if (addressHeader && addressHeader.value) {\n const addresses = addressParser(addressHeader.value);\n if (addresses && addresses.length) {\n message[key] = addresses[0];\n }\n }\n }\n\n for (const key of ['delivered-to', 'return-path']) {\n const addressHeader = this.root.headers.find(line => line.key === key);\n if (addressHeader && addressHeader.value) {\n const addresses = addressParser(addressHeader.value);\n if (addresses && addresses.length && addresses[0].address) {\n const camelKey = key.replace(/\\-(.)/g, (o, c) => c.toUpperCase());\n message[camelKey] = addresses[0].address;\n }\n }\n }\n\n for (const key of ['to', 'cc', 'bcc', 'reply-to']) {\n const addressHeaders = this.root.headers.filter(line => line.key === key);\n let addresses = [];\n\n addressHeaders\n .filter(entry => entry && entry.value)\n .map(entry => addressParser(entry.value))\n .forEach(parsed => (addresses = addresses.concat(parsed || [])));\n\n if (addresses && addresses.length) {\n const camelKey = key.replace(/\\-(.)/g, (o, c) => c.toUpperCase());\n message[camelKey] = addresses;\n }\n }\n\n for (const key of ['subject', 'message-id', 'in-reply-to', 'references']) {\n const header = this.root.headers.find(line => line.key === key);\n if (header && header.value) {\n const camelKey = key.replace(/\\-(.)/g, (o, c) => c.toUpperCase());\n message[camelKey] = decodeWords(header.value);\n }\n }\n\n let dateHeader = this.root.headers.find(line => line.key === 'date');\n if (dateHeader) {\n let date = new Date(dateHeader.value);\n if (!date || date.toString() === 'Invalid Date') {\n date = dateHeader.value;\n } else {\n // enforce ISO format if seems to be a valid date\n date = date.toISOString();\n }\n message.date = date;\n }\n\n if (this.textContent?.html) {\n message.html = this.textContent.html;\n }\n\n if (this.textContent?.plain) {\n message.text = this.textContent.plain;\n }\n\n message.attachments = this.attachments;\n\n switch (this.attachmentEncoding) {\n case 'arraybuffer':\n break;\n\n case 'base64':\n for (let attachment of message.attachments || []) {\n if (attachment?.content) {\n attachment.content = base64ArrayBuffer(attachment.content);\n attachment.encoding = 'base64';\n }\n }\n break;\n\n case 'utf8':\n let attachmentDecoder = new TextDecoder('utf8');\n for (let attachment of message.attachments || []) {\n if (attachment?.content) {\n attachment.content = attachmentDecoder.decode(attachment.content);\n attachment.encoding = 'utf8';\n }\n }\n break;\n\n default:\n throw new Error('Unknwon attachment encoding');\n }\n\n return message;\n }\n}\n", "// worker/src/utils.ts\n/**\n * \u4F7F\u7528\u5BC6\u94A5\u5BF9\u6587\u672C\u8FDB\u884C\u7B80\u5355\u7684 XOR \u52A0\u5BC6\u3002\n * @param text \u8981\u52A0\u5BC6\u7684\u6587\u672C\u3002\n * @param secret \u52A0\u5BC6\u5BC6\u94A5\u3002\n * @returns \u52A0\u5BC6\u540E\u7684 Base64 \u7F16\u7801\u5B57\u7B26\u4E32\u3002\n */\nexport function encrypt(text: string, secret: string): string {\n let result = '';\n for (let i = 0; i < text.length; i++) {\n // \u5BF9\u6BCF\u4E2A\u5B57\u7B26\u7684 ASCII \u7801\u4E0E\u5BC6\u94A5\u4E2D\u5BF9\u5E94\u4F4D\u7F6E\u7684\u5B57\u7B26 ASCII \u7801\u8FDB\u884C\u5F02\u6216\u64CD\u4F5C\n result += String.fromCharCode(text.charCodeAt(i) ^ secret.charCodeAt(i % secret.length));\n }\n // \u5C06\u52A0\u5BC6\u540E\u7684\u7ED3\u679C\u8F6C\u6362\u4E3A Base64 \u7F16\u7801\uFF0C\u4F7F\u5176\u66F4\u5B89\u5168\u5730\u4F20\u8F93\n return btoa(result);\n}\n\n/**\n * \u4F7F\u7528\u5BC6\u94A5\u5BF9 Base64 \u7F16\u7801\u7684\u52A0\u5BC6\u6587\u672C\u8FDB\u884C\u89E3\u5BC6\u3002\n * @param encryptedText \u52A0\u5BC6\u540E\u7684 Base64 \u7F16\u7801\u5B57\u7B26\u4E32\u3002\n * @param secret \u89E3\u5BC6\u5BC6\u94A5\u3002\n * @returns \u89E3\u5BC6\u540E\u7684\u539F\u59CB\u6587\u672C\u3002\n */\nexport function decrypt(encryptedText: string, secret: string): string {\n // \u9996\u5148\u5BF9 Base64 \u7F16\u7801\u7684\u5B57\u7B26\u4E32\u8FDB\u884C\u89E3\u7801\n const text = atob(encryptedText);\n let result = '';\n for (let i = 0; i < text.length; i++) {\n // \u540C\u6837\u8FDB\u884C\u5F02\u6216\u64CD\u4F5C\u6765\u8FD8\u539F\u539F\u59CB\u5B57\u7B26\n result += String.fromCharCode(text.charCodeAt(i) ^ secret.charCodeAt(i % secret.length));\n }\n return result;\n}", "import { Context, Next } from 'hono';\nimport { getD1DB } from '../../../database/db';\nimport { findApiKeyByKey, updateApiKeyLastUsed, incrementApiCalls } from '../../../database/dao';\nimport type { Env } from '../../../index';\n\n/**\n * API Key \u8BA4\u8BC1\u4E2D\u95F4\u4EF6\n * \u4ECE\u8BF7\u6C42\u5934 X-API-Key \u6216 Authorization: Bearer \u4E2D\u63D0\u53D6 API Key\n */\nexport const apiKeyAuth = async (c: Context<{ Bindings: Env }>, next: Next) => {\n // 1. \u63D0\u53D6 API Key\n let apiKey = c.req.header('X-API-Key');\n\n if (!apiKey) {\n const authHeader = c.req.header('Authorization');\n if (authHeader?.startsWith('Bearer ')) {\n apiKey = authHeader.substring(7);\n }\n }\n\n if (!apiKey) {\n return c.json({\n error: {\n code: 'UNAUTHORIZED',\n message: 'Missing API Key. Provide it via X-API-Key header or Authorization: Bearer ',\n }\n }, 401);\n }\n\n // 2. \u9A8C\u8BC1 API Key\n const db = getD1DB(c.env.DB);\n const keyRecord = await findApiKeyByKey(db, apiKey);\n\n if (!keyRecord) {\n return c.json({\n error: {\n code: 'UNAUTHORIZED',\n message: 'Invalid API Key',\n }\n }, 401);\n }\n\n // 3. \u68C0\u67E5\u662F\u5426\u542F\u7528\n if (!keyRecord.isActive) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'API Key is disabled',\n }\n }, 403);\n }\n\n // 4. \u68C0\u67E5\u662F\u5426\u8FC7\u671F\n if (keyRecord.expiresAt && keyRecord.expiresAt < new Date()) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'API Key has expired',\n }\n }, 403);\n }\n\n // 5. \u66F4\u65B0\u6700\u540E\u4F7F\u7528\u65F6\u95F4 (\u5F02\u6B65\uFF0C\u4E0D\u963B\u585E\u8BF7\u6C42)\n c.executionCtx.waitUntil(updateApiKeyLastUsed(db, keyRecord.id));\n\n // 6. \u589E\u52A0 API \u8C03\u7528\u8BA1\u6570 (\u5F02\u6B65\uFF0C\u4E0D\u963B\u585E\u8BF7\u6C42)\n c.executionCtx.waitUntil(incrementApiCalls(db));\n\n // 7. \u5C06 API Key \u4FE1\u606F\u5B58\u5165\u4E0A\u4E0B\u6587\n c.set('apiKey', {\n id: keyRecord.id,\n rateLimit: keyRecord.rateLimit || 100,\n });\n\n await next();\n};\n", "import { Hono } from 'hono';\nimport type { Env } from '../../../index';\nimport { getD1DB } from '../../../database/db';\nimport { nanoid } from 'nanoid/non-secure';\nimport {\n insertMailbox,\n findMailboxById,\n getMailboxMessages,\n findMailboxMessage,\n deleteMailboxMessage,\n getMailboxMessageCount,\n incrementAddressesCreated,\n} from '../../../database/dao';\n\n// \u968F\u673A\u90AE\u7BB1\u540D\u79F0\u751F\u6210\nfunction generateRandomLocalPart(): string {\n const adjectives = ['quick', 'lazy', 'happy', 'sad', 'bright', 'dark', 'warm', 'cold', 'soft', 'hard'];\n const nouns = ['fox', 'dog', 'cat', 'bird', 'fish', 'lion', 'bear', 'wolf', 'deer', 'hawk'];\n const adj = adjectives[Math.floor(Math.random() * adjectives.length)];\n const noun = nouns[Math.floor(Math.random() * nouns.length)];\n const num = Math.floor(Math.random() * 1000);\n return `${adj}-${noun}-${num}`;\n}\n\nconst mailboxesRouter = new Hono<{ Bindings: Env }>();\n\n// POST /api/v1/mailboxes - \u521B\u5EFA\u90AE\u7BB1\nmailboxesRouter.post('/', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n\n let body: { localPart?: string; domain?: string; expiresIn?: number } = {};\n try {\n body = await c.req.json();\n } catch {\n // \u5141\u8BB8\u7A7A\u8BF7\u6C42\u4F53\n }\n\n // \u83B7\u53D6\u53EF\u7528\u57DF\u540D\n const availableDomains = c.env.EMAIL_DOMAIN ? c.env.EMAIL_DOMAIN.split(',').map(d => d.trim()) : [];\n if (availableDomains.length === 0) {\n return c.json({\n error: {\n code: 'CONFIGURATION_ERROR',\n message: 'No email domains configured',\n }\n }, 500);\n }\n\n // \u9A8C\u8BC1\u57DF\u540D\n const domain = body.domain || availableDomains[0];\n if (!availableDomains.includes(domain)) {\n return c.json({\n error: {\n code: 'VALIDATION_ERROR',\n message: `Invalid domain. Available domains: ${availableDomains.join(', ')}`,\n details: { field: 'domain', allowed: availableDomains }\n }\n }, 400);\n }\n\n // \u751F\u6210\u90AE\u7BB1\u5730\u5740\n const localPart = body.localPart || generateRandomLocalPart();\n const address = `${localPart}@${domain}`;\n\n // \u8BA1\u7B97\u8FC7\u671F\u65F6\u95F4\n const expiresIn = body.expiresIn || 24 * 60 * 60; // \u9ED8\u8BA4 24 \u5C0F\u65F6\n const expiresAt = new Date(Date.now() + expiresIn * 1000);\n\n const now = new Date();\n const mailbox = {\n id: nanoid(),\n address,\n domain,\n expiresAt,\n apiKeyId: apiKey.id,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n await insertMailbox(db, mailbox);\n // \u589E\u52A0\u90AE\u7BB1\u5730\u5740\u521B\u5EFA\u8BA1\u6570\n await incrementAddressesCreated(db);\n return c.json({\n data: {\n id: mailbox.id,\n address: mailbox.address,\n domain: mailbox.domain,\n expiresAt: mailbox.expiresAt.toISOString(),\n createdAt: mailbox.createdAt.toISOString(),\n }\n }, 201);\n } catch (e: any) {\n if (e.message?.includes('UNIQUE constraint failed')) {\n return c.json({\n error: {\n code: 'CONFLICT',\n message: 'Email address already exists',\n }\n }, 409);\n }\n console.error('Create mailbox error:', e);\n return c.json({\n error: {\n code: 'INTERNAL_ERROR',\n message: 'Failed to create mailbox',\n }\n }, 500);\n }\n});\n\n// GET /api/v1/mailboxes/:id - \u83B7\u53D6\u90AE\u7BB1\u4FE1\u606F\nmailboxesRouter.get('/:id', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n const messageCount = await getMailboxMessageCount(db, mailbox.address);\n\n return c.json({\n data: {\n id: mailbox.id,\n address: mailbox.address,\n domain: mailbox.domain,\n expiresAt: mailbox.expiresAt?.toISOString() || null,\n createdAt: mailbox.createdAt.toISOString(),\n messageCount,\n }\n });\n});\n\n// GET /api/v1/mailboxes/:id/messages - \u83B7\u53D6\u6536\u4EF6\u7BB1\nmailboxesRouter.get('/:id/messages', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n // \u89E3\u6790\u5206\u9875\u53C2\u6570\n const page = Math.max(1, parseInt(c.req.query('page') || '1', 10));\n const limit = Math.min(100, Math.max(1, parseInt(c.req.query('limit') || '20', 10)));\n const sort = c.req.query('sort') === 'asc' ? 'asc' : 'desc';\n\n const { messages, total, totalPages } = await getMailboxMessages(db, mailbox.address, { page, limit, sort });\n\n return c.json({\n data: messages.map((msg) => ({\n id: msg.id,\n from: msg.from,\n subject: msg.subject,\n preview: msg.text?.substring(0, 100) || null,\n receivedAt: msg.createdAt.toISOString(),\n })),\n pagination: {\n page,\n limit,\n total,\n totalPages,\n hasMore: page < totalPages,\n }\n });\n});\n\n// GET /api/v1/mailboxes/:id/messages/:messageId - \u83B7\u53D6\u90AE\u4EF6\u8BE6\u60C5\nmailboxesRouter.get('/:id/messages/:messageId', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id, messageId } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n const message = await findMailboxMessage(db, mailbox.address, messageId);\n if (!message) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Message not found',\n }\n }, 404);\n }\n\n return c.json({\n data: {\n id: message.id,\n messageId: message.messageId,\n from: message.from,\n to: message.to,\n cc: message.cc,\n bcc: message.bcc,\n replyTo: message.replyTo,\n subject: message.subject,\n text: message.text,\n html: message.html,\n headers: message.headers,\n receivedAt: message.createdAt.toISOString(),\n }\n });\n});\n\n// DELETE /api/v1/mailboxes/:id/messages/:messageId - \u5220\u9664\u90AE\u4EF6\nmailboxesRouter.delete('/:id/messages/:messageId', async (c) => {\n const db = getD1DB(c.env.DB);\n const apiKey = c.get('apiKey') as { id: string; rateLimit: number };\n const { id, messageId } = c.req.param();\n\n const mailbox = await findMailboxById(db, id);\n if (!mailbox) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Mailbox not found',\n }\n }, 404);\n }\n\n // \u9A8C\u8BC1\u6240\u5C5E\u5173\u7CFB\n if (mailbox.apiKeyId !== apiKey.id) {\n return c.json({\n error: {\n code: 'FORBIDDEN',\n message: 'You do not have access to this mailbox',\n }\n }, 403);\n }\n\n const deleted = await deleteMailboxMessage(db, mailbox.address, messageId);\n if (!deleted) {\n return c.json({\n error: {\n code: 'NOT_FOUND',\n message: 'Message not found',\n }\n }, 404);\n }\n\n return c.json({\n data: {\n deleted: true,\n id: messageId,\n }\n });\n});\n\nexport default mailboxesRouter;\n", "import { Hono } from 'hono';\nimport { cors } from 'hono/cors';\nimport type { Env } from '../../index';\nimport { apiKeyAuth } from './middleware/apiKeyAuth';\nimport mailboxesRouter from './routes/mailboxes';\n\nconst v1 = new Hono<{ Bindings: Env }>();\n\n// \u914D\u7F6E CORS\nv1.use('/*', cors());\n\n// \u6240\u6709 v1 \u8DEF\u7531\u90FD\u9700\u8981 API Key \u8BA4\u8BC1\nv1.use('/*', apiKeyAuth);\n\n// \u6302\u8F7D\u90AE\u7BB1\u8DEF\u7531\nv1.route('/mailboxes', mailboxesRouter);\n\nexport default v1;\n", "import { Hono } from 'hono';\nimport { serveStatic } from 'hono/cloudflare-workers';\nimport { cors } from 'hono/cors';\n// \u5BFC\u5165\u6570\u636E\u5E93\u76F8\u5173\u7684\u6A21\u5757\nimport { deleteEmails, findEmailById, getEmailsByMessageTo, insertEmail, deleteExpiredEmails, insertApiKey, getSiteStats, incrementEmailsReceived, incrementApiKeysCreated, incrementAddressesCreated } from './database/dao';\nimport { getD1DB } from './database/db';\nimport { InsertEmail, insertEmailSchema } from './database/schema';\nimport { nanoid } from 'nanoid/non-secure';\nimport PostalMime from 'postal-mime';\n// \u5BFC\u5165\u52A0\u89E3\u5BC6\u5DE5\u5177\u51FD\u6570\nimport { decrypt } from './utils';\n// \u5BFC\u5165 v1 API\nimport v1Api from './api/v1';\n\n\n// \u5B9A\u4E49 Cloudflare \u7ED1\u5B9A\u548C\u73AF\u5883\u53D8\u91CF\u7684\u7C7B\u578B\nexport interface Env {\n DB: D1Database;\n ASSETS: Fetcher;\n\n // \u4ECE wrangler.toml \u4E2D\u4F20\u5165\u7684\u73AF\u5883\u53D8\u91CF\n EMAIL_DOMAIN: string;\n COOKIES_SECRET: string;\n TURNSTILE_KEY: string;\n TURNSTILE_SECRET: string;\n}\n\n// \u521D\u59CB\u5316 Hono \u5E94\u7528\nconst app = new Hono<{ Bindings: Env }>();\n\n// \u914D\u7F6E CORS\napp.use('/api/*', cors());\n\n// fix: \u589E\u5F3A\u8BF7\u6C42\u4F53\u9A8C\u8BC1\u903B\u8F91\u3002\n// \u6B64\u524D\u7684\u5B9E\u73B0\u65B9\u5F0F\u5728\u8BF7\u6C42\u4F53\u89E3\u6790\u5931\u8D25\u65F6\u4F1A\u9759\u9ED8\u5904\u7406\uFF0C\u5BFC\u81F4\u540E\u7EED\u5904\u7406\u6D41\u7A0B\u56E0\u7F3A\u5C11\u6570\u636E\u800C\u8FD4\u56DE\u4E00\u4E2A\u6A21\u7CCA\u7684400\u9519\u8BEF\u3002\n// \u65B0\u7684\u5B9E\u73B0\u65B9\u5F0F\u4F1A\u4E25\u683C\u6821\u9A8C\u8BF7\u6C42\u4F53\uFF0C\u5982\u679C\u89E3\u6790\u4E3AJSON\u5931\u8D25\uFF08\u4F8B\u5982\u8BF7\u6C42\u4F53\u4E3A\u7A7A\u6216\u683C\u5F0F\u9519\u8BEF\uFF09\uFF0C\u5C06\u7ACB\u5373\u8FD4\u56DE\u4E00\u4E2A\u660E\u786E\u7684400\u9519\u8BEF\uFF0C\u4ECE\u800C\u963B\u6B62\u65E0\u6548\u8BF7\u6C42\u7EE7\u7EED\u6267\u884C\u3002\nconst turnstile = async (c, next) => {\n let body: any;\n try {\n // \u5C1D\u8BD5\u5C06\u8BF7\u6C42\u4F53\u89E3\u6790\u4E3AJSON\u3002\u5982\u679C\u5931\u8D25\uFF0C\u5C06\u629B\u51FA\u5F02\u5E38\u3002\n body = await c.req.json();\n } catch (e) {\n // \u6355\u83B7\u5F02\u5E38\uFF0C\u8BB0\u5F55\u9519\u8BEF\u65E5\u5FD7\uFF0C\u5E76\u8FD4\u56DE\u4E00\u4E2A\u6E05\u6670\u7684\u9519\u8BEF\u54CD\u5E94\u3002\n console.error(\"\u8BF7\u6C42\u4F53\u89E3\u6790\u4E3AJSON\u65F6\u51FA\u9519:\", e);\n return c.json({ message: '\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002' }, 400);\n }\n\n // \u5C06\u89E3\u6790\u540E\u7684 body \u5B58\u5165\u4E0A\u4E0B\u6587\uFF0C\u4EE5\u4FBF\u4E0B\u6E38\u5904\u7406\u5668\u76F4\u63A5\u4F7F\u7528\uFF0C\u907F\u514D\u91CD\u590D\u89E3\u6790\u3002\n c.set('parsedBody', body);\n\n const token = body.token || c.req.header('cf-turnstile-token');\n const ip = c.req.header('CF-Connecting-IP');\n\n if (!token) {\n return c.json({ message: '\u7F3A\u5C11 turnstile token' }, 400);\n }\n\n // fix: \u5207\u6362\u5230 application/x-www-form-urlencoded \u683C\u5F0F\u6765\u53D1\u9001\u9A8C\u8BC1\u8BF7\u6C42\u3002\n // \u8FD9\u53EF\u4EE5\u63D0\u9AD8\u517C\u5BB9\u6027\uFF0C\u5E76\u53EF\u80FD\u89E3\u51B3\u7531 FormData \u7F16\u7801\u5F15\u8D77\u7684\u8FB9\u754C\u95EE\u9898\u3002\n const params = new URLSearchParams();\n params.append('secret', c.env.TURNSTILE_SECRET);\n params.append('response', token);\n if (ip) {\n params.append('remoteip', ip);\n }\n\n const res = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: params.toString(),\n });\n\n const data = await res.json();\n if (!data.success) {\n // feat: \u589E\u52A0\u8BE6\u7EC6\u7684\u9519\u8BEF\u65E5\u5FD7\uFF0C\u65B9\u4FBF\u8C03\u8BD5\n console.error(\"Turnstile \u9A8C\u8BC1\u5931\u8D25:\", data['error-codes']);\n return c.json({ message: 'token \u65E0\u6548' }, 400);\n }\n\n await next();\n};\n\n// API \u8DEF\u7531\u7EC4\nconst api = app.basePath('/api');\n\n// feat: \u65B0\u589E\u4E00\u4E2A\u4E13\u95E8\u7528\u4E8E\u4EBA\u673A\u9A8C\u8BC1\u7684\u63A5\u53E3\u3002\n// \u524D\u7AEF\u5E94\u5728\u751F\u6210\u90AE\u7BB1\u5730\u5740\u524D\u5148\u8C03\u7528\u6B64\u63A5\u53E3\u3002\napi.post('/verify', turnstile, async (c) => {\n // turnstile \u4E2D\u95F4\u4EF6\u5DF2\u7ECF\u5B8C\u6210\u4E86\u9A8C\u8BC1\u5DE5\u4F5C\u3002\n // \u5982\u679C\u4EE3\u7801\u80FD\u6267\u884C\u5230\u8FD9\u91CC\uFF0C\u8BF4\u660E\u9A8C\u8BC1\u6210\u529F\u3002\n return c.json({ success: true });\n});\n\n// \u751F\u6210 API Key \u7684\u51FD\u6570\nfunction generateApiKey(): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n let key = 'vmail_';\n for (let i = 0; i < 32; i++) {\n key += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return key;\n}\n\n// \u521B\u5EFA API Key \u63A5\u53E3\uFF08\u9700\u8981 Turnstile \u9A8C\u8BC1\uFF09\napi.post('/api-keys', turnstile, async (c) => {\n const db = getD1DB(c.env.DB);\n const body = c.get('parsedBody') as { name?: string };\n\n const now = new Date();\n const apiKey = generateApiKey();\n const keyPrefix = apiKey.substring(0, 12) + '...';\n\n const newApiKey = {\n id: nanoid(),\n key: apiKey,\n keyPrefix: keyPrefix,\n name: body?.name || null,\n rateLimit: 100,\n isActive: true,\n lastUsedAt: null,\n expiresAt: null,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n await insertApiKey(db, newApiKey);\n // \u589E\u52A0 API Key \u521B\u5EFA\u8BA1\u6570\n await incrementApiKeysCreated(db);\n // \u53EA\u8FD4\u56DE\u4E00\u6B21\u5B8C\u6574\u7684 API Key\uFF0C\u4E4B\u540E\u65E0\u6CD5\u518D\u83B7\u53D6\n return c.json({\n data: {\n id: newApiKey.id,\n key: apiKey, // \u5B8C\u6574\u7684 API Key\uFF0C\u53EA\u5C55\u793A\u8FD9\u4E00\u6B21\n keyPrefix: keyPrefix,\n name: newApiKey.name,\n createdAt: now.toISOString(),\n },\n message: 'API Key created successfully. Please save it now, it will not be shown again!'\n }, 201);\n } catch (e: any) {\n console.error('Create API Key error:', e);\n return c.json({\n error: {\n code: 'INTERNAL_ERROR',\n message: 'Failed to create API Key',\n }\n }, 500);\n }\n});\n\n// fix: \u79FB\u9664\u83B7\u53D6\u90AE\u4EF6\u5217\u8868\u63A5\u53E3\u7684 turnstile \u9A8C\u8BC1\u3002\n// \u8FD9\u4E2A\u63A5\u53E3\u73B0\u5728\u662F\u516C\u5F00\u7684\uFF0C\u5237\u65B0\u6536\u4EF6\u7BB1\u65F6\u53EF\u4EE5\u76F4\u63A5\u8C03\u7528\uFF0C\u4E0D\u518D\u9700\u8981\u91CD\u590D\u9A8C\u8BC1\u3002\napi.post('/emails', async (c) => {\n const db = getD1DB(c.env.DB);\n let body: any;\n try {\n body = await c.req.json();\n } catch (e) {\n return c.json({ message: '\u9519\u8BEF\u7684\u8BF7\u6C42\uFF1A\u8BF7\u6C42\u4F53\u65E0\u6548\u6216\u4E3A\u7A7A\u3002' }, 400);\n }\n const address = body?.address;\n\n if (!address) {\n return c.json({ message: 'address is required' }, 400);\n }\n const emails = await getEmailsByMessageTo(db, address as string);\n return c.json(emails);\n});\n\n\n// \u83B7\u53D6\u5355\u5C01\u90AE\u4EF6\u8BE6\u60C5\napi.get('/emails/:id', async (c) => {\n const db = getD1DB(c.env.DB);\n const { id } = c.req.param();\n // \u51FD\u6570\u8C03\u7528\u4FEE\u6B63\uFF1A\u4F7F\u7528 findEmailById \u51FD\u6570\n const email = await findEmailById(db, id);\n if (!email) {\n return c.json({ message: 'Email not found'}, 404);\n }\n return c.json(email);\n});\n\n// fix: \u5220\u9664\u90AE\u4EF6\u63A5\u53E3\u4E0D\u518D\u9700\u8981 turnstile \u9A8C\u8BC1\uFF0C\u56E0\u4E3A\u901A\u5E38\u8FD9\u662F\u5728\u5DF2\u77E5\u90AE\u7BB1\u4E0A\u4E0B\u6587\u4E2D\u64CD\u4F5C\u7684\u3002\napi.post('/delete-emails', async (c) => {\n const db = getD1DB(c.env.DB);\n const body = await c.req.json();\n const ids = body?.ids;\n if (!ids || !Array.isArray(ids) || ids.length === 0) {\n return c.json({ message: 'ids are required' }, 400);\n }\n const result = await deleteEmails(db, ids as string[]);\n return c.json(result);\n});\n\n// \u4FEE\u590D\uFF1A\u79FB\u9664\u767B\u5F55\u63A5\u53E3\u7684 turnstile \u4E2D\u95F4\u4EF6\uFF0C\u4F7F\u5176\u4E0D\u518D\u9700\u8981\u4EBA\u673A\u9A8C\u8BC1\u3002\napi.post('/login', async (c) => {\n // const db = getD1DB(c.env.DB); // \u6570\u636E\u5E93\u8FDE\u63A5\u4E0D\u518D\u9700\u8981\u7528\u4E8E\u9A8C\u8BC1\n // \u4FEE\u590D\uFF1A\u7531\u4E8E\u79FB\u9664\u4E86 turnstile \u4E2D\u95F4\u4EF6\uFF0C\u73B0\u5728\u9700\u8981\u5728\u6B64\u5904\u76F4\u63A5\u89E3\u6790\u8BF7\u6C42\u4F53\u3002\n const body = await c.req.json();\n const password = body?.password;\n\n if (!password) {\n return c.json({ message: 'Password is required' }, 400);\n }\n\n try {\n // \u89E3\u5BC6\u5BC6\u7801\u4EE5\u83B7\u53D6\u90AE\u7BB1\u5730\u5740\n const address = decrypt(password, c.env.COOKIES_SECRET);\n \n // **\u6838\u5FC3\u4FEE\u590D**\uFF1A\u79FB\u9664\u6570\u636E\u5E93\u90AE\u4EF6\u68C0\u67E5\u903B\u8F91\n // \u4E0D\u518D\u9700\u8981\u67E5\u8BE2\u6570\u636E\u5E93\u4E2D\u662F\u5426\u5B58\u5728\u8BE5\u5730\u5740\u7684\u90AE\u4EF6\n // const emails = await getEmailsByMessageTo(db, address);\n // if (emails.length === 0) {\n // \u5982\u679C\u8BE5\u5730\u5740\u4ECE\u672A\u6536\u5230\u8FC7\u90AE\u4EF6\uFF0C\u5219\u89C6\u4E3A\u65E0\u6548\u5BC6\u7801\n // return c.json({ message: 'Invalid password' }, 404);\n // }\n\n // \u53EF\u9009\uFF1A\u6DFB\u52A0\u4E00\u4E2A\u7B80\u5355\u7684\u90AE\u7BB1\u5730\u5740\u683C\u5F0F\u6821\u9A8C\uFF0C\u589E\u52A0\u5065\u58EE\u6027\n // \u4F8B\u5982\uFF0C\u68C0\u67E5\u662F\u5426\u5305\u542B '@' \u7B26\u53F7\n if (!address || typeof address !== 'string' || !address.includes('@')) {\n console.error(\"\u89E3\u5BC6\u540E\u7684\u5730\u5740\u683C\u5F0F\u65E0\u6548:\", address);\n return c.json({ message: 'Invalid password' }, 400); // \u5730\u5740\u683C\u5F0F\u4E0D\u5BF9\u4E5F\u89C6\u4E3A\u5BC6\u7801\u65E0\u6548\n }\n\n // \u767B\u5F55\u6210\u529F\uFF0C\u8FD4\u56DE\u90AE\u7BB1\u5730\u5740\n return c.json({ address });\n } catch (e) {\n console.error(\"Login error:\", e);\n // \u5982\u679C\u89E3\u5BC6\u5931\u8D25\u6216\u53D1\u751F\u5176\u4ED6\u9519\u8BEF\uFF0C\u8FD4\u56DE\u65E0\u6548\u5BC6\u7801\u9519\u8BEF\n return c.json({ message: 'Invalid password' }, 400);\n }\n});\n\n\n// \u524D\u7AEF\u914D\u7F6E\u63A5\u53E3\napp.get('/config', (c) => {\n // feat: \u5C06 emailDomain \u62C6\u5206\u4E3A\u6570\u7EC4\u4EE5\u652F\u6301\u591A\u57DF\u540D\n const emailDomain = c.env.EMAIL_DOMAIN ? c.env.EMAIL_DOMAIN.split(',').map(d => d.trim()) : [];\n return c.json({\n emailDomain: emailDomain, // \u8FD4\u56DE\u57DF\u540D\u6570\u7EC4\n turnstileKey: c.env.TURNSTILE_KEY,\n cookiesSecret: c.env.COOKIES_SECRET,\n });\n});\n\n// \u7AD9\u70B9\u7EDF\u8BA1\u6570\u636E\u63A5\u53E3\uFF08\u516C\u5F00\uFF09\napi.get('/stats', async (c) => {\n const db = getD1DB(c.env.DB);\n const stats = await getSiteStats(db);\n if (!stats) {\n return c.json({\n totalAddressesCreated: 0,\n totalEmailsReceived: 0,\n totalApiCalls: 0,\n totalApiKeysCreated: 0,\n });\n }\n return c.json({\n totalAddressesCreated: stats.totalAddressesCreated,\n totalEmailsReceived: stats.totalEmailsReceived,\n totalApiCalls: stats.totalApiCalls,\n totalApiKeysCreated: stats.totalApiKeysCreated,\n });\n});\n\n// \u6302\u8F7D v1 API \u8DEF\u7531\napp.route('/api/v1', v1Api);\n\n\n// \u9759\u6001\u8D44\u6E90\u670D\u52A1 (\u653E\u5728\u6700\u540E\uFF0C\u4F5C\u4E3A\u9ED8\u8BA4\u8DEF\u7531)\n// \u4FEE\u6B63: \u786E\u4FDD serveStatic \u6B63\u786E\u6307\u5411\u9759\u6001\u6587\u4EF6\u76EE\u5F55\n// Hono v4 \u4E2D serveStatic \u9ED8\u8BA4\u5904\u7406\u6839\u8DEF\u5F84\uFF0C\u6211\u4EEC\u9700\u8981\u786E\u4FDD\u5B83\u6307\u5411\u6B63\u786E\u7684\u5B50\u76EE\u5F55\napp.get('/*', serveStatic({ root: './' }))\napp.get('/assets/*', serveStatic({ root: './' }))\n\n\n// Worker \u4E3B\u5904\u7406\u903B\u8F91\nexport default {\n // \u90AE\u4EF6\u5904\u7406\u903B\u8F91\n async email(message: ForwardableEmail, env: Env, ctx: ExecutionContext) {\n try {\n const db = getD1DB(env.DB);\n // \u5C06\u539F\u59CB\u90AE\u4EF6\u6D41\u8F6C\u6362\u4E3A\u6587\u672C\n const raw = await new Response(message.raw).text();\n // \u4F7F\u7528 postal-mime \u89E3\u6790\u90AE\u4EF6\n const mail = await new PostalMime().parse(raw);\n const now = new Date();\n\n // **\u5173\u952E\u4FEE\u590D**\uFF1A\u663E\u5F0F\u5730\u4ECE\u89E3\u6790\u7ED3\u679C\u4E2D\u6620\u5C04\u5B57\u6BB5\uFF0C\u800C\u4E0D\u662F\u4F7F\u7528\u5BF9\u8C61\u5C55\u5F00(...)\n // \u8FD9\u6837\u53EF\u4EE5\u907F\u514D\u5C5E\u6027\u8986\u76D6\u548C\u7C7B\u578B\u4E0D\u5339\u914D\u7684\u95EE\u9898\n const newEmail: InsertEmail = {\n id: nanoid(),\n messageFrom: message.from,\n messageTo: message.to,\n headers: mail.headers || [], // \u786E\u4FDD headers \u5B58\u5728\n from: mail.from,\n sender: mail.sender,\n replyTo: mail.replyTo,\n deliveredTo: mail.deliveredTo,\n returnPath: mail.returnPath,\n to: mail.to,\n cc: mail.cc,\n bcc: mail.bcc,\n subject: mail.subject,\n messageId: mail.messageId, // messageId \u5728\u6570\u636E\u5E93\u4E2D\u662F\u5FC5\u9700\u7684\n inReplyTo: mail.inReplyTo,\n references: mail.references,\n date: mail.date,\n html: mail.html,\n text: mail.text,\n createdAt: now,\n updatedAt: now,\n };\n\n // \u9A8C\u8BC1\u5F85\u63D2\u5165\u7684\u6570\u636E\u662F\u5426\u7B26\u5408 schema\n const email = insertEmailSchema.parse(newEmail);\n // \u63D2\u5165\u6570\u636E\u5E93\n await insertEmail(db, email);\n // \u589E\u52A0\u90AE\u4EF6\u63A5\u6536\u8BA1\u6570\n await incrementEmailsReceived(db);\n } catch (e: any) {\n // **\u5173\u952E\u4FEE\u590D**\uFF1A\u5411 Cloudflare \u53D1\u51FA\u62D2\u7EDD\u4FE1\u53F7\n // \u5F53\u53D1\u751F\u4EFB\u4F55\u9519\u8BEF\u65F6\uFF0C\u8C03\u7528 message.setReject() \u544A\u77E5 Cloudflare \u5904\u7406\u5931\u8D25\u3002\n // \u8FD9\u4F1A\u8BA9 Cloudflare \u5C1D\u8BD5\u91CD\u65B0\u6295\u9012\u90AE\u4EF6\uFF0C\u800C\u4E0D\u662F\u76F4\u63A5\u5220\u9664\u3002\n console.error('\u5904\u7406\u90AE\u4EF6\u5931\u8D25:', e);\n message.setReject(`\u90AE\u4EF6\u5904\u7406\u5931\u8D25: ${e.message}`);\n }\n },\n\n // HTTP \u8BF7\u6C42\u5904\u7406\u903B\u8F91\n async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise {\n const url = new URL(request.url);\n // API \u8DEF\u7531\n if (url.pathname.startsWith('/api/') || url.pathname === '/config') {\n return app.fetch(request, env, ctx);\n }\n\n // \u9759\u6001\u8D44\u6E90\u8BF7\u6C42\n const response = await env.ASSETS.fetch(request);\n\n // SPA \u8DEF\u7531\u56DE\u9000\uFF1A\u5982\u679C\u9759\u6001\u8D44\u6E90\u8FD4\u56DE 404\uFF0C\u5219\u8FD4\u56DE index.html\n // \u8FD9\u6837\u53EF\u4EE5\u652F\u6301\u76F4\u63A5\u8BBF\u95EE /api-docs \u7B49\u524D\u7AEF\u8DEF\u7531\n if (response.status === 404) {\n const indexRequest = new Request(new URL('/', request.url).toString(), request);\n return env.ASSETS.fetch(indexRequest);\n }\n\n return response;\n },\n\n // \u5B9A\u65F6\u4EFB\u52A1 (\u6E05\u7406\u8FC7\u671F\u90AE\u4EF6)\n async scheduled(event, env, ctx) {\n const db = getD1DB(env.DB);\n // \u4FEE\u590D\uFF1A\u5C06\u6E05\u7406\u65F6\u95F4\u4ECE1\u5C0F\u65F6\u4FEE\u6539\u4E3A24\u5C0F\u65F6\uFF081\u5929\uFF09\n const oneDayAgo = new Date(Date.now() - 1000 * 60 * 60 * 24);\n await deleteExpiredEmails(db, oneDayAgo);\n console.log(`\u5DF2\u6E05\u7406 ${oneDayAgo.toISOString()} \u4E4B\u524D\u7684\u8FC7\u671F\u90AE\u4EF6`); // \u6DFB\u52A0\u65E5\u5FD7\n },\n};\n", "import type { Middleware } from \"./common\";\n\nconst drainBody: Middleware = async (request, env, _ctx, middlewareCtx) => {\n\ttry {\n\t\treturn await middlewareCtx.next(request, env);\n\t} finally {\n\t\ttry {\n\t\t\tif (request.body !== null && !request.bodyUsed) {\n\t\t\t\tconst reader = request.body.getReader();\n\t\t\t\twhile (!(await reader.read()).done) {}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Failed to drain the unused request body.\", e);\n\t\t}\n\t}\n};\n\nexport default drainBody;\n", "import type { Middleware } from \"./common\";\n\ninterface JsonError {\n\tmessage?: string;\n\tname?: string;\n\tstack?: string;\n\tcause?: JsonError;\n}\n\nfunction reduceError(e: any): JsonError {\n\treturn {\n\t\tname: e?.name,\n\t\tmessage: e?.message ?? String(e),\n\t\tstack: e?.stack,\n\t\tcause: e?.cause === undefined ? undefined : reduceError(e.cause),\n\t};\n}\n\n// See comment in `bundle.ts` for details on why this is needed\nconst jsonError: Middleware = async (request, env, _ctx, middlewareCtx) => {\n\ttry {\n\t\treturn await middlewareCtx.next(request, env);\n\t} catch (e: any) {\n\t\tconst error = reduceError(e);\n\t\treturn Response.json(error, {\n\t\t\tstatus: 500,\n\t\t\theaders: { \"MF-Experimental-Error-Stack\": \"true\" },\n\t\t});\n\t}\n};\n\nexport default jsonError;\n", "\t\t\t\timport worker, * as OTHER_EXPORTS from \"/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts\";\n\t\t\t\timport * as __MIDDLEWARE_0__ from \"/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-ensure-req-body-drained.ts\";\nimport * as __MIDDLEWARE_1__ from \"/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/middleware-miniflare3-json-error.ts\";\n\n\t\t\t\texport * from \"/Users/songjunxi/Desktop/repos/vmail/worker/src/index.ts\";\n\n\t\t\t\texport const __INTERNAL_WRANGLER_MIDDLEWARE__ = [\n\t\t\t\t\t\n\t\t\t\t\t__MIDDLEWARE_0__.default,__MIDDLEWARE_1__.default\n\t\t\t\t]\n\t\t\t\texport default worker;", "export type Awaitable = T | Promise;\n// TODO: allow dispatching more events?\nexport type Dispatcher = (\n\ttype: \"scheduled\",\n\tinit: { cron?: string }\n) => Awaitable;\n\nexport type IncomingRequest = Request<\n\tunknown,\n\tIncomingRequestCfProperties\n>;\n\nexport interface MiddlewareContext {\n\tdispatch: Dispatcher;\n\tnext(request: IncomingRequest, env: any): Awaitable;\n}\n\nexport type Middleware = (\n\trequest: IncomingRequest,\n\tenv: any,\n\tctx: ExecutionContext,\n\tmiddlewareCtx: MiddlewareContext\n) => Awaitable;\n\nconst __facade_middleware__: Middleware[] = [];\n\n// The register functions allow for the insertion of one or many middleware,\n// We register internal middleware first in the stack, but have no way of controlling\n// the order that addMiddleware is run in service workers so need an internal function.\nexport function __facade_register__(...args: (Middleware | Middleware[])[]) {\n\t__facade_middleware__.push(...args.flat());\n}\nexport function __facade_registerInternal__(\n\t...args: (Middleware | Middleware[])[]\n) {\n\t__facade_middleware__.unshift(...args.flat());\n}\n\nfunction __facade_invokeChain__(\n\trequest: IncomingRequest,\n\tenv: any,\n\tctx: ExecutionContext,\n\tdispatch: Dispatcher,\n\tmiddlewareChain: Middleware[]\n): Awaitable {\n\tconst [head, ...tail] = middlewareChain;\n\tconst middlewareCtx: MiddlewareContext = {\n\t\tdispatch,\n\t\tnext(newRequest, newEnv) {\n\t\t\treturn __facade_invokeChain__(newRequest, newEnv, ctx, dispatch, tail);\n\t\t},\n\t};\n\treturn head(request, env, ctx, middlewareCtx);\n}\n\nexport function __facade_invoke__(\n\trequest: IncomingRequest,\n\tenv: any,\n\tctx: ExecutionContext,\n\tdispatch: Dispatcher,\n\tfinalMiddleware: Middleware\n): Awaitable {\n\treturn __facade_invokeChain__(request, env, ctx, dispatch, [\n\t\t...__facade_middleware__,\n\t\tfinalMiddleware,\n\t]);\n}\n", "// This loads all middlewares exposed on the middleware object and then starts\n// the invocation chain. The big idea is that we can add these to the middleware\n// export dynamically through wrangler, or we can potentially let users directly\n// add them as a sort of \"plugin\" system.\n\nimport ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from \"/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js\";\nimport { __facade_invoke__, __facade_register__, Dispatcher } from \"/Users/songjunxi/Desktop/repos/vmail/node_modules/.pnpm/wrangler@3.114.15/node_modules/wrangler/templates/middleware/common.ts\";\nimport type { WorkerEntrypointConstructor } from \"/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js\";\n\n// Preserve all the exports from the worker\nexport * from \"/Users/songjunxi/Desktop/repos/vmail/.wrangler/tmp/bundle-nk20cv/middleware-insertion-facade.js\";\n\nclass __Facade_ScheduledController__ implements ScheduledController {\n\treadonly #noRetry: ScheduledController[\"noRetry\"];\n\n\tconstructor(\n\t\treadonly scheduledTime: number,\n\t\treadonly cron: string,\n\t\tnoRetry: ScheduledController[\"noRetry\"]\n\t) {\n\t\tthis.#noRetry = noRetry;\n\t}\n\n\tnoRetry() {\n\t\tif (!(this instanceof __Facade_ScheduledController__)) {\n\t\t\tthrow new TypeError(\"Illegal invocation\");\n\t\t}\n\t\t// Need to call native method immediately in case uncaught error thrown\n\t\tthis.#noRetry();\n\t}\n}\n\nfunction wrapExportedHandler(worker: ExportedHandler): ExportedHandler {\n\t// If we don't have any middleware defined, just return the handler as is\n\tif (\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__ === undefined ||\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__.length === 0\n\t) {\n\t\treturn worker;\n\t}\n\t// Otherwise, register all middleware once\n\tfor (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) {\n\t\t__facade_register__(middleware);\n\t}\n\n\tconst fetchDispatcher: ExportedHandlerFetchHandler = function (\n\t\trequest,\n\t\tenv,\n\t\tctx\n\t) {\n\t\tif (worker.fetch === undefined) {\n\t\t\tthrow new Error(\"Handler does not export a fetch() function.\");\n\t\t}\n\t\treturn worker.fetch(request, env, ctx);\n\t};\n\n\treturn {\n\t\t...worker,\n\t\tfetch(request, env, ctx) {\n\t\t\tconst dispatcher: Dispatcher = function (type, init) {\n\t\t\t\tif (type === \"scheduled\" && worker.scheduled !== undefined) {\n\t\t\t\t\tconst controller = new __Facade_ScheduledController__(\n\t\t\t\t\t\tDate.now(),\n\t\t\t\t\t\tinit.cron ?? \"\",\n\t\t\t\t\t\t() => {}\n\t\t\t\t\t);\n\t\t\t\t\treturn worker.scheduled(controller, env, ctx);\n\t\t\t\t}\n\t\t\t};\n\t\t\treturn __facade_invoke__(request, env, ctx, dispatcher, fetchDispatcher);\n\t\t},\n\t};\n}\n\nfunction wrapWorkerEntrypoint(\n\tklass: WorkerEntrypointConstructor\n): WorkerEntrypointConstructor {\n\t// If we don't have any middleware defined, just return the handler as is\n\tif (\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__ === undefined ||\n\t\t__INTERNAL_WRANGLER_MIDDLEWARE__.length === 0\n\t) {\n\t\treturn klass;\n\t}\n\t// Otherwise, register all middleware once\n\tfor (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) {\n\t\t__facade_register__(middleware);\n\t}\n\n\t// `extend`ing `klass` here so other RPC methods remain callable\n\treturn class extends klass {\n\t\t#fetchDispatcher: ExportedHandlerFetchHandler> = (\n\t\t\trequest,\n\t\t\tenv,\n\t\t\tctx\n\t\t) => {\n\t\t\tthis.env = env;\n\t\t\tthis.ctx = ctx;\n\t\t\tif (super.fetch === undefined) {\n\t\t\t\tthrow new Error(\"Entrypoint class does not define a fetch() function.\");\n\t\t\t}\n\t\t\treturn super.fetch(request);\n\t\t};\n\n\t\t#dispatcher: Dispatcher = (type, init) => {\n\t\t\tif (type === \"scheduled\" && super.scheduled !== undefined) {\n\t\t\t\tconst controller = new __Facade_ScheduledController__(\n\t\t\t\t\tDate.now(),\n\t\t\t\t\tinit.cron ?? \"\",\n\t\t\t\t\t() => {}\n\t\t\t\t);\n\t\t\t\treturn super.scheduled(controller);\n\t\t\t}\n\t\t};\n\n\t\tfetch(request: Request) {\n\t\t\treturn __facade_invoke__(\n\t\t\t\trequest,\n\t\t\t\tthis.env,\n\t\t\t\tthis.ctx,\n\t\t\t\tthis.#dispatcher,\n\t\t\t\tthis.#fetchDispatcher\n\t\t\t);\n\t\t}\n\t};\n}\n\nlet WRAPPED_ENTRY: ExportedHandler | WorkerEntrypointConstructor | undefined;\nif (typeof ENTRY === \"object\") {\n\tWRAPPED_ENTRY = wrapExportedHandler(ENTRY);\n} else if (typeof ENTRY === \"function\") {\n\tWRAPPED_ENTRY = wrapWorkerEntrypoint(ENTRY);\n}\nexport default WRAPPED_ENTRY;\n"], + "mappings": "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", + "names": ["stripCfConnectingIPHeader", "input", "init", "request", "__name", "target", "thisArg", "argArray", "createNotImplementedError", "name", "__name", "notImplemented", "notImplementedClass", "name", "__name", "_timeOrigin", "_performanceNow", "nodeTiming", "PerformanceEntry", "name", "options", "__name", "PerformanceMark", "PerformanceMeasure", "PerformanceResourceTiming", "PerformanceObserverEntryList", "_name", "_type", "type", "Performance", "_fn", "_options", "createNotImplementedError", "markName", "e", "measureName", "entry", "startOrMeasureOptions", "endMark", "start", "end", "maxSize", "listener", "event", "PerformanceObserver", "callback", "fn", "thisArg", "args", "__publicField", "performance", "performance", "Performance", "PerformanceEntry", "PerformanceMark", "PerformanceMeasure", "PerformanceObserver", "PerformanceObserverEntryList", "PerformanceResourceTiming", "Writable", "noop_default", "_console", "_ignoreErrors", "_stderr", "Writable", "_stdout", "log", "noop_default", "info", "trace", "debug", "table", "error", "warn", "createTask", "notImplemented", "clear", "_console", "noop_default", "count", "countReset", "dir", "dirxml", "group", "groupEnd", "groupCollapsed", "profile", "profileEnd", "time", "timeEnd", "timeLog", "timeStamp", "Console", "notImplementedClass", "_times", "_stdoutErrorHandler", "noop_default", "_stderrErrorHandler", "workerdConsole", "assert", "clear", "context", "count", "countReset", "createTask", "debug", "dir", "dirxml", "error", "group", "groupCollapsed", "groupEnd", "info", "log", "profile", "profileEnd", "table", "time", "timeEnd", "timeLog", "timeStamp", "trace", "warn", "Console", "_ignoreErrors", "_stderr", "_stderrErrorHandler", "_stdout", "_stdoutErrorHandler", "_times", "console_default", "console_default", "hrtime", "__name", "startTime", "now", "seconds", "nanos", "diffSeconds", "diffNanos", "EventEmitter", "Socket", "ReadStream", "Socket", "fd", "mode", "__name", "Socket", "WriteStream", "Socket", "fd", "dir", "callback", "x", "y", "dx", "dy", "env", "count", "__name", "Process", "EventEmitter", "impl", "prop", "value", "warning", "type", "code", "args", "eventName", "#stdin", "#stdout", "#stderr", "ReadStream", "WriteStream", "#cwd", "cwd", "createNotImplementedError", "notImplemented", "__name", "globalProcess", "getBuiltinModule", "exit", "platform", "nextTick", "unenvProcess", "Process", "hrtime", "abort", "addListener", "allowedNodeEnvironmentFlags", "hasUncaughtExceptionCaptureCallback", "setUncaughtExceptionCaptureCallback", "loadEnvFile", "sourceMapsEnabled", "arch", "argv", "argv0", "chdir", "config", "connected", "constrainedMemory", "availableMemory", "cpuUsage", "cwd", "debugPort", "dlopen", "disconnect", "emit", "emitWarning", "env", "eventNames", "execArgv", "execPath", "finalization", "features", "getActiveResourcesInfo", "getMaxListeners", "kill", "listeners", "listenerCount", "memoryUsage", "on", "off", "once", "pid", "ppid", "prependListener", "prependOnceListener", "rawListeners", "release", "removeAllListeners", "removeListener", "report", "resourceUsage", "setMaxListeners", "setSourceMapsEnabled", "stderr", "stdin", "stdout", "title", "throwDeprecation", "traceDeprecation", "umask", "uptime", "version", "versions", "domain", "initgroups", "moduleLoadList", "reallyExit", "openStdin", "assert", "binding", "send", "exitCode", "channel", "getegid", "geteuid", "getgid", "getgroups", "getuid", "setegid", "seteuid", "setgid", "setgroups", "setuid", "permission", "mainModule", "_events", "_eventsCount", "_exiting", "_maxListeners", "_debugEnd", "_debugProcess", "_fatalException", "_getActiveHandles", "_getActiveRequests", "_kill", "_preload_modules", "_rawDebug", "_startProfilerIdleNotifier", "_stopProfilerIdleNotifier", "_tickCallback", "_disconnect", "_handleQueue", "_pendingMessage", "_channel", "_send", "_linkedBinding", "_process", "process_default", "process_default", "compose", "__name", "middleware", "onError", "onNotFound", "context", "next", "index", "dispatch", "i", "res", "isError", "handler", "err", "GET_MATCH_RESULT", "parseBody", "__name", "request", "options", "all", "dot", "contentType", "HonoRequest", "parseFormData", "formData", "convertFormDataToBodyData", "form", "value", "key", "handleParsingAllValues", "handleParsingNestedValues", "nestedForm", "keys", "key2", "index", "splitPath", "__name", "path", "paths", "splitRoutingPath", "routePath", "groups", "extractGroupsFromPath", "replaceGroupMarks", "match", "index", "mark", "i", "j", "patternCache", "getPattern", "label", "next", "cacheKey", "tryDecode", "str", "decoder", "tryDecodeURI", "getPath", "request", "url", "start", "charCode", "queryIndex", "getPathNoStrict", "__name", "request", "result", "getPath", "mergePath", "base", "sub", "rest", "checkOptionalParameter", "path", "segments", "results", "basePath", "segment", "optionalSegment", "v", "_decodeURI", "value", "tryDecode", "decodeURIComponent_", "_getQueryParam", "url", "key", "multiple", "encoded", "keyIndex2", "trailingKeyCode", "valueIndex", "endIndex", "keyIndex", "nextKeyIndex", "name", "getQueryParam", "getQueryParams", "tryDecodeURIComponent", "__name", "str", "tryDecode", "decodeURIComponent_", "HonoRequest", "#validatedData", "#matchResult", "request", "path", "matchResult", "key", "#getDecodedParam", "#getAllDecodedParams", "paramKey", "param", "#getParamValue", "decoded", "keys", "value", "getQueryParam", "getQueryParams", "name", "headerData", "options", "parseBody", "#cachedBody", "bodyCache", "raw", "cachedBody", "anyCachedKey", "body", "text", "target", "data", "GET_MATCH_RESULT", "route", "HtmlEscapedCallbackPhase", "raw", "__name", "value", "callbacks", "escapedString", "resolveCallback", "__name", "str", "phase", "preserveCallbacks", "context", "buffer", "callbacks", "resStr", "c", "res", "str2", "raw", "TEXT_PLAIN", "setDefaultContentType", "__name", "contentType", "headers", "Context", "#rawRequest", "#req", "#var", "#status", "#executionCtx", "#res", "#layout", "#renderer", "#notFoundHandler", "#preparedHeaders", "#matchResult", "#path", "req", "options", "HonoRequest", "_res", "k", "v", "cookies", "cookie", "args", "content", "layout", "renderer", "name", "value", "status", "key", "#newResponse", "data", "arg", "responseHeaders", "argHeaders", "v2", "text", "object", "html", "res", "html2", "resolveCallback", "HtmlEscapedCallbackPhase", "location", "locationString", "METHOD_NAME_ALL", "METHOD_NAME_ALL_LOWERCASE", "METHODS", "MESSAGE_MATCHER_IS_ALREADY_BUILT", "UnsupportedPathError", "__name", "COMPOSED_HANDLER", "notFoundHandler", "__name", "c", "errorHandler", "err", "res", "Hono", "#path", "options", "METHODS", "METHOD_NAME_ALL_LOWERCASE", "method", "args1", "args", "#addRoute", "handler", "path", "handlers", "p", "m", "arg1", "METHOD_NAME_ALL", "strict", "optionsWithoutStrict", "getPath", "getPathNoStrict", "#clone", "clone", "#notFoundHandler", "app", "subApp", "r", "next", "compose", "COMPOSED_HANDLER", "mergePath", "applicationHandler", "replaceRequest", "optionHandler", "request", "getOptions", "options2", "executionContext", "mergedPath", "pathPrefixLength", "url", "#handleError", "#dispatch", "executionCtx", "env", "matchResult", "Context", "resolved", "composed", "context", "rest", "input", "requestInit", "Env", "event", "emptyParam", "match", "method", "path", "matchers", "match2", "__name", "method2", "path2", "matcher", "METHOD_NAME_ALL", "staticMatch", "match3", "index", "LABEL_REG_EXP_STR", "ONLY_WILDCARD_REG_EXP_STR", "TAIL_WILDCARD_REG_EXP_STR", "PATH_ERROR", "regExpMetaChars", "compareKey", "a", "b", "__name", "Node", "#index", "#varIndex", "#children", "tokens", "index", "paramMap", "context", "pathErrorCheckOnly", "token", "restTokens", "pattern", "node", "name", "regexpStr", "k", "strList", "c", "Trie", "__name", "#context", "#root", "Node", "path", "index", "pathErrorCheckOnly", "paramAssoc", "groups", "i", "replaced", "m", "mark", "tokens", "j", "regexp", "captureIndex", "indexReplacementMap", "paramReplacementMap", "_", "handlerIndex", "paramIndex", "nullMatcher", "wildcardRegExpCache", "buildWildcardRegExp", "path", "_", "metaChar", "__name", "clearWildcardRegExpCache", "buildMatcherFromPreprocessedRoutes", "routes", "trie", "Trie", "handlerData", "routesWithStaticPathFlag", "route", "isStaticA", "pathA", "isStaticB", "pathB", "staticMap", "i", "j", "len", "pathErrorCheckOnly", "handlers", "h", "emptyParam", "paramAssoc", "e", "PATH_ERROR", "UnsupportedPathError", "paramCount", "paramIndexMap", "key", "value", "regexp", "indexReplacementMap", "paramReplacementMap", "len2", "map", "keys", "k", "len3", "handlerMap", "findMiddleware", "middleware", "a", "b", "RegExpRouter", "#middleware", "#routes", "METHOD_NAME_ALL", "method", "handler", "MESSAGE_MATCHER_IS_ALREADY_BUILT", "p", "re", "m", "paths", "checkOptionalParameter", "path2", "match", "matchers", "#buildMatcher", "hasOwnRoute", "r", "ownRoute", "SmartRouter", "__name", "#routers", "#routes", "init", "method", "path", "handler", "MESSAGE_MATCHER_IS_ALREADY_BUILT", "routers", "routes", "len", "res", "router", "i2", "len2", "e", "UnsupportedPathError", "emptyParams", "Node", "__name", "#methods", "#children", "#patterns", "#order", "#params", "method", "handler", "children", "m", "path", "curNode", "parts", "splitRoutingPath", "possibleKeys", "i", "len", "p", "nextP", "pattern", "getPattern", "key", "v", "a", "#getHandlerSets", "node", "nodeParams", "params", "handlerSets", "handlerSet", "METHOD_NAME_ALL", "processedSet", "i2", "len2", "processed", "curNodes", "splitPath", "curNodesQueue", "part", "isLast", "tempNodes", "j", "nextNode", "k", "len3", "astNode", "name", "matcher", "child", "restPathString", "componentCount", "b", "TrieRouter", "__name", "#node", "Node", "method", "path", "handler", "results", "checkOptionalParameter", "i", "len", "Hono", "__name", "options", "SmartRouter", "RegExpRouter", "TrieRouter", "COMPRESSIBLE_CONTENT_TYPE_REGEX", "getMimeType", "__name", "filename", "mimes", "baseMimes", "regexp", "match", "mimeType", "_baseMimes", "baseMimes", "defaultJoin", "__name", "paths", "result", "p", "segments", "resolved", "segment", "ENCODINGS", "ENCODINGS_ORDERED_KEYS", "DEFAULT_DOCUMENT", "serveStatic", "__name", "options", "root", "optionPath", "join", "defaultJoin", "c", "next", "filename", "path", "getContent", "content", "mimeType", "getMimeType", "COMPRESSIBLE_CONTENT_TYPE_REGEX", "acceptEncodingSet", "encoding", "compressedContent", "getContentFromKVAsset", "__name", "path", "options", "ASSET_MANIFEST", "ASSET_NAMESPACE", "key", "content", "serveStatic", "__name", "options", "c", "next", "path", "getContentFromKVAsset", "module", "__name", "options", "serveStatic", "WSContext", "__name", "#init", "init", "source", "options", "code", "reason", "defineWebSocketHelper", "__name", "handler", "args", "createEvents", "options", "c", "next", "events", "result", "upgraded", "upgradeWebSocket", "defineWebSocketHelper", "c", "events", "webSocketPair", "client", "server", "wsContext", "WSContext", "code", "reason", "source", "evt", "cors", "__name", "options", "opts", "findAllowOrigin", "optsOrigin", "origin", "findAllowMethods", "optsAllowMethods", "c", "next", "set", "key", "value", "allowOrigin", "existingVary", "allowMethods", "headers", "requestHeaders", "entityKind", "hasOwnEntityKind", "is", "value", "type", "cls", "__name", "_a", "Column", "table", "config", "value", "__name", "entityKind", "__publicField", "SubqueryConfig", "_a", "Subquery", "entityKind", "sql", "selection", "alias", "isWith", "__name", "__publicField", "WithSubquery", "iife", "fn", "args", "__name", "version", "otel", "rawTracer", "tracer", "name", "fn", "version", "iife", "span", "e", "ViewBaseConfig", "TableName", "Schema", "Columns", "OriginalName", "BaseName", "IsAlias", "ExtraConfigBuilder", "IsDrizzleTable", "_a", "Table", "entityKind", "name", "schema", "baseName", "__name", "__publicField", "isTable", "table", "getTableName", "_a", "FakePrimitiveParam", "__name", "entityKind", "__publicField", "isSQLWrapper", "value", "mergeQueries", "queries", "result", "query", "StringChunk", "SQL", "_SQL", "queryChunks", "noopDecoder", "config", "tracer", "span", "chunks", "_config", "escapeName", "escapeParam", "prepareTyping", "inlineParams", "paramStartIndex", "chunk", "is", "Name", "i", "p", "Table", "schemaName", "tableName", "Column", "View", "ViewBaseConfig", "viewName", "Param", "mappedValue", "typings", "Placeholder", "Subquery", "SubqueryConfig", "escapeString", "mappedValueAsString", "alias", "decoder", "isDriverValueEncoder", "value", "__name", "noopDecoder", "noopEncoder", "noopMapper", "_a", "Param", "encoder", "SQL", "entityKind", "__publicField", "sql", "strings", "params", "queryChunks", "StringChunk", "paramIndex", "param", "SQL", "__name", "empty", "fromList", "list", "raw", "str", "join", "chunks", "separator", "result", "i", "chunk", "identifier", "value", "Name", "placeholder", "name", "Placeholder", "encoder", "Param", "Aliased", "fieldAlias", "entityKind", "_a", "__publicField", "fillPlaceholders", "params", "values", "p", "is", "Placeholder", "__name", "_a", "View", "entityKind", "ViewBaseConfig", "name", "schema", "selectedFields", "query", "SQL", "__publicField", "Column", "Table", "Subquery", "_a", "ColumnAliasProxyHandler", "table", "columnObj", "prop", "__name", "entityKind", "__publicField", "TableAliasProxyHandler", "alias", "replaceOriginalName", "target", "Table", "ViewBaseConfig", "columns", "proxiedColumns", "key", "value", "is", "Column", "RelationTableAliasProxyHandler", "aliasedTable", "tableAlias", "aliasedTableColumn", "column", "tableAlias", "ColumnAliasProxyHandler", "TableAliasProxyHandler", "__name", "mapColumnsInAliasedSQLToAlias", "query", "alias", "SQL", "mapColumnsInSQLToAlias", "sql", "c", "is", "Column", "_a", "ColumnBuilder", "name", "dataType", "columnType", "value", "fn", "__name", "entityKind", "__publicField", "_a", "DrizzleError", "message", "cause", "__name", "entityKind", "__publicField", "TransactionRollbackError", "bindIfParam", "value", "column", "isDriverValueEncoder", "isSQLWrapper", "is", "Param", "Placeholder", "Column", "Table", "View", "__name", "eq", "left", "right", "sql", "ne", "and", "unfilteredConditions", "conditions", "c", "SQL", "StringChunk", "or", "not", "condition", "gt", "gte", "lt", "lte", "inArray", "values", "v", "notInArray", "isNull", "isNotNull", "exists", "subquery", "notExists", "between", "min", "max", "notBetween", "like", "notLike", "ilike", "notIlike", "asc", "column", "sql", "__name", "desc", "_a", "ConsoleLogWriter", "message", "__name", "entityKind", "__publicField", "DefaultLogger", "config", "query", "params", "stringifiedParams", "p", "paramsStr", "NoopLogger", "_a", "QueryPromise", "entityKind", "onRejected", "onFinally", "value", "reason", "onFulfilled", "__name", "__publicField", "InlineForeignKeys", "_a", "PgTable", "Table", "entityKind", "__name", "__publicField", "_a", "PrimaryKeyBuilder", "columns", "name", "table", "PrimaryKey", "__name", "entityKind", "__publicField", "PgTable", "column", "_a", "Relation", "sourceTable", "referencedTable", "relationName", "Table", "__name", "entityKind", "__publicField", "Relations", "table", "config", "_One", "isNullable", "fieldName", "relation", "One", "_Many", "Many", "getOperators", "and", "between", "eq", "exists", "gt", "gte", "ilike", "inArray", "isNull", "isNotNull", "like", "lt", "lte", "ne", "not", "notBetween", "notExists", "notLike", "notIlike", "notInArray", "or", "sql", "getOrderByOperators", "asc", "desc", "extractTablesRelationalConfig", "schema", "configHelpers", "is", "tableNamesMap", "relationsBuffer", "tablesConfig", "key", "value", "isTable", "dbName", "bufferedRelations", "column", "extraConfig", "configEntry", "PrimaryKeyBuilder", "tableName", "relations", "primaryKey", "tableConfig", "createOne", "sourceTable", "__name", "table", "config", "One", "res", "f", "createMany", "referencedTable", "Many", "normalizeRelation", "schema", "tableNamesMap", "relation", "is", "referencedTableTsName", "Table", "referencedTableConfig", "sourceTableTsName", "reverseRelations", "referencedTableRelation", "createTableRelationsHelpers", "mapRelationalRow", "tablesConfig", "tableConfig", "row", "buildQueryResultSelection", "mapColumnValue", "value", "result", "selectionItemIndex", "selectionItem", "rawSubRows", "subRows", "subRow", "field", "decoder", "Column", "SQL", "count", "expression", "sql", "__name", "mapResultRow", "columns", "row", "joinsNotNullableMap", "nullifyMap", "result", "path", "field", "columnIndex", "decoder", "is", "Column", "SQL", "node", "pathChunkIndex", "pathChunk", "rawValue", "value", "objectName", "getTableName", "tableName", "__name", "orderSelectedFields", "fields", "pathPrefix", "name", "newPath", "Table", "haveSameKeys", "left", "right", "leftKeys", "rightKeys", "index", "key", "mapUpdateSet", "table", "values", "entries", "Param", "applyMixins", "baseClass", "extendedClasses", "extendedClass", "getTableColumns", "getTableLikeName", "Subquery", "SubqueryConfig", "View", "ViewBaseConfig", "InlineForeignKeys", "_a", "SQLiteTable", "Table", "entityKind", "__name", "__publicField", "sqliteTableBase", "name", "columns", "extraConfig", "schema", "baseName", "rawTable", "builtColumns", "colBuilderBase", "colBuilder", "column", "table", "sqliteTable", "_a", "ForeignKeyBuilder", "config", "actions", "name", "columns", "foreignColumns", "action", "table", "ForeignKey", "__name", "entityKind", "__publicField", "builder", "columnNames", "column", "foreignColumnNames", "chunks", "SQLiteTable", "uniqueKeyName", "table", "columns", "SQLiteTable", "__name", "_a", "UniqueConstraintBuilder", "columns", "name", "table", "UniqueConstraint", "__name", "entityKind", "__publicField", "UniqueOnConstraintBuilder", "uniqueKeyName", "column", "_a", "SQLiteColumnBuilder", "ColumnBuilder", "ref", "actions", "name", "column", "table", "builder", "ForeignKeyBuilder", "foreignColumn", "__name", "entityKind", "__publicField", "SQLiteColumn", "Column", "config", "uniqueKeyName", "_a", "SQLiteBaseIntegerBuilder", "SQLiteColumnBuilder", "name", "dataType", "columnType", "config", "__name", "entityKind", "__publicField", "SQLiteBaseInteger", "SQLiteColumn", "SQLiteIntegerBuilder", "table", "SQLiteInteger", "SQLiteTimestampBuilder", "mode", "sql", "SQLiteTimestamp", "value", "unix", "SQLiteBooleanBuilder", "SQLiteBoolean", "integer", "_a", "SQLiteTextBuilder", "SQLiteColumnBuilder", "name", "config", "table", "SQLiteText", "__name", "entityKind", "__publicField", "SQLiteColumn", "SQLiteTextJsonBuilder", "SQLiteTextJson", "value", "text", "_a", "_SelectionProxyHandler", "config", "subquery", "prop", "SubqueryConfig", "ViewBaseConfig", "value", "is", "Subquery", "View", "SQL", "newValue", "Column", "ColumnAliasProxyHandler", "TableAliasProxyHandler", "SelectionProxyHandler", "__name", "entityKind", "__publicField", "_a", "SQLiteDeleteBase", "QueryPromise", "table", "session", "dialect", "withList", "where", "fields", "SQLiteTable", "orderSelectedFields", "_typings", "rest", "isOneTimeQuery", "placeholderValues", "__name", "entityKind", "__publicField", "_a", "SQLiteInsertBuilder", "table", "session", "dialect", "withList", "values", "mappedValues", "entry", "result", "cols", "Table", "colKey", "colValue", "is", "SQL", "Param", "SQLiteInsertBase", "__name", "entityKind", "__publicField", "QueryPromise", "fields", "SQLiteTable", "orderSelectedFields", "config", "sql", "targetSql", "whereSql", "setSql", "mapUpdateSet", "_typings", "rest", "isOneTimeQuery", "placeholderValues", "_a", "SQLiteViewBase", "View", "__name", "entityKind", "__publicField", "_a", "SQLiteDialect", "name", "_num", "str", "queries", "withSqlChunks", "sql", "i", "w", "SubqueryConfig", "table", "where", "returning", "withList", "withSql", "returningSql", "whereSql", "set", "setEntries", "setSize", "colName", "value", "col", "Table", "res", "setSql", "fields", "isSingleTable", "columnsLen", "chunks", "field", "chunk", "is", "SQL", "query", "Column", "tableName", "columnName", "fieldsFlat", "having", "joins", "orderBy", "groupBy", "limit", "offset", "distinct", "setOperators", "fieldsList", "orderSelectedFields", "f", "getTableName", "Subquery", "SQLiteViewBase", "ViewBaseConfig", "alias", "distinctSql", "selection", "tableSql", "joinsArray", "index", "joinMeta", "SQLiteTable", "tableSchema", "origTableName", "joinsSql", "havingSql", "orderByList", "orderByValue", "groupByList", "groupByValue", "groupBySql", "orderBySql", "limitSql", "offsetSql", "finalQuery", "leftSelect", "setOperator", "rest", "type", "isAll", "rightSelect", "leftChunk", "rightChunk", "orderByValues", "singleOrderBy", "SQLiteColumn", "operatorChunk", "values", "onConflict", "valuesSqlList", "columns", "colEntries", "insertOrder", "column", "valueIndex", "valueList", "fieldName", "colValue", "Param", "defaultValue", "defaultFnResult", "valuesSql", "onConflictSql", "fullSchema", "schema", "tableNamesMap", "tableConfig", "config", "tableAlias", "nestedQueryRelation", "joinOn", "key", "aliasedTableColumn", "aliasedColumns", "getOperators", "mapColumnsInSQLToAlias", "fieldsSelection", "selectedColumns", "isIncludeMode", "c", "selectedRelations", "entry", "tsKey", "queryConfig", "extras", "mapColumnsInAliasedSQLToAlias", "orderByOrig", "getOrderByOperators", "selectedRelationTsKey", "selectedRelationConfigValue", "relation", "normalizedRelation", "normalizeRelation", "relationTableName", "relationTableTsName", "relationTableAlias", "and", "eq", "builtRelation", "One", "DrizzleError", "result", "Many", "nestedSelection", "aliasedTable", "__name", "entityKind", "__publicField", "SQLiteSyncDialect", "migrations", "session", "migrationsTable", "migrationTableCreate", "lastDbMigration", "migration", "stmt", "e", "SQLiteAsyncDialect", "tx", "_a", "TypedQueryBuilder", "__name", "entityKind", "__publicField", "_a", "SQLiteSelectBuilder", "config", "source", "isPartialSelect", "fields", "is", "Subquery", "SubqueryConfig", "key", "SQLiteViewBase", "ViewBaseConfig", "SQL", "getTableColumns", "SQLiteSelectBase", "__name", "entityKind", "__publicField", "SQLiteSelectQueryBuilderBase", "TypedQueryBuilder", "table", "session", "dialect", "withList", "distinct", "getTableLikeName", "joinType", "on", "baseTableName", "tableName", "join", "selection", "View", "Table", "SelectionProxyHandler", "type", "isAll", "rightSelection", "rightSelect", "getSQLiteSetOperators", "haveSameKeys", "setOperators", "where", "having", "columns", "groupBy", "orderBy", "orderByArray", "limit", "offset", "_typings", "rest", "alias", "isOneTimeQuery", "fieldsList", "orderSelectedFields", "query", "placeholderValues", "applyMixins", "QueryPromise", "createSetOperator", "leftSelect", "restSelects", "select", "setOperator", "union", "unionAll", "intersect", "except", "_a", "QueryBuilder", "alias", "queryBuilder", "qb", "WithSubquery", "SelectionProxyHandler", "queries", "self", "select", "fields", "SQLiteSelectBuilder", "__name", "selectDistinct", "SQLiteSyncDialect", "entityKind", "__publicField", "_a", "SQLiteUpdateBuilder", "table", "session", "dialect", "withList", "values", "SQLiteUpdateBase", "mapUpdateSet", "__name", "entityKind", "__publicField", "QueryPromise", "set", "where", "fields", "SQLiteTable", "orderSelectedFields", "_typings", "rest", "isOneTimeQuery", "placeholderValues", "_a", "RelationalQueryBuilder", "mode", "fullSchema", "schema", "tableNamesMap", "table", "tableConfig", "dialect", "session", "config", "SQLiteSyncRelationalQuery", "SQLiteRelationalQuery", "__name", "entityKind", "__publicField", "QueryPromise", "isOneTimeQuery", "query", "builtQuery", "rawRows", "mapColumnValue", "rows", "row", "mapRelationalRow", "_a", "SQLiteRaw", "QueryPromise", "execute", "getSQL", "action", "dialect", "mapBatchResult", "result", "isFromBatch", "__name", "entityKind", "__publicField", "_a", "BaseSQLiteDatabase", "resultKind", "dialect", "session", "schema", "query", "tableName", "columns", "RelationalQueryBuilder", "alias", "qb", "QueryBuilder", "WithSubquery", "SelectionProxyHandler", "queries", "self", "select", "fields", "SQLiteSelectBuilder", "__name", "selectDistinct", "update", "table", "SQLiteUpdateBuilder", "insert", "into", "SQLiteInsertBuilder", "delete_", "from", "SQLiteDeleteBase", "sql", "SQLiteRaw", "transaction", "config", "entityKind", "__publicField", "_a", "ExecuteResultSync", "QueryPromise", "resultCb", "__name", "entityKind", "__publicField", "SQLitePreparedQuery", "mode", "executeMethod", "query", "result", "_isFromBatch", "_result", "placeholderValues", "response", "isFromBatch", "SQLiteSession", "dialect", "fields", "staticQuery", "err", "DrizzleError", "SQLiteTransaction", "BaseSQLiteDatabase", "resultType", "session", "schema", "nestedIndex", "TransactionRollbackError", "InlineForeignKeys", "_a", "MySqlTable", "Table", "entityKind", "__name", "__publicField", "_a", "ForeignKeyBuilder", "config", "actions", "name", "columns", "foreignColumns", "action", "table", "ForeignKey", "__name", "entityKind", "__publicField", "builder", "columnNames", "column", "foreignColumnNames", "chunks", "MySqlTable", "uniqueKeyName", "table", "columns", "MySqlTable", "__name", "_a", "UniqueConstraintBuilder", "name", "UniqueConstraint", "entityKind", "__publicField", "UniqueOnConstraintBuilder", "column", "_a", "MySqlColumnBuilder", "ColumnBuilder", "ref", "actions", "name", "column", "table", "builder", "ForeignKeyBuilder", "foreignColumn", "__name", "entityKind", "__publicField", "MySqlColumn", "Column", "config", "uniqueKeyName", "MySqlColumnBuilderWithAutoIncrement", "dataType", "columnType", "MySqlColumnWithAutoIncrement", "_a", "MySqlCharBuilder", "MySqlColumnBuilder", "name", "config", "table", "MySqlChar", "__name", "entityKind", "__publicField", "MySqlColumn", "_a", "MySqlVarBinaryBuilder", "MySqlColumnBuilder", "name", "config", "table", "MySqlVarBinary", "__name", "entityKind", "__publicField", "MySqlColumn", "_a", "MySqlVarCharBuilder", "MySqlColumnBuilder", "name", "config", "table", "MySqlVarChar", "__name", "entityKind", "__publicField", "MySqlColumn", "_a", "ForeignKeyBuilder", "config", "actions", "name", "columns", "foreignColumns", "action", "table", "ForeignKey", "__name", "entityKind", "__publicField", "builder", "columnNames", "column", "foreignColumnNames", "chunks", "PgTable", "uniqueKeyName", "table", "columns", "PgTable", "__name", "_a", "UniqueConstraintBuilder", "name", "UniqueConstraint", "entityKind", "__publicField", "UniqueOnConstraintBuilder", "nullsNotDistinct", "column", "parsePgArrayValue", "arrayString", "startFrom", "inQuotes", "i", "char", "__name", "parsePgNestedArray", "result", "lastCharIsComma", "value", "newStartFrom", "parsePgArray", "makePgArray", "array", "item", "_a", "PgColumnBuilder", "ColumnBuilder", "size", "PgArrayBuilder", "ref", "actions", "name", "config", "column", "table", "iife", "builder", "ForeignKeyBuilder", "foreignColumn", "__name", "entityKind", "__publicField", "PgColumn", "Column", "uniqueKeyName", "baseBuilder", "baseColumn", "PgArray", "_PgArray", "range", "value", "parsePgArray", "v", "isNestedArray", "a", "is", "makePgArray", "_a", "PgCharBuilder", "PgColumnBuilder", "name", "config", "table", "PgChar", "__name", "entityKind", "__publicField", "PgColumn", "_a", "PgUUIDBuilder", "PgColumnBuilder", "name", "sql", "table", "PgUUID", "__name", "entityKind", "__publicField", "PgColumn", "_a", "PgVarcharBuilder", "PgColumnBuilder", "name", "config", "table", "PgVarchar", "__name", "entityKind", "__publicField", "PgColumn", "external_exports", "__export", "BRAND", "DIRTY", "EMPTY_PATH", "INVALID", "NEVER", "OK", "ParseStatus", "ZodType", "ZodAny", "ZodArray", "ZodBigInt", "ZodBoolean", "ZodBranded", "ZodCatch", "ZodDate", "ZodDefault", "ZodDiscriminatedUnion", "ZodEffects", "ZodEnum", "ZodError", "ZodFirstPartyTypeKind", "ZodFunction", "ZodIntersection", "ZodIssueCode", "ZodLazy", "ZodLiteral", "ZodMap", "ZodNaN", "ZodNativeEnum", "ZodNever", "ZodNull", "ZodNullable", "ZodNumber", "ZodObject", "ZodOptional", "ZodParsedType", "ZodPipeline", "ZodPromise", "ZodReadonly", "ZodRecord", "ZodSet", "ZodString", "ZodSymbol", "ZodTuple", "ZodUndefined", "ZodUnion", "ZodUnknown", "ZodVoid", "addIssueToContext", "anyType", "arrayType", "bigIntType", "booleanType", "coerce", "custom", "dateType", "datetimeRegex", "en_default", "discriminatedUnionType", "effectsType", "enumType", "functionType", "getErrorMap", "getParsedType", "instanceOfType", "intersectionType", "isAborted", "isAsync", "isDirty", "isValid", "late", "lazyType", "literalType", "makeIssue", "mapType", "nanType", "nativeEnumType", "neverType", "nullType", "nullableType", "numberType", "objectType", "objectUtil", "oboolean", "onumber", "optionalType", "ostring", "pipelineType", "preprocessType", "promiseType", "quotelessJson", "recordType", "setType", "setErrorMap", "strictObjectType", "stringType", "symbolType", "tupleType", "undefinedType", "unionType", "unknownType", "util", "voidType", "util", "_", "assertIs", "_arg", "__name", "assertNever", "_x", "items", "obj", "item", "validKeys", "k", "filtered", "e", "object", "keys", "key", "arr", "checker", "val", "joinValues", "array", "separator", "value", "objectUtil", "first", "second", "ZodParsedType", "getParsedType", "data", "ZodIssueCode", "util", "quotelessJson", "__name", "obj", "ZodError", "issues", "sub", "subs", "actualProto", "_mapper", "mapper", "issue", "fieldErrors", "processError", "error", "curr", "i", "el", "value", "formErrors", "firstEl", "errorMap", "__name", "issue", "_ctx", "message", "ZodIssueCode", "ZodParsedType", "util", "en_default", "overrideErrorMap", "en_default", "setErrorMap", "map", "overrideErrorMap", "__name", "getErrorMap", "makeIssue", "__name", "params", "data", "path", "errorMaps", "issueData", "fullPath", "fullIssue", "errorMessage", "maps", "m", "map", "EMPTY_PATH", "addIssueToContext", "ctx", "overrideMap", "getErrorMap", "issue", "en_default", "x", "ParseStatus", "status", "results", "arrayValue", "s", "INVALID", "pairs", "syncPairs", "pair", "key", "value", "finalObject", "DIRTY", "OK", "isAborted", "isDirty", "isValid", "isAsync", "errorUtil", "message", "ParseInputLazyPath", "parent", "value", "path", "key", "__name", "handleResult", "ctx", "result", "isValid", "error", "ZodError", "processCreateParams", "params", "errorMap", "invalid_type_error", "required_error", "description", "iss", "message", "ZodType", "input", "getParsedType", "ParseStatus", "isAsync", "data", "err", "maybeAsyncResult", "check", "getIssueProperties", "val", "setError", "ZodIssueCode", "refinementData", "refinement", "ZodEffects", "ZodFirstPartyTypeKind", "def", "ZodOptional", "ZodNullable", "ZodArray", "ZodPromise", "option", "ZodUnion", "incoming", "ZodIntersection", "transform", "defaultValueFunc", "ZodDefault", "ZodBranded", "catchValueFunc", "ZodCatch", "This", "target", "ZodPipeline", "ZodReadonly", "cuidRegex", "cuid2Regex", "ulidRegex", "uuidRegex", "nanoidRegex", "jwtRegex", "durationRegex", "emailRegex", "_emojiRegex", "emojiRegex", "ipv4Regex", "ipv4CidrRegex", "ipv6Regex", "ipv6CidrRegex", "base64Regex", "base64urlRegex", "dateRegexSource", "dateRegex", "timeRegexSource", "args", "secondsRegexSource", "secondsQuantifier", "timeRegex", "datetimeRegex", "regex", "opts", "isValidIP", "ip", "version", "isValidJWT", "jwt", "alg", "header", "base64", "decoded", "isValidCidr", "ZodString", "ZodParsedType", "addIssueToContext", "INVALID", "status", "tooBig", "tooSmall", "util", "validation", "errorUtil", "options", "minLength", "maxLength", "len", "ch", "min", "max", "floatSafeRemainder", "step", "valDecCount", "stepDecCount", "decCount", "valInt", "stepInt", "ZodNumber", "kind", "inclusive", "ZodBigInt", "ZodBoolean", "OK", "ZodDate", "minDate", "maxDate", "ZodSymbol", "ZodUndefined", "ZodNull", "ZodAny", "ZodUnknown", "ZodNever", "ZodVoid", "item", "i", "schema", "deepPartialify", "ZodObject", "newShape", "fieldSchema", "ZodTuple", "shape", "keys", "shapeKeys", "extraKeys", "pairs", "keyValidator", "unknownKeys", "catchall", "syncPairs", "pair", "issue", "defaultError", "augmentation", "merging", "index", "mask", "newField", "createZodEnum", "handleResults", "results", "unionErrors", "childCtx", "dirty", "issues", "types", "getDiscriminator", "type", "ZodLazy", "ZodLiteral", "ZodEnum", "ZodNativeEnum", "ZodDiscriminatedUnion", "discriminator", "discriminatorValue", "optionsMap", "discriminatorValues", "mergeValues", "a", "b", "aType", "bType", "bKeys", "sharedKeys", "newObj", "sharedValue", "newArray", "itemA", "itemB", "handleParsed", "parsedLeft", "parsedRight", "isAborted", "merged", "isDirty", "left", "right", "items", "itemIndex", "x", "rest", "schemas", "ZodRecord", "keyType", "valueType", "first", "second", "third", "ZodMap", "finalMap", "ZodSet", "finalizeSet", "elements", "parsedSet", "element", "minSize", "maxSize", "size", "ZodFunction", "makeArgsIssue", "makeIssue", "getErrorMap", "en_default", "makeReturnsIssue", "returns", "fn", "me", "parsedArgs", "e", "parsedReturns", "returnType", "func", "getter", "values", "expectedValues", "enumValues", "newDef", "opt", "nativeEnumValues", "promisified", "effect", "checkCtx", "arg", "processed", "DIRTY", "executeRefinement", "acc", "inner", "base", "preprocess", "ZodOptional", "ZodType", "input", "ZodParsedType", "OK", "__name", "type", "params", "ZodFirstPartyTypeKind", "processCreateParams", "ZodNullable", "ZodDefault", "ctx", "data", "ZodCatch", "newCtx", "result", "isAsync", "ZodError", "ZodNaN", "addIssueToContext", "ZodIssueCode", "INVALID", "BRAND", "ZodBranded", "ZodPipeline", "status", "inResult", "DIRTY", "a", "b", "ZodReadonly", "freeze", "isValid", "cleanParams", "p", "custom", "check", "_params", "fatal", "ZodAny", "r", "_fatal", "late", "ZodObject", "ZodFirstPartyTypeKind", "instanceOfType", "__name", "cls", "params", "custom", "data", "stringType", "ZodString", "numberType", "ZodNumber", "nanType", "ZodNaN", "bigIntType", "ZodBigInt", "booleanType", "ZodBoolean", "dateType", "ZodDate", "symbolType", "ZodSymbol", "undefinedType", "ZodUndefined", "nullType", "ZodNull", "anyType", "ZodAny", "unknownType", "ZodUnknown", "neverType", "ZodNever", "voidType", "ZodVoid", "arrayType", "ZodArray", "objectType", "ZodObject", "strictObjectType", "unionType", "ZodUnion", "discriminatedUnionType", "ZodDiscriminatedUnion", "intersectionType", "ZodIntersection", "tupleType", "ZodTuple", "recordType", "ZodRecord", "mapType", "ZodMap", "setType", "ZodSet", "functionType", "ZodFunction", "lazyType", "ZodLazy", "literalType", "ZodLiteral", "enumType", "ZodEnum", "nativeEnumType", "ZodNativeEnum", "promiseType", "ZodPromise", "effectsType", "ZodEffects", "optionalType", "ZodOptional", "nullableType", "ZodNullable", "preprocessType", "pipelineType", "ZodPipeline", "ostring", "onumber", "oboolean", "coerce", "arg", "NEVER", "INVALID", "literalSchema", "z", "union", "string", "number", "boolean", "null", "jsonSchema", "lazy", "array", "record", "createInsertSchema", "table", "refine", "columns", "getTableColumns", "columnEntries", "Object", "entries", "schemaEntries", "fromEntries", "map", "name", "column", "mapColumnToSchema", "assign", "refineColumn", "notNull", "hasDefault", "optional", "nullable", "object", "mapColumnToSchema", "column", "type", "Array", "isArray", "enumValues", "length", "z", "enum", "string", "is", "PgUUID", "uuid", "dataType", "any", "jsonSchema", "array", "baseColumn", "number", "bigint", "boolean", "date", "sType", "PgChar", "PgVarchar", "MySqlVarChar", "MySqlVarBinary", "MySqlChar", "SQLiteText", "max", "apiKeys", "sqliteTable", "text", "integer", "insertApiKeySchema", "c", "mailboxes", "insertMailboxSchema", "emails", "AddressSchema", "objectType", "stringType", "insertEmailSchema", "arrayType", "recordType", "siteStats", "insertEmail", "db", "email", "emails", "e", "__name", "findEmailById", "db", "id", "result", "emails", "and", "eq", "__name", "getEmailsByMessageTo", "messageTo", "desc", "deleteEmails", "db", "ids", "emails", "inArray", "e", "__name", "deleteExpiredEmails", "expirationTime", "lt", "findApiKeyByKey", "key", "result", "apiKeys", "eq", "updateApiKeyLastUsed", "id", "insertApiKey", "apiKey", "insertMailbox", "mailbox", "mailboxes", "findMailboxById", "getMailboxMessages", "db", "address", "options", "offset", "orderFn", "asc", "desc", "messages", "countResult", "emails", "eq", "count", "total", "e", "__name", "findMailboxMessage", "messageId", "result", "and", "deleteMailboxMessage", "getMailboxMessageCount", "GLOBAL_STATS_ID", "getSiteStats", "db", "result", "siteStats", "eq", "__name", "initSiteStats", "incrementEmailsReceived", "amount", "sql", "e", "incrementAddressesCreated", "incrementApiKeysCreated", "incrementApiCalls", "_a", "SQLiteD1Session", "SQLiteSession", "client", "dialect", "schema", "options", "NoopLogger", "query", "fields", "executeMethod", "customResultMapper", "stmt", "D1PreparedQuery", "queries", "preparedQueries", "builtQueries", "preparedQuery", "builtQuery", "result", "i", "d1ToRawMapping", "transaction", "config", "tx", "D1Transaction", "sql", "err", "__name", "entityKind", "__publicField", "_D1Transaction", "SQLiteTransaction", "savepointName", "results", "rows", "row", "entry", "k", "SQLitePreparedQuery", "logger", "placeholderValues", "params", "fillPlaceholders", "isFromBatch", "mapResultRow", "joinsNotNullableMap", "_a", "DrizzleD1Database", "BaseSQLiteDatabase", "batch", "__name", "entityKind", "__publicField", "drizzle", "client", "config", "dialect", "SQLiteAsyncDialect", "logger", "DefaultLogger", "schema", "tablesConfig", "extractTablesRelationalConfig", "createTableRelationsHelpers", "session", "SQLiteD1Session", "getD1DB", "db", "drizzle", "__name", "urlAlphabet", "nanoid", "__name", "size", "id", "i", "urlAlphabet", "textEncoder", "base64Chars", "base64Lookup", "i", "decodeBase64", "base64", "bufferLength", "len", "p", "arrayBuffer", "bytes", "encoded1", "encoded2", "encoded3", "encoded4", "__name", "getDecoder", "charset", "decoder", "blobToArrayBuffer", "blob", "fr", "resolve", "reject", "e", "getHex", "c", "decodeWord", "encoding", "str", "splitPos", "byteStr", "buf", "encodedBytes", "c1", "c2", "dataView", "decodeWords", "joinString", "done", "result", "match", "left", "chLeft", "encodedLeftStr", "chRight", "m", "text", "decodeURIComponentWithCharset", "encodedStr", "byte", "j", "decodeParameterValueContinuations", "header", "paramKeys", "key", "actualKey", "nr", "paramVal", "value", "a", "b", "PassThroughDecoder", "line", "blobToArrayBuffer", "__name", "Base64Decoder", "opts", "buffer", "str", "allowedBytes", "base64Str", "decodeBase64", "blobToArrayBuffer", "__name", "VALID_QP_REGEX", "QP_SPLIT_REGEX", "SOFT_LINE_BREAK_REGEX", "PARTIAL_QP_ENDING_REGEX", "QPDecoder", "opts", "encodedBytes", "buf", "dataView", "i", "len", "str", "list", "part", "firstThree", "buffer", "partialEnding", "blobToArrayBuffer", "__name", "MimeNode", "options", "transferEncoding", "Base64Decoder", "QPDecoder", "getDecoder", "PassThroughDecoder", "boundaries", "i", "childNode", "str", "response", "key", "value", "stage", "quote", "escaped", "chr", "len", "decodeParameterValueContinuations", "delSp", "previousValue", "currentValue", "line", "sep", "textEncoder", "__name", "htmlEntities", "html_entities_default", "decodeHTMLEntities", "str", "match", "entity", "html_entities_default", "codePoint", "output", "__name", "escapeHtml", "c", "hex", "textToHtml", "htmlToText", "formatTextAddress", "address", "formatTextAddresses", "addresses", "parts", "processAddress", "partCounter", "groupStart", "groupEnd", "formatHtmlAddress", "formatHtmlAddresses", "foldLines", "lineLength", "afterSpace", "pos", "len", "result", "line", "formatTextHeader", "message", "rows", "dateOptions", "dateStr", "maxKeyLength", "r", "acc", "cur", "row", "sepLen", "prefix", "emptyPrefix", "i", "maxLineLength", "lineMarker", "formatHtmlHeader", "_handleAddress", "tokens", "isGroup", "state", "address", "addresses", "data", "i", "len", "insideQuotes", "token", "prevToken", "groupMembers", "addressParser", "member", "decodeWords", "_regexHandler", "__name", "parsedSubAddresses", "Tokenizer", "str", "list", "chr", "nextChr", "node", "options", "parsedAddresses", "walkAddressList", "address_parser_default", "base64ArrayBuffer", "arrayBuffer", "base64", "encodings", "bytes", "byteLength", "byteRemainder", "mainLength", "a", "b", "chunk", "i", "__name", "MAX_NESTING_DEPTH", "MAX_HEADERS_SIZE", "PostalMime", "buf", "options", "MimeNode", "line", "isFinal", "boundaries", "i", "boundary", "isTerminator", "boudaryMatches", "startPos", "endPos", "res", "__name", "c", "textContent", "textTypes", "textMap", "forceRfc822Attachments", "walk", "node", "alternative", "related", "subParser", "textEntry", "subTextEntry", "subTextNode", "attachment", "textType", "selectorNode", "filename", "decodeWords", "decodedText", "textEncoder", "childNode", "mapEntry", "formatHtmlHeader", "formatTextHeader", "alternativeType", "textToHtml", "htmlToText", "stream", "chunkLen", "chunks", "reader", "done", "value", "result", "chunkPointer", "chunk", "blobToArrayBuffer", "message", "entry", "key", "addressHeader", "addresses", "address_parser_default", "camelKey", "o", "addressHeaders", "parsed", "header", "dateHeader", "date", "base64ArrayBuffer", "attachmentDecoder", "decrypt", "encryptedText", "secret", "text", "result", "i", "__name", "apiKeyAuth", "__name", "c", "next", "apiKey", "authHeader", "db", "getD1DB", "keyRecord", "findApiKeyByKey", "updateApiKeyLastUsed", "incrementApiCalls", "generateRandomLocalPart", "adjectives", "nouns", "adj", "noun", "num", "__name", "mailboxesRouter", "Hono", "c", "db", "getD1DB", "apiKey", "body", "availableDomains", "d", "domain", "address", "expiresIn", "expiresAt", "now", "mailbox", "nanoid", "insertMailbox", "incrementAddressesCreated", "e", "id", "findMailboxById", "messageCount", "getMailboxMessageCount", "page", "limit", "sort", "messages", "total", "totalPages", "getMailboxMessages", "msg", "messageId", "message", "findMailboxMessage", "deleteMailboxMessage", "mailboxes_default", "v1", "Hono", "cors", "apiKeyAuth", "mailboxes_default", "v1_default", "app", "Hono", "cors", "turnstile", "__name", "c", "next", "body", "e", "token", "ip", "params", "data", "api", "generateApiKey", "chars", "key", "i", "db", "getD1DB", "now", "apiKey", "keyPrefix", "newApiKey", "nanoid", "insertApiKey", "incrementApiKeysCreated", "address", "emails", "getEmailsByMessageTo", "id", "email", "findEmailById", "ids", "result", "deleteEmails", "password", "decrypt", "emailDomain", "d", "stats", "getSiteStats", "v1_default", "module", "src_default", "message", "env", "ctx", "raw", "mail", "PostalMime", "newEmail", "insertEmailSchema", "insertEmail", "incrementEmailsReceived", "request", "url", "response", "indexRequest", "event", "oneDayAgo", "deleteExpiredEmails", "drainBody", "__name", "request", "env", "_ctx", "middlewareCtx", "reader", "e", "middleware_ensure_req_body_drained_default", "reduceError", "e", "__name", "jsonError", "request", "env", "_ctx", "middlewareCtx", "error", "middleware_miniflare3_json_error_default", "__INTERNAL_WRANGLER_MIDDLEWARE__", "middleware_ensure_req_body_drained_default", "middleware_miniflare3_json_error_default", "middleware_insertion_facade_default", "src_default", "__facade_middleware__", "__facade_register__", "args", "__name", "__facade_invokeChain__", "request", "env", "ctx", "dispatch", "middlewareChain", "head", "tail", "newRequest", "newEnv", "__name", "__facade_invoke__", "finalMiddleware", "__facade_middleware__", "__Facade_ScheduledController__", "scheduledTime", "cron", "noRetry", "#noRetry", "__name", "wrapExportedHandler", "worker", "__INTERNAL_WRANGLER_MIDDLEWARE__", "middleware", "__facade_register__", "fetchDispatcher", "request", "env", "ctx", "__facade_invoke__", "type", "init", "controller", "wrapWorkerEntrypoint", "klass", "#fetchDispatcher", "#dispatcher", "WRAPPED_ENTRY", "middleware_insertion_facade_default", "middleware_loader_entry_default"] } diff --git a/frontend/build/client/assets/main-C1FJcYwI.css b/frontend/build/client/assets/main-C1FJcYwI.css new file mode 100644 index 0000000..e19c213 --- /dev/null +++ b/frontend/build/client/assets/main-C1FJcYwI.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-1{margin-bottom:-.25rem}.-mr-1{margin-right:-.25rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.mb-\[1px\]{margin-bottom:1px}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.h-1{height:.25rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-\[32px\]{height:32px}.h-\[488px\]{height:488px}.h-\[60vh\]{height:60vh}.h-\[65px\]{height:65px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[80vh\]{max-height:80vh}.min-h-0{min-height:0px}.min-h-24{min-height:6rem}.min-h-screen{min-height:100vh}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-\[85px\]{width:85px}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:56rem}.max-w-\[1400px\]{max-width:1400px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-left{transform-origin:left}.scale-\[1\.2\]{--tw-scale-x: 1.2;--tw-scale-y: 1.2;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-cyan-50\/20{border-color:#ecfeff33}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-700\/50{border-color:#37415180}.border-neutral-300{--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-yellow-600\/50{border-color:#ca8a0480}.border-zinc-600{--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity))}.border-zinc-700{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity))}.border-zinc-700\/50{border-color:#3f3f4680}.bg-\[\#1f2023\]{--tw-bg-opacity: 1;background-color:rgb(31 32 35 / var(--tw-bg-opacity))}.bg-\[\#ffffffd6\]{background-color:#ffffffd6}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.bg-cyan-500\/10{background-color:#06b6d41a}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-50\/5{background-color:#f9fafb0d}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-neutral-100{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-800\/95{background-color:#262626f2}.bg-orange-500\/10{background-color:#f973161a}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-white\/95{background-color:#fffffff2}.bg-yellow-900\/30{background-color:#713f124d}.bg-zinc-600{--tw-bg-opacity: 1;background-color:rgb(82 82 91 / var(--tw-bg-opacity))}.bg-zinc-700{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity))}.bg-zinc-700\/50{background-color:#3f3f4680}.bg-zinc-800{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}.bg-zinc-800\/50{background-color:#27272a80}.bg-opacity-10{--tw-bg-opacity: .1}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pr-4{padding-right:1rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-none{line-height:1}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.text-cyan-500{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-yellow-200{--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity))}.text-yellow-300\/80{color:#fde047cc}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity))}.text-zinc-100{--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity))}.text-zinc-200{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500{transition-duration:.5s}*::-webkit-scrollbar{width:0px;height:10px}*::-webkit-scrollbar-thumb{background:#bec3ca00;border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#96969686}.grids{background-image:linear-gradient(0deg,rgba(122,122,122,.05) 1px,transparent 0),linear-gradient(90deg,rgba(122,122,122,.05) 1px,transparent 0);background-position:50%;background-size:24px 24px}.cool-btn{--btn-default-bg: rgb(41, 41, 41);--btn-padding: 15px 20px;--btn-hover-bg: rgb(51, 51, 51);--btn-transition: .3s;--btn-letter-spacing: .1rem;--btn-animation-duration: 1.2s;--btn-shadow-color: rgba(0, 0, 0, .137);--btn-shadow: 0 2px 10px 0 var(--btn-shadow-color);--hover-btn-color: #0a9ec4;--default-btn-color: #fff;--font-size: 18px;--font-weight: 800;--font-family: Menlo, Roboto Mono, monospace}.cool-btn{box-sizing:border-box;padding:var(--btn-padding);padding-left:0;display:flex;align-items:center;justify-content:center;color:var(--default-btn-color);font:var(--font-weight) var(--font-size);border:none;cursor:pointer;transition:var(--btn-transition);overflow:hidden}.cool-btn span{letter-spacing:var(--btn-letter-spacing);transition:var(--btn-transition);box-sizing:border-box;position:relative;background:inherit}.cool-btn span:before{box-sizing:border-box;position:absolute;content:"";background:inherit}.cool-btn:hover span,.cool-btn:focus span{color:var(--hover-btn-color)}.cool-btn:hover span:before,.cool-btn:focus span:before{animation:chitchat linear both var(--btn-animation-duration)}@keyframes chitchat{0%{content:"#"}5%{content:"."}10%{content:"^{"}15%{content:"-!"}20%{content:"#$_"}25%{content:"№:0"}30%{content:"#{+."}35%{content:"@}-?"}40%{content:"?{4@%"}45%{content:"=.,^!"}50%{content:"?2@%"}55%{content:";1}]"}60%{content:"?{%:%";right:0}65%{content:"|{f[4";right:0}70%{content:"{4%0%";right:0}75%{content:"'1_0<";right:0}80%{content:"{0%";right:0}85%{content:"]>'";right:0}90%{content:"4";right:0}95%{content:"2";right:0}to{content:"";right:0}}.loader{scale:3;height:50px;width:40px}.box{position:relative;opacity:0;left:10px}.side-left{position:absolute;background-color:#0891b2;width:19px;height:5px;transform:skew(0,-25deg);top:14px;left:10px}.side-right{position:absolute;background-color:#0b9fc4;width:19px;height:5px;transform:skew(0,25deg);top:14px;left:-9px}.side-top{position:absolute;background-color:#19b6dd;width:20px;height:20px;rotate:45deg;transform:skew(-20deg,-20deg)}.box-1{animation:from-left 4s infinite}.box-2{animation:from-right 4s infinite;animation-delay:1s}.box-3{animation:from-left 4s infinite;animation-delay:2s}.box-4{animation:from-right 4s infinite;animation-delay:3s}@keyframes from-left{0%{z-index:20;opacity:0;translate:-20px -6px}20%{z-index:10;opacity:1;translate:0px 0px}40%{z-index:9;translate:0px 4px}60%{z-index:8;translate:0px 8px}80%{z-index:7;opacity:1;translate:0px 12px}to{z-index:5;translate:0px 30px;opacity:0}}@keyframes from-right{0%{z-index:20;opacity:0;translate:20px -6px}20%{z-index:10;opacity:1;translate:0px 0px}40%{z-index:9;translate:0px 4px}60%{z-index:8;translate:0px 8px}80%{z-index:7;opacity:1;translate:0px 12px}to{z-index:5;translate:0px 30px;opacity:0}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:right-1:before{content:var(--tw-content);right:.25rem}.before\:top-1:before{content:var(--tw-content);top:.25rem}.before\:z-10:before{content:var(--tw-content);z-index:10}.before\:h-12:before{content:var(--tw-content);height:3rem}.before\:w-12:before{content:var(--tw-content);width:3rem}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-violet-500:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity))}.before\:blur-lg:before{content:var(--tw-content);--tw-blur: blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.before\:duration-500:before{content:var(--tw-content);transition-duration:.5s}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:right-8:after{content:var(--tw-content);right:2rem}.after\:top-3:after{content:var(--tw-content);top:.75rem}.after\:z-10:after{content:var(--tw-content);z-index:10}.after\:h-20:after{content:var(--tw-content);height:5rem}.after\:w-20:after{content:var(--tw-content);width:5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:bg-rose-300:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(253 164 175 / var(--tw-bg-opacity))}.after\:blur-lg:after{content:var(--tw-content);--tw-blur: blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.after\:duration-500:after{content:var(--tw-content);transition-duration:.5s}.after\:content-\[\'_↗\'\]:after{--tw-content: " ↗";content:var(--tw-content)}.after\:content-\[\'↗\'\]:after{--tw-content: "↗";content:var(--tw-content)}.hover\:border-cyan-400\/30:hover{border-color:#22d3ee4d}.hover\:border-cyan-600:hover{--tw-border-opacity: 1;border-color:rgb(8 145 178 / var(--tw-border-opacity))}.hover\:border-zinc-600:hover{--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity))}.hover\:bg-cyan-700:hover{--tw-bg-opacity: 1;background-color:rgb(14 116 144 / var(--tw-bg-opacity))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.hover\:bg-zinc-700:hover{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity))}.hover\:text-cyan-300:hover{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.hover\:text-cyan-400:hover{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:decoration-2:hover{text-decoration-thickness:2px}.hover\:opacity-50:hover{opacity:.5}.hover\:opacity-90:hover{opacity:.9}.hover\:duration-500:hover{transition-duration:.5s}.hover\:before\:-bottom-8:hover:before{content:var(--tw-content);bottom:-2rem}.hover\:before\:right-12:hover:before{content:var(--tw-content);right:3rem}.hover\:before\:blur:hover:before{content:var(--tw-content);--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:before\:\[box-shadow\:_20px_20px_20px_30px_\#a21caf\]:hover:before{content:var(--tw-content);box-shadow:20px 20px 20px 30px #a21caf}.hover\:after\:-right-8:hover:after{content:var(--tw-content);right:-2rem}.focus\:border-cyan-500:focus{--tw-border-opacity: 1;border-color:rgb(6 182 212 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-cyan-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-600:disabled{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.disabled\:bg-zinc-500:disabled{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity))}.disabled\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-cyan-500{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity))}.group:hover .group-hover\:before\:duration-500:before{content:var(--tw-content);transition-duration:.5s}.group:hover .group-hover\:after\:duration-500:after{content:var(--tw-content);transition-duration:.5s}.group:active .group-active\:-rotate-12{--tw-rotate: -12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:active .group-active\:rotate-12{--tw-rotate: 12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:border-neutral-900[data-state=checked]{--tw-border-opacity: 1;border-color:rgb(23 23 23 / var(--tw-border-opacity))}.data-\[state\=checked\]\:bg-neutral-600[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.data-\[state\=checked\]\:text-neutral-100[data-state=checked]{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:ml-4{margin-left:1rem}.sm\:ml-auto{margin-left:auto}.sm\:mt-0{margin-top:0}.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:border-l{border-left-width:1px}.sm\:border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.sm\:pl-4{padding-left:1rem}}@media (min-width: 768px){.md\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.md\:ml-8{margin-left:2rem}.md\:block{display:block}.md\:inline{display:inline}.md\:w-1\/2{width:50%}.md\:w-\[350px\]{width:350px}.md\:max-w-3xl{max-width:48rem}.md\:max-w-\[350px\]{max-width:350px}.md\:flex-row{flex-direction:row}.md\:rounded-2xl{border-radius:1rem}.md\:border{border-width:1px}.md\:border-cyan-50\/20{border-color:#ecfeff33}.md\:border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (prefers-color-scheme: dark){.dark\:border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.dark\:bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.dark\:data-\[state\=checked\]\:border-neutral-300[data-state=checked]{--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity))}.dark\:data-\[state\=checked\]\:bg-neutral-300[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(212 212 212 / var(--tw-bg-opacity))}}.\[\&_iframe\]\:\!w-full iframe{width:100%!important} diff --git a/frontend/build/client/assets/main-BVoEAjX-.js b/frontend/build/client/assets/main-Csk5C9VY.js similarity index 51% rename from frontend/build/client/assets/main-BVoEAjX-.js rename to frontend/build/client/assets/main-Csk5C9VY.js index e814f5b..dfa671b 100644 --- a/frontend/build/client/assets/main-BVoEAjX-.js +++ b/frontend/build/client/assets/main-Csk5C9VY.js @@ -1,4 +1,4 @@ -var sb=Object.defineProperty;var zh=e=>{throw TypeError(e)};var ob=(e,t,n)=>t in e?sb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Wh=(e,t,n)=>ob(e,typeof t!="symbol"?t+"":t,n),cu=(e,t,n)=>t.has(e)||zh("Cannot "+n);var k=(e,t,n)=>(cu(e,t,"read from private field"),n?n.call(e):t.get(e)),H=(e,t,n)=>t.has(e)?zh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),F=(e,t,n,r)=>(cu(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),G=(e,t,n)=>(cu(e,t,"access private method"),n);var _o=(e,t,n,r)=>({set _(i){F(e,t,i,n)},get _(){return k(e,t,r)}});function zy(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Es=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wy(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Uy={exports:{}},jl={},By={exports:{}},Z={};/** +var ub=Object.defineProperty;var Uh=e=>{throw TypeError(e)};var cb=(e,t,n)=>t in e?ub(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Bh=(e,t,n)=>cb(e,typeof t!="symbol"?t+"":t,n),du=(e,t,n)=>t.has(e)||Uh("Cannot "+n);var k=(e,t,n)=>(du(e,t,"read from private field"),n?n.call(e):t.get(e)),H=(e,t,n)=>t.has(e)?Uh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),F=(e,t,n,r)=>(du(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),G=(e,t,n)=>(du(e,t,"access private method"),n);var zo=(e,t,n,r)=>({set _(i){F(e,t,i,n)},get _(){return k(e,t,r)}});function Uy(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Es=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function By(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Hy={exports:{}},Ml={},qy={exports:{}},Z={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var sb=Object.defineProperty;var zh=e=>{throw TypeError(e)};var ob=(e,t,n)=>t in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ko=Symbol.for("react.element"),ab=Symbol.for("react.portal"),lb=Symbol.for("react.fragment"),ub=Symbol.for("react.strict_mode"),cb=Symbol.for("react.profiler"),db=Symbol.for("react.provider"),fb=Symbol.for("react.context"),hb=Symbol.for("react.forward_ref"),mb=Symbol.for("react.suspense"),pb=Symbol.for("react.memo"),gb=Symbol.for("react.lazy"),Uh=Symbol.iterator;function yb(e){return e===null||typeof e!="object"?null:(e=Uh&&e[Uh]||e["@@iterator"],typeof e=="function"?e:null)}var Hy={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},qy=Object.assign,Ky={};function Qi(e,t,n){this.props=e,this.context=t,this.refs=Ky,this.updater=n||Hy}Qi.prototype.isReactComponent={};Qi.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Qi.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Qy(){}Qy.prototype=Qi.prototype;function Qd(e,t,n){this.props=e,this.context=t,this.refs=Ky,this.updater=n||Hy}var Xd=Qd.prototype=new Qy;Xd.constructor=Qd;qy(Xd,Qi.prototype);Xd.isPureReactComponent=!0;var Bh=Array.isArray,Xy=Object.prototype.hasOwnProperty,Gd={current:null},Gy={key:!0,ref:!0,__self:!0,__source:!0};function Yy(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)Xy.call(t,r)&&!Gy.hasOwnProperty(r)&&(i[r]=t[r]);var a=arguments.length-2;if(a===1)i.children=n;else if(1{throw TypeError(e)};var ob=(e,t,n)=>t in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Pb=b,kb=Symbol.for("react.element"),Cb=Symbol.for("react.fragment"),Eb=Object.prototype.hasOwnProperty,Tb=Pb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,jb={key:!0,ref:!0,__self:!0,__source:!0};function Jy(e,t,n){var r,i={},s=null,o=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)Eb.call(t,r)&&!jb.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:kb,type:e,key:s,ref:o,props:i,_owner:Tb.current}}jl.Fragment=Cb;jl.jsx=Jy;jl.jsxs=Jy;Uy.exports=jl;var h=Uy.exports,oc={},Zy={exports:{}},gt={},e0={exports:{}},t0={};/** + */var Tb=b,jb=Symbol.for("react.element"),Nb=Symbol.for("react.fragment"),Mb=Object.prototype.hasOwnProperty,Ob=Tb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Rb={key:!0,ref:!0,__self:!0,__source:!0};function e0(e,t,n){var r,i={},s=null,o=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)Mb.call(t,r)&&!Rb.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:jb,type:e,key:s,ref:o,props:i,_owner:Ob.current}}Ml.Fragment=Nb;Ml.jsx=e0;Ml.jsxs=e0;Hy.exports=Ml;var h=Hy.exports,ac={},t0={exports:{}},gt={},n0={exports:{}},r0={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var sb=Object.defineProperty;var zh=e=>{throw TypeError(e)};var ob=(e,t,n)=>t in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(e){function t(N,L){var D=N.length;N.push(L);e:for(;0>>1,z=N[A];if(0>>1;Ai(vt,D))qi(Le,vt)?(N[A]=Le,N[q]=D,A=q):(N[A]=vt,N[be]=D,A=be);else if(qi(Le,D))N[A]=Le,N[q]=D,A=q;else break e}}return L}function i(N,L){var D=N.sortIndex-L.sortIndex;return D!==0?D:N.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],u=[],c=1,d=null,f=3,m=!1,p=!1,v=!1,x=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,g=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(N){for(var L=n(u);L!==null;){if(L.callback===null)r(u);else if(L.startTime<=N)r(u),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(u)}}function S(N){if(v=!1,w(N),!p)if(n(l)!==null)p=!0,O(P);else{var L=n(u);L!==null&&V(S,L.startTime-N)}}function P(N,L){p=!1,v&&(v=!1,y(j),j=-1),m=!0;var D=f;try{for(w(L),d=n(l);d!==null&&(!(d.expirationTime>L)||N&&!W());){var A=d.callback;if(typeof A=="function"){d.callback=null,f=d.priorityLevel;var z=A(d.expirationTime<=L);L=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(l)&&r(l),w(L)}else r(l);d=n(l)}if(d!==null)var Q=!0;else{var be=n(u);be!==null&&V(S,be.startTime-L),Q=!1}return Q}finally{d=null,f=D,m=!1}}var T=!1,C=null,j=-1,$=5,_=-1;function W(){return!(e.unstable_now()-_<$)}function ee(){if(C!==null){var N=e.unstable_now();_=N;var L=!0;try{L=C(!0,N)}finally{L?ve():(T=!1,C=null)}}else T=!1}var ve;if(typeof g=="function")ve=function(){g(ee)};else if(typeof MessageChannel<"u"){var te=new MessageChannel,E=te.port2;te.port1.onmessage=ee,ve=function(){E.postMessage(null)}}else ve=function(){x(ee,0)};function O(N){C=N,T||(T=!0,ve())}function V(N,L){j=x(function(){N(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(N){N.callback=null},e.unstable_continueExecution=function(){p||m||(p=!0,O(P))},e.unstable_forceFrameRate=function(N){0>N||125A?(N.sortIndex=D,t(u,N),n(l)===null&&N===n(u)&&(v?(y(j),j=-1):v=!0,V(S,D-A))):(N.sortIndex=z,t(l,N),p||m||(p=!0,O(P))),N},e.unstable_shouldYield=W,e.unstable_wrapCallback=function(N){var L=f;return function(){var D=f;f=L;try{return N.apply(this,arguments)}finally{f=D}}}})(t0);e0.exports=t0;var Mb=e0.exports;/** + */(function(e){function t(M,L){var D=M.length;M.push(L);e:for(;0>>1,z=M[A];if(0>>1;Ai(vt,D))qi(Le,vt)?(M[A]=Le,M[q]=D,A=q):(M[A]=vt,M[be]=D,A=be);else if(qi(Le,D))M[A]=Le,M[q]=D,A=q;else break e}}return L}function i(M,L){var D=M.sortIndex-L.sortIndex;return D!==0?D:M.id-L.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var l=[],u=[],c=1,d=null,f=3,m=!1,p=!1,v=!1,x=typeof setTimeout=="function"?setTimeout:null,y=typeof clearTimeout=="function"?clearTimeout:null,g=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(M){for(var L=n(u);L!==null;){if(L.callback===null)r(u);else if(L.startTime<=M)r(u),L.sortIndex=L.expirationTime,t(l,L);else break;L=n(u)}}function S(M){if(v=!1,w(M),!p)if(n(l)!==null)p=!0,O(P);else{var L=n(u);L!==null&&I(S,L.startTime-M)}}function P(M,L){p=!1,v&&(v=!1,y(j),j=-1),m=!0;var D=f;try{for(w(L),d=n(l);d!==null&&(!(d.expirationTime>L)||M&&!W());){var A=d.callback;if(typeof A=="function"){d.callback=null,f=d.priorityLevel;var z=A(d.expirationTime<=L);L=e.unstable_now(),typeof z=="function"?d.callback=z:d===n(l)&&r(l),w(L)}else r(l);d=n(l)}if(d!==null)var Q=!0;else{var be=n(u);be!==null&&I(S,be.startTime-L),Q=!1}return Q}finally{d=null,f=D,m=!1}}var T=!1,C=null,j=-1,$=5,_=-1;function W(){return!(e.unstable_now()-_<$)}function ee(){if(C!==null){var M=e.unstable_now();_=M;var L=!0;try{L=C(!0,M)}finally{L?ve():(T=!1,C=null)}}else T=!1}var ve;if(typeof g=="function")ve=function(){g(ee)};else if(typeof MessageChannel<"u"){var te=new MessageChannel,E=te.port2;te.port1.onmessage=ee,ve=function(){E.postMessage(null)}}else ve=function(){x(ee,0)};function O(M){C=M,T||(T=!0,ve())}function I(M,L){j=x(function(){M(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(M){M.callback=null},e.unstable_continueExecution=function(){p||m||(p=!0,O(P))},e.unstable_forceFrameRate=function(M){0>M||125A?(M.sortIndex=D,t(u,M),n(l)===null&&M===n(u)&&(v?(y(j),j=-1):v=!0,I(S,D-A))):(M.sortIndex=z,t(l,M),p||m||(p=!0,O(P))),M},e.unstable_shouldYield=W,e.unstable_wrapCallback=function(M){var L=f;return function(){var D=f;f=L;try{return M.apply(this,arguments)}finally{f=D}}}})(r0);n0.exports=r0;var Db=n0.exports;/** * @license React * react-dom.production.min.js * @@ -30,19 +30,19 @@ var sb=Object.defineProperty;var zh=e=>{throw TypeError(e)};var ob=(e,t,n)=>t in * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var n0=b,mt=Mb;function R(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ac=Object.prototype.hasOwnProperty,Nb=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,qh={},Kh={};function Ob(e){return ac.call(Kh,e)?!0:ac.call(qh,e)?!1:Nb.test(e)?Kh[e]=!0:(qh[e]=!0,!1)}function Rb(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Db(e,t,n,r){if(t===null||typeof t>"u"||Rb(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ze(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Ve={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ve[e]=new Ze(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ve[t]=new Ze(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ve[e]=new Ze(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ve[e]=new Ze(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ve[e]=new Ze(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ve[e]=new Ze(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ve[e]=new Ze(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ve[e]=new Ze(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ve[e]=new Ze(e,5,!1,e.toLowerCase(),null,!1,!1)});var Jd=/[\-:]([a-z])/g;function Zd(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Jd,Zd);Ve[t]=new Ze(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Jd,Zd);Ve[t]=new Ze(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Jd,Zd);Ve[t]=new Ze(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ve[e]=new Ze(e,1,!1,e.toLowerCase(),null,!1,!1)});Ve.xlinkHref=new Ze("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ve[e]=new Ze(e,1,!1,e.toLowerCase(),null,!0,!0)});function ef(e,t,n,r){var i=Ve.hasOwnProperty(t)?Ve[t]:null;(i!==null?i.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),lc=Object.prototype.hasOwnProperty,Lb=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Qh={},Xh={};function Ab(e){return lc.call(Xh,e)?!0:lc.call(Qh,e)?!1:Lb.test(e)?Xh[e]=!0:(Qh[e]=!0,!1)}function $b(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Fb(e,t,n,r){if(t===null||typeof t>"u"||$b(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ze(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Ie={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ie[e]=new Ze(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ie[t]=new Ze(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ie[e]=new Ze(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ie[e]=new Ze(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ie[e]=new Ze(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ie[e]=new Ze(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ie[e]=new Ze(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ie[e]=new Ze(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ie[e]=new Ze(e,5,!1,e.toLowerCase(),null,!1,!1)});var Zd=/[\-:]([a-z])/g;function ef(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Zd,ef);Ie[t]=new Ze(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Zd,ef);Ie[t]=new Ze(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Zd,ef);Ie[t]=new Ze(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ie[e]=new Ze(e,1,!1,e.toLowerCase(),null,!1,!1)});Ie.xlinkHref=new Ze("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ie[e]=new Ze(e,1,!1,e.toLowerCase(),null,!0,!0)});function tf(e,t,n,r){var i=Ie.hasOwnProperty(t)?Ie[t]:null;(i!==null?i.type!==0:r||!(2a||i[o]!==s[a]){var l=` -`+i[o].replace(" at new "," at ");return e.displayName&&l.includes("")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{hu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?vs(e):""}function Lb(e){switch(e.tag){case 5:return vs(e.type);case 16:return vs("Lazy");case 13:return vs("Suspense");case 19:return vs("SuspenseList");case 0:case 2:case 15:return e=mu(e.type,!1),e;case 11:return e=mu(e.type.render,!1),e;case 1:return e=mu(e.type,!0),e;default:return""}}function dc(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Zr:return"Fragment";case Jr:return"Portal";case lc:return"Profiler";case tf:return"StrictMode";case uc:return"Suspense";case cc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case s0:return(e.displayName||"Context")+".Consumer";case i0:return(e._context.displayName||"Context")+".Provider";case nf:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case rf:return t=e.displayName||null,t!==null?t:dc(e.type)||"Memo";case Tn:t=e._payload,e=e._init;try{return dc(e(t))}catch{}}return null}function Ab(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return dc(t);case 8:return t===tf?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Jn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function a0(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function $b(e){var t=a0(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Uo(e){e._valueTracker||(e._valueTracker=$b(e))}function l0(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=a0(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Va(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function fc(e,t){var n=t.checked;return ye({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Xh(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Jn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function u0(e,t){t=t.checked,t!=null&&ef(e,"checked",t,!1)}function hc(e,t){u0(e,t);var n=Jn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?mc(e,t.type,n):t.hasOwnProperty("defaultValue")&&mc(e,t.type,Jn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Gh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function mc(e,t,n){(t!=="number"||Va(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ws=Array.isArray;function pi(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Bo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Us(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ts={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fb=["Webkit","ms","Moz","O"];Object.keys(Ts).forEach(function(e){Fb.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ts[t]=Ts[e]})});function h0(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Ts.hasOwnProperty(e)&&Ts[e]?(""+t).trim():t+"px"}function m0(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=h0(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Vb=ye({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function yc(e,t){if(t){if(Vb[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(R(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(R(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(R(61))}if(t.style!=null&&typeof t.style!="object")throw Error(R(62))}}function vc(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wc=null;function sf(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var xc=null,gi=null,yi=null;function Zh(e){if(e=To(e)){if(typeof xc!="function")throw Error(R(280));var t=e.stateNode;t&&(t=Dl(t),xc(e.stateNode,e.type,t))}}function p0(e){gi?yi?yi.push(e):yi=[e]:gi=e}function g0(){if(gi){var e=gi,t=yi;if(yi=gi=null,Zh(e),t)for(e=0;e>>=0,e===0?32:31-(Xb(e)/Gb|0)|0}var Ho=64,qo=4194304;function xs(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Wa(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=xs(a):(s&=o,s!==0&&(r=xs(s)))}else o=n&~i,o!==0?r=xs(o):s!==0&&(r=xs(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Co(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-$t(t),e[t]=n}function e2(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Ms),lm=" ",um=!1;function $0(e,t){switch(e){case"keyup":return j2.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function F0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ei=!1;function N2(e,t){switch(e){case"compositionend":return F0(t);case"keypress":return t.which!==32?null:(um=!0,lm);case"textInput":return e=t.data,e===lm&&um?null:e;default:return null}}function O2(e,t){if(ei)return e==="compositionend"||!hf&&$0(e,t)?(e=L0(),ya=cf=_n=null,ei=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=hm(n)}}function z0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?z0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function W0(){for(var e=window,t=Va();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Va(e.document)}return t}function mf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function _2(e){var t=W0(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&z0(n.ownerDocument.documentElement,n)){if(r!==null&&mf(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=mm(n,s);var o=mm(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,ti=null,Ec=null,Os=null,Tc=!1;function pm(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Tc||ti==null||ti!==Va(r)||(r=ti,"selectionStart"in r&&mf(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Os&&Xs(Os,r)||(Os=r,r=Ha(Ec,"onSelect"),0ii||(e.current=Dc[ii],Dc[ii]=null,ii--)}function ae(e,t){ii++,Dc[ii]=e.current,e.current=t}var Zn={},He=ir(Zn),rt=ir(!1),Lr=Zn;function $i(e,t){var n=e.type.contextTypes;if(!n)return Zn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function it(e){return e=e.childContextTypes,e!=null}function Ka(){de(rt),de(He)}function Sm(e,t,n){if(He.current!==Zn)throw Error(R(168));ae(He,t),ae(rt,n)}function Y0(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(R(108,Ab(e)||"Unknown",i));return ye({},n,r)}function Qa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Zn,Lr=He.current,ae(He,e),ae(rt,rt.current),!0}function Pm(e,t,n){var r=e.stateNode;if(!r)throw Error(R(169));n?(e=Y0(e,t,Lr),r.__reactInternalMemoizedMergedChildContext=e,de(rt),de(He),ae(He,e)):de(rt),ae(rt,n)}var an=null,Ll=!1,ju=!1;function J0(e){an===null?an=[e]:an.push(e)}function J2(e){Ll=!0,J0(e)}function sr(){if(!ju&&an!==null){ju=!0;var e=0,t=oe;try{var n=an;for(oe=1;e>=o,i-=o,cn=1<<32-$t(t)+i|n<j?($=C,C=null):$=C.sibling;var _=f(y,C,w[j],S);if(_===null){C===null&&(C=$);break}e&&C&&_.alternate===null&&t(y,C),g=s(_,g,j),T===null?P=_:T.sibling=_,T=_,C=$}if(j===w.length)return n(y,C),he&&fr(y,j),P;if(C===null){for(;jj?($=C,C=null):$=C.sibling;var W=f(y,C,_.value,S);if(W===null){C===null&&(C=$);break}e&&C&&W.alternate===null&&t(y,C),g=s(W,g,j),T===null?P=W:T.sibling=W,T=W,C=$}if(_.done)return n(y,C),he&&fr(y,j),P;if(C===null){for(;!_.done;j++,_=w.next())_=d(y,_.value,S),_!==null&&(g=s(_,g,j),T===null?P=_:T.sibling=_,T=_);return he&&fr(y,j),P}for(C=r(y,C);!_.done;j++,_=w.next())_=m(C,y,j,_.value,S),_!==null&&(e&&_.alternate!==null&&C.delete(_.key===null?j:_.key),g=s(_,g,j),T===null?P=_:T.sibling=_,T=_);return e&&C.forEach(function(ee){return t(y,ee)}),he&&fr(y,j),P}function x(y,g,w,S){if(typeof w=="object"&&w!==null&&w.type===Zr&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case Wo:e:{for(var P=w.key,T=g;T!==null;){if(T.key===P){if(P=w.type,P===Zr){if(T.tag===7){n(y,T.sibling),g=i(T,w.props.children),g.return=y,y=g;break e}}else if(T.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===Tn&&Nm(P)===T.type){n(y,T.sibling),g=i(T,w.props),g.ref=ls(y,T,w),g.return=y,y=g;break e}n(y,T);break}else t(y,T);T=T.sibling}w.type===Zr?(g=Nr(w.props.children,y.mode,S,w.key),g.return=y,y=g):(S=Ca(w.type,w.key,w.props,null,y.mode,S),S.ref=ls(y,g,w),S.return=y,y=S)}return o(y);case Jr:e:{for(T=w.key;g!==null;){if(g.key===T)if(g.tag===4&&g.stateNode.containerInfo===w.containerInfo&&g.stateNode.implementation===w.implementation){n(y,g.sibling),g=i(g,w.children||[]),g.return=y,y=g;break e}else{n(y,g);break}else t(y,g);g=g.sibling}g=$u(w,y.mode,S),g.return=y,y=g}return o(y);case Tn:return T=w._init,x(y,g,T(w._payload),S)}if(ws(w))return p(y,g,w,S);if(rs(w))return v(y,g,w,S);Zo(y,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,g!==null&&g.tag===6?(n(y,g.sibling),g=i(g,w),g.return=y,y=g):(n(y,g),g=Au(w,y.mode,S),g.return=y,y=g),o(y)):n(y,g)}return x}var Vi=ov(!0),av=ov(!1),jo={},en=ir(jo),Zs=ir(jo),eo=ir(jo);function wr(e){if(e===jo)throw Error(R(174));return e}function Pf(e,t){switch(ae(eo,t),ae(Zs,e),ae(en,jo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:gc(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=gc(t,e)}de(en),ae(en,t)}function Ii(){de(en),de(Zs),de(eo)}function lv(e){wr(eo.current);var t=wr(en.current),n=gc(t,e.type);t!==n&&(ae(Zs,e),ae(en,n))}function kf(e){Zs.current===e&&(de(en),de(Zs))}var me=ir(0);function el(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Mu=[];function Cf(){for(var e=0;en?n:4,e(!0);var r=Nu.transition;Nu.transition={};try{e(!1),t()}finally{oe=n,Nu.transition=r}}function kv(){return Nt().memoizedState}function nS(e,t,n){var r=Xn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Cv(e))Ev(t,n);else if(n=nv(e,t,n,r),n!==null){var i=Ye();Ft(n,e,r,i),Tv(n,t,r)}}function rS(e,t,n){var r=Xn(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Cv(e))Ev(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,Vt(a,o)){var l=t.interleaved;l===null?(i.next=i,bf(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=nv(e,t,i,r),n!==null&&(i=Ye(),Ft(n,e,r,i),Tv(n,t,r))}}function Cv(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function Ev(e,t){Rs=tl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Tv(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,af(e,n)}}var nl={readContext:Mt,useCallback:Ie,useContext:Ie,useEffect:Ie,useImperativeHandle:Ie,useInsertionEffect:Ie,useLayoutEffect:Ie,useMemo:Ie,useReducer:Ie,useRef:Ie,useState:Ie,useDebugValue:Ie,useDeferredValue:Ie,useTransition:Ie,useMutableSource:Ie,useSyncExternalStore:Ie,useId:Ie,unstable_isNewReconciler:!1},iS={readContext:Mt,useCallback:function(e,t){return Ht().memoizedState=[e,t===void 0?null:t],e},useContext:Mt,useEffect:Rm,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ba(4194308,4,wv.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ba(4194308,4,e,t)},useInsertionEffect:function(e,t){return ba(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ht();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=nS.bind(null,ge,e),[r.memoizedState,e]},useRef:function(e){var t=Ht();return e={current:e},t.memoizedState=e},useState:Om,useDebugValue:Nf,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=Om(!1),t=e[0];return e=tS.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ge,i=Ht();if(he){if(n===void 0)throw Error(R(407));n=n()}else{if(n=t(),De===null)throw Error(R(349));$r&30||dv(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Rm(hv.bind(null,r,s,e),[e]),r.flags|=2048,ro(9,fv.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Ht(),t=De.identifierPrefix;if(he){var n=dn,r=cn;n=(r&~(1<<32-$t(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=to++,0")&&(l=l.replace("",e.displayName)),l}while(1<=o&&0<=a);break}}}finally{mu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?vs(e):""}function Ib(e){switch(e.tag){case 5:return vs(e.type);case 16:return vs("Lazy");case 13:return vs("Suspense");case 19:return vs("SuspenseList");case 0:case 2:case 15:return e=pu(e.type,!1),e;case 11:return e=pu(e.type.render,!1),e;case 1:return e=pu(e.type,!0),e;default:return""}}function fc(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Zr:return"Fragment";case Jr:return"Portal";case uc:return"Profiler";case nf:return"StrictMode";case cc:return"Suspense";case dc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case a0:return(e.displayName||"Context")+".Consumer";case o0:return(e._context.displayName||"Context")+".Provider";case rf:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case sf:return t=e.displayName||null,t!==null?t:fc(e.type)||"Memo";case jn:t=e._payload,e=e._init;try{return fc(e(t))}catch{}}return null}function Vb(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return fc(t);case 8:return t===nf?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Zn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function u0(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _b(e){var t=u0(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Bo(e){e._valueTracker||(e._valueTracker=_b(e))}function c0(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=u0(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function _a(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function hc(e,t){var n=t.checked;return ye({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Yh(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Zn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function d0(e,t){t=t.checked,t!=null&&tf(e,"checked",t,!1)}function mc(e,t){d0(e,t);var n=Zn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?pc(e,t.type,n):t.hasOwnProperty("defaultValue")&&pc(e,t.type,Zn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Jh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function pc(e,t,n){(t!=="number"||_a(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ws=Array.isArray;function pi(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Ho.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Us(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ts={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zb=["Webkit","ms","Moz","O"];Object.keys(Ts).forEach(function(e){zb.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ts[t]=Ts[e]})});function p0(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Ts.hasOwnProperty(e)&&Ts[e]?(""+t).trim():t+"px"}function g0(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=p0(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Wb=ye({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vc(e,t){if(t){if(Wb[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(R(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(R(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(R(61))}if(t.style!=null&&typeof t.style!="object")throw Error(R(62))}}function wc(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var xc=null;function of(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var bc=null,gi=null,yi=null;function tm(e){if(e=To(e)){if(typeof bc!="function")throw Error(R(280));var t=e.stateNode;t&&(t=Al(t),bc(e.stateNode,e.type,t))}}function y0(e){gi?yi?yi.push(e):yi=[e]:gi=e}function v0(){if(gi){var e=gi,t=yi;if(yi=gi=null,tm(e),t)for(e=0;e>>=0,e===0?32:31-(Zb(e)/e2|0)|0}var qo=64,Ko=4194304;function xs(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ba(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var a=o&~i;a!==0?r=xs(a):(s&=o,s!==0&&(r=xs(s)))}else o=n&~i,o!==0?r=xs(o):s!==0&&(r=xs(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Co(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-$t(t),e[t]=n}function i2(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Ns),cm=" ",dm=!1;function I0(e,t){switch(e){case"keyup":return R2.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function V0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ei=!1;function L2(e,t){switch(e){case"compositionend":return V0(t);case"keypress":return t.which!==32?null:(dm=!0,cm);case"textInput":return e=t.data,e===cm&&dm?null:e;default:return null}}function A2(e,t){if(ei)return e==="compositionend"||!mf&&I0(e,t)?(e=$0(),wa=df=zn=null,ei=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=pm(n)}}function U0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?U0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function B0(){for(var e=window,t=_a();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=_a(e.document)}return t}function pf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function B2(e){var t=B0(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&U0(n.ownerDocument.documentElement,n)){if(r!==null&&pf(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=gm(n,s);var o=gm(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,ti=null,Tc=null,Os=null,jc=!1;function ym(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;jc||ti==null||ti!==_a(r)||(r=ti,"selectionStart"in r&&pf(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Os&&Xs(Os,r)||(Os=r,r=Ka(Tc,"onSelect"),0ii||(e.current=Lc[ii],Lc[ii]=null,ii--)}function ae(e,t){ii++,Lc[ii]=e.current,e.current=t}var er={},He=sr(er),rt=sr(!1),Lr=er;function $i(e,t){var n=e.type.contextTypes;if(!n)return er;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function it(e){return e=e.childContextTypes,e!=null}function Xa(){de(rt),de(He)}function km(e,t,n){if(He.current!==er)throw Error(R(168));ae(He,t),ae(rt,n)}function Z0(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(R(108,Vb(e)||"Unknown",i));return ye({},n,r)}function Ga(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||er,Lr=He.current,ae(He,e),ae(rt,rt.current),!0}function Cm(e,t,n){var r=e.stateNode;if(!r)throw Error(R(169));n?(e=Z0(e,t,Lr),r.__reactInternalMemoizedMergedChildContext=e,de(rt),de(He),ae(He,e)):de(rt),ae(rt,n)}var an=null,$l=!1,Nu=!1;function ev(e){an===null?an=[e]:an.push(e)}function nS(e){$l=!0,ev(e)}function or(){if(!Nu&&an!==null){Nu=!0;var e=0,t=oe;try{var n=an;for(oe=1;e>=o,i-=o,cn=1<<32-$t(t)+i|n<j?($=C,C=null):$=C.sibling;var _=f(y,C,w[j],S);if(_===null){C===null&&(C=$);break}e&&C&&_.alternate===null&&t(y,C),g=s(_,g,j),T===null?P=_:T.sibling=_,T=_,C=$}if(j===w.length)return n(y,C),he&&fr(y,j),P;if(C===null){for(;jj?($=C,C=null):$=C.sibling;var W=f(y,C,_.value,S);if(W===null){C===null&&(C=$);break}e&&C&&W.alternate===null&&t(y,C),g=s(W,g,j),T===null?P=W:T.sibling=W,T=W,C=$}if(_.done)return n(y,C),he&&fr(y,j),P;if(C===null){for(;!_.done;j++,_=w.next())_=d(y,_.value,S),_!==null&&(g=s(_,g,j),T===null?P=_:T.sibling=_,T=_);return he&&fr(y,j),P}for(C=r(y,C);!_.done;j++,_=w.next())_=m(C,y,j,_.value,S),_!==null&&(e&&_.alternate!==null&&C.delete(_.key===null?j:_.key),g=s(_,g,j),T===null?P=_:T.sibling=_,T=_);return e&&C.forEach(function(ee){return t(y,ee)}),he&&fr(y,j),P}function x(y,g,w,S){if(typeof w=="object"&&w!==null&&w.type===Zr&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case Uo:e:{for(var P=w.key,T=g;T!==null;){if(T.key===P){if(P=w.type,P===Zr){if(T.tag===7){n(y,T.sibling),g=i(T,w.props.children),g.return=y,y=g;break e}}else if(T.elementType===P||typeof P=="object"&&P!==null&&P.$$typeof===jn&&Rm(P)===T.type){n(y,T.sibling),g=i(T,w.props),g.ref=ls(y,T,w),g.return=y,y=g;break e}n(y,T);break}else t(y,T);T=T.sibling}w.type===Zr?(g=Mr(w.props.children,y.mode,S,w.key),g.return=y,y=g):(S=Ta(w.type,w.key,w.props,null,y.mode,S),S.ref=ls(y,g,w),S.return=y,y=S)}return o(y);case Jr:e:{for(T=w.key;g!==null;){if(g.key===T)if(g.tag===4&&g.stateNode.containerInfo===w.containerInfo&&g.stateNode.implementation===w.implementation){n(y,g.sibling),g=i(g,w.children||[]),g.return=y,y=g;break e}else{n(y,g);break}else t(y,g);g=g.sibling}g=Fu(w,y.mode,S),g.return=y,y=g}return o(y);case jn:return T=w._init,x(y,g,T(w._payload),S)}if(ws(w))return p(y,g,w,S);if(rs(w))return v(y,g,w,S);ea(y,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,g!==null&&g.tag===6?(n(y,g.sibling),g=i(g,w),g.return=y,y=g):(n(y,g),g=$u(w,y.mode,S),g.return=y,y=g),o(y)):n(y,g)}return x}var Ii=lv(!0),uv=lv(!1),jo={},en=sr(jo),Zs=sr(jo),eo=sr(jo);function wr(e){if(e===jo)throw Error(R(174));return e}function kf(e,t){switch(ae(eo,t),ae(Zs,e),ae(en,jo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:yc(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=yc(t,e)}de(en),ae(en,t)}function Vi(){de(en),de(Zs),de(eo)}function cv(e){wr(eo.current);var t=wr(en.current),n=yc(t,e.type);t!==n&&(ae(Zs,e),ae(en,n))}function Cf(e){Zs.current===e&&(de(en),de(Zs))}var me=sr(0);function nl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Mu=[];function Ef(){for(var e=0;en?n:4,e(!0);var r=Ou.transition;Ou.transition={};try{e(!1),t()}finally{oe=n,Ou.transition=r}}function Ev(){return Mt().memoizedState}function oS(e,t,n){var r=Gn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Tv(e))jv(t,n);else if(n=iv(e,t,n,r),n!==null){var i=Ye();Ft(n,e,r,i),Nv(n,t,r)}}function aS(e,t,n){var r=Gn(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Tv(e))jv(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,a=s(o,n);if(i.hasEagerState=!0,i.eagerState=a,It(a,o)){var l=t.interleaved;l===null?(i.next=i,Sf(t)):(i.next=l.next,l.next=i),t.interleaved=i;return}}catch{}finally{}n=iv(e,t,i,r),n!==null&&(i=Ye(),Ft(n,e,r,i),Nv(n,t,r))}}function Tv(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function jv(e,t){Rs=rl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Nv(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,lf(e,n)}}var il={readContext:Nt,useCallback:Ve,useContext:Ve,useEffect:Ve,useImperativeHandle:Ve,useInsertionEffect:Ve,useLayoutEffect:Ve,useMemo:Ve,useReducer:Ve,useRef:Ve,useState:Ve,useDebugValue:Ve,useDeferredValue:Ve,useTransition:Ve,useMutableSource:Ve,useSyncExternalStore:Ve,useId:Ve,unstable_isNewReconciler:!1},lS={readContext:Nt,useCallback:function(e,t){return Ht().memoizedState=[e,t===void 0?null:t],e},useContext:Nt,useEffect:Lm,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Pa(4194308,4,bv.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Pa(4194308,4,e,t)},useInsertionEffect:function(e,t){return Pa(4,2,e,t)},useMemo:function(e,t){var n=Ht();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ht();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=oS.bind(null,ge,e),[r.memoizedState,e]},useRef:function(e){var t=Ht();return e={current:e},t.memoizedState=e},useState:Dm,useDebugValue:Of,useDeferredValue:function(e){return Ht().memoizedState=e},useTransition:function(){var e=Dm(!1),t=e[0];return e=sS.bind(null,e[1]),Ht().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ge,i=Ht();if(he){if(n===void 0)throw Error(R(407));n=n()}else{if(n=t(),De===null)throw Error(R(349));$r&30||hv(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Lm(pv.bind(null,r,s,e),[e]),r.flags|=2048,ro(9,mv.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=Ht(),t=De.identifierPrefix;if(he){var n=dn,r=cn;n=(r&~(1<<32-$t(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=to++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Gt]=t,e[Js]=r,$v(e,t,!1,!1),t.stateNode=e;e:{switch(o=vc(n,r),n){case"dialog":ue("cancel",e),ue("close",e),i=r;break;case"iframe":case"object":case"embed":ue("load",e),i=r;break;case"video":case"audio":for(i=0;izi&&(t.flags|=128,r=!0,us(s,!1),t.lanes=4194304)}else{if(!r)if(e=el(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),us(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!he)return _e(t),null}else 2*Pe()-s.renderingStartTime>zi&&n!==1073741824&&(t.flags|=128,r=!0,us(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Pe(),t.sibling=null,n=me.current,ae(me,r?n&1|2:n&1),t):(_e(t),null);case 22:case 23:return $f(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ct&1073741824&&(_e(t),t.subtreeFlags&6&&(t.flags|=8192)):_e(t),null;case 24:return null;case 25:return null}throw Error(R(156,t.tag))}function fS(e,t){switch(gf(t),t.tag){case 1:return it(t.type)&&Ka(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ii(),de(rt),de(He),Cf(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return kf(t),null;case 13:if(de(me),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(R(340));Fi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return de(me),null;case 4:return Ii(),null;case 10:return xf(t.type._context),null;case 22:case 23:return $f(),null;case 24:return null;default:return null}}var ta=!1,We=!1,hS=typeof WeakSet=="function"?WeakSet:Set,I=null;function li(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){xe(e,t,r)}else n.current=null}function Hc(e,t,n){try{n()}catch(r){xe(e,t,r)}}var zm=!1;function mS(e,t){if(jc=Ua,e=W0(),mf(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var m;d!==n||i!==0&&d.nodeType!==3||(a=o+i),d!==s||r!==0&&d.nodeType!==3||(l=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(m=d.firstChild)!==null;)f=d,d=m;for(;;){if(d===e)break t;if(f===n&&++u===i&&(a=o),f===s&&++c===r&&(l=o),(m=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=m}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Mc={focusedElem:e,selectionRange:n},Ua=!1,I=t;I!==null;)if(t=I,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,I=e;else for(;I!==null;){t=I;try{var p=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var v=p.memoizedProps,x=p.memoizedState,y=t.stateNode,g=y.getSnapshotBeforeUpdate(t.elementType===t.type?v:Dt(t.type,v),x);y.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(S){xe(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,I=e;break}I=t.return}return p=zm,zm=!1,p}function Ds(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&Hc(t,n,s)}i=i.next}while(i!==r)}}function Fl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function qc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Iv(e){var t=e.alternate;t!==null&&(e.alternate=null,Iv(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gt],delete t[Js],delete t[Rc],delete t[G2],delete t[Y2])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function _v(e){return e.tag===5||e.tag===3||e.tag===4}function Wm(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||_v(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=qa));else if(r!==4&&(e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}var Ae=null,Lt=!1;function Pn(e,t,n){for(n=n.child;n!==null;)zv(e,t,n),n=n.sibling}function zv(e,t,n){if(Zt&&typeof Zt.onCommitFiberUnmount=="function")try{Zt.onCommitFiberUnmount(Ml,n)}catch{}switch(n.tag){case 5:We||li(n,t);case 6:var r=Ae,i=Lt;Ae=null,Pn(e,t,n),Ae=r,Lt=i,Ae!==null&&(Lt?(e=Ae,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ae.removeChild(n.stateNode));break;case 18:Ae!==null&&(Lt?(e=Ae,n=n.stateNode,e.nodeType===8?Tu(e.parentNode,n):e.nodeType===1&&Tu(e,n),Ks(e)):Tu(Ae,n.stateNode));break;case 4:r=Ae,i=Lt,Ae=n.stateNode.containerInfo,Lt=!0,Pn(e,t,n),Ae=r,Lt=i;break;case 0:case 11:case 14:case 15:if(!We&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&Hc(n,t,o),i=i.next}while(i!==r)}Pn(e,t,n);break;case 1:if(!We&&(li(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){xe(n,t,a)}Pn(e,t,n);break;case 21:Pn(e,t,n);break;case 22:n.mode&1?(We=(r=We)||n.memoizedState!==null,Pn(e,t,n),We=r):Pn(e,t,n);break;default:Pn(e,t,n)}}function Um(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new hS),t.forEach(function(r){var i=PS.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Ot(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=Pe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*gS(r/1960))-r,10e?16:e,zn===null)var r=!1;else{if(e=zn,zn=null,sl=0,ne&6)throw Error(R(331));var i=ne;for(ne|=4,I=e.current;I!==null;){var s=I,o=s.child;if(I.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lPe()-Lf?Mr(e,0):Df|=n),st(e,t)}function Xv(e,t){t===0&&(e.mode&1?(t=qo,qo<<=1,!(qo&130023424)&&(qo=4194304)):t=1);var n=Ye();e=vn(e,t),e!==null&&(Co(e,t,n),st(e,n))}function SS(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Xv(e,n)}function PS(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(R(314))}r!==null&&r.delete(t),Xv(e,n)}var Gv;Gv=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||rt.current)nt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return nt=!1,cS(e,t,n);nt=!!(e.flags&131072)}else nt=!1,he&&t.flags&1048576&&Z0(t,Ga,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Sa(e,t),e=t.pendingProps;var i=$i(t,He.current);wi(t,n),i=Tf(null,t,r,e,i,n);var s=jf();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,it(r)?(s=!0,Qa(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Sf(t),i.updater=Al,t.stateNode=i,i._reactInternals=t,Vc(t,r,e,n),t=zc(null,t,r,!0,s,n)):(t.tag=0,he&&s&&pf(t),Xe(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Sa(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=CS(r),e=Dt(r,e),i){case 0:t=_c(null,t,r,e,n);break e;case 1:t=Vm(null,t,r,e,n);break e;case 11:t=$m(null,t,r,e,n);break e;case 14:t=Fm(null,t,r,Dt(r.type,e),n);break e}throw Error(R(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),_c(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),Vm(e,t,r,i,n);case 3:e:{if(Dv(t),e===null)throw Error(R(387));r=t.pendingProps,s=t.memoizedState,i=s.element,rv(e,t),Za(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=_i(Error(R(423)),t),t=Im(e,t,r,n,i);break e}else if(r!==i){i=_i(Error(R(424)),t),t=Im(e,t,r,n,i);break e}else for(dt=qn(t.stateNode.containerInfo.firstChild),ft=t,he=!0,At=null,n=av(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Fi(),r===i){t=wn(e,t,n);break e}Xe(e,t,r,n)}t=t.child}return t;case 5:return lv(t),e===null&&Ac(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Nc(r,i)?o=null:s!==null&&Nc(r,s)&&(t.flags|=32),Rv(e,t),Xe(e,t,o,n),t.child;case 6:return e===null&&Ac(t),null;case 13:return Lv(e,t,n);case 4:return Pf(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Vi(t,null,r,n):Xe(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),$m(e,t,r,i,n);case 7:return Xe(e,t,t.pendingProps,n),t.child;case 8:return Xe(e,t,t.pendingProps.children,n),t.child;case 12:return Xe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,ae(Ya,r._currentValue),r._currentValue=o,s!==null)if(Vt(s.value,o)){if(s.children===i.children&&!rt.current){t=wn(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=fn(-1,n&-n),l.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),$c(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(R(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),$c(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Xe(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,wi(t,n),i=Mt(i),r=r(i),t.flags|=1,Xe(e,t,r,n),t.child;case 14:return r=t.type,i=Dt(r,t.pendingProps),i=Dt(r.type,i),Fm(e,t,r,i,n);case 15:return Nv(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),Sa(e,t),t.tag=1,it(r)?(e=!0,Qa(t)):e=!1,wi(t,n),sv(t,r,i),Vc(t,r,i,n),zc(null,t,r,!0,e,n);case 19:return Av(e,t,n);case 22:return Ov(e,t,n)}throw Error(R(156,t.tag))};function Yv(e,t){return P0(e,t)}function kS(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,n,r){return new kS(e,t,n,r)}function Vf(e){return e=e.prototype,!(!e||!e.isReactComponent)}function CS(e){if(typeof e=="function")return Vf(e)?1:0;if(e!=null){if(e=e.$$typeof,e===nf)return 11;if(e===rf)return 14}return 2}function Gn(e,t){var n=e.alternate;return n===null?(n=Tt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ca(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")Vf(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Zr:return Nr(n.children,i,s,t);case tf:o=8,i|=8;break;case lc:return e=Tt(12,n,t,i|2),e.elementType=lc,e.lanes=s,e;case uc:return e=Tt(13,n,t,i),e.elementType=uc,e.lanes=s,e;case cc:return e=Tt(19,n,t,i),e.elementType=cc,e.lanes=s,e;case o0:return Il(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case i0:o=10;break e;case s0:o=9;break e;case nf:o=11;break e;case rf:o=14;break e;case Tn:o=16,r=null;break e}throw Error(R(130,e==null?e:typeof e,""))}return t=Tt(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function Nr(e,t,n,r){return e=Tt(7,e,r,t),e.lanes=n,e}function Il(e,t,n,r){return e=Tt(22,e,r,t),e.elementType=o0,e.lanes=n,e.stateNode={isHidden:!1},e}function Au(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function $u(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function ES(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gu(0),this.expirationTimes=gu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gu(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function If(e,t,n,r,i,s,o,a,l){return e=new ES(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Tt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Sf(s),e}function TS(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t1)}catch(e){console.error(e)}}t1(),Zy.exports=gt;var RS=Zy.exports,Ym=RS;oc.createRoot=Ym.createRoot,oc.hydrateRoot=Ym.hydrateRoot;var Yi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Wi=typeof window>"u"||"Deno"in window;function kt(){}function DS(e,t){return typeof e=="function"?e(t):e}function Zc(e){return typeof e=="number"&&e>=0&&e!==1/0}function n1(e,t){return Math.max(e+(t||0)-Date.now(),0)}function Jm(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:s,queryKey:o,stale:a}=e;if(o){if(r){if(t.queryHash!==Uf(o,t.options))return!1}else if(!so(t.queryKey,o))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||typeof i<"u"&&i!==t.state.fetchStatus||s&&!s(t))}function Zm(e,t){const{exact:n,status:r,predicate:i,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(Ir(t.options.mutationKey)!==Ir(s))return!1}else if(!so(t.options.mutationKey,s))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Uf(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ir)(e)}function Ir(e){return JSON.stringify(e,(t,n)=>ed(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function so(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(n=>!so(e[n],t[n])):!1}function r1(e,t){if(e===t)return e;const n=ep(e)&&ep(t);if(n||ed(e)&&ed(t)){const r=n?e.length:Object.keys(e).length,i=n?t:Object.keys(t),s=i.length,o=n?[]:{};let a=0;for(let l=0;l"u")return!0;const n=t.prototype;return!(!tp(n)||!n.hasOwnProperty("isPrototypeOf"))}function tp(e){return Object.prototype.toString.call(e)==="[object Object]"}function LS(e){return new Promise(t=>{setTimeout(t,e)})}function td(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?r1(e,t):t}function AS(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function $S(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Sr,Rn,bi,Oy,FS=(Oy=class extends Yi{constructor(){super();H(this,Sr);H(this,Rn);H(this,bi);F(this,bi,t=>{if(!Wi&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){k(this,Rn)||this.setEventListener(k(this,bi))}onUnsubscribe(){var t;this.hasListeners()||((t=k(this,Rn))==null||t.call(this),F(this,Rn,void 0))}setEventListener(t){var n;F(this,bi,t),(n=k(this,Rn))==null||n.call(this),F(this,Rn,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){k(this,Sr)!==t&&(F(this,Sr,t),this.onFocus())}onFocus(){this.listeners.forEach(t=>{t()})}isFocused(){var t;return typeof k(this,Sr)=="boolean"?k(this,Sr):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Sr=new WeakMap,Rn=new WeakMap,bi=new WeakMap,Oy),ul=new FS,Si,Dn,Pi,Ry,VS=(Ry=class extends Yi{constructor(){super();H(this,Si,!0);H(this,Dn);H(this,Pi);F(this,Pi,t=>{if(!Wi&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){k(this,Dn)||this.setEventListener(k(this,Pi))}onUnsubscribe(){var t;this.hasListeners()||((t=k(this,Dn))==null||t.call(this),F(this,Dn,void 0))}setEventListener(t){var n;F(this,Pi,t),(n=k(this,Dn))==null||n.call(this),F(this,Dn,t(this.setOnline.bind(this)))}setOnline(t){k(this,Si)!==t&&(F(this,Si,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return k(this,Si)}},Si=new WeakMap,Dn=new WeakMap,Pi=new WeakMap,Ry),cl=new VS;function IS(e){return Math.min(1e3*2**e,3e4)}function Bl(e){return(e??"online")==="online"?cl.isOnline():!0}var i1=class{constructor(e){this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Fu(e){return e instanceof i1}function s1(e){let t=!1,n=0,r=!1,i,s,o;const a=new Promise((x,y)=>{s=x,o=y}),l=x=>{var y;r||(m(new i1(x)),(y=e.abort)==null||y.call(e))},u=()=>{t=!0},c=()=>{t=!1},d=()=>!ul.isFocused()||e.networkMode!=="always"&&!cl.isOnline(),f=x=>{var y;r||(r=!0,(y=e.onSuccess)==null||y.call(e,x),i==null||i(),s(x))},m=x=>{var y;r||(r=!0,(y=e.onError)==null||y.call(e,x),i==null||i(),o(x))},p=()=>new Promise(x=>{var y;i=g=>{const w=r||!d();return w&&x(g),w},(y=e.onPause)==null||y.call(e)}).then(()=>{var x;i=void 0,r||(x=e.onContinue)==null||x.call(e)}),v=()=>{if(r)return;let x;try{x=e.fn()}catch(y){x=Promise.reject(y)}Promise.resolve(x).then(f).catch(y=>{var T;if(r)return;const g=e.retry??(Wi?0:3),w=e.retryDelay??IS,S=typeof w=="function"?w(n,y):w,P=g===!0||typeof g=="number"&&n{if(d())return p()}).then(()=>{t?m(y):v()})})};return Bl(e.networkMode)?v():p().then(v),{promise:a,cancel:l,continue:()=>(i==null?void 0:i())?a:Promise.resolve(),cancelRetry:u,continueRetry:c}}function _S(){let e=[],t=0,n=f=>{f()},r=f=>{f()},i=f=>setTimeout(f,0);const s=f=>{i=f},o=f=>{let m;t++;try{m=f()}finally{t--,t||u()}return m},a=f=>{t?e.push(f):i(()=>{n(f)})},l=f=>(...m)=>{a(()=>{f(...m)})},u=()=>{const f=e;e=[],f.length&&i(()=>{r(()=>{f.forEach(m=>{n(m)})})})};return{batch:o,batchCalls:l,schedule:a,setNotifyFunction:f=>{n=f},setBatchNotifyFunction:f=>{r=f},setScheduler:s}}var Me=_S(),Pr,Dy,o1=(Dy=class{constructor(){H(this,Pr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Zc(this.gcTime)&&F(this,Pr,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Wi?1/0:5*60*1e3))}clearGcTimeout(){k(this,Pr)&&(clearTimeout(k(this,Pr)),F(this,Pr,void 0))}},Pr=new WeakMap,Dy),ki,Ci,bt,Ln,St,Oe,wo,kr,Ge,Ea,sn,Ly,zS=(Ly=class extends o1{constructor(t){super();H(this,Ge);H(this,ki);H(this,Ci);H(this,bt);H(this,Ln);H(this,St);H(this,Oe);H(this,wo);H(this,kr);F(this,kr,!1),F(this,wo,t.defaultOptions),G(this,Ge,Ea).call(this,t.options),F(this,Oe,[]),F(this,bt,t.cache),this.queryKey=t.queryKey,this.queryHash=t.queryHash,F(this,ki,t.state||WS(this.options)),this.state=k(this,ki),this.scheduleGc()}get meta(){return this.options.meta}optionalRemove(){!k(this,Oe).length&&this.state.fetchStatus==="idle"&&k(this,bt).remove(this)}setData(t,n){const r=td(this.state.data,t,this.options);return G(this,Ge,sn).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){G(this,Ge,sn).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r;const n=k(this,Ln);return(r=k(this,St))==null||r.cancel(t),n?n.then(kt).catch(kt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(k(this,ki))}isActive(){return k(this,Oe).some(t=>t.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||!this.state.dataUpdatedAt||k(this,Oe).some(t=>t.getCurrentResult().isStale)}isStaleByTime(t=0){return this.state.isInvalidated||!this.state.dataUpdatedAt||!n1(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=k(this,Oe).find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=k(this,St))==null||n.continue()}onOnline(){var n;const t=k(this,Oe).find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=k(this,St))==null||n.continue()}addObserver(t){k(this,Oe).includes(t)||(k(this,Oe).push(t),this.clearGcTimeout(),k(this,bt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){k(this,Oe).includes(t)&&(F(this,Oe,k(this,Oe).filter(n=>n!==t)),k(this,Oe).length||(k(this,St)&&(k(this,kr)?k(this,St).cancel({revert:!0}):k(this,St).cancelRetry()),this.scheduleGc()),k(this,bt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return k(this,Oe).length}invalidate(){this.state.isInvalidated||G(this,Ge,sn).call(this,{type:"invalidate"})}fetch(t,n){var u,c,d,f;if(this.state.fetchStatus!=="idle"){if(this.state.dataUpdatedAt&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(k(this,Ln))return(u=k(this,St))==null||u.continueRetry(),k(this,Ln)}if(t&&G(this,Ge,Ea).call(this,t),!this.options.queryFn){const m=k(this,Oe).find(p=>p.options.queryFn);m&&G(this,Ge,Ea).call(this,m.options)}const r=new AbortController,i={queryKey:this.queryKey,meta:this.meta},s=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(F(this,kr,!0),r.signal)})};s(i);const o=()=>this.options.queryFn?(F(this,kr,!1),this.options.persister?this.options.persister(this.options.queryFn,i,this):this.options.queryFn(i)):Promise.reject(new Error(`Missing queryFn: '${this.options.queryHash}'`)),a={fetchOptions:n,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:o};s(a),(c=this.options.behavior)==null||c.onFetch(a,this),F(this,Ci,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=a.fetchOptions)==null?void 0:d.meta))&&G(this,Ge,sn).call(this,{type:"fetch",meta:(f=a.fetchOptions)==null?void 0:f.meta});const l=m=>{var p,v,x,y;Fu(m)&&m.silent||G(this,Ge,sn).call(this,{type:"error",error:m}),Fu(m)||((v=(p=k(this,bt).config).onError)==null||v.call(p,m,this),(y=(x=k(this,bt).config).onSettled)==null||y.call(x,this.state.data,m,this)),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return F(this,St,s1({fn:a.fetchFn,abort:r.abort.bind(r),onSuccess:m=>{var p,v,x,y;if(typeof m>"u"){l(new Error(`${this.queryHash} data is undefined`));return}this.setData(m),(v=(p=k(this,bt).config).onSuccess)==null||v.call(p,m,this),(y=(x=k(this,bt).config).onSettled)==null||y.call(x,m,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:l,onFail:(m,p)=>{G(this,Ge,sn).call(this,{type:"failed",failureCount:m,error:p})},onPause:()=>{G(this,Ge,sn).call(this,{type:"pause"})},onContinue:()=>{G(this,Ge,sn).call(this,{type:"continue"})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode})),F(this,Ln,k(this,St).promise),k(this,Ln)}},ki=new WeakMap,Ci=new WeakMap,bt=new WeakMap,Ln=new WeakMap,St=new WeakMap,Oe=new WeakMap,wo=new WeakMap,kr=new WeakMap,Ge=new WeakSet,Ea=function(t){this.options={...k(this,wo),...t},this.updateGcTime(this.options.gcTime)},sn=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:t.meta??null,fetchStatus:Bl(this.options.networkMode)?"fetching":"paused",...!r.dataUpdatedAt&&{error:null,status:"pending"}};case"success":return{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const i=t.error;return Fu(i)&&i.revert&&k(this,Ci)?{...k(this,Ci),fetchStatus:"idle"}:{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Me.batch(()=>{k(this,Oe).forEach(r=>{r.onQueryUpdate()}),k(this,bt).notify({query:this,type:"updated",action:t})})},Ly);function WS(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=typeof t<"u",r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var qt,Ay,US=(Ay=class extends Yi{constructor(t={}){super();H(this,qt);this.config=t,F(this,qt,new Map)}build(t,n,r){const i=n.queryKey,s=n.queryHash??Uf(i,n);let o=this.get(s);return o||(o=new zS({cache:this,queryKey:i,queryHash:s,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){k(this,qt).has(t.queryHash)||(k(this,qt).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=k(this,qt).get(t.queryHash);n&&(t.destroy(),n===t&&k(this,qt).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Me.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return k(this,qt).get(t)}getAll(){return[...k(this,qt).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>Jm(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>Jm(t,r)):n}notify(t){Me.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Me.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Me.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},qt=new WeakMap,Ay),Kt,xo,lt,Ei,Qt,Cn,$y,BS=($y=class extends o1{constructor(t){super();H(this,Qt);H(this,Kt);H(this,xo);H(this,lt);H(this,Ei);this.mutationId=t.mutationId,F(this,xo,t.defaultOptions),F(this,lt,t.mutationCache),F(this,Kt,[]),this.state=t.state||a1(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options={...k(this,xo),...t},this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){k(this,Kt).includes(t)||(k(this,Kt).push(t),this.clearGcTimeout(),k(this,lt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){F(this,Kt,k(this,Kt).filter(n=>n!==t)),this.scheduleGc(),k(this,lt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){k(this,Kt).length||(this.state.status==="pending"?this.scheduleGc():k(this,lt).remove(this))}continue(){var t;return((t=k(this,Ei))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,s,o,a,l,u,c,d,f,m,p,v,x,y,g,w,S,P,T,C;const n=()=>(F(this,Ei,s1({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(j,$)=>{G(this,Qt,Cn).call(this,{type:"failed",failureCount:j,error:$})},onPause:()=>{G(this,Qt,Cn).call(this,{type:"pause"})},onContinue:()=>{G(this,Qt,Cn).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode})),k(this,Ei).promise),r=this.state.status==="pending";try{if(!r){G(this,Qt,Cn).call(this,{type:"pending",variables:t}),await((s=(i=k(this,lt).config).onMutate)==null?void 0:s.call(i,t,this));const $=await((a=(o=this.options).onMutate)==null?void 0:a.call(o,t));$!==this.state.context&&G(this,Qt,Cn).call(this,{type:"pending",context:$,variables:t})}const j=await n();return await((u=(l=k(this,lt).config).onSuccess)==null?void 0:u.call(l,j,t,this.state.context,this)),await((d=(c=this.options).onSuccess)==null?void 0:d.call(c,j,t,this.state.context)),await((m=(f=k(this,lt).config).onSettled)==null?void 0:m.call(f,j,null,this.state.variables,this.state.context,this)),await((v=(p=this.options).onSettled)==null?void 0:v.call(p,j,null,t,this.state.context)),G(this,Qt,Cn).call(this,{type:"success",data:j}),j}catch(j){try{throw await((y=(x=k(this,lt).config).onError)==null?void 0:y.call(x,j,t,this.state.context,this)),await((w=(g=this.options).onError)==null?void 0:w.call(g,j,t,this.state.context)),await((P=(S=k(this,lt).config).onSettled)==null?void 0:P.call(S,void 0,j,this.state.variables,this.state.context,this)),await((C=(T=this.options).onSettled)==null?void 0:C.call(T,void 0,j,t,this.state.context)),j}finally{G(this,Qt,Cn).call(this,{type:"error",error:j})}}}},Kt=new WeakMap,xo=new WeakMap,lt=new WeakMap,Ei=new WeakMap,Qt=new WeakSet,Cn=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!Bl(this.options.networkMode),status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Me.batch(()=>{k(this,Kt).forEach(r=>{r.onMutationUpdate(t)}),k(this,lt).notify({mutation:this,type:"updated",action:t})})},$y);function a1(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Pt,bo,Cr,Fy,HS=(Fy=class extends Yi{constructor(t={}){super();H(this,Pt);H(this,bo);H(this,Cr);this.config=t,F(this,Pt,[]),F(this,bo,0)}build(t,n,r){const i=new BS({mutationCache:this,mutationId:++_o(this,bo)._,options:t.defaultMutationOptions(n),state:r});return this.add(i),i}add(t){k(this,Pt).push(t),this.notify({type:"added",mutation:t})}remove(t){F(this,Pt,k(this,Pt).filter(n=>n!==t)),this.notify({type:"removed",mutation:t})}clear(){Me.batch(()=>{k(this,Pt).forEach(t=>{this.remove(t)})})}getAll(){return k(this,Pt)}find(t){const n={exact:!0,...t};return k(this,Pt).find(r=>Zm(n,r))}findAll(t={}){return k(this,Pt).filter(n=>Zm(t,n))}notify(t){Me.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){return F(this,Cr,(k(this,Cr)??Promise.resolve()).then(()=>{const t=k(this,Pt).filter(n=>n.state.isPaused);return Me.batch(()=>t.reduce((n,r)=>n.then(()=>r.continue().catch(kt)),Promise.resolve()))}).then(()=>{F(this,Cr,void 0)})),k(this,Cr)}},Pt=new WeakMap,bo=new WeakMap,Cr=new WeakMap,Fy);function qS(e){return{onFetch:(t,n)=>{const r=async()=>{var p,v,x,y,g;const i=t.options,s=(x=(v=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:v.fetchMore)==null?void 0:x.direction,o=((y=t.state.data)==null?void 0:y.pages)||[],a=((g=t.state.data)==null?void 0:g.pageParams)||[],l={pages:[],pageParams:[]};let u=!1;const c=w=>{Object.defineProperty(w,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",()=>{u=!0}),t.signal)})},d=t.options.queryFn||(()=>Promise.reject(new Error(`Missing queryFn: '${t.options.queryHash}'`))),f=async(w,S,P)=>{if(u)return Promise.reject();if(S==null&&w.pages.length)return Promise.resolve(w);const T={queryKey:t.queryKey,pageParam:S,direction:P?"backward":"forward",meta:t.options.meta};c(T);const C=await d(T),{maxPages:j}=t.options,$=P?$S:AS;return{pages:$(w.pages,C,j),pageParams:$(w.pageParams,S,j)}};let m;if(s&&o.length){const w=s==="backward",S=w?KS:np,P={pages:o,pageParams:a},T=S(i,P);m=await f(P,T,w)}else{m=await f(l,a[0]??i.initialPageParam);const w=e??o.length;for(let S=1;S{var i,s;return(s=(i=t.options).persister)==null?void 0:s.call(i,r,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=r}}}function np(e,{pages:t,pageParams:n}){const r=t.length-1;return e.getNextPageParam(t[r],t,n[r],n)}function KS(e,{pages:t,pageParams:n}){var r;return(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n)}var Te,An,$n,Ti,ji,Fn,Mi,Ni,Vy,QS=(Vy=class{constructor(e={}){H(this,Te);H(this,An);H(this,$n);H(this,Ti);H(this,ji);H(this,Fn);H(this,Mi);H(this,Ni);F(this,Te,e.queryCache||new US),F(this,An,e.mutationCache||new HS),F(this,$n,e.defaultOptions||{}),F(this,Ti,new Map),F(this,ji,new Map),F(this,Fn,0)}mount(){_o(this,Fn)._++,k(this,Fn)===1&&(F(this,Mi,ul.subscribe(()=>{ul.isFocused()&&(this.resumePausedMutations(),k(this,Te).onFocus())})),F(this,Ni,cl.subscribe(()=>{cl.isOnline()&&(this.resumePausedMutations(),k(this,Te).onOnline())})))}unmount(){var e,t;_o(this,Fn)._--,k(this,Fn)===0&&((e=k(this,Mi))==null||e.call(this),F(this,Mi,void 0),(t=k(this,Ni))==null||t.call(this),F(this,Ni,void 0))}isFetching(e){return k(this,Te).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return k(this,An).findAll({...e,status:"pending"}).length}getQueryData(e){var t;return(t=k(this,Te).find({queryKey:e}))==null?void 0:t.state.data}ensureQueryData(e){const t=this.getQueryData(e.queryKey);return t!==void 0?Promise.resolve(t):this.fetchQuery(e)}getQueriesData(e){return this.getQueryCache().findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=k(this,Te).find({queryKey:e}),i=r==null?void 0:r.state.data,s=DS(t,i);if(typeof s>"u")return;const o=this.defaultQueryOptions({queryKey:e});return k(this,Te).build(this,o).setData(s,{...n,manual:!0})}setQueriesData(e,t,n){return Me.batch(()=>this.getQueryCache().findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var t;return(t=k(this,Te).find({queryKey:e}))==null?void 0:t.state}removeQueries(e){const t=k(this,Te);Me.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=k(this,Te),r={type:"active",...e};return Me.batch(()=>(n.findAll(e).forEach(i=>{i.reset()}),this.refetchQueries(r,t)))}cancelQueries(e={},t={}){const n={revert:!0,...t},r=Me.batch(()=>k(this,Te).findAll(e).map(i=>i.cancel(n)));return Promise.all(r).then(kt).catch(kt)}invalidateQueries(e={},t={}){return Me.batch(()=>{if(k(this,Te).findAll(e).forEach(r=>{r.invalidate()}),e.refetchType==="none")return Promise.resolve();const n={...e,type:e.refetchType??e.type??"active"};return this.refetchQueries(n,t)})}refetchQueries(e={},t){const n={...t,cancelRefetch:(t==null?void 0:t.cancelRefetch)??!0},r=Me.batch(()=>k(this,Te).findAll(e).filter(i=>!i.isDisabled()).map(i=>{let s=i.fetch(void 0,n);return n.throwOnError||(s=s.catch(kt)),i.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(r).then(kt)}fetchQuery(e){const t=this.defaultQueryOptions(e);typeof t.retry>"u"&&(t.retry=!1);const n=k(this,Te).build(this,t);return n.isStaleByTime(t.staleTime)?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(kt).catch(kt)}fetchInfiniteQuery(e){return e.behavior=qS(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(kt).catch(kt)}resumePausedMutations(){return k(this,An).resumePausedMutations()}getQueryCache(){return k(this,Te)}getMutationCache(){return k(this,An)}getDefaultOptions(){return k(this,$n)}setDefaultOptions(e){F(this,$n,e)}setQueryDefaults(e,t){k(this,Ti).set(Ir(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...k(this,Ti).values()];let n={};return t.forEach(r=>{so(e,r.queryKey)&&(n={...n,...r.defaultOptions})}),n}setMutationDefaults(e,t){k(this,ji).set(Ir(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...k(this,ji).values()];let n={};return t.forEach(r=>{so(e,r.mutationKey)&&(n={...n,...r.defaultOptions})}),n}defaultQueryOptions(e){if(e!=null&&e._defaulted)return e;const t={...k(this,$n).queries,...(e==null?void 0:e.queryKey)&&this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Uf(t.queryKey,t)),typeof t.refetchOnReconnect>"u"&&(t.refetchOnReconnect=t.networkMode!=="always"),typeof t.throwOnError>"u"&&(t.throwOnError=!!t.suspense),typeof t.networkMode>"u"&&t.persister&&(t.networkMode="offlineFirst"),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...k(this,$n).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){k(this,Te).clear(),k(this,An).clear()}},Te=new WeakMap,An=new WeakMap,$n=new WeakMap,Ti=new WeakMap,ji=new WeakMap,Fn=new WeakMap,Mi=new WeakMap,Ni=new WeakMap,Vy),et,ce,So,Qe,Er,Oi,Xt,Po,Ri,Di,Tr,jr,Vn,Li,ie,Ss,nd,rd,id,sd,od,ad,ld,l1,Iy,XS=(Iy=class extends Yi{constructor(t,n){super();H(this,ie);H(this,et);H(this,ce);H(this,So);H(this,Qe);H(this,Er);H(this,Oi);H(this,Xt);H(this,Po);H(this,Ri);H(this,Di);H(this,Tr);H(this,jr);H(this,Vn);H(this,Li,new Set);this.options=n,F(this,et,t),F(this,Xt,null),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(k(this,ce).addObserver(this),rp(k(this,ce),this.options)?G(this,ie,Ss).call(this):this.updateResult(),G(this,ie,sd).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ud(k(this,ce),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ud(k(this,ce),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,G(this,ie,od).call(this),G(this,ie,ad).call(this),k(this,ce).removeObserver(this)}setOptions(t,n){const r=this.options,i=k(this,ce);if(this.options=k(this,et).defaultQueryOptions(t),ll(r,this.options)||k(this,et).getQueryCache().notify({type:"observerOptionsUpdated",query:k(this,ce),observer:this}),typeof this.options.enabled<"u"&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=r.queryKey),G(this,ie,ld).call(this);const s=this.hasListeners();s&&ip(k(this,ce),i,this.options,r)&&G(this,ie,Ss).call(this),this.updateResult(n),s&&(k(this,ce)!==i||this.options.enabled!==r.enabled||this.options.staleTime!==r.staleTime)&&G(this,ie,nd).call(this);const o=G(this,ie,rd).call(this);s&&(k(this,ce)!==i||this.options.enabled!==r.enabled||o!==k(this,Vn))&&G(this,ie,id).call(this,o)}getOptimisticResult(t){const n=k(this,et).getQueryCache().build(k(this,et),t),r=this.createResult(n,t);return YS(this,r)&&(F(this,Qe,r),F(this,Oi,this.options),F(this,Er,k(this,ce).state)),r}getCurrentResult(){return k(this,Qe)}trackResult(t){const n={};return Object.keys(t).forEach(r=>{Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:()=>(k(this,Li).add(r),t[r])})}),n}getCurrentQuery(){return k(this,ce)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=k(this,et).defaultQueryOptions(t),r=k(this,et).getQueryCache().build(k(this,et),n);return r.isFetchingOptimistic=!0,r.fetch().then(()=>this.createResult(r,n))}fetch(t){return G(this,ie,Ss).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),k(this,Qe)))}createResult(t,n){var T;const r=k(this,ce),i=this.options,s=k(this,Qe),o=k(this,Er),a=k(this,Oi),u=t!==r?t.state:k(this,So),{state:c}=t;let{error:d,errorUpdatedAt:f,fetchStatus:m,status:p}=c,v=!1,x;if(n._optimisticResults){const C=this.hasListeners(),j=!C&&rp(t,n),$=C&&ip(t,r,n,i);(j||$)&&(m=Bl(t.options.networkMode)?"fetching":"paused",c.dataUpdatedAt||(p="pending")),n._optimisticResults==="isRestoring"&&(m="idle")}if(n.select&&typeof c.data<"u")if(s&&c.data===(o==null?void 0:o.data)&&n.select===k(this,Po))x=k(this,Ri);else try{F(this,Po,n.select),x=n.select(c.data),x=td(s==null?void 0:s.data,x,n),F(this,Ri,x),F(this,Xt,null)}catch(C){F(this,Xt,C)}else x=c.data;if(typeof n.placeholderData<"u"&&typeof x>"u"&&p==="pending"){let C;if(s!=null&&s.isPlaceholderData&&n.placeholderData===(a==null?void 0:a.placeholderData))C=s.data;else if(C=typeof n.placeholderData=="function"?n.placeholderData((T=k(this,Di))==null?void 0:T.state.data,k(this,Di)):n.placeholderData,n.select&&typeof C<"u")try{C=n.select(C),F(this,Xt,null)}catch(j){F(this,Xt,j)}typeof C<"u"&&(p="success",x=td(s==null?void 0:s.data,C,n),v=!0)}k(this,Xt)&&(d=k(this,Xt),x=k(this,Ri),f=Date.now(),p="error");const y=m==="fetching",g=p==="pending",w=p==="error",S=g&&y;return{status:p,fetchStatus:m,isPending:g,isSuccess:p==="success",isError:w,isInitialLoading:S,isLoading:S,data:x,dataUpdatedAt:c.dataUpdatedAt,error:d,errorUpdatedAt:f,failureCount:c.fetchFailureCount,failureReason:c.fetchFailureReason,errorUpdateCount:c.errorUpdateCount,isFetched:c.dataUpdateCount>0||c.errorUpdateCount>0,isFetchedAfterMount:c.dataUpdateCount>u.dataUpdateCount||c.errorUpdateCount>u.errorUpdateCount,isFetching:y,isRefetching:y&&!g,isLoadingError:w&&c.dataUpdatedAt===0,isPaused:m==="paused",isPlaceholderData:v,isRefetchError:w&&c.dataUpdatedAt!==0,isStale:Bf(t,n),refetch:this.refetch}}updateResult(t){const n=k(this,Qe),r=this.createResult(k(this,ce),this.options);if(F(this,Er,k(this,ce).state),F(this,Oi,this.options),k(this,Er).data!==void 0&&F(this,Di,k(this,ce)),ll(r,n))return;F(this,Qe,r);const i={},s=()=>{if(!n)return!0;const{notifyOnChangeProps:o}=this.options,a=typeof o=="function"?o():o;if(a==="all"||!a&&!k(this,Li).size)return!0;const l=new Set(a??k(this,Li));return this.options.throwOnError&&l.add("error"),Object.keys(k(this,Qe)).some(u=>{const c=u;return k(this,Qe)[c]!==n[c]&&l.has(c)})};(t==null?void 0:t.listeners)!==!1&&s()&&(i.listeners=!0),G(this,ie,l1).call(this,{...i,...t})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&G(this,ie,sd).call(this)}},et=new WeakMap,ce=new WeakMap,So=new WeakMap,Qe=new WeakMap,Er=new WeakMap,Oi=new WeakMap,Xt=new WeakMap,Po=new WeakMap,Ri=new WeakMap,Di=new WeakMap,Tr=new WeakMap,jr=new WeakMap,Vn=new WeakMap,Li=new WeakMap,ie=new WeakSet,Ss=function(t){G(this,ie,ld).call(this);let n=k(this,ce).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(kt)),n},nd=function(){if(G(this,ie,od).call(this),Wi||k(this,Qe).isStale||!Zc(this.options.staleTime))return;const n=n1(k(this,Qe).dataUpdatedAt,this.options.staleTime)+1;F(this,Tr,setTimeout(()=>{k(this,Qe).isStale||this.updateResult()},n))},rd=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(k(this,ce)):this.options.refetchInterval)??!1},id=function(t){G(this,ie,ad).call(this),F(this,Vn,t),!(Wi||this.options.enabled===!1||!Zc(k(this,Vn))||k(this,Vn)===0)&&F(this,jr,setInterval(()=>{(this.options.refetchIntervalInBackground||ul.isFocused())&&G(this,ie,Ss).call(this)},k(this,Vn)))},sd=function(){G(this,ie,nd).call(this),G(this,ie,id).call(this,G(this,ie,rd).call(this))},od=function(){k(this,Tr)&&(clearTimeout(k(this,Tr)),F(this,Tr,void 0))},ad=function(){k(this,jr)&&(clearInterval(k(this,jr)),F(this,jr,void 0))},ld=function(){const t=k(this,et).getQueryCache().build(k(this,et),this.options);if(t===k(this,ce))return;const n=k(this,ce);F(this,ce,t),F(this,So,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},l1=function(t){Me.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(k(this,Qe))}),k(this,et).getQueryCache().notify({query:k(this,ce),type:"observerResultsUpdated"})})},Iy);function GS(e,t){return t.enabled!==!1&&!e.state.dataUpdatedAt&&!(e.state.status==="error"&&t.retryOnMount===!1)}function rp(e,t){return GS(e,t)||e.state.dataUpdatedAt>0&&ud(e,t,t.refetchOnMount)}function ud(e,t,n){if(t.enabled!==!1){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&Bf(e,t)}return!1}function ip(e,t,n,r){return n.enabled!==!1&&(e!==t||r.enabled===!1)&&(!n.suspense||e.state.status!=="error")&&Bf(e,n)}function Bf(e,t){return e.isStaleByTime(t.staleTime)}function YS(e,t){return!ll(e.getCurrentResult(),t)}var In,ln,ut,un,pn,Ta,cd,_y,JS=(_y=class extends Yi{constructor(n,r){super();H(this,pn);H(this,In);H(this,ln);H(this,ut);H(this,un);F(this,ln,void 0),F(this,In,n),this.setOptions(r),this.bindMethods(),G(this,pn,Ta).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){var i;const r=this.options;this.options=k(this,In).defaultMutationOptions(n),ll(r,this.options)||k(this,In).getMutationCache().notify({type:"observerOptionsUpdated",mutation:k(this,ut),observer:this}),(i=k(this,ut))==null||i.setOptions(this.options),r!=null&&r.mutationKey&&this.options.mutationKey&&Ir(r.mutationKey)!==Ir(this.options.mutationKey)&&this.reset()}onUnsubscribe(){var n;this.hasListeners()||(n=k(this,ut))==null||n.removeObserver(this)}onMutationUpdate(n){G(this,pn,Ta).call(this),G(this,pn,cd).call(this,n)}getCurrentResult(){return k(this,ln)}reset(){var n;(n=k(this,ut))==null||n.removeObserver(this),F(this,ut,void 0),G(this,pn,Ta).call(this),G(this,pn,cd).call(this)}mutate(n,r){var i;return F(this,un,r),(i=k(this,ut))==null||i.removeObserver(this),F(this,ut,k(this,In).getMutationCache().build(k(this,In),this.options)),k(this,ut).addObserver(this),k(this,ut).execute(n)}},In=new WeakMap,ln=new WeakMap,ut=new WeakMap,un=new WeakMap,pn=new WeakSet,Ta=function(){var r;const n=((r=k(this,ut))==null?void 0:r.state)??a1();F(this,ln,{...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset})},cd=function(n){Me.batch(()=>{var r,i,s,o,a,l,u,c;if(k(this,un)&&this.hasListeners()){const d=k(this,ln).variables,f=k(this,ln).context;(n==null?void 0:n.type)==="success"?((i=(r=k(this,un)).onSuccess)==null||i.call(r,n.data,d,f),(o=(s=k(this,un)).onSettled)==null||o.call(s,n.data,null,d,f)):(n==null?void 0:n.type)==="error"&&((l=(a=k(this,un)).onError)==null||l.call(a,n.error,d,f),(c=(u=k(this,un)).onSettled)==null||c.call(u,void 0,n.error,d,f))}this.listeners.forEach(d=>{d(k(this,ln))})})},_y),u1=b.createContext(void 0),Hf=e=>{const t=b.useContext(u1);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},ZS=({client:e,children:t})=>(b.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),b.createElement(u1.Provider,{value:e},t)),c1=b.createContext(!1),eP=()=>b.useContext(c1);c1.Provider;function tP(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var nP=b.createContext(tP()),rP=()=>b.useContext(nP);function d1(e,t){return typeof e=="function"?e(...t):!!e}var iP=(e,t)=>{(e.suspense||e.throwOnError)&&(t.isReset()||(e.retryOnMount=!1))},sP=e=>{b.useEffect(()=>{e.clearReset()},[e])},oP=({result:e,errorResetBoundary:t,throwOnError:n,query:r})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&d1(n,[e.error,r]),aP=e=>{e.suspense&&typeof e.staleTime!="number"&&(e.staleTime=1e3)},lP=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,uP=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function cP(e,t,n){const r=Hf(),i=eP(),s=rP(),o=r.defaultQueryOptions(e);o._optimisticResults=i?"isRestoring":"optimistic",aP(o),iP(o,s),sP(s);const[a]=b.useState(()=>new t(r,o)),l=a.getOptimisticResult(o);if(b.useSyncExternalStore(b.useCallback(u=>{const c=i?()=>{}:a.subscribe(Me.batchCalls(u));return a.updateResult(),c},[a,i]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),b.useEffect(()=>{a.setOptions(o,{listeners:!1})},[o,a]),lP(o,l))throw uP(o,a,s);if(oP({result:l,errorResetBoundary:s,throwOnError:o.throwOnError,query:r.getQueryCache().get(o.queryHash)}))throw l.error;return o.notifyOnChangeProps?l:a.trackResult(l)}function dP(e,t){return cP(e,XS)}function fP(e,t){const n=Hf(),[r]=b.useState(()=>new JS(n,e));b.useEffect(()=>{r.setOptions(e)},[r,e]);const i=b.useSyncExternalStore(b.useCallback(o=>r.subscribe(Me.batchCalls(o)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),s=b.useCallback((o,a)=>{r.mutate(o,a).catch(hP)},[r]);if(i.error&&d1(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:s,mutateAsync:i.mutate}}function hP(){}function f1(e,t){return function(){return e.apply(t,arguments)}}const{toString:mP}=Object.prototype,{getPrototypeOf:qf}=Object,{iterator:Hl,toStringTag:h1}=Symbol,ql=(e=>t=>{const n=mP.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),It=e=>(e=e.toLowerCase(),t=>ql(t)===e),Kl=e=>t=>typeof t===e,{isArray:Ji}=Array,Ui=Kl("undefined");function Mo(e){return e!==null&&!Ui(e)&&e.constructor!==null&&!Ui(e.constructor)&&ot(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const m1=It("ArrayBuffer");function pP(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&m1(e.buffer),t}const gP=Kl("string"),ot=Kl("function"),p1=Kl("number"),No=e=>e!==null&&typeof e=="object",yP=e=>e===!0||e===!1,ja=e=>{if(ql(e)!=="object")return!1;const t=qf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(h1 in e)&&!(Hl in e)},vP=e=>{if(!No(e)||Mo(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},wP=It("Date"),xP=It("File"),bP=It("Blob"),SP=It("FileList"),PP=e=>No(e)&&ot(e.pipe),kP=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ot(e.append)&&((t=ql(e))==="formdata"||t==="object"&&ot(e.toString)&&e.toString()==="[object FormData]"))},CP=It("URLSearchParams"),[EP,TP,jP,MP]=["ReadableStream","Request","Response","Headers"].map(It),NP=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oo(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),Ji(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const xr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,y1=e=>!Ui(e)&&e!==xr;function dd(){const{caseless:e,skipUndefined:t}=y1(this)&&this||{},n={},r=(i,s)=>{const o=e&&g1(n,s)||s;ja(n[o])&&ja(i)?n[o]=dd(n[o],i):ja(i)?n[o]=dd({},i):Ji(i)?n[o]=i.slice():(!t||!Ui(i))&&(n[o]=i)};for(let i=0,s=arguments.length;i(Oo(t,(i,s)=>{n&&ot(i)?e[s]=f1(i,n):e[s]=i},{allOwnKeys:r}),e),RP=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),DP=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},LP=(e,t,n,r)=>{let i,s,o;const a={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)o=i[s],(!r||r(o,e,t))&&!a[o]&&(t[o]=e[o],a[o]=!0);e=n!==!1&&qf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},AP=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},$P=e=>{if(!e)return null;if(Ji(e))return e;let t=e.length;if(!p1(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},FP=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qf(Uint8Array)),VP=(e,t)=>{const r=(e&&e[Hl]).call(e);let i;for(;(i=r.next())&&!i.done;){const s=i.value;t.call(e,s[0],s[1])}},IP=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},_P=It("HTMLFormElement"),zP=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),sp=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),WP=It("RegExp"),v1=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Oo(n,(i,s)=>{let o;(o=t(i,s,e))!==!1&&(r[s]=o||i)}),Object.defineProperties(e,r)},UP=e=>{v1(e,(t,n)=>{if(ot(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ot(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},BP=(e,t)=>{const n={},r=i=>{i.forEach(s=>{n[s]=!0})};return Ji(e)?r(e):r(String(e).split(t)),n},HP=()=>{},qP=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function KP(e){return!!(e&&ot(e.append)&&e[h1]==="FormData"&&e[Hl])}const QP=e=>{const t=new Array(10),n=(r,i)=>{if(No(r)){if(t.indexOf(r)>=0)return;if(Mo(r))return r;if(!("toJSON"in r)){t[i]=r;const s=Ji(r)?[]:{};return Oo(r,(o,a)=>{const l=n(o,i+1);!Ui(l)&&(s[a]=l)}),t[i]=void 0,s}}return r};return n(e,0)},XP=It("AsyncFunction"),GP=e=>e&&(No(e)||ot(e))&&ot(e.then)&&ot(e.catch),w1=((e,t)=>e?setImmediate:t?((n,r)=>(xr.addEventListener("message",({source:i,data:s})=>{i===xr&&s===n&&r.length&&r.shift()()},!1),i=>{r.push(i),xr.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ot(xr.postMessage)),YP=typeof queueMicrotask<"u"?queueMicrotask.bind(xr):typeof process<"u"&&process.nextTick||w1,JP=e=>e!=null&&ot(e[Hl]),M={isArray:Ji,isArrayBuffer:m1,isBuffer:Mo,isFormData:kP,isArrayBufferView:pP,isString:gP,isNumber:p1,isBoolean:yP,isObject:No,isPlainObject:ja,isEmptyObject:vP,isReadableStream:EP,isRequest:TP,isResponse:jP,isHeaders:MP,isUndefined:Ui,isDate:wP,isFile:xP,isBlob:bP,isRegExp:WP,isFunction:ot,isStream:PP,isURLSearchParams:CP,isTypedArray:FP,isFileList:SP,forEach:Oo,merge:dd,extend:OP,trim:NP,stripBOM:RP,inherits:DP,toFlatObject:LP,kindOf:ql,kindOfTest:It,endsWith:AP,toArray:$P,forEachEntry:VP,matchAll:IP,isHTMLForm:_P,hasOwnProperty:sp,hasOwnProp:sp,reduceDescriptors:v1,freezeMethods:UP,toObjectSet:BP,toCamelCase:zP,noop:HP,toFiniteNumber:qP,findKey:g1,global:xr,isContextDefined:y1,isSpecCompliantForm:KP,toJSONObject:QP,isAsyncFn:XP,isThenable:GP,setImmediate:w1,asap:YP,isIterable:JP};function Y(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}M.inherits(Y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:M.toJSONObject(this.config),code:this.code,status:this.status}}});const x1=Y.prototype,b1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{b1[e]={value:e}});Object.defineProperties(Y,b1);Object.defineProperty(x1,"isAxiosError",{value:!0});Y.from=(e,t,n,r,i,s)=>{const o=Object.create(x1);M.toFlatObject(e,o,function(c){return c!==Error.prototype},u=>u!=="isAxiosError");const a=e&&e.message?e.message:"Error",l=t==null&&e?e.code:t;return Y.call(o,a,l,n,r,i),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",s&&Object.assign(o,s),o};const ZP=null;function fd(e){return M.isPlainObject(e)||M.isArray(e)}function S1(e){return M.endsWith(e,"[]")?e.slice(0,-2):e}function op(e,t,n){return e?e.concat(t).map(function(i,s){return i=S1(i),!n&&s?"["+i+"]":i}).join(n?".":""):t}function ek(e){return M.isArray(e)&&!e.some(fd)}const tk=M.toFlatObject(M,{},null,function(t){return/^is[A-Z]/.test(t)});function Ql(e,t,n){if(!M.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=M.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,x){return!M.isUndefined(x[v])});const r=n.metaTokens,i=n.visitor||c,s=n.dots,o=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&M.isSpecCompliantForm(t);if(!M.isFunction(i))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(M.isDate(p))return p.toISOString();if(M.isBoolean(p))return p.toString();if(!l&&M.isBlob(p))throw new Y("Blob is not supported. Use a Buffer instead.");return M.isArrayBuffer(p)||M.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function c(p,v,x){let y=p;if(p&&!x&&typeof p=="object"){if(M.endsWith(v,"{}"))v=r?v:v.slice(0,-2),p=JSON.stringify(p);else if(M.isArray(p)&&ek(p)||(M.isFileList(p)||M.endsWith(v,"[]"))&&(y=M.toArray(p)))return v=S1(v),y.forEach(function(w,S){!(M.isUndefined(w)||w===null)&&t.append(o===!0?op([v],S,s):o===null?v:v+"[]",u(w))}),!1}return fd(p)?!0:(t.append(op(x,v,s),u(p)),!1)}const d=[],f=Object.assign(tk,{defaultVisitor:c,convertValue:u,isVisitable:fd});function m(p,v){if(!M.isUndefined(p)){if(d.indexOf(p)!==-1)throw Error("Circular reference detected in "+v.join("."));d.push(p),M.forEach(p,function(y,g){(!(M.isUndefined(y)||y===null)&&i.call(t,y,M.isString(g)?g.trim():g,v,f))===!0&&m(y,v?v.concat(g):[g])}),d.pop()}}if(!M.isObject(e))throw new TypeError("data must be an object");return m(e),t}function ap(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Kf(e,t){this._pairs=[],e&&Ql(e,this,t)}const P1=Kf.prototype;P1.append=function(t,n){this._pairs.push([t,n])};P1.toString=function(t){const n=t?function(r){return t.call(this,r,ap)}:ap;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function nk(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function k1(e,t,n){if(!t)return e;const r=n&&n.encode||nk;M.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let s;if(i?s=i(t,n):s=M.isURLSearchParams(t)?t.toString():new Kf(t,n).toString(r),s){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class lp{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){M.forEach(this.handlers,function(r){r!==null&&t(r)})}}const C1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},rk=typeof URLSearchParams<"u"?URLSearchParams:Kf,ik=typeof FormData<"u"?FormData:null,sk=typeof Blob<"u"?Blob:null,ok={isBrowser:!0,classes:{URLSearchParams:rk,FormData:ik,Blob:sk},protocols:["http","https","file","blob","url","data"]},Qf=typeof window<"u"&&typeof document<"u",hd=typeof navigator=="object"&&navigator||void 0,ak=Qf&&(!hd||["ReactNative","NativeScript","NS"].indexOf(hd.product)<0),lk=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",uk=Qf&&window.location.href||"http://localhost",ck=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Qf,hasStandardBrowserEnv:ak,hasStandardBrowserWebWorkerEnv:lk,navigator:hd,origin:uk},Symbol.toStringTag,{value:"Module"})),Ue={...ck,...ok};function dk(e,t){return Ql(e,new Ue.classes.URLSearchParams,{visitor:function(n,r,i,s){return Ue.isNode&&M.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function fk(e){return M.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function hk(e){const t={},n=Object.keys(e);let r;const i=n.length;let s;for(r=0;r=n.length;return o=!o&&M.isArray(i)?i.length:o,l?(M.hasOwnProp(i,o)?i[o]=[i[o],r]:i[o]=r,!a):((!i[o]||!M.isObject(i[o]))&&(i[o]=[]),t(n,r,i[o],s)&&M.isArray(i[o])&&(i[o]=hk(i[o])),!a)}if(M.isFormData(e)&&M.isFunction(e.entries)){const n={};return M.forEachEntry(e,(r,i)=>{t(fk(r),i,n,0)}),n}return null}function mk(e,t,n){if(M.isString(e))try{return(t||JSON.parse)(e),M.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Ro={transitional:C1,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,s=M.isObject(t);if(s&&M.isHTMLForm(t)&&(t=new FormData(t)),M.isFormData(t))return i?JSON.stringify(E1(t)):t;if(M.isArrayBuffer(t)||M.isBuffer(t)||M.isStream(t)||M.isFile(t)||M.isBlob(t)||M.isReadableStream(t))return t;if(M.isArrayBufferView(t))return t.buffer;if(M.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return dk(t,this.formSerializer).toString();if((a=M.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Ql(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return s||i?(n.setContentType("application/json",!1),mk(t)):t}],transformResponse:[function(t){const n=this.transitional||Ro.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(M.isResponse(t)||M.isReadableStream(t))return t;if(t&&M.isString(t)&&(r&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t,this.parseReviver)}catch(a){if(o)throw a.name==="SyntaxError"?Y.from(a,Y.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ue.classes.FormData,Blob:Ue.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};M.forEach(["delete","get","head","post","put","patch"],e=>{Ro.headers[e]={}});const pk=M.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),gk=e=>{const t={};let n,r,i;return e&&e.split(` -`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),r=o.substring(i+1).trim(),!(!n||t[n]&&pk[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},up=Symbol("internals");function ds(e){return e&&String(e).trim().toLowerCase()}function Ma(e){return e===!1||e==null?e:M.isArray(e)?e.map(Ma):String(e)}function yk(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const vk=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Vu(e,t,n,r,i){if(M.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!M.isString(t)){if(M.isString(r))return t.indexOf(r)!==-1;if(M.isRegExp(r))return r.test(t)}}function wk(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function xk(e,t){const n=M.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,s,o){return this[r].call(this,t,i,s,o)},configurable:!0})})}let at=class{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function s(a,l,u){const c=ds(l);if(!c)throw new Error("header name must be a non-empty string");const d=M.findKey(i,c);(!d||i[d]===void 0||u===!0||u===void 0&&i[d]!==!1)&&(i[d||l]=Ma(a))}const o=(a,l)=>M.forEach(a,(u,c)=>s(u,c,l));if(M.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(M.isString(t)&&(t=t.trim())&&!vk(t))o(gk(t),n);else if(M.isObject(t)&&M.isIterable(t)){let a={},l,u;for(const c of t){if(!M.isArray(c))throw TypeError("Object iterator must return a key-value pair");a[u=c[0]]=(l=a[u])?M.isArray(l)?[...l,c[1]]:[l,c[1]]:c[1]}o(a,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=ds(t),t){const r=M.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return yk(i);if(M.isFunction(n))return n.call(this,i,r);if(M.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ds(t),t){const r=M.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Vu(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function s(o){if(o=ds(o),o){const a=M.findKey(r,o);a&&(!n||Vu(r,r[a],a,n))&&(delete r[a],i=!0)}}return M.isArray(t)?t.forEach(s):s(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const s=n[r];(!t||Vu(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const n=this,r={};return M.forEach(this,(i,s)=>{const o=M.findKey(r,s);if(o){n[o]=Ma(i),delete n[s];return}const a=t?wk(s):String(s).trim();a!==s&&delete n[s],n[a]=Ma(i),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return M.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&M.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[up]=this[up]={accessors:{}}).accessors,i=this.prototype;function s(o){const a=ds(o);r[a]||(xk(i,o),r[a]=!0)}return M.isArray(t)?t.forEach(s):s(t),this}};at.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);M.reduceDescriptors(at.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});M.freezeMethods(at);function Iu(e,t){const n=this||Ro,r=t||n,i=at.from(r.headers);let s=r.data;return M.forEach(e,function(a){s=a.call(n,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function T1(e){return!!(e&&e.__CANCEL__)}function Zi(e,t,n){Y.call(this,e??"canceled",Y.ERR_CANCELED,t,n),this.name="CanceledError"}M.inherits(Zi,Y,{__CANCEL__:!0});function j1(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Y("Request failed with status code "+n.status,[Y.ERR_BAD_REQUEST,Y.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function bk(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Sk(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,s=0,o;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),c=r[s];o||(o=u),n[i]=l,r[i]=u;let d=s,f=0;for(;d!==i;)f+=n[d++],d=d%e;if(i=(i+1)%e,i===s&&(s=(s+1)%e),u-o{n=c,i=null,s&&(clearTimeout(s),s=null),e(...u)};return[(...u)=>{const c=Date.now(),d=c-n;d>=r?o(u,c):(i=u,s||(s=setTimeout(()=>{s=null,o(i)},r-d)))},()=>i&&o(i)]}const dl=(e,t,n=3)=>{let r=0;const i=Sk(50,250);return Pk(s=>{const o=s.loaded,a=s.lengthComputable?s.total:void 0,l=o-r,u=i(l),c=o<=a;r=o;const d={loaded:o,total:a,progress:a?o/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&c?(a-o)/u:void 0,event:s,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(d)},n)},cp=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},dp=e=>(...t)=>M.asap(()=>e(...t)),kk=Ue.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ue.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ue.origin),Ue.navigator&&/(msie|trident)/i.test(Ue.navigator.userAgent)):()=>!0,Ck=Ue.hasStandardBrowserEnv?{write(e,t,n,r,i,s){const o=[e+"="+encodeURIComponent(t)];M.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),M.isString(r)&&o.push("path="+r),M.isString(i)&&o.push("domain="+i),s===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Ek(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Tk(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function M1(e,t,n){let r=!Ek(t);return e&&(r||n==!1)?Tk(e,t):t}const fp=e=>e instanceof at?{...e}:e;function _r(e,t){t=t||{};const n={};function r(u,c,d,f){return M.isPlainObject(u)&&M.isPlainObject(c)?M.merge.call({caseless:f},u,c):M.isPlainObject(c)?M.merge({},c):M.isArray(c)?c.slice():c}function i(u,c,d,f){if(M.isUndefined(c)){if(!M.isUndefined(u))return r(void 0,u,d,f)}else return r(u,c,d,f)}function s(u,c){if(!M.isUndefined(c))return r(void 0,c)}function o(u,c){if(M.isUndefined(c)){if(!M.isUndefined(u))return r(void 0,u)}else return r(void 0,c)}function a(u,c,d){if(d in t)return r(u,c);if(d in e)return r(void 0,u)}const l={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(u,c,d)=>i(fp(u),fp(c),d,!0)};return M.forEach(Object.keys({...e,...t}),function(c){const d=l[c]||i,f=d(e[c],t[c],c);M.isUndefined(f)&&d!==a||(n[c]=f)}),n}const N1=e=>{const t=_r({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:s,headers:o,auth:a}=t;if(t.headers=o=at.from(o),t.url=k1(M1(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),M.isFormData(n)){if(Ue.hasStandardBrowserEnv||Ue.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(M.isFunction(n.getHeaders)){const l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([c,d])=>{u.includes(c.toLowerCase())&&o.set(c,d)})}}if(Ue.hasStandardBrowserEnv&&(r&&M.isFunction(r)&&(r=r(t)),r||r!==!1&&kk(t.url))){const l=i&&s&&Ck.read(s);l&&o.set(i,l)}return t},jk=typeof XMLHttpRequest<"u",Mk=jk&&function(e){return new Promise(function(n,r){const i=N1(e);let s=i.data;const o=at.from(i.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=i,c,d,f,m,p;function v(){m&&m(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let x=new XMLHttpRequest;x.open(i.method.toUpperCase(),i.url,!0),x.timeout=i.timeout;function y(){if(!x)return;const w=at.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders()),P={data:!a||a==="text"||a==="json"?x.responseText:x.response,status:x.status,statusText:x.statusText,headers:w,config:e,request:x};j1(function(C){n(C),v()},function(C){r(C),v()},P),x=null}"onloadend"in x?x.onloadend=y:x.onreadystatechange=function(){!x||x.readyState!==4||x.status===0&&!(x.responseURL&&x.responseURL.indexOf("file:")===0)||setTimeout(y)},x.onabort=function(){x&&(r(new Y("Request aborted",Y.ECONNABORTED,e,x)),x=null)},x.onerror=function(S){const P=S&&S.message?S.message:"Network Error",T=new Y(P,Y.ERR_NETWORK,e,x);T.event=S||null,r(T),x=null},x.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const P=i.transitional||C1;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),r(new Y(S,P.clarifyTimeoutError?Y.ETIMEDOUT:Y.ECONNABORTED,e,x)),x=null},s===void 0&&o.setContentType(null),"setRequestHeader"in x&&M.forEach(o.toJSON(),function(S,P){x.setRequestHeader(P,S)}),M.isUndefined(i.withCredentials)||(x.withCredentials=!!i.withCredentials),a&&a!=="json"&&(x.responseType=i.responseType),u&&([f,p]=dl(u,!0),x.addEventListener("progress",f)),l&&x.upload&&([d,m]=dl(l),x.upload.addEventListener("progress",d),x.upload.addEventListener("loadend",m)),(i.cancelToken||i.signal)&&(c=w=>{x&&(r(!w||w.type?new Zi(null,e,x):w),x.abort(),x=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const g=bk(i.url);if(g&&Ue.protocols.indexOf(g)===-1){r(new Y("Unsupported protocol "+g+":",Y.ERR_BAD_REQUEST,e));return}x.send(s||null)})},Nk=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,i;const s=function(u){if(!i){i=!0,a();const c=u instanceof Error?u:this.reason;r.abort(c instanceof Y?c:new Zi(c instanceof Error?c.message:c))}};let o=t&&setTimeout(()=>{o=null,s(new Y(`timeout ${t} of ms exceeded`,Y.ETIMEDOUT))},t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(s):u.removeEventListener("abort",s)}),e=null)};e.forEach(u=>u.addEventListener("abort",s));const{signal:l}=r;return l.unsubscribe=()=>M.asap(a),l}},Ok=function*(e,t){let n=e.byteLength;if(n{const i=Rk(e,t);let s=0,o,a=l=>{o||(o=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await i.next();if(u){a(),l.close();return}let d=c.byteLength;if(n){let f=s+=d;n(f)}l.enqueue(new Uint8Array(c))}catch(u){throw a(u),u}},cancel(l){return a(l),i.return()}},{highWaterMark:2})},mp=64*1024,{isFunction:ia}=M,Lk=(({Request:e,Response:t})=>({Request:e,Response:t}))(M.global),{ReadableStream:pp,TextEncoder:gp}=M.global,yp=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Ak=e=>{e=M.merge.call({skipUndefined:!0},Lk,e);const{fetch:t,Request:n,Response:r}=e,i=t?ia(t):typeof fetch=="function",s=ia(n),o=ia(r);if(!i)return!1;const a=i&&ia(pp),l=i&&(typeof gp=="function"?(p=>v=>p.encode(v))(new gp):async p=>new Uint8Array(await new n(p).arrayBuffer())),u=s&&a&&yp(()=>{let p=!1;const v=new n(Ue.origin,{body:new pp,method:"POST",get duplex(){return p=!0,"half"}}).headers.has("Content-Type");return p&&!v}),c=o&&a&&yp(()=>M.isReadableStream(new r("").body)),d={stream:c&&(p=>p.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!d[p]&&(d[p]=(v,x)=>{let y=v&&v[p];if(y)return y.call(v);throw new Y(`Response type '${p}' is not supported`,Y.ERR_NOT_SUPPORT,x)})});const f=async p=>{if(p==null)return 0;if(M.isBlob(p))return p.size;if(M.isSpecCompliantForm(p))return(await new n(Ue.origin,{method:"POST",body:p}).arrayBuffer()).byteLength;if(M.isArrayBufferView(p)||M.isArrayBuffer(p))return p.byteLength;if(M.isURLSearchParams(p)&&(p=p+""),M.isString(p))return(await l(p)).byteLength},m=async(p,v)=>{const x=M.toFiniteNumber(p.getContentLength());return x??f(v)};return async p=>{let{url:v,method:x,data:y,signal:g,cancelToken:w,timeout:S,onDownloadProgress:P,onUploadProgress:T,responseType:C,headers:j,withCredentials:$="same-origin",fetchOptions:_}=N1(p),W=t||fetch;C=C?(C+"").toLowerCase():"text";let ee=Nk([g,w&&w.toAbortSignal()],S),ve=null;const te=ee&&ee.unsubscribe&&(()=>{ee.unsubscribe()});let E;try{if(T&&u&&x!=="get"&&x!=="head"&&(E=await m(j,y))!==0){let A=new n(v,{method:"POST",body:y,duplex:"half"}),z;if(M.isFormData(y)&&(z=A.headers.get("content-type"))&&j.setContentType(z),A.body){const[Q,be]=cp(E,dl(dp(T)));y=hp(A.body,mp,Q,be)}}M.isString($)||($=$?"include":"omit");const O=s&&"credentials"in n.prototype,V={..._,signal:ee,method:x.toUpperCase(),headers:j.normalize().toJSON(),body:y,duplex:"half",credentials:O?$:void 0};ve=s&&new n(v,V);let N=await(s?W(ve,_):W(v,V));const L=c&&(C==="stream"||C==="response");if(c&&(P||L&&te)){const A={};["status","statusText","headers"].forEach(vt=>{A[vt]=N[vt]});const z=M.toFiniteNumber(N.headers.get("content-length")),[Q,be]=P&&cp(z,dl(dp(P),!0))||[];N=new r(hp(N.body,mp,Q,()=>{be&&be(),te&&te()}),A)}C=C||"text";let D=await d[M.findKey(d,C)||"text"](N,p);return!L&&te&&te(),await new Promise((A,z)=>{j1(A,z,{data:D,headers:at.from(N.headers),status:N.status,statusText:N.statusText,config:p,request:ve})})}catch(O){throw te&&te(),O&&O.name==="TypeError"&&/Load failed|fetch/i.test(O.message)?Object.assign(new Y("Network Error",Y.ERR_NETWORK,p,ve),{cause:O.cause||O}):Y.from(O,O&&O.code,p,ve)}}},$k=new Map,O1=e=>{let t=e?e.env:{};const{fetch:n,Request:r,Response:i}=t,s=[r,i,n];let o=s.length,a=o,l,u,c=$k;for(;a--;)l=s[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:Ak(t)),c=u;return u};O1();const md={http:ZP,xhr:Mk,fetch:{get:O1}};M.forEach(md,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const vp=e=>`- ${e}`,Fk=e=>M.isFunction(e)||e===null||e===!1,R1={getAdapter:(e,t)=>{e=M.isArray(e)?e:[e];const{length:n}=e;let r,i;const s={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?o.length>1?`since : -`+o.map(vp).join(` -`):" "+vp(o[0]):"as no adapter specified";throw new Y("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i},adapters:md};function _u(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Zi(null,e)}function wp(e){return _u(e),e.headers=at.from(e.headers),e.data=Iu.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),R1.getAdapter(e.adapter||Ro.adapter,e)(e).then(function(r){return _u(e),r.data=Iu.call(e,e.transformResponse,r),r.headers=at.from(r.headers),r},function(r){return T1(r)||(_u(e),r&&r.response&&(r.response.data=Iu.call(e,e.transformResponse,r.response),r.response.headers=at.from(r.response.headers))),Promise.reject(r)})}const D1="1.12.2",Xl={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Xl[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const xp={};Xl.transitional=function(t,n,r){function i(s,o){return"[Axios v"+D1+"] Transitional option '"+s+"'"+o+(r?". "+r:"")}return(s,o,a)=>{if(t===!1)throw new Y(i(o," has been removed"+(n?" in "+n:"")),Y.ERR_DEPRECATED);return n&&!xp[o]&&(xp[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,o,a):!0}};Xl.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Vk(e,t,n){if(typeof e!="object")throw new Y("options must be an object",Y.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const s=r[i],o=t[s];if(o){const a=e[s],l=a===void 0||o(a,s,e);if(l!==!0)throw new Y("option "+s+" must be "+l,Y.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Y("Unknown option "+s,Y.ERR_BAD_OPTION)}}const Na={assertOptions:Vk,validators:Xl},Ut=Na.validators;let Or=class{constructor(t){this.defaults=t||{},this.interceptors={request:new lp,response:new lp}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const s=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=_r(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:s}=n;r!==void 0&&Na.assertOptions(r,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean)},!1),i!=null&&(M.isFunction(i)?n.paramsSerializer={serialize:i}:Na.assertOptions(i,{encode:Ut.function,serialize:Ut.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Na.assertOptions(n,{baseUrl:Ut.spelling("baseURL"),withXsrfToken:Ut.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=s&&M.merge(s.common,s[n.method]);s&&M.forEach(["delete","get","head","post","put","patch","common"],p=>{delete s[p]}),n.headers=at.concat(o,s);const a=[];let l=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(l=l&&v.synchronous,a.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let c,d=0,f;if(!l){const p=[wp.bind(this),void 0];for(p.unshift(...a),p.push(...u),f=p.length,c=Promise.resolve(n);d{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](i);r._listeners=null}),this.promise.then=i=>{let s;const o=new Promise(a=>{r.subscribe(a),s=a}).then(i);return o.cancel=function(){r.unsubscribe(s)},o},t(function(s,o,a){r.reason||(r.reason=new Zi(s,o,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new L1(function(i){t=i}),cancel:t}}};function _k(e){return function(n){return e.apply(null,n)}}function zk(e){return M.isObject(e)&&e.isAxiosError===!0}const pd={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(pd).forEach(([e,t])=>{pd[t]=e});function A1(e){const t=new Or(e),n=f1(Or.prototype.request,t);return M.extend(n,Or.prototype,t,{allOwnKeys:!0}),M.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return A1(_r(e,i))},n}const ke=A1(Ro);ke.Axios=Or;ke.CanceledError=Zi;ke.CancelToken=Ik;ke.isCancel=T1;ke.VERSION=D1;ke.toFormData=Ql;ke.AxiosError=Y;ke.Cancel=ke.CanceledError;ke.all=function(t){return Promise.all(t)};ke.spread=_k;ke.isAxiosError=zk;ke.mergeConfig=_r;ke.AxiosHeaders=at;ke.formToJSON=e=>E1(M.isHTMLForm(e)?new FormData(e):e);ke.getAdapter=R1.getAdapter;ke.HttpStatusCode=pd;ke.default=ke;const{Axios:S$,AxiosError:P$,CanceledError:k$,isCancel:C$,CancelToken:E$,VERSION:T$,all:j$,Cancel:M$,isAxiosError:N$,spread:O$,toFormData:R$,AxiosHeaders:D$,HttpStatusCode:L$,formToJSON:A$,getAdapter:$$,mergeConfig:F$}=ke;/** +`+s.stack}return{value:e,source:t,stack:i,digest:null}}function Lu(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function _c(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var dS=typeof WeakMap=="function"?WeakMap:Map;function Mv(e,t,n){n=fn(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ol||(ol=!0,Gc=r),_c(e,t)},n}function Ov(e,t,n){n=fn(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){_c(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){_c(e,t),typeof r!="function"&&(Xn===null?Xn=new Set([this]):Xn.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Am(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new dS;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=CS.bind(null,e,t,n),t.then(e,e))}function $m(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Fm(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=fn(-1,1),t.tag=2,Qn(n,t,1))),n.lanes|=1),e)}var fS=Sn.ReactCurrentOwner,nt=!1;function Xe(e,t,n,r){t.child=e===null?uv(t,null,n,r):Ii(t,e.child,n,r)}function Im(e,t,n,r,i){n=n.render;var s=t.ref;return wi(t,i),r=jf(e,t,n,r,s,i),n=Nf(),e!==null&&!nt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,wn(e,t,i)):(he&&n&&gf(t),t.flags|=1,Xe(e,t,r,i),t.child)}function Vm(e,t,n,r,i){if(e===null){var s=n.type;return typeof s=="function"&&!Vf(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,Rv(e,t,s,r,i)):(e=Ta(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&i)){var o=s.memoizedProps;if(n=n.compare,n=n!==null?n:Xs,n(o,r)&&e.ref===t.ref)return wn(e,t,i)}return t.flags|=1,e=Yn(s,r),e.ref=t.ref,e.return=t,t.child=e}function Rv(e,t,n,r,i){if(e!==null){var s=e.memoizedProps;if(Xs(s,r)&&e.ref===t.ref)if(nt=!1,t.pendingProps=r=s,(e.lanes&i)!==0)e.flags&131072&&(nt=!0);else return t.lanes=e.lanes,wn(e,t,i)}return zc(e,t,n,r,i)}function Dv(e,t,n){var r=t.pendingProps,i=r.children,s=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ae(ui,ct),ct|=n;else{if(!(n&1073741824))return e=s!==null?s.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ae(ui,ct),ct|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=s!==null?s.baseLanes:n,ae(ui,ct),ct|=r}else s!==null?(r=s.baseLanes|n,t.memoizedState=null):r=n,ae(ui,ct),ct|=r;return Xe(e,t,i,n),t.child}function Lv(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function zc(e,t,n,r,i){var s=it(n)?Lr:He.current;return s=$i(t,s),wi(t,i),n=jf(e,t,n,r,s,i),r=Nf(),e!==null&&!nt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,wn(e,t,i)):(he&&r&&gf(t),t.flags|=1,Xe(e,t,n,i),t.child)}function _m(e,t,n,r,i){if(it(n)){var s=!0;Ga(t)}else s=!1;if(wi(t,i),t.stateNode===null)ka(e,t),av(t,n,r),Vc(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,a=t.memoizedProps;o.props=a;var l=o.context,u=n.contextType;typeof u=="object"&&u!==null?u=Nt(u):(u=it(n)?Lr:He.current,u=$i(t,u));var c=n.getDerivedStateFromProps,d=typeof c=="function"||typeof o.getSnapshotBeforeUpdate=="function";d||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==r||l!==u)&&Om(t,o,r,u),Nn=!1;var f=t.memoizedState;o.state=f,tl(t,r,o,i),l=t.memoizedState,a!==r||f!==l||rt.current||Nn?(typeof c=="function"&&(Ic(t,n,c,r),l=t.memoizedState),(a=Nn||Mm(t,n,a,r,f,l,u))?(d||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),o.props=r,o.state=l,o.context=u,r=a):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,sv(e,t),a=t.memoizedProps,u=t.type===t.elementType?a:Dt(t.type,a),o.props=u,d=t.pendingProps,f=o.context,l=n.contextType,typeof l=="object"&&l!==null?l=Nt(l):(l=it(n)?Lr:He.current,l=$i(t,l));var m=n.getDerivedStateFromProps;(c=typeof m=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==d||f!==l)&&Om(t,o,r,l),Nn=!1,f=t.memoizedState,o.state=f,tl(t,r,o,i);var p=t.memoizedState;a!==d||f!==p||rt.current||Nn?(typeof m=="function"&&(Ic(t,n,m,r),p=t.memoizedState),(u=Nn||Mm(t,n,u,r,f,p,l)||!1)?(c||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,p,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,p,l)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=l,r=u):(typeof o.componentDidUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Wc(e,t,n,r,s,i)}function Wc(e,t,n,r,i,s){Lv(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return i&&Cm(t,n,!1),wn(e,t,s);r=t.stateNode,fS.current=t;var a=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=Ii(t,e.child,null,s),t.child=Ii(t,null,a,s)):Xe(e,t,a,s),t.memoizedState=r.state,i&&Cm(t,n,!0),t.child}function Av(e){var t=e.stateNode;t.pendingContext?km(e,t.pendingContext,t.pendingContext!==t.context):t.context&&km(e,t.context,!1),kf(e,t.containerInfo)}function zm(e,t,n,r,i){return Fi(),vf(i),t.flags|=256,Xe(e,t,n,r),t.child}var Uc={dehydrated:null,treeContext:null,retryLane:0};function Bc(e){return{baseLanes:e,cachePool:null,transitions:null}}function $v(e,t,n){var r=t.pendingProps,i=me.current,s=!1,o=(t.flags&128)!==0,a;if((a=o)||(a=e!==null&&e.memoizedState===null?!1:(i&2)!==0),a?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),ae(me,i&1),e===null)return $c(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,s?(r=t.mode,s=t.child,o={mode:"hidden",children:o},!(r&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=zl(o,r,0,null),e=Mr(e,r,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Bc(n),t.memoizedState=Uc,e):Rf(t,o));if(i=e.memoizedState,i!==null&&(a=i.dehydrated,a!==null))return hS(e,t,o,r,a,i,n);if(s){s=r.fallback,o=t.mode,i=e.child,a=i.sibling;var l={mode:"hidden",children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=l,t.deletions=null):(r=Yn(i,l),r.subtreeFlags=i.subtreeFlags&14680064),a!==null?s=Yn(a,s):(s=Mr(s,o,n,null),s.flags|=2),s.return=t,r.return=t,r.sibling=s,t.child=r,r=s,s=t.child,o=e.child.memoizedState,o=o===null?Bc(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=e.childLanes&~n,t.memoizedState=Uc,r}return s=e.child,e=s.sibling,r=Yn(s,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Rf(e,t){return t=zl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function ta(e,t,n,r){return r!==null&&vf(r),Ii(t,e.child,null,n),e=Rf(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function hS(e,t,n,r,i,s,o){if(n)return t.flags&256?(t.flags&=-257,r=Lu(Error(R(422))),ta(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=r.fallback,i=t.mode,r=zl({mode:"visible",children:r.children},i,0,null),s=Mr(s,i,o,null),s.flags|=2,r.return=t,s.return=t,r.sibling=s,t.child=r,t.mode&1&&Ii(t,e.child,null,o),t.child.memoizedState=Bc(o),t.memoizedState=Uc,s);if(!(t.mode&1))return ta(e,t,o,null);if(i.data==="$!"){if(r=i.nextSibling&&i.nextSibling.dataset,r)var a=r.dgst;return r=a,s=Error(R(419)),r=Lu(s,r,void 0),ta(e,t,o,r)}if(a=(o&e.childLanes)!==0,nt||a){if(r=De,r!==null){switch(o&-o){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(r.suspendedLanes|o)?0:i,i!==0&&i!==s.retryLane&&(s.retryLane=i,vn(e,i),Ft(r,e,i,-1))}return If(),r=Lu(Error(R(421))),ta(e,t,o,r)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=ES.bind(null,e),i._reactRetry=t,null):(e=s.treeContext,dt=Kn(i.nextSibling),ft=t,he=!0,At=null,e!==null&&(Ct[Et++]=cn,Ct[Et++]=dn,Ct[Et++]=Ar,cn=e.id,dn=e.overflow,Ar=t),t=Rf(t,r.children),t.flags|=4096,t)}function Wm(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Fc(e.return,t,n)}function Au(e,t,n,r,i){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=r,s.tail=n,s.tailMode=i)}function Fv(e,t,n){var r=t.pendingProps,i=r.revealOrder,s=r.tail;if(Xe(e,t,r.children,n),r=me.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Wm(e,n,t);else if(e.tag===19)Wm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ae(me,r),!(t.mode&1))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&nl(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Au(t,!1,i,n,s);break;case"backwards":for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&nl(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Au(t,!0,n,null,s);break;case"together":Au(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ka(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function wn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Fr|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(R(153));if(t.child!==null){for(e=t.child,n=Yn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Yn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function mS(e,t,n){switch(t.tag){case 3:Av(t),Fi();break;case 5:cv(t);break;case 1:it(t.type)&&Ga(t);break;case 4:kf(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;ae(Za,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ae(me,me.current&1),t.flags|=128,null):n&t.child.childLanes?$v(e,t,n):(ae(me,me.current&1),e=wn(e,t,n),e!==null?e.sibling:null);ae(me,me.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Fv(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),ae(me,me.current),r)break;return null;case 22:case 23:return t.lanes=0,Dv(e,t,n)}return wn(e,t,n)}var Iv,Hc,Vv,_v;Iv=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Hc=function(){};Vv=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,wr(en.current);var s=null;switch(n){case"input":i=hc(e,i),r=hc(e,r),s=[];break;case"select":i=ye({},i,{value:void 0}),r=ye({},r,{value:void 0}),s=[];break;case"textarea":i=gc(e,i),r=gc(e,r),s=[];break;default:typeof i.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Qa)}vc(n,r);var o;n=null;for(u in i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null)if(u==="style"){var a=i[u];for(o in a)a.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(Ws.hasOwnProperty(u)?s||(s=[]):(s=s||[]).push(u,null));for(u in r){var l=r[u];if(a=i!=null?i[u]:void 0,r.hasOwnProperty(u)&&l!==a&&(l!=null||a!=null))if(u==="style")if(a){for(o in a)!a.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in l)l.hasOwnProperty(o)&&a[o]!==l[o]&&(n||(n={}),n[o]=l[o])}else n||(s||(s=[]),s.push(u,n)),n=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,a=a?a.__html:void 0,l!=null&&a!==l&&(s=s||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(s=s||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(Ws.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&ue("scroll",e),s||a===l||(s=[])):(s=s||[]).push(u,l))}n&&(s=s||[]).push("style",n);var u=s;(t.updateQueue=u)&&(t.flags|=4)}};_v=function(e,t,n,r){n!==r&&(t.flags|=4)};function us(e,t){if(!he)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function _e(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function pS(e,t,n){var r=t.pendingProps;switch(yf(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return _e(t),null;case 1:return it(t.type)&&Xa(),_e(t),null;case 3:return r=t.stateNode,Vi(),de(rt),de(He),Ef(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Zo(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,At!==null&&(Zc(At),At=null))),Hc(e,t),_e(t),null;case 5:Cf(t);var i=wr(eo.current);if(n=t.type,e!==null&&t.stateNode!=null)Vv(e,t,n,r,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(R(166));return _e(t),null}if(e=wr(en.current),Zo(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Gt]=t,r[Js]=s,e=(t.mode&1)!==0,n){case"dialog":ue("cancel",r),ue("close",r);break;case"iframe":case"object":case"embed":ue("load",r);break;case"video":case"audio":for(i=0;i<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Gt]=t,e[Js]=r,Iv(e,t,!1,!1),t.stateNode=e;e:{switch(o=wc(n,r),n){case"dialog":ue("cancel",e),ue("close",e),i=r;break;case"iframe":case"object":case"embed":ue("load",e),i=r;break;case"video":case"audio":for(i=0;izi&&(t.flags|=128,r=!0,us(s,!1),t.lanes=4194304)}else{if(!r)if(e=nl(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),us(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!he)return _e(t),null}else 2*Pe()-s.renderingStartTime>zi&&n!==1073741824&&(t.flags|=128,r=!0,us(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Pe(),t.sibling=null,n=me.current,ae(me,r?n&1|2:n&1),t):(_e(t),null);case 22:case 23:return Ff(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ct&1073741824&&(_e(t),t.subtreeFlags&6&&(t.flags|=8192)):_e(t),null;case 24:return null;case 25:return null}throw Error(R(156,t.tag))}function gS(e,t){switch(yf(t),t.tag){case 1:return it(t.type)&&Xa(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Vi(),de(rt),de(He),Ef(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Cf(t),null;case 13:if(de(me),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(R(340));Fi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return de(me),null;case 4:return Vi(),null;case 10:return bf(t.type._context),null;case 22:case 23:return Ff(),null;case 24:return null;default:return null}}var na=!1,We=!1,yS=typeof WeakSet=="function"?WeakSet:Set,V=null;function li(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){xe(e,t,r)}else n.current=null}function qc(e,t,n){try{n()}catch(r){xe(e,t,r)}}var Um=!1;function vS(e,t){if(Nc=Ha,e=B0(),pf(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var m;d!==n||i!==0&&d.nodeType!==3||(a=o+i),d!==s||r!==0&&d.nodeType!==3||(l=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(m=d.firstChild)!==null;)f=d,d=m;for(;;){if(d===e)break t;if(f===n&&++u===i&&(a=o),f===s&&++c===r&&(l=o),(m=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=m}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(Mc={focusedElem:e,selectionRange:n},Ha=!1,V=t;V!==null;)if(t=V,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,V=e;else for(;V!==null;){t=V;try{var p=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var v=p.memoizedProps,x=p.memoizedState,y=t.stateNode,g=y.getSnapshotBeforeUpdate(t.elementType===t.type?v:Dt(t.type,v),x);y.__reactInternalSnapshotBeforeUpdate=g}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(R(163))}}catch(S){xe(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,V=e;break}V=t.return}return p=Um,Um=!1,p}function Ds(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&qc(t,n,s)}i=i.next}while(i!==r)}}function Vl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Kc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function zv(e){var t=e.alternate;t!==null&&(e.alternate=null,zv(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Gt],delete t[Js],delete t[Dc],delete t[eS],delete t[tS])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Wv(e){return e.tag===5||e.tag===3||e.tag===4}function Bm(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Wv(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Qa));else if(r!==4&&(e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function Xc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Xc(e,t,n),e=e.sibling;e!==null;)Xc(e,t,n),e=e.sibling}var Ae=null,Lt=!1;function kn(e,t,n){for(n=n.child;n!==null;)Uv(e,t,n),n=n.sibling}function Uv(e,t,n){if(Zt&&typeof Zt.onCommitFiberUnmount=="function")try{Zt.onCommitFiberUnmount(Ol,n)}catch{}switch(n.tag){case 5:We||li(n,t);case 6:var r=Ae,i=Lt;Ae=null,kn(e,t,n),Ae=r,Lt=i,Ae!==null&&(Lt?(e=Ae,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ae.removeChild(n.stateNode));break;case 18:Ae!==null&&(Lt?(e=Ae,n=n.stateNode,e.nodeType===8?ju(e.parentNode,n):e.nodeType===1&&ju(e,n),Ks(e)):ju(Ae,n.stateNode));break;case 4:r=Ae,i=Lt,Ae=n.stateNode.containerInfo,Lt=!0,kn(e,t,n),Ae=r,Lt=i;break;case 0:case 11:case 14:case 15:if(!We&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&qc(n,t,o),i=i.next}while(i!==r)}kn(e,t,n);break;case 1:if(!We&&(li(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){xe(n,t,a)}kn(e,t,n);break;case 21:kn(e,t,n);break;case 22:n.mode&1?(We=(r=We)||n.memoizedState!==null,kn(e,t,n),We=r):kn(e,t,n);break;default:kn(e,t,n)}}function Hm(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new yS),t.forEach(function(r){var i=TS.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function Ot(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~s}if(r=i,r=Pe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*xS(r/1960))-r,10e?16:e,Wn===null)var r=!1;else{if(e=Wn,Wn=null,al=0,ne&6)throw Error(R(331));var i=ne;for(ne|=4,V=e.current;V!==null;){var s=V,o=s.child;if(V.flags&16){var a=s.deletions;if(a!==null){for(var l=0;lPe()-Af?Nr(e,0):Lf|=n),st(e,t)}function Yv(e,t){t===0&&(e.mode&1?(t=Ko,Ko<<=1,!(Ko&130023424)&&(Ko=4194304)):t=1);var n=Ye();e=vn(e,t),e!==null&&(Co(e,t,n),st(e,n))}function ES(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Yv(e,n)}function TS(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(R(314))}r!==null&&r.delete(t),Yv(e,n)}var Jv;Jv=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||rt.current)nt=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return nt=!1,mS(e,t,n);nt=!!(e.flags&131072)}else nt=!1,he&&t.flags&1048576&&tv(t,Ja,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ka(e,t),e=t.pendingProps;var i=$i(t,He.current);wi(t,n),i=jf(null,t,r,e,i,n);var s=Nf();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,it(r)?(s=!0,Ga(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Pf(t),i.updater=Fl,t.stateNode=i,i._reactInternals=t,Vc(t,r,e,n),t=Wc(null,t,r,!0,s,n)):(t.tag=0,he&&s&&gf(t),Xe(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ka(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=NS(r),e=Dt(r,e),i){case 0:t=zc(null,t,r,e,n);break e;case 1:t=_m(null,t,r,e,n);break e;case 11:t=Im(null,t,r,e,n);break e;case 14:t=Vm(null,t,r,Dt(r.type,e),n);break e}throw Error(R(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),zc(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),_m(e,t,r,i,n);case 3:e:{if(Av(t),e===null)throw Error(R(387));r=t.pendingProps,s=t.memoizedState,i=s.element,sv(e,t),tl(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=_i(Error(R(423)),t),t=zm(e,t,r,n,i);break e}else if(r!==i){i=_i(Error(R(424)),t),t=zm(e,t,r,n,i);break e}else for(dt=Kn(t.stateNode.containerInfo.firstChild),ft=t,he=!0,At=null,n=uv(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Fi(),r===i){t=wn(e,t,n);break e}Xe(e,t,r,n)}t=t.child}return t;case 5:return cv(t),e===null&&$c(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,Oc(r,i)?o=null:s!==null&&Oc(r,s)&&(t.flags|=32),Lv(e,t),Xe(e,t,o,n),t.child;case 6:return e===null&&$c(t),null;case 13:return $v(e,t,n);case 4:return kf(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ii(t,null,r,n):Xe(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),Im(e,t,r,i,n);case 7:return Xe(e,t,t.pendingProps,n),t.child;case 8:return Xe(e,t,t.pendingProps.children,n),t.child;case 12:return Xe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,ae(Za,r._currentValue),r._currentValue=o,s!==null)if(It(s.value,o)){if(s.children===i.children&&!rt.current){t=wn(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(s.tag===1){l=fn(-1,n&-n),l.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),Fc(s.return,n,t),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(R(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),Fc(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}Xe(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,wi(t,n),i=Nt(i),r=r(i),t.flags|=1,Xe(e,t,r,n),t.child;case 14:return r=t.type,i=Dt(r,t.pendingProps),i=Dt(r.type,i),Vm(e,t,r,i,n);case 15:return Rv(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Dt(r,i),ka(e,t),t.tag=1,it(r)?(e=!0,Ga(t)):e=!1,wi(t,n),av(t,r,i),Vc(t,r,i,n),Wc(null,t,r,!0,e,n);case 19:return Fv(e,t,n);case 22:return Dv(e,t,n)}throw Error(R(156,t.tag))};function Zv(e,t){return C0(e,t)}function jS(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Tt(e,t,n,r){return new jS(e,t,n,r)}function Vf(e){return e=e.prototype,!(!e||!e.isReactComponent)}function NS(e){if(typeof e=="function")return Vf(e)?1:0;if(e!=null){if(e=e.$$typeof,e===rf)return 11;if(e===sf)return 14}return 2}function Yn(e,t){var n=e.alternate;return n===null?(n=Tt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ta(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")Vf(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Zr:return Mr(n.children,i,s,t);case nf:o=8,i|=8;break;case uc:return e=Tt(12,n,t,i|2),e.elementType=uc,e.lanes=s,e;case cc:return e=Tt(13,n,t,i),e.elementType=cc,e.lanes=s,e;case dc:return e=Tt(19,n,t,i),e.elementType=dc,e.lanes=s,e;case l0:return zl(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case o0:o=10;break e;case a0:o=9;break e;case rf:o=11;break e;case sf:o=14;break e;case jn:o=16,r=null;break e}throw Error(R(130,e==null?e:typeof e,""))}return t=Tt(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function Mr(e,t,n,r){return e=Tt(7,e,r,t),e.lanes=n,e}function zl(e,t,n,r){return e=Tt(22,e,r,t),e.elementType=l0,e.lanes=n,e.stateNode={isHidden:!1},e}function $u(e,t,n){return e=Tt(6,e,null,t),e.lanes=n,e}function Fu(e,t,n){return t=Tt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function MS(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=yu(0),this.expirationTimes=yu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yu(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function _f(e,t,n,r,i,s,o,a,l){return e=new MS(e,t,n,a,l),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Tt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Pf(s),e}function OS(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r1)}catch(e){console.error(e)}}r1(),t0.exports=gt;var $S=t0.exports,Zm=$S;ac.createRoot=Zm.createRoot,ac.hydrateRoot=Zm.hydrateRoot;var Yi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Wi=typeof window>"u"||"Deno"in window;function kt(){}function FS(e,t){return typeof e=="function"?e(t):e}function ed(e){return typeof e=="number"&&e>=0&&e!==1/0}function i1(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ep(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:s,queryKey:o,stale:a}=e;if(o){if(r){if(t.queryHash!==Bf(o,t.options))return!1}else if(!so(t.queryKey,o))return!1}if(n!=="all"){const l=t.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof a=="boolean"&&t.isStale()!==a||typeof i<"u"&&i!==t.state.fetchStatus||s&&!s(t))}function tp(e,t){const{exact:n,status:r,predicate:i,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(Vr(t.options.mutationKey)!==Vr(s))return!1}else if(!so(t.options.mutationKey,s))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Bf(e,t){return((t==null?void 0:t.queryKeyHashFn)||Vr)(e)}function Vr(e){return JSON.stringify(e,(t,n)=>td(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function so(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(n=>!so(e[n],t[n])):!1}function s1(e,t){if(e===t)return e;const n=np(e)&&np(t);if(n||td(e)&&td(t)){const r=n?e.length:Object.keys(e).length,i=n?t:Object.keys(t),s=i.length,o=n?[]:{};let a=0;for(let l=0;l"u")return!0;const n=t.prototype;return!(!rp(n)||!n.hasOwnProperty("isPrototypeOf"))}function rp(e){return Object.prototype.toString.call(e)==="[object Object]"}function IS(e){return new Promise(t=>{setTimeout(t,e)})}function nd(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?s1(e,t):t}function VS(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function _S(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Sr,Dn,bi,Dy,zS=(Dy=class extends Yi{constructor(){super();H(this,Sr);H(this,Dn);H(this,bi);F(this,bi,t=>{if(!Wi&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){k(this,Dn)||this.setEventListener(k(this,bi))}onUnsubscribe(){var t;this.hasListeners()||((t=k(this,Dn))==null||t.call(this),F(this,Dn,void 0))}setEventListener(t){var n;F(this,bi,t),(n=k(this,Dn))==null||n.call(this),F(this,Dn,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){k(this,Sr)!==t&&(F(this,Sr,t),this.onFocus())}onFocus(){this.listeners.forEach(t=>{t()})}isFocused(){var t;return typeof k(this,Sr)=="boolean"?k(this,Sr):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Sr=new WeakMap,Dn=new WeakMap,bi=new WeakMap,Dy),dl=new zS,Si,Ln,Pi,Ly,WS=(Ly=class extends Yi{constructor(){super();H(this,Si,!0);H(this,Ln);H(this,Pi);F(this,Pi,t=>{if(!Wi&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){k(this,Ln)||this.setEventListener(k(this,Pi))}onUnsubscribe(){var t;this.hasListeners()||((t=k(this,Ln))==null||t.call(this),F(this,Ln,void 0))}setEventListener(t){var n;F(this,Pi,t),(n=k(this,Ln))==null||n.call(this),F(this,Ln,t(this.setOnline.bind(this)))}setOnline(t){k(this,Si)!==t&&(F(this,Si,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return k(this,Si)}},Si=new WeakMap,Ln=new WeakMap,Pi=new WeakMap,Ly),fl=new WS;function US(e){return Math.min(1e3*2**e,3e4)}function ql(e){return(e??"online")==="online"?fl.isOnline():!0}var o1=class{constructor(e){this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Iu(e){return e instanceof o1}function a1(e){let t=!1,n=0,r=!1,i,s,o;const a=new Promise((x,y)=>{s=x,o=y}),l=x=>{var y;r||(m(new o1(x)),(y=e.abort)==null||y.call(e))},u=()=>{t=!0},c=()=>{t=!1},d=()=>!dl.isFocused()||e.networkMode!=="always"&&!fl.isOnline(),f=x=>{var y;r||(r=!0,(y=e.onSuccess)==null||y.call(e,x),i==null||i(),s(x))},m=x=>{var y;r||(r=!0,(y=e.onError)==null||y.call(e,x),i==null||i(),o(x))},p=()=>new Promise(x=>{var y;i=g=>{const w=r||!d();return w&&x(g),w},(y=e.onPause)==null||y.call(e)}).then(()=>{var x;i=void 0,r||(x=e.onContinue)==null||x.call(e)}),v=()=>{if(r)return;let x;try{x=e.fn()}catch(y){x=Promise.reject(y)}Promise.resolve(x).then(f).catch(y=>{var T;if(r)return;const g=e.retry??(Wi?0:3),w=e.retryDelay??US,S=typeof w=="function"?w(n,y):w,P=g===!0||typeof g=="number"&&n{if(d())return p()}).then(()=>{t?m(y):v()})})};return ql(e.networkMode)?v():p().then(v),{promise:a,cancel:l,continue:()=>(i==null?void 0:i())?a:Promise.resolve(),cancelRetry:u,continueRetry:c}}function BS(){let e=[],t=0,n=f=>{f()},r=f=>{f()},i=f=>setTimeout(f,0);const s=f=>{i=f},o=f=>{let m;t++;try{m=f()}finally{t--,t||u()}return m},a=f=>{t?e.push(f):i(()=>{n(f)})},l=f=>(...m)=>{a(()=>{f(...m)})},u=()=>{const f=e;e=[],f.length&&i(()=>{r(()=>{f.forEach(m=>{n(m)})})})};return{batch:o,batchCalls:l,schedule:a,setNotifyFunction:f=>{n=f},setBatchNotifyFunction:f=>{r=f},setScheduler:s}}var Ne=BS(),Pr,Ay,l1=(Ay=class{constructor(){H(this,Pr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ed(this.gcTime)&&F(this,Pr,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Wi?1/0:5*60*1e3))}clearGcTimeout(){k(this,Pr)&&(clearTimeout(k(this,Pr)),F(this,Pr,void 0))}},Pr=new WeakMap,Ay),ki,Ci,bt,An,St,Oe,wo,kr,Ge,ja,sn,$y,HS=($y=class extends l1{constructor(t){super();H(this,Ge);H(this,ki);H(this,Ci);H(this,bt);H(this,An);H(this,St);H(this,Oe);H(this,wo);H(this,kr);F(this,kr,!1),F(this,wo,t.defaultOptions),G(this,Ge,ja).call(this,t.options),F(this,Oe,[]),F(this,bt,t.cache),this.queryKey=t.queryKey,this.queryHash=t.queryHash,F(this,ki,t.state||qS(this.options)),this.state=k(this,ki),this.scheduleGc()}get meta(){return this.options.meta}optionalRemove(){!k(this,Oe).length&&this.state.fetchStatus==="idle"&&k(this,bt).remove(this)}setData(t,n){const r=nd(this.state.data,t,this.options);return G(this,Ge,sn).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){G(this,Ge,sn).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r;const n=k(this,An);return(r=k(this,St))==null||r.cancel(t),n?n.then(kt).catch(kt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(k(this,ki))}isActive(){return k(this,Oe).some(t=>t.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||!this.state.dataUpdatedAt||k(this,Oe).some(t=>t.getCurrentResult().isStale)}isStaleByTime(t=0){return this.state.isInvalidated||!this.state.dataUpdatedAt||!i1(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=k(this,Oe).find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=k(this,St))==null||n.continue()}onOnline(){var n;const t=k(this,Oe).find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=k(this,St))==null||n.continue()}addObserver(t){k(this,Oe).includes(t)||(k(this,Oe).push(t),this.clearGcTimeout(),k(this,bt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){k(this,Oe).includes(t)&&(F(this,Oe,k(this,Oe).filter(n=>n!==t)),k(this,Oe).length||(k(this,St)&&(k(this,kr)?k(this,St).cancel({revert:!0}):k(this,St).cancelRetry()),this.scheduleGc()),k(this,bt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return k(this,Oe).length}invalidate(){this.state.isInvalidated||G(this,Ge,sn).call(this,{type:"invalidate"})}fetch(t,n){var u,c,d,f;if(this.state.fetchStatus!=="idle"){if(this.state.dataUpdatedAt&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(k(this,An))return(u=k(this,St))==null||u.continueRetry(),k(this,An)}if(t&&G(this,Ge,ja).call(this,t),!this.options.queryFn){const m=k(this,Oe).find(p=>p.options.queryFn);m&&G(this,Ge,ja).call(this,m.options)}const r=new AbortController,i={queryKey:this.queryKey,meta:this.meta},s=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(F(this,kr,!0),r.signal)})};s(i);const o=()=>this.options.queryFn?(F(this,kr,!1),this.options.persister?this.options.persister(this.options.queryFn,i,this):this.options.queryFn(i)):Promise.reject(new Error(`Missing queryFn: '${this.options.queryHash}'`)),a={fetchOptions:n,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:o};s(a),(c=this.options.behavior)==null||c.onFetch(a,this),F(this,Ci,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=a.fetchOptions)==null?void 0:d.meta))&&G(this,Ge,sn).call(this,{type:"fetch",meta:(f=a.fetchOptions)==null?void 0:f.meta});const l=m=>{var p,v,x,y;Iu(m)&&m.silent||G(this,Ge,sn).call(this,{type:"error",error:m}),Iu(m)||((v=(p=k(this,bt).config).onError)==null||v.call(p,m,this),(y=(x=k(this,bt).config).onSettled)==null||y.call(x,this.state.data,m,this)),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return F(this,St,a1({fn:a.fetchFn,abort:r.abort.bind(r),onSuccess:m=>{var p,v,x,y;if(typeof m>"u"){l(new Error(`${this.queryHash} data is undefined`));return}this.setData(m),(v=(p=k(this,bt).config).onSuccess)==null||v.call(p,m,this),(y=(x=k(this,bt).config).onSettled)==null||y.call(x,m,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:l,onFail:(m,p)=>{G(this,Ge,sn).call(this,{type:"failed",failureCount:m,error:p})},onPause:()=>{G(this,Ge,sn).call(this,{type:"pause"})},onContinue:()=>{G(this,Ge,sn).call(this,{type:"continue"})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode})),F(this,An,k(this,St).promise),k(this,An)}},ki=new WeakMap,Ci=new WeakMap,bt=new WeakMap,An=new WeakMap,St=new WeakMap,Oe=new WeakMap,wo=new WeakMap,kr=new WeakMap,Ge=new WeakSet,ja=function(t){this.options={...k(this,wo),...t},this.updateGcTime(this.options.gcTime)},sn=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:t.meta??null,fetchStatus:ql(this.options.networkMode)?"fetching":"paused",...!r.dataUpdatedAt&&{error:null,status:"pending"}};case"success":return{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const i=t.error;return Iu(i)&&i.revert&&k(this,Ci)?{...k(this,Ci),fetchStatus:"idle"}:{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Ne.batch(()=>{k(this,Oe).forEach(r=>{r.onQueryUpdate()}),k(this,bt).notify({query:this,type:"updated",action:t})})},$y);function qS(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=typeof t<"u",r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var qt,Fy,KS=(Fy=class extends Yi{constructor(t={}){super();H(this,qt);this.config=t,F(this,qt,new Map)}build(t,n,r){const i=n.queryKey,s=n.queryHash??Bf(i,n);let o=this.get(s);return o||(o=new HS({cache:this,queryKey:i,queryHash:s,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){k(this,qt).has(t.queryHash)||(k(this,qt).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=k(this,qt).get(t.queryHash);n&&(t.destroy(),n===t&&k(this,qt).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ne.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return k(this,qt).get(t)}getAll(){return[...k(this,qt).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>ep(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>ep(t,r)):n}notify(t){Ne.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Ne.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ne.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},qt=new WeakMap,Fy),Kt,xo,lt,Ei,Qt,En,Iy,QS=(Iy=class extends l1{constructor(t){super();H(this,Qt);H(this,Kt);H(this,xo);H(this,lt);H(this,Ei);this.mutationId=t.mutationId,F(this,xo,t.defaultOptions),F(this,lt,t.mutationCache),F(this,Kt,[]),this.state=t.state||u1(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options={...k(this,xo),...t},this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){k(this,Kt).includes(t)||(k(this,Kt).push(t),this.clearGcTimeout(),k(this,lt).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){F(this,Kt,k(this,Kt).filter(n=>n!==t)),this.scheduleGc(),k(this,lt).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){k(this,Kt).length||(this.state.status==="pending"?this.scheduleGc():k(this,lt).remove(this))}continue(){var t;return((t=k(this,Ei))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,s,o,a,l,u,c,d,f,m,p,v,x,y,g,w,S,P,T,C;const n=()=>(F(this,Ei,a1({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(j,$)=>{G(this,Qt,En).call(this,{type:"failed",failureCount:j,error:$})},onPause:()=>{G(this,Qt,En).call(this,{type:"pause"})},onContinue:()=>{G(this,Qt,En).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode})),k(this,Ei).promise),r=this.state.status==="pending";try{if(!r){G(this,Qt,En).call(this,{type:"pending",variables:t}),await((s=(i=k(this,lt).config).onMutate)==null?void 0:s.call(i,t,this));const $=await((a=(o=this.options).onMutate)==null?void 0:a.call(o,t));$!==this.state.context&&G(this,Qt,En).call(this,{type:"pending",context:$,variables:t})}const j=await n();return await((u=(l=k(this,lt).config).onSuccess)==null?void 0:u.call(l,j,t,this.state.context,this)),await((d=(c=this.options).onSuccess)==null?void 0:d.call(c,j,t,this.state.context)),await((m=(f=k(this,lt).config).onSettled)==null?void 0:m.call(f,j,null,this.state.variables,this.state.context,this)),await((v=(p=this.options).onSettled)==null?void 0:v.call(p,j,null,t,this.state.context)),G(this,Qt,En).call(this,{type:"success",data:j}),j}catch(j){try{throw await((y=(x=k(this,lt).config).onError)==null?void 0:y.call(x,j,t,this.state.context,this)),await((w=(g=this.options).onError)==null?void 0:w.call(g,j,t,this.state.context)),await((P=(S=k(this,lt).config).onSettled)==null?void 0:P.call(S,void 0,j,this.state.variables,this.state.context,this)),await((C=(T=this.options).onSettled)==null?void 0:C.call(T,void 0,j,t,this.state.context)),j}finally{G(this,Qt,En).call(this,{type:"error",error:j})}}}},Kt=new WeakMap,xo=new WeakMap,lt=new WeakMap,Ei=new WeakMap,Qt=new WeakSet,En=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!ql(this.options.networkMode),status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Ne.batch(()=>{k(this,Kt).forEach(r=>{r.onMutationUpdate(t)}),k(this,lt).notify({mutation:this,type:"updated",action:t})})},Iy);function u1(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Pt,bo,Cr,Vy,XS=(Vy=class extends Yi{constructor(t={}){super();H(this,Pt);H(this,bo);H(this,Cr);this.config=t,F(this,Pt,[]),F(this,bo,0)}build(t,n,r){const i=new QS({mutationCache:this,mutationId:++zo(this,bo)._,options:t.defaultMutationOptions(n),state:r});return this.add(i),i}add(t){k(this,Pt).push(t),this.notify({type:"added",mutation:t})}remove(t){F(this,Pt,k(this,Pt).filter(n=>n!==t)),this.notify({type:"removed",mutation:t})}clear(){Ne.batch(()=>{k(this,Pt).forEach(t=>{this.remove(t)})})}getAll(){return k(this,Pt)}find(t){const n={exact:!0,...t};return k(this,Pt).find(r=>tp(n,r))}findAll(t={}){return k(this,Pt).filter(n=>tp(t,n))}notify(t){Ne.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){return F(this,Cr,(k(this,Cr)??Promise.resolve()).then(()=>{const t=k(this,Pt).filter(n=>n.state.isPaused);return Ne.batch(()=>t.reduce((n,r)=>n.then(()=>r.continue().catch(kt)),Promise.resolve()))}).then(()=>{F(this,Cr,void 0)})),k(this,Cr)}},Pt=new WeakMap,bo=new WeakMap,Cr=new WeakMap,Vy);function GS(e){return{onFetch:(t,n)=>{const r=async()=>{var p,v,x,y,g;const i=t.options,s=(x=(v=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:v.fetchMore)==null?void 0:x.direction,o=((y=t.state.data)==null?void 0:y.pages)||[],a=((g=t.state.data)==null?void 0:g.pageParams)||[],l={pages:[],pageParams:[]};let u=!1;const c=w=>{Object.defineProperty(w,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",()=>{u=!0}),t.signal)})},d=t.options.queryFn||(()=>Promise.reject(new Error(`Missing queryFn: '${t.options.queryHash}'`))),f=async(w,S,P)=>{if(u)return Promise.reject();if(S==null&&w.pages.length)return Promise.resolve(w);const T={queryKey:t.queryKey,pageParam:S,direction:P?"backward":"forward",meta:t.options.meta};c(T);const C=await d(T),{maxPages:j}=t.options,$=P?_S:VS;return{pages:$(w.pages,C,j),pageParams:$(w.pageParams,S,j)}};let m;if(s&&o.length){const w=s==="backward",S=w?YS:ip,P={pages:o,pageParams:a},T=S(i,P);m=await f(P,T,w)}else{m=await f(l,a[0]??i.initialPageParam);const w=e??o.length;for(let S=1;S{var i,s;return(s=(i=t.options).persister)==null?void 0:s.call(i,r,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=r}}}function ip(e,{pages:t,pageParams:n}){const r=t.length-1;return e.getNextPageParam(t[r],t,n[r],n)}function YS(e,{pages:t,pageParams:n}){var r;return(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n)}var Te,$n,Fn,Ti,ji,In,Ni,Mi,_y,JS=(_y=class{constructor(e={}){H(this,Te);H(this,$n);H(this,Fn);H(this,Ti);H(this,ji);H(this,In);H(this,Ni);H(this,Mi);F(this,Te,e.queryCache||new KS),F(this,$n,e.mutationCache||new XS),F(this,Fn,e.defaultOptions||{}),F(this,Ti,new Map),F(this,ji,new Map),F(this,In,0)}mount(){zo(this,In)._++,k(this,In)===1&&(F(this,Ni,dl.subscribe(()=>{dl.isFocused()&&(this.resumePausedMutations(),k(this,Te).onFocus())})),F(this,Mi,fl.subscribe(()=>{fl.isOnline()&&(this.resumePausedMutations(),k(this,Te).onOnline())})))}unmount(){var e,t;zo(this,In)._--,k(this,In)===0&&((e=k(this,Ni))==null||e.call(this),F(this,Ni,void 0),(t=k(this,Mi))==null||t.call(this),F(this,Mi,void 0))}isFetching(e){return k(this,Te).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return k(this,$n).findAll({...e,status:"pending"}).length}getQueryData(e){var t;return(t=k(this,Te).find({queryKey:e}))==null?void 0:t.state.data}ensureQueryData(e){const t=this.getQueryData(e.queryKey);return t!==void 0?Promise.resolve(t):this.fetchQuery(e)}getQueriesData(e){return this.getQueryCache().findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=k(this,Te).find({queryKey:e}),i=r==null?void 0:r.state.data,s=FS(t,i);if(typeof s>"u")return;const o=this.defaultQueryOptions({queryKey:e});return k(this,Te).build(this,o).setData(s,{...n,manual:!0})}setQueriesData(e,t,n){return Ne.batch(()=>this.getQueryCache().findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var t;return(t=k(this,Te).find({queryKey:e}))==null?void 0:t.state}removeQueries(e){const t=k(this,Te);Ne.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=k(this,Te),r={type:"active",...e};return Ne.batch(()=>(n.findAll(e).forEach(i=>{i.reset()}),this.refetchQueries(r,t)))}cancelQueries(e={},t={}){const n={revert:!0,...t},r=Ne.batch(()=>k(this,Te).findAll(e).map(i=>i.cancel(n)));return Promise.all(r).then(kt).catch(kt)}invalidateQueries(e={},t={}){return Ne.batch(()=>{if(k(this,Te).findAll(e).forEach(r=>{r.invalidate()}),e.refetchType==="none")return Promise.resolve();const n={...e,type:e.refetchType??e.type??"active"};return this.refetchQueries(n,t)})}refetchQueries(e={},t){const n={...t,cancelRefetch:(t==null?void 0:t.cancelRefetch)??!0},r=Ne.batch(()=>k(this,Te).findAll(e).filter(i=>!i.isDisabled()).map(i=>{let s=i.fetch(void 0,n);return n.throwOnError||(s=s.catch(kt)),i.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(r).then(kt)}fetchQuery(e){const t=this.defaultQueryOptions(e);typeof t.retry>"u"&&(t.retry=!1);const n=k(this,Te).build(this,t);return n.isStaleByTime(t.staleTime)?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(kt).catch(kt)}fetchInfiniteQuery(e){return e.behavior=GS(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(kt).catch(kt)}resumePausedMutations(){return k(this,$n).resumePausedMutations()}getQueryCache(){return k(this,Te)}getMutationCache(){return k(this,$n)}getDefaultOptions(){return k(this,Fn)}setDefaultOptions(e){F(this,Fn,e)}setQueryDefaults(e,t){k(this,Ti).set(Vr(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...k(this,Ti).values()];let n={};return t.forEach(r=>{so(e,r.queryKey)&&(n={...n,...r.defaultOptions})}),n}setMutationDefaults(e,t){k(this,ji).set(Vr(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...k(this,ji).values()];let n={};return t.forEach(r=>{so(e,r.mutationKey)&&(n={...n,...r.defaultOptions})}),n}defaultQueryOptions(e){if(e!=null&&e._defaulted)return e;const t={...k(this,Fn).queries,...(e==null?void 0:e.queryKey)&&this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Bf(t.queryKey,t)),typeof t.refetchOnReconnect>"u"&&(t.refetchOnReconnect=t.networkMode!=="always"),typeof t.throwOnError>"u"&&(t.throwOnError=!!t.suspense),typeof t.networkMode>"u"&&t.persister&&(t.networkMode="offlineFirst"),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...k(this,Fn).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){k(this,Te).clear(),k(this,$n).clear()}},Te=new WeakMap,$n=new WeakMap,Fn=new WeakMap,Ti=new WeakMap,ji=new WeakMap,In=new WeakMap,Ni=new WeakMap,Mi=new WeakMap,_y),et,ce,So,Qe,Er,Oi,Xt,Po,Ri,Di,Tr,jr,Vn,Li,ie,Ss,rd,id,sd,od,ad,ld,ud,c1,zy,ZS=(zy=class extends Yi{constructor(t,n){super();H(this,ie);H(this,et);H(this,ce);H(this,So);H(this,Qe);H(this,Er);H(this,Oi);H(this,Xt);H(this,Po);H(this,Ri);H(this,Di);H(this,Tr);H(this,jr);H(this,Vn);H(this,Li,new Set);this.options=n,F(this,et,t),F(this,Xt,null),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(k(this,ce).addObserver(this),sp(k(this,ce),this.options)?G(this,ie,Ss).call(this):this.updateResult(),G(this,ie,od).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return cd(k(this,ce),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return cd(k(this,ce),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,G(this,ie,ad).call(this),G(this,ie,ld).call(this),k(this,ce).removeObserver(this)}setOptions(t,n){const r=this.options,i=k(this,ce);if(this.options=k(this,et).defaultQueryOptions(t),cl(r,this.options)||k(this,et).getQueryCache().notify({type:"observerOptionsUpdated",query:k(this,ce),observer:this}),typeof this.options.enabled<"u"&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=r.queryKey),G(this,ie,ud).call(this);const s=this.hasListeners();s&&op(k(this,ce),i,this.options,r)&&G(this,ie,Ss).call(this),this.updateResult(n),s&&(k(this,ce)!==i||this.options.enabled!==r.enabled||this.options.staleTime!==r.staleTime)&&G(this,ie,rd).call(this);const o=G(this,ie,id).call(this);s&&(k(this,ce)!==i||this.options.enabled!==r.enabled||o!==k(this,Vn))&&G(this,ie,sd).call(this,o)}getOptimisticResult(t){const n=k(this,et).getQueryCache().build(k(this,et),t),r=this.createResult(n,t);return tP(this,r)&&(F(this,Qe,r),F(this,Oi,this.options),F(this,Er,k(this,ce).state)),r}getCurrentResult(){return k(this,Qe)}trackResult(t){const n={};return Object.keys(t).forEach(r=>{Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:()=>(k(this,Li).add(r),t[r])})}),n}getCurrentQuery(){return k(this,ce)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=k(this,et).defaultQueryOptions(t),r=k(this,et).getQueryCache().build(k(this,et),n);return r.isFetchingOptimistic=!0,r.fetch().then(()=>this.createResult(r,n))}fetch(t){return G(this,ie,Ss).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),k(this,Qe)))}createResult(t,n){var T;const r=k(this,ce),i=this.options,s=k(this,Qe),o=k(this,Er),a=k(this,Oi),u=t!==r?t.state:k(this,So),{state:c}=t;let{error:d,errorUpdatedAt:f,fetchStatus:m,status:p}=c,v=!1,x;if(n._optimisticResults){const C=this.hasListeners(),j=!C&&sp(t,n),$=C&&op(t,r,n,i);(j||$)&&(m=ql(t.options.networkMode)?"fetching":"paused",c.dataUpdatedAt||(p="pending")),n._optimisticResults==="isRestoring"&&(m="idle")}if(n.select&&typeof c.data<"u")if(s&&c.data===(o==null?void 0:o.data)&&n.select===k(this,Po))x=k(this,Ri);else try{F(this,Po,n.select),x=n.select(c.data),x=nd(s==null?void 0:s.data,x,n),F(this,Ri,x),F(this,Xt,null)}catch(C){F(this,Xt,C)}else x=c.data;if(typeof n.placeholderData<"u"&&typeof x>"u"&&p==="pending"){let C;if(s!=null&&s.isPlaceholderData&&n.placeholderData===(a==null?void 0:a.placeholderData))C=s.data;else if(C=typeof n.placeholderData=="function"?n.placeholderData((T=k(this,Di))==null?void 0:T.state.data,k(this,Di)):n.placeholderData,n.select&&typeof C<"u")try{C=n.select(C),F(this,Xt,null)}catch(j){F(this,Xt,j)}typeof C<"u"&&(p="success",x=nd(s==null?void 0:s.data,C,n),v=!0)}k(this,Xt)&&(d=k(this,Xt),x=k(this,Ri),f=Date.now(),p="error");const y=m==="fetching",g=p==="pending",w=p==="error",S=g&&y;return{status:p,fetchStatus:m,isPending:g,isSuccess:p==="success",isError:w,isInitialLoading:S,isLoading:S,data:x,dataUpdatedAt:c.dataUpdatedAt,error:d,errorUpdatedAt:f,failureCount:c.fetchFailureCount,failureReason:c.fetchFailureReason,errorUpdateCount:c.errorUpdateCount,isFetched:c.dataUpdateCount>0||c.errorUpdateCount>0,isFetchedAfterMount:c.dataUpdateCount>u.dataUpdateCount||c.errorUpdateCount>u.errorUpdateCount,isFetching:y,isRefetching:y&&!g,isLoadingError:w&&c.dataUpdatedAt===0,isPaused:m==="paused",isPlaceholderData:v,isRefetchError:w&&c.dataUpdatedAt!==0,isStale:Hf(t,n),refetch:this.refetch}}updateResult(t){const n=k(this,Qe),r=this.createResult(k(this,ce),this.options);if(F(this,Er,k(this,ce).state),F(this,Oi,this.options),k(this,Er).data!==void 0&&F(this,Di,k(this,ce)),cl(r,n))return;F(this,Qe,r);const i={},s=()=>{if(!n)return!0;const{notifyOnChangeProps:o}=this.options,a=typeof o=="function"?o():o;if(a==="all"||!a&&!k(this,Li).size)return!0;const l=new Set(a??k(this,Li));return this.options.throwOnError&&l.add("error"),Object.keys(k(this,Qe)).some(u=>{const c=u;return k(this,Qe)[c]!==n[c]&&l.has(c)})};(t==null?void 0:t.listeners)!==!1&&s()&&(i.listeners=!0),G(this,ie,c1).call(this,{...i,...t})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&G(this,ie,od).call(this)}},et=new WeakMap,ce=new WeakMap,So=new WeakMap,Qe=new WeakMap,Er=new WeakMap,Oi=new WeakMap,Xt=new WeakMap,Po=new WeakMap,Ri=new WeakMap,Di=new WeakMap,Tr=new WeakMap,jr=new WeakMap,Vn=new WeakMap,Li=new WeakMap,ie=new WeakSet,Ss=function(t){G(this,ie,ud).call(this);let n=k(this,ce).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(kt)),n},rd=function(){if(G(this,ie,ad).call(this),Wi||k(this,Qe).isStale||!ed(this.options.staleTime))return;const n=i1(k(this,Qe).dataUpdatedAt,this.options.staleTime)+1;F(this,Tr,setTimeout(()=>{k(this,Qe).isStale||this.updateResult()},n))},id=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(k(this,ce)):this.options.refetchInterval)??!1},sd=function(t){G(this,ie,ld).call(this),F(this,Vn,t),!(Wi||this.options.enabled===!1||!ed(k(this,Vn))||k(this,Vn)===0)&&F(this,jr,setInterval(()=>{(this.options.refetchIntervalInBackground||dl.isFocused())&&G(this,ie,Ss).call(this)},k(this,Vn)))},od=function(){G(this,ie,rd).call(this),G(this,ie,sd).call(this,G(this,ie,id).call(this))},ad=function(){k(this,Tr)&&(clearTimeout(k(this,Tr)),F(this,Tr,void 0))},ld=function(){k(this,jr)&&(clearInterval(k(this,jr)),F(this,jr,void 0))},ud=function(){const t=k(this,et).getQueryCache().build(k(this,et),this.options);if(t===k(this,ce))return;const n=k(this,ce);F(this,ce,t),F(this,So,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},c1=function(t){Ne.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(k(this,Qe))}),k(this,et).getQueryCache().notify({query:k(this,ce),type:"observerResultsUpdated"})})},zy);function eP(e,t){return t.enabled!==!1&&!e.state.dataUpdatedAt&&!(e.state.status==="error"&&t.retryOnMount===!1)}function sp(e,t){return eP(e,t)||e.state.dataUpdatedAt>0&&cd(e,t,t.refetchOnMount)}function cd(e,t,n){if(t.enabled!==!1){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&Hf(e,t)}return!1}function op(e,t,n,r){return n.enabled!==!1&&(e!==t||r.enabled===!1)&&(!n.suspense||e.state.status!=="error")&&Hf(e,n)}function Hf(e,t){return e.isStaleByTime(t.staleTime)}function tP(e,t){return!cl(e.getCurrentResult(),t)}var _n,ln,ut,un,pn,Na,dd,Wy,nP=(Wy=class extends Yi{constructor(n,r){super();H(this,pn);H(this,_n);H(this,ln);H(this,ut);H(this,un);F(this,ln,void 0),F(this,_n,n),this.setOptions(r),this.bindMethods(),G(this,pn,Na).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(n){var i;const r=this.options;this.options=k(this,_n).defaultMutationOptions(n),cl(r,this.options)||k(this,_n).getMutationCache().notify({type:"observerOptionsUpdated",mutation:k(this,ut),observer:this}),(i=k(this,ut))==null||i.setOptions(this.options),r!=null&&r.mutationKey&&this.options.mutationKey&&Vr(r.mutationKey)!==Vr(this.options.mutationKey)&&this.reset()}onUnsubscribe(){var n;this.hasListeners()||(n=k(this,ut))==null||n.removeObserver(this)}onMutationUpdate(n){G(this,pn,Na).call(this),G(this,pn,dd).call(this,n)}getCurrentResult(){return k(this,ln)}reset(){var n;(n=k(this,ut))==null||n.removeObserver(this),F(this,ut,void 0),G(this,pn,Na).call(this),G(this,pn,dd).call(this)}mutate(n,r){var i;return F(this,un,r),(i=k(this,ut))==null||i.removeObserver(this),F(this,ut,k(this,_n).getMutationCache().build(k(this,_n),this.options)),k(this,ut).addObserver(this),k(this,ut).execute(n)}},_n=new WeakMap,ln=new WeakMap,ut=new WeakMap,un=new WeakMap,pn=new WeakSet,Na=function(){var r;const n=((r=k(this,ut))==null?void 0:r.state)??u1();F(this,ln,{...n,isPending:n.status==="pending",isSuccess:n.status==="success",isError:n.status==="error",isIdle:n.status==="idle",mutate:this.mutate,reset:this.reset})},dd=function(n){Ne.batch(()=>{var r,i,s,o,a,l,u,c;if(k(this,un)&&this.hasListeners()){const d=k(this,ln).variables,f=k(this,ln).context;(n==null?void 0:n.type)==="success"?((i=(r=k(this,un)).onSuccess)==null||i.call(r,n.data,d,f),(o=(s=k(this,un)).onSettled)==null||o.call(s,n.data,null,d,f)):(n==null?void 0:n.type)==="error"&&((l=(a=k(this,un)).onError)==null||l.call(a,n.error,d,f),(c=(u=k(this,un)).onSettled)==null||c.call(u,void 0,n.error,d,f))}this.listeners.forEach(d=>{d(k(this,ln))})})},Wy),d1=b.createContext(void 0),qf=e=>{const t=b.useContext(d1);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},rP=({client:e,children:t})=>(b.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),b.createElement(d1.Provider,{value:e},t)),f1=b.createContext(!1),iP=()=>b.useContext(f1);f1.Provider;function sP(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var oP=b.createContext(sP()),aP=()=>b.useContext(oP);function h1(e,t){return typeof e=="function"?e(...t):!!e}var lP=(e,t)=>{(e.suspense||e.throwOnError)&&(t.isReset()||(e.retryOnMount=!1))},uP=e=>{b.useEffect(()=>{e.clearReset()},[e])},cP=({result:e,errorResetBoundary:t,throwOnError:n,query:r})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&h1(n,[e.error,r]),dP=e=>{e.suspense&&typeof e.staleTime!="number"&&(e.staleTime=1e3)},fP=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,hP=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function mP(e,t,n){const r=qf(),i=iP(),s=aP(),o=r.defaultQueryOptions(e);o._optimisticResults=i?"isRestoring":"optimistic",dP(o),lP(o,s),uP(s);const[a]=b.useState(()=>new t(r,o)),l=a.getOptimisticResult(o);if(b.useSyncExternalStore(b.useCallback(u=>{const c=i?()=>{}:a.subscribe(Ne.batchCalls(u));return a.updateResult(),c},[a,i]),()=>a.getCurrentResult(),()=>a.getCurrentResult()),b.useEffect(()=>{a.setOptions(o,{listeners:!1})},[o,a]),fP(o,l))throw hP(o,a,s);if(cP({result:l,errorResetBoundary:s,throwOnError:o.throwOnError,query:r.getQueryCache().get(o.queryHash)}))throw l.error;return o.notifyOnChangeProps?l:a.trackResult(l)}function pP(e,t){return mP(e,ZS)}function gP(e,t){const n=qf(),[r]=b.useState(()=>new nP(n,e));b.useEffect(()=>{r.setOptions(e)},[r,e]);const i=b.useSyncExternalStore(b.useCallback(o=>r.subscribe(Ne.batchCalls(o)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),s=b.useCallback((o,a)=>{r.mutate(o,a).catch(yP)},[r]);if(i.error&&h1(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:s,mutateAsync:i.mutate}}function yP(){}function m1(e,t){return function(){return e.apply(t,arguments)}}const{toString:vP}=Object.prototype,{getPrototypeOf:Kf}=Object,{iterator:Kl,toStringTag:p1}=Symbol,Ql=(e=>t=>{const n=vP.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Vt=e=>(e=e.toLowerCase(),t=>Ql(t)===e),Xl=e=>t=>typeof t===e,{isArray:Ji}=Array,Ui=Xl("undefined");function No(e){return e!==null&&!Ui(e)&&e.constructor!==null&&!Ui(e.constructor)&&ot(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const g1=Vt("ArrayBuffer");function wP(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&g1(e.buffer),t}const xP=Xl("string"),ot=Xl("function"),y1=Xl("number"),Mo=e=>e!==null&&typeof e=="object",bP=e=>e===!0||e===!1,Ma=e=>{if(Ql(e)!=="object")return!1;const t=Kf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(p1 in e)&&!(Kl in e)},SP=e=>{if(!Mo(e)||No(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},PP=Vt("Date"),kP=Vt("File"),CP=Vt("Blob"),EP=Vt("FileList"),TP=e=>Mo(e)&&ot(e.pipe),jP=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ot(e.append)&&((t=Ql(e))==="formdata"||t==="object"&&ot(e.toString)&&e.toString()==="[object FormData]"))},NP=Vt("URLSearchParams"),[MP,OP,RP,DP]=["ReadableStream","Request","Response","Headers"].map(Vt),LP=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Oo(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),Ji(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}const xr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,w1=e=>!Ui(e)&&e!==xr;function fd(){const{caseless:e,skipUndefined:t}=w1(this)&&this||{},n={},r=(i,s)=>{const o=e&&v1(n,s)||s;Ma(n[o])&&Ma(i)?n[o]=fd(n[o],i):Ma(i)?n[o]=fd({},i):Ji(i)?n[o]=i.slice():(!t||!Ui(i))&&(n[o]=i)};for(let i=0,s=arguments.length;i(Oo(t,(i,s)=>{n&&ot(i)?e[s]=m1(i,n):e[s]=i},{allOwnKeys:r}),e),$P=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),FP=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},IP=(e,t,n,r)=>{let i,s,o;const a={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),s=i.length;s-- >0;)o=i[s],(!r||r(o,e,t))&&!a[o]&&(t[o]=e[o],a[o]=!0);e=n!==!1&&Kf(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},VP=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},_P=e=>{if(!e)return null;if(Ji(e))return e;let t=e.length;if(!y1(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},zP=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Kf(Uint8Array)),WP=(e,t)=>{const r=(e&&e[Kl]).call(e);let i;for(;(i=r.next())&&!i.done;){const s=i.value;t.call(e,s[0],s[1])}},UP=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},BP=Vt("HTMLFormElement"),HP=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),ap=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),qP=Vt("RegExp"),x1=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Oo(n,(i,s)=>{let o;(o=t(i,s,e))!==!1&&(r[s]=o||i)}),Object.defineProperties(e,r)},KP=e=>{x1(e,(t,n)=>{if(ot(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ot(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},QP=(e,t)=>{const n={},r=i=>{i.forEach(s=>{n[s]=!0})};return Ji(e)?r(e):r(String(e).split(t)),n},XP=()=>{},GP=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function YP(e){return!!(e&&ot(e.append)&&e[p1]==="FormData"&&e[Kl])}const JP=e=>{const t=new Array(10),n=(r,i)=>{if(Mo(r)){if(t.indexOf(r)>=0)return;if(No(r))return r;if(!("toJSON"in r)){t[i]=r;const s=Ji(r)?[]:{};return Oo(r,(o,a)=>{const l=n(o,i+1);!Ui(l)&&(s[a]=l)}),t[i]=void 0,s}}return r};return n(e,0)},ZP=Vt("AsyncFunction"),ek=e=>e&&(Mo(e)||ot(e))&&ot(e.then)&&ot(e.catch),b1=((e,t)=>e?setImmediate:t?((n,r)=>(xr.addEventListener("message",({source:i,data:s})=>{i===xr&&s===n&&r.length&&r.shift()()},!1),i=>{r.push(i),xr.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ot(xr.postMessage)),tk=typeof queueMicrotask<"u"?queueMicrotask.bind(xr):typeof process<"u"&&process.nextTick||b1,nk=e=>e!=null&&ot(e[Kl]),N={isArray:Ji,isArrayBuffer:g1,isBuffer:No,isFormData:jP,isArrayBufferView:wP,isString:xP,isNumber:y1,isBoolean:bP,isObject:Mo,isPlainObject:Ma,isEmptyObject:SP,isReadableStream:MP,isRequest:OP,isResponse:RP,isHeaders:DP,isUndefined:Ui,isDate:PP,isFile:kP,isBlob:CP,isRegExp:qP,isFunction:ot,isStream:TP,isURLSearchParams:NP,isTypedArray:zP,isFileList:EP,forEach:Oo,merge:fd,extend:AP,trim:LP,stripBOM:$P,inherits:FP,toFlatObject:IP,kindOf:Ql,kindOfTest:Vt,endsWith:VP,toArray:_P,forEachEntry:WP,matchAll:UP,isHTMLForm:BP,hasOwnProperty:ap,hasOwnProp:ap,reduceDescriptors:x1,freezeMethods:KP,toObjectSet:QP,toCamelCase:HP,noop:XP,toFiniteNumber:GP,findKey:v1,global:xr,isContextDefined:w1,isSpecCompliantForm:YP,toJSONObject:JP,isAsyncFn:ZP,isThenable:ek,setImmediate:b1,asap:tk,isIterable:nk};function Y(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status?i.status:null)}N.inherits(Y,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:N.toJSONObject(this.config),code:this.code,status:this.status}}});const S1=Y.prototype,P1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{P1[e]={value:e}});Object.defineProperties(Y,P1);Object.defineProperty(S1,"isAxiosError",{value:!0});Y.from=(e,t,n,r,i,s)=>{const o=Object.create(S1);N.toFlatObject(e,o,function(c){return c!==Error.prototype},u=>u!=="isAxiosError");const a=e&&e.message?e.message:"Error",l=t==null&&e?e.code:t;return Y.call(o,a,l,n,r,i),e&&o.cause==null&&Object.defineProperty(o,"cause",{value:e,configurable:!0}),o.name=e&&e.name||"Error",s&&Object.assign(o,s),o};const rk=null;function hd(e){return N.isPlainObject(e)||N.isArray(e)}function k1(e){return N.endsWith(e,"[]")?e.slice(0,-2):e}function lp(e,t,n){return e?e.concat(t).map(function(i,s){return i=k1(i),!n&&s?"["+i+"]":i}).join(n?".":""):t}function ik(e){return N.isArray(e)&&!e.some(hd)}const sk=N.toFlatObject(N,{},null,function(t){return/^is[A-Z]/.test(t)});function Gl(e,t,n){if(!N.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=N.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(v,x){return!N.isUndefined(x[v])});const r=n.metaTokens,i=n.visitor||c,s=n.dots,o=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&N.isSpecCompliantForm(t);if(!N.isFunction(i))throw new TypeError("visitor must be a function");function u(p){if(p===null)return"";if(N.isDate(p))return p.toISOString();if(N.isBoolean(p))return p.toString();if(!l&&N.isBlob(p))throw new Y("Blob is not supported. Use a Buffer instead.");return N.isArrayBuffer(p)||N.isTypedArray(p)?l&&typeof Blob=="function"?new Blob([p]):Buffer.from(p):p}function c(p,v,x){let y=p;if(p&&!x&&typeof p=="object"){if(N.endsWith(v,"{}"))v=r?v:v.slice(0,-2),p=JSON.stringify(p);else if(N.isArray(p)&&ik(p)||(N.isFileList(p)||N.endsWith(v,"[]"))&&(y=N.toArray(p)))return v=k1(v),y.forEach(function(w,S){!(N.isUndefined(w)||w===null)&&t.append(o===!0?lp([v],S,s):o===null?v:v+"[]",u(w))}),!1}return hd(p)?!0:(t.append(lp(x,v,s),u(p)),!1)}const d=[],f=Object.assign(sk,{defaultVisitor:c,convertValue:u,isVisitable:hd});function m(p,v){if(!N.isUndefined(p)){if(d.indexOf(p)!==-1)throw Error("Circular reference detected in "+v.join("."));d.push(p),N.forEach(p,function(y,g){(!(N.isUndefined(y)||y===null)&&i.call(t,y,N.isString(g)?g.trim():g,v,f))===!0&&m(y,v?v.concat(g):[g])}),d.pop()}}if(!N.isObject(e))throw new TypeError("data must be an object");return m(e),t}function up(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Qf(e,t){this._pairs=[],e&&Gl(e,this,t)}const C1=Qf.prototype;C1.append=function(t,n){this._pairs.push([t,n])};C1.toString=function(t){const n=t?function(r){return t.call(this,r,up)}:up;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function ok(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function E1(e,t,n){if(!t)return e;const r=n&&n.encode||ok;N.isFunction(n)&&(n={serialize:n});const i=n&&n.serialize;let s;if(i?s=i(t,n):s=N.isURLSearchParams(t)?t.toString():new Qf(t,n).toString(r),s){const o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class cp{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){N.forEach(this.handlers,function(r){r!==null&&t(r)})}}const T1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ak=typeof URLSearchParams<"u"?URLSearchParams:Qf,lk=typeof FormData<"u"?FormData:null,uk=typeof Blob<"u"?Blob:null,ck={isBrowser:!0,classes:{URLSearchParams:ak,FormData:lk,Blob:uk},protocols:["http","https","file","blob","url","data"]},Xf=typeof window<"u"&&typeof document<"u",md=typeof navigator=="object"&&navigator||void 0,dk=Xf&&(!md||["ReactNative","NativeScript","NS"].indexOf(md.product)<0),fk=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",hk=Xf&&window.location.href||"http://localhost",mk=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Xf,hasStandardBrowserEnv:dk,hasStandardBrowserWebWorkerEnv:fk,navigator:md,origin:hk},Symbol.toStringTag,{value:"Module"})),Ue={...mk,...ck};function pk(e,t){return Gl(e,new Ue.classes.URLSearchParams,{visitor:function(n,r,i,s){return Ue.isNode&&N.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function gk(e){return N.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function yk(e){const t={},n=Object.keys(e);let r;const i=n.length;let s;for(r=0;r=n.length;return o=!o&&N.isArray(i)?i.length:o,l?(N.hasOwnProp(i,o)?i[o]=[i[o],r]:i[o]=r,!a):((!i[o]||!N.isObject(i[o]))&&(i[o]=[]),t(n,r,i[o],s)&&N.isArray(i[o])&&(i[o]=yk(i[o])),!a)}if(N.isFormData(e)&&N.isFunction(e.entries)){const n={};return N.forEachEntry(e,(r,i)=>{t(gk(r),i,n,0)}),n}return null}function vk(e,t,n){if(N.isString(e))try{return(t||JSON.parse)(e),N.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Ro={transitional:T1,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,s=N.isObject(t);if(s&&N.isHTMLForm(t)&&(t=new FormData(t)),N.isFormData(t))return i?JSON.stringify(j1(t)):t;if(N.isArrayBuffer(t)||N.isBuffer(t)||N.isStream(t)||N.isFile(t)||N.isBlob(t)||N.isReadableStream(t))return t;if(N.isArrayBufferView(t))return t.buffer;if(N.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return pk(t,this.formSerializer).toString();if((a=N.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Gl(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return s||i?(n.setContentType("application/json",!1),vk(t)):t}],transformResponse:[function(t){const n=this.transitional||Ro.transitional,r=n&&n.forcedJSONParsing,i=this.responseType==="json";if(N.isResponse(t)||N.isReadableStream(t))return t;if(t&&N.isString(t)&&(r&&!this.responseType||i)){const o=!(n&&n.silentJSONParsing)&&i;try{return JSON.parse(t,this.parseReviver)}catch(a){if(o)throw a.name==="SyntaxError"?Y.from(a,Y.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ue.classes.FormData,Blob:Ue.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};N.forEach(["delete","get","head","post","put","patch"],e=>{Ro.headers[e]={}});const wk=N.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),xk=e=>{const t={};let n,r,i;return e&&e.split(` +`).forEach(function(o){i=o.indexOf(":"),n=o.substring(0,i).trim().toLowerCase(),r=o.substring(i+1).trim(),!(!n||t[n]&&wk[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},dp=Symbol("internals");function ds(e){return e&&String(e).trim().toLowerCase()}function Oa(e){return e===!1||e==null?e:N.isArray(e)?e.map(Oa):String(e)}function bk(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const Sk=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Vu(e,t,n,r,i){if(N.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!N.isString(t)){if(N.isString(r))return t.indexOf(r)!==-1;if(N.isRegExp(r))return r.test(t)}}function Pk(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function kk(e,t){const n=N.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(i,s,o){return this[r].call(this,t,i,s,o)},configurable:!0})})}let at=class{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function s(a,l,u){const c=ds(l);if(!c)throw new Error("header name must be a non-empty string");const d=N.findKey(i,c);(!d||i[d]===void 0||u===!0||u===void 0&&i[d]!==!1)&&(i[d||l]=Oa(a))}const o=(a,l)=>N.forEach(a,(u,c)=>s(u,c,l));if(N.isPlainObject(t)||t instanceof this.constructor)o(t,n);else if(N.isString(t)&&(t=t.trim())&&!Sk(t))o(xk(t),n);else if(N.isObject(t)&&N.isIterable(t)){let a={},l,u;for(const c of t){if(!N.isArray(c))throw TypeError("Object iterator must return a key-value pair");a[u=c[0]]=(l=a[u])?N.isArray(l)?[...l,c[1]]:[l,c[1]]:c[1]}o(a,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=ds(t),t){const r=N.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return bk(i);if(N.isFunction(n))return n.call(this,i,r);if(N.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ds(t),t){const r=N.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Vu(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function s(o){if(o=ds(o),o){const a=N.findKey(r,o);a&&(!n||Vu(r,r[a],a,n))&&(delete r[a],i=!0)}}return N.isArray(t)?t.forEach(s):s(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const s=n[r];(!t||Vu(this,this[s],s,t,!0))&&(delete this[s],i=!0)}return i}normalize(t){const n=this,r={};return N.forEach(this,(i,s)=>{const o=N.findKey(r,s);if(o){n[o]=Oa(i),delete n[s];return}const a=t?Pk(s):String(s).trim();a!==s&&delete n[s],n[a]=Oa(i),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return N.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&N.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[dp]=this[dp]={accessors:{}}).accessors,i=this.prototype;function s(o){const a=ds(o);r[a]||(kk(i,o),r[a]=!0)}return N.isArray(t)?t.forEach(s):s(t),this}};at.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);N.reduceDescriptors(at.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});N.freezeMethods(at);function _u(e,t){const n=this||Ro,r=t||n,i=at.from(r.headers);let s=r.data;return N.forEach(e,function(a){s=a.call(n,s,i.normalize(),t?t.status:void 0)}),i.normalize(),s}function N1(e){return!!(e&&e.__CANCEL__)}function Zi(e,t,n){Y.call(this,e??"canceled",Y.ERR_CANCELED,t,n),this.name="CanceledError"}N.inherits(Zi,Y,{__CANCEL__:!0});function M1(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Y("Request failed with status code "+n.status,[Y.ERR_BAD_REQUEST,Y.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Ck(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Ek(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,s=0,o;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),c=r[s];o||(o=u),n[i]=l,r[i]=u;let d=s,f=0;for(;d!==i;)f+=n[d++],d=d%e;if(i=(i+1)%e,i===s&&(s=(s+1)%e),u-o{n=c,i=null,s&&(clearTimeout(s),s=null),e(...u)};return[(...u)=>{const c=Date.now(),d=c-n;d>=r?o(u,c):(i=u,s||(s=setTimeout(()=>{s=null,o(i)},r-d)))},()=>i&&o(i)]}const hl=(e,t,n=3)=>{let r=0;const i=Ek(50,250);return Tk(s=>{const o=s.loaded,a=s.lengthComputable?s.total:void 0,l=o-r,u=i(l),c=o<=a;r=o;const d={loaded:o,total:a,progress:a?o/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&c?(a-o)/u:void 0,event:s,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(d)},n)},fp=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},hp=e=>(...t)=>N.asap(()=>e(...t)),jk=Ue.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ue.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ue.origin),Ue.navigator&&/(msie|trident)/i.test(Ue.navigator.userAgent)):()=>!0,Nk=Ue.hasStandardBrowserEnv?{write(e,t,n,r,i,s){const o=[e+"="+encodeURIComponent(t)];N.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),N.isString(r)&&o.push("path="+r),N.isString(i)&&o.push("domain="+i),s===!0&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Mk(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Ok(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function O1(e,t,n){let r=!Mk(t);return e&&(r||n==!1)?Ok(e,t):t}const mp=e=>e instanceof at?{...e}:e;function _r(e,t){t=t||{};const n={};function r(u,c,d,f){return N.isPlainObject(u)&&N.isPlainObject(c)?N.merge.call({caseless:f},u,c):N.isPlainObject(c)?N.merge({},c):N.isArray(c)?c.slice():c}function i(u,c,d,f){if(N.isUndefined(c)){if(!N.isUndefined(u))return r(void 0,u,d,f)}else return r(u,c,d,f)}function s(u,c){if(!N.isUndefined(c))return r(void 0,c)}function o(u,c){if(N.isUndefined(c)){if(!N.isUndefined(u))return r(void 0,u)}else return r(void 0,c)}function a(u,c,d){if(d in t)return r(u,c);if(d in e)return r(void 0,u)}const l={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(u,c,d)=>i(mp(u),mp(c),d,!0)};return N.forEach(Object.keys({...e,...t}),function(c){const d=l[c]||i,f=d(e[c],t[c],c);N.isUndefined(f)&&d!==a||(n[c]=f)}),n}const R1=e=>{const t=_r({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:i,xsrfCookieName:s,headers:o,auth:a}=t;if(t.headers=o=at.from(o),t.url=E1(O1(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&o.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),N.isFormData(n)){if(Ue.hasStandardBrowserEnv||Ue.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(N.isFunction(n.getHeaders)){const l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([c,d])=>{u.includes(c.toLowerCase())&&o.set(c,d)})}}if(Ue.hasStandardBrowserEnv&&(r&&N.isFunction(r)&&(r=r(t)),r||r!==!1&&jk(t.url))){const l=i&&s&&Nk.read(s);l&&o.set(i,l)}return t},Rk=typeof XMLHttpRequest<"u",Dk=Rk&&function(e){return new Promise(function(n,r){const i=R1(e);let s=i.data;const o=at.from(i.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=i,c,d,f,m,p;function v(){m&&m(),p&&p(),i.cancelToken&&i.cancelToken.unsubscribe(c),i.signal&&i.signal.removeEventListener("abort",c)}let x=new XMLHttpRequest;x.open(i.method.toUpperCase(),i.url,!0),x.timeout=i.timeout;function y(){if(!x)return;const w=at.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders()),P={data:!a||a==="text"||a==="json"?x.responseText:x.response,status:x.status,statusText:x.statusText,headers:w,config:e,request:x};M1(function(C){n(C),v()},function(C){r(C),v()},P),x=null}"onloadend"in x?x.onloadend=y:x.onreadystatechange=function(){!x||x.readyState!==4||x.status===0&&!(x.responseURL&&x.responseURL.indexOf("file:")===0)||setTimeout(y)},x.onabort=function(){x&&(r(new Y("Request aborted",Y.ECONNABORTED,e,x)),x=null)},x.onerror=function(S){const P=S&&S.message?S.message:"Network Error",T=new Y(P,Y.ERR_NETWORK,e,x);T.event=S||null,r(T),x=null},x.ontimeout=function(){let S=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const P=i.transitional||T1;i.timeoutErrorMessage&&(S=i.timeoutErrorMessage),r(new Y(S,P.clarifyTimeoutError?Y.ETIMEDOUT:Y.ECONNABORTED,e,x)),x=null},s===void 0&&o.setContentType(null),"setRequestHeader"in x&&N.forEach(o.toJSON(),function(S,P){x.setRequestHeader(P,S)}),N.isUndefined(i.withCredentials)||(x.withCredentials=!!i.withCredentials),a&&a!=="json"&&(x.responseType=i.responseType),u&&([f,p]=hl(u,!0),x.addEventListener("progress",f)),l&&x.upload&&([d,m]=hl(l),x.upload.addEventListener("progress",d),x.upload.addEventListener("loadend",m)),(i.cancelToken||i.signal)&&(c=w=>{x&&(r(!w||w.type?new Zi(null,e,x):w),x.abort(),x=null)},i.cancelToken&&i.cancelToken.subscribe(c),i.signal&&(i.signal.aborted?c():i.signal.addEventListener("abort",c)));const g=Ck(i.url);if(g&&Ue.protocols.indexOf(g)===-1){r(new Y("Unsupported protocol "+g+":",Y.ERR_BAD_REQUEST,e));return}x.send(s||null)})},Lk=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,i;const s=function(u){if(!i){i=!0,a();const c=u instanceof Error?u:this.reason;r.abort(c instanceof Y?c:new Zi(c instanceof Error?c.message:c))}};let o=t&&setTimeout(()=>{o=null,s(new Y(`timeout ${t} of ms exceeded`,Y.ETIMEDOUT))},t);const a=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(s):u.removeEventListener("abort",s)}),e=null)};e.forEach(u=>u.addEventListener("abort",s));const{signal:l}=r;return l.unsubscribe=()=>N.asap(a),l}},Ak=function*(e,t){let n=e.byteLength;if(n{const i=$k(e,t);let s=0,o,a=l=>{o||(o=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:c}=await i.next();if(u){a(),l.close();return}let d=c.byteLength;if(n){let f=s+=d;n(f)}l.enqueue(new Uint8Array(c))}catch(u){throw a(u),u}},cancel(l){return a(l),i.return()}},{highWaterMark:2})},gp=64*1024,{isFunction:sa}=N,Ik=(({Request:e,Response:t})=>({Request:e,Response:t}))(N.global),{ReadableStream:yp,TextEncoder:vp}=N.global,wp=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Vk=e=>{e=N.merge.call({skipUndefined:!0},Ik,e);const{fetch:t,Request:n,Response:r}=e,i=t?sa(t):typeof fetch=="function",s=sa(n),o=sa(r);if(!i)return!1;const a=i&&sa(yp),l=i&&(typeof vp=="function"?(p=>v=>p.encode(v))(new vp):async p=>new Uint8Array(await new n(p).arrayBuffer())),u=s&&a&&wp(()=>{let p=!1;const v=new n(Ue.origin,{body:new yp,method:"POST",get duplex(){return p=!0,"half"}}).headers.has("Content-Type");return p&&!v}),c=o&&a&&wp(()=>N.isReadableStream(new r("").body)),d={stream:c&&(p=>p.body)};i&&["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!d[p]&&(d[p]=(v,x)=>{let y=v&&v[p];if(y)return y.call(v);throw new Y(`Response type '${p}' is not supported`,Y.ERR_NOT_SUPPORT,x)})});const f=async p=>{if(p==null)return 0;if(N.isBlob(p))return p.size;if(N.isSpecCompliantForm(p))return(await new n(Ue.origin,{method:"POST",body:p}).arrayBuffer()).byteLength;if(N.isArrayBufferView(p)||N.isArrayBuffer(p))return p.byteLength;if(N.isURLSearchParams(p)&&(p=p+""),N.isString(p))return(await l(p)).byteLength},m=async(p,v)=>{const x=N.toFiniteNumber(p.getContentLength());return x??f(v)};return async p=>{let{url:v,method:x,data:y,signal:g,cancelToken:w,timeout:S,onDownloadProgress:P,onUploadProgress:T,responseType:C,headers:j,withCredentials:$="same-origin",fetchOptions:_}=R1(p),W=t||fetch;C=C?(C+"").toLowerCase():"text";let ee=Lk([g,w&&w.toAbortSignal()],S),ve=null;const te=ee&&ee.unsubscribe&&(()=>{ee.unsubscribe()});let E;try{if(T&&u&&x!=="get"&&x!=="head"&&(E=await m(j,y))!==0){let A=new n(v,{method:"POST",body:y,duplex:"half"}),z;if(N.isFormData(y)&&(z=A.headers.get("content-type"))&&j.setContentType(z),A.body){const[Q,be]=fp(E,hl(hp(T)));y=pp(A.body,gp,Q,be)}}N.isString($)||($=$?"include":"omit");const O=s&&"credentials"in n.prototype,I={..._,signal:ee,method:x.toUpperCase(),headers:j.normalize().toJSON(),body:y,duplex:"half",credentials:O?$:void 0};ve=s&&new n(v,I);let M=await(s?W(ve,_):W(v,I));const L=c&&(C==="stream"||C==="response");if(c&&(P||L&&te)){const A={};["status","statusText","headers"].forEach(vt=>{A[vt]=M[vt]});const z=N.toFiniteNumber(M.headers.get("content-length")),[Q,be]=P&&fp(z,hl(hp(P),!0))||[];M=new r(pp(M.body,gp,Q,()=>{be&&be(),te&&te()}),A)}C=C||"text";let D=await d[N.findKey(d,C)||"text"](M,p);return!L&&te&&te(),await new Promise((A,z)=>{M1(A,z,{data:D,headers:at.from(M.headers),status:M.status,statusText:M.statusText,config:p,request:ve})})}catch(O){throw te&&te(),O&&O.name==="TypeError"&&/Load failed|fetch/i.test(O.message)?Object.assign(new Y("Network Error",Y.ERR_NETWORK,p,ve),{cause:O.cause||O}):Y.from(O,O&&O.code,p,ve)}}},_k=new Map,D1=e=>{let t=e?e.env:{};const{fetch:n,Request:r,Response:i}=t,s=[r,i,n];let o=s.length,a=o,l,u,c=_k;for(;a--;)l=s[a],u=c.get(l),u===void 0&&c.set(l,u=a?new Map:Vk(t)),c=u;return u};D1();const pd={http:rk,xhr:Dk,fetch:{get:D1}};N.forEach(pd,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const xp=e=>`- ${e}`,zk=e=>N.isFunction(e)||e===null||e===!1,L1={getAdapter:(e,t)=>{e=N.isArray(e)?e:[e];const{length:n}=e;let r,i;const s={};for(let o=0;o`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?o.length>1?`since : +`+o.map(xp).join(` +`):" "+xp(o[0]):"as no adapter specified";throw new Y("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return i},adapters:pd};function zu(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Zi(null,e)}function bp(e){return zu(e),e.headers=at.from(e.headers),e.data=_u.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),L1.getAdapter(e.adapter||Ro.adapter,e)(e).then(function(r){return zu(e),r.data=_u.call(e,e.transformResponse,r),r.headers=at.from(r.headers),r},function(r){return N1(r)||(zu(e),r&&r.response&&(r.response.data=_u.call(e,e.transformResponse,r.response),r.response.headers=at.from(r.response.headers))),Promise.reject(r)})}const A1="1.12.2",Yl={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Yl[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Sp={};Yl.transitional=function(t,n,r){function i(s,o){return"[Axios v"+A1+"] Transitional option '"+s+"'"+o+(r?". "+r:"")}return(s,o,a)=>{if(t===!1)throw new Y(i(o," has been removed"+(n?" in "+n:"")),Y.ERR_DEPRECATED);return n&&!Sp[o]&&(Sp[o]=!0,console.warn(i(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,o,a):!0}};Yl.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Wk(e,t,n){if(typeof e!="object")throw new Y("options must be an object",Y.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const s=r[i],o=t[s];if(o){const a=e[s],l=a===void 0||o(a,s,e);if(l!==!0)throw new Y("option "+s+" must be "+l,Y.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Y("Unknown option "+s,Y.ERR_BAD_OPTION)}}const Ra={assertOptions:Wk,validators:Yl},Ut=Ra.validators;let Or=class{constructor(t){this.defaults=t||{},this.interceptors={request:new cp,response:new cp}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const s=i.stack?i.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=_r(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:s}=n;r!==void 0&&Ra.assertOptions(r,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean)},!1),i!=null&&(N.isFunction(i)?n.paramsSerializer={serialize:i}:Ra.assertOptions(i,{encode:Ut.function,serialize:Ut.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Ra.assertOptions(n,{baseUrl:Ut.spelling("baseURL"),withXsrfToken:Ut.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=s&&N.merge(s.common,s[n.method]);s&&N.forEach(["delete","get","head","post","put","patch","common"],p=>{delete s[p]}),n.headers=at.concat(o,s);const a=[];let l=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(l=l&&v.synchronous,a.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let c,d=0,f;if(!l){const p=[bp.bind(this),void 0];for(p.unshift(...a),p.push(...u),f=p.length,c=Promise.resolve(n);d{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](i);r._listeners=null}),this.promise.then=i=>{let s;const o=new Promise(a=>{r.subscribe(a),s=a}).then(i);return o.cancel=function(){r.unsubscribe(s)},o},t(function(s,o,a){r.reason||(r.reason=new Zi(s,o,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new $1(function(i){t=i}),cancel:t}}};function Bk(e){return function(n){return e.apply(null,n)}}function Hk(e){return N.isObject(e)&&e.isAxiosError===!0}const gd={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(gd).forEach(([e,t])=>{gd[t]=e});function F1(e){const t=new Or(e),n=m1(Or.prototype.request,t);return N.extend(n,Or.prototype,t,{allOwnKeys:!0}),N.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return F1(_r(e,i))},n}const ke=F1(Ro);ke.Axios=Or;ke.CanceledError=Zi;ke.CancelToken=Uk;ke.isCancel=N1;ke.VERSION=A1;ke.toFormData=Gl;ke.AxiosError=Y;ke.Cancel=ke.CanceledError;ke.all=function(t){return Promise.all(t)};ke.spread=Bk;ke.isAxiosError=Hk;ke.mergeConfig=_r;ke.AxiosHeaders=at;ke.formToJSON=e=>j1(N.isHTMLForm(e)?new FormData(e):e);ke.getAdapter=L1.getAdapter;ke.HttpStatusCode=gd;ke.default=ke;const{Axios:C6,AxiosError:E6,CanceledError:T6,isCancel:j6,CancelToken:N6,VERSION:M6,all:O6,Cancel:R6,isAxiosError:D6,spread:L6,toFormData:A6,AxiosHeaders:$6,HttpStatusCode:F6,formToJSON:I6,getAdapter:V6,mergeConfig:_6}=ke;/** * @remix-run/router v1.23.0 * * Copyright (c) Remix Software Inc. @@ -51,7 +51,7 @@ Error generating stack: `+s.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function oo(){return oo=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function $1(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Uk(){return Math.random().toString(36).substr(2,8)}function Sp(e,t){return{usr:e.state,key:e.key,idx:t}}function gd(e,t,n,r){return n===void 0&&(n=null),oo({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?es(t):t,{state:n,key:t&&t.key||r||Uk()})}function fl(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function es(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Bk(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:s=!1}=r,o=i.history,a=Wn.Pop,l=null,u=c();u==null&&(u=0,o.replaceState(oo({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function d(){a=Wn.Pop;let x=c(),y=x==null?null:x-u;u=x,l&&l({action:a,location:v.location,delta:y})}function f(x,y){a=Wn.Push;let g=gd(v.location,x,y);u=c()+1;let w=Sp(g,u),S=v.createHref(g);try{o.pushState(w,"",S)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;i.location.assign(S)}s&&l&&l({action:a,location:v.location,delta:1})}function m(x,y){a=Wn.Replace;let g=gd(v.location,x,y);u=c();let w=Sp(g,u),S=v.createHref(g);o.replaceState(w,"",S),s&&l&&l({action:a,location:v.location,delta:0})}function p(x){let y=i.location.origin!=="null"?i.location.origin:i.location.href,g=typeof x=="string"?x:fl(x);return g=g.replace(/ $/,"%20"),Ee(y,"No window.location.(origin|href) available to create URL for href: "+g),new URL(g,y)}let v={get action(){return a},get location(){return e(i,o)},listen(x){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(bp,d),l=x,()=>{i.removeEventListener(bp,d),l=null}},createHref(x){return t(i,x)},createURL:p,encodeLocation(x){let y=p(x);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:f,replace:m,go(x){return o.go(x)}};return v}var Pp;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Pp||(Pp={}));function Hk(e,t,n){return n===void 0&&(n="/"),qk(e,t,n)}function qk(e,t,n,r){let i=typeof t=="string"?es(t):t,s=Xf(i.pathname||"/",n);if(s==null)return null;let o=F1(e);Kk(o);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?s.path||"":a,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};l.relativePath.startsWith("/")&&(Ee(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=Yn([r,l.relativePath]),c=n.concat(l);s.children&&s.children.length>0&&(Ee(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),F1(s.children,t,c,u)),!(s.path==null&&!s.index)&&t.push({path:u,score:eC(u,s.index),routesMeta:c})};return e.forEach((s,o)=>{var a;if(s.path===""||!((a=s.path)!=null&&a.includes("?")))i(s,o);else for(let l of V1(s.path))i(s,o,l)}),t}function V1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return i?[s,""]:[s];let o=V1(r.join("/")),a=[];return a.push(...o.map(l=>l===""?s:[s,l].join("/"))),i&&a.push(...o),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function Kk(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:tC(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Qk=/^:[\w-]+$/,Xk=3,Gk=2,Yk=1,Jk=10,Zk=-2,kp=e=>e==="*";function eC(e,t){let n=e.split("/"),r=n.length;return n.some(kp)&&(r+=Zk),t&&(r+=Gk),n.filter(i=>!kp(i)).reduce((i,s)=>i+(Qk.test(s)?Xk:s===""?Yk:Jk),r)}function tC(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function nC(e,t,n){let{routesMeta:r}=e,i={},s="/",o=[];for(let a=0;a{let{paramName:f,isOptional:m}=c;if(f==="*"){let v=a[d]||"";o=s.slice(0,s.length-v.length).replace(/(.)\/+$/,"$1")}const p=a[d];return m&&!p?u[f]=void 0:u[f]=(p||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:e}}function iC(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),$1(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function sC(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return $1(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Xf(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function oC(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?es(e):e;return{pathname:n?n.startsWith("/")?n:aC(n,t):t,search:cC(r),hash:dC(i)}}function aC(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function zu(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function lC(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function I1(e,t){let n=lC(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function _1(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=es(e):(i=oo({},e),Ee(!i.pathname||!i.pathname.includes("?"),zu("?","pathname","search",i)),Ee(!i.pathname||!i.pathname.includes("#"),zu("#","pathname","hash",i)),Ee(!i.search||!i.search.includes("#"),zu("#","search","hash",i)));let s=e===""||i.pathname==="",o=s?"/":i.pathname,a;if(o==null)a=n;else{let d=t.length-1;if(!r&&o.startsWith("..")){let f=o.split("/");for(;f[0]==="..";)f.shift(),d-=1;i.pathname=f.join("/")}a=d>=0?t[d]:"/"}let l=oC(i,a),u=o&&o!=="/"&&o.endsWith("/"),c=(s||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const Yn=e=>e.join("/").replace(/\/\/+/g,"/"),uC=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),cC=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,dC=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function fC(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const z1=["post","put","patch","delete"];new Set(z1);const hC=["get",...z1];new Set(hC);/** + */function oo(){return oo=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function I1(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Kk(){return Math.random().toString(36).substr(2,8)}function kp(e,t){return{usr:e.state,key:e.key,idx:t}}function yd(e,t,n,r){return n===void 0&&(n=null),oo({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?es(t):t,{state:n,key:t&&t.key||r||Kk()})}function ml(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function es(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Qk(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:s=!1}=r,o=i.history,a=Un.Pop,l=null,u=c();u==null&&(u=0,o.replaceState(oo({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function d(){a=Un.Pop;let x=c(),y=x==null?null:x-u;u=x,l&&l({action:a,location:v.location,delta:y})}function f(x,y){a=Un.Push;let g=yd(v.location,x,y);u=c()+1;let w=kp(g,u),S=v.createHref(g);try{o.pushState(w,"",S)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;i.location.assign(S)}s&&l&&l({action:a,location:v.location,delta:1})}function m(x,y){a=Un.Replace;let g=yd(v.location,x,y);u=c();let w=kp(g,u),S=v.createHref(g);o.replaceState(w,"",S),s&&l&&l({action:a,location:v.location,delta:0})}function p(x){let y=i.location.origin!=="null"?i.location.origin:i.location.href,g=typeof x=="string"?x:ml(x);return g=g.replace(/ $/,"%20"),Ee(y,"No window.location.(origin|href) available to create URL for href: "+g),new URL(g,y)}let v={get action(){return a},get location(){return e(i,o)},listen(x){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(Pp,d),l=x,()=>{i.removeEventListener(Pp,d),l=null}},createHref(x){return t(i,x)},createURL:p,encodeLocation(x){let y=p(x);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:f,replace:m,go(x){return o.go(x)}};return v}var Cp;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Cp||(Cp={}));function Xk(e,t,n){return n===void 0&&(n="/"),Gk(e,t,n)}function Gk(e,t,n,r){let i=typeof t=="string"?es(t):t,s=Gf(i.pathname||"/",n);if(s==null)return null;let o=V1(e);Yk(o);let a=null;for(let l=0;a==null&&l{let l={relativePath:a===void 0?s.path||"":a,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};l.relativePath.startsWith("/")&&(Ee(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let u=Jn([r,l.relativePath]),c=n.concat(l);s.children&&s.children.length>0&&(Ee(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),V1(s.children,t,c,u)),!(s.path==null&&!s.index)&&t.push({path:u,score:iC(u,s.index),routesMeta:c})};return e.forEach((s,o)=>{var a;if(s.path===""||!((a=s.path)!=null&&a.includes("?")))i(s,o);else for(let l of _1(s.path))i(s,o,l)}),t}function _1(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return i?[s,""]:[s];let o=_1(r.join("/")),a=[];return a.push(...o.map(l=>l===""?s:[s,l].join("/"))),i&&a.push(...o),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function Yk(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:sC(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Jk=/^:[\w-]+$/,Zk=3,eC=2,tC=1,nC=10,rC=-2,Ep=e=>e==="*";function iC(e,t){let n=e.split("/"),r=n.length;return n.some(Ep)&&(r+=rC),t&&(r+=eC),n.filter(i=>!Ep(i)).reduce((i,s)=>i+(Jk.test(s)?Zk:s===""?tC:nC),r)}function sC(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function oC(e,t,n){let{routesMeta:r}=e,i={},s="/",o=[];for(let a=0;a{let{paramName:f,isOptional:m}=c;if(f==="*"){let v=a[d]||"";o=s.slice(0,s.length-v.length).replace(/(.)\/+$/,"$1")}const p=a[d];return m&&!p?u[f]=void 0:u[f]=(p||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:e}}function lC(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),I1(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function uC(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return I1(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Gf(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function cC(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?es(e):e;return{pathname:n?n.startsWith("/")?n:dC(n,t):t,search:mC(r),hash:pC(i)}}function dC(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Wu(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function fC(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function z1(e,t){let n=fC(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function W1(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=es(e):(i=oo({},e),Ee(!i.pathname||!i.pathname.includes("?"),Wu("?","pathname","search",i)),Ee(!i.pathname||!i.pathname.includes("#"),Wu("#","pathname","hash",i)),Ee(!i.search||!i.search.includes("#"),Wu("#","search","hash",i)));let s=e===""||i.pathname==="",o=s?"/":i.pathname,a;if(o==null)a=n;else{let d=t.length-1;if(!r&&o.startsWith("..")){let f=o.split("/");for(;f[0]==="..";)f.shift(),d-=1;i.pathname=f.join("/")}a=d>=0?t[d]:"/"}let l=cC(i,a),u=o&&o!=="/"&&o.endsWith("/"),c=(s||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const Jn=e=>e.join("/").replace(/\/\/+/g,"/"),hC=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),mC=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,pC=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function gC(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const U1=["post","put","patch","delete"];new Set(U1);const yC=["get",...U1];new Set(yC);/** * React Router v6.30.1 * * Copyright (c) Remix Software Inc. @@ -60,7 +60,7 @@ Error generating stack: `+s.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function ao(){return ao=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),b.useCallback(function(u,c){if(c===void 0&&(c={}),!a.current)return;if(typeof u=="number"){r.go(u);return}let d=_1(u,JSON.parse(o),s,c.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Yn([t,d.pathname])),(c.replace?r.replace:r.push)(d,c.state,c)},[t,r,o,s,e])}const vC=b.createContext(null);function wC(e){let t=b.useContext(or).outlet;return t&&b.createElement(vC.Provider,{value:e},t)}function B1(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(qr),{matches:i}=b.useContext(or),{pathname:s}=Yl(),o=JSON.stringify(I1(i,r.v7_relativeSplatPath));return b.useMemo(()=>_1(e,JSON.parse(o),s,n==="path"),[e,o,s,n])}function xC(e,t){return bC(e,t)}function bC(e,t,n,r){Do()||Ee(!1);let{navigator:i}=b.useContext(qr),{matches:s}=b.useContext(or),o=s[s.length-1],a=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=Yl(),c;if(t){var d;let x=typeof t=="string"?es(t):t;l==="/"||(d=x.pathname)!=null&&d.startsWith(l)||Ee(!1),c=x}else c=u;let f=c.pathname||"/",m=f;if(l!=="/"){let x=l.replace(/^\//,"").split("/");m="/"+f.replace(/^\//,"").split("/").slice(x.length).join("/")}let p=Hk(e,{pathname:m}),v=EC(p&&p.map(x=>Object.assign({},x,{params:Object.assign({},a,x.params),pathname:Yn([l,i.encodeLocation?i.encodeLocation(x.pathname).pathname:x.pathname]),pathnameBase:x.pathnameBase==="/"?l:Yn([l,i.encodeLocation?i.encodeLocation(x.pathnameBase).pathname:x.pathnameBase])})),s,n,r);return t&&v?b.createElement(Gl.Provider,{value:{location:ao({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:Wn.Pop}},v):v}function SC(){let e=NC(),t=fC(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:i},n):null,null)}const PC=b.createElement(SC,null);class kC extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(or.Provider,{value:this.props.routeContext},b.createElement(W1.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function CC(e){let{routeContext:t,match:n,children:r}=e,i=b.useContext(Gf);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(or.Provider,{value:t},r)}function EC(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,a=(i=n)==null?void 0:i.errors;if(a!=null){let c=o.findIndex(d=>d.route.id&&(a==null?void 0:a[d.route.id])!==void 0);c>=0||Ee(!1),o=o.slice(0,Math.min(o.length,c+1))}let l=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let c=0;c=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((c,d,f)=>{let m,p=!1,v=null,x=null;n&&(m=a&&d.route.id?a[d.route.id]:void 0,v=d.route.errorElement||PC,l&&(u<0&&f===0?(RC("route-fallback"),p=!0,x=null):u===f&&(p=!0,x=d.route.hydrateFallbackElement||null)));let y=t.concat(o.slice(0,f+1)),g=()=>{let w;return m?w=v:p?w=x:d.route.Component?w=b.createElement(d.route.Component,null):d.route.element?w=d.route.element:w=c,b.createElement(CC,{match:d,routeContext:{outlet:c,matches:y,isDataRoute:n!=null},children:w})};return n&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(kC,{location:n.location,revalidation:n.revalidation,component:v,error:m,children:g(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):g()},null)}var H1=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(H1||{}),q1=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(q1||{});function TC(e){let t=b.useContext(Gf);return t||Ee(!1),t}function jC(e){let t=b.useContext(mC);return t||Ee(!1),t}function MC(e){let t=b.useContext(or);return t||Ee(!1),t}function K1(e){let t=MC(),n=t.matches[t.matches.length-1];return n.route.id||Ee(!1),n.route.id}function NC(){var e;let t=b.useContext(W1),n=jC(),r=K1();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function OC(){let{router:e}=TC(H1.UseNavigateStable),t=K1(q1.UseNavigateStable),n=b.useRef(!1);return U1(()=>{n.current=!0}),b.useCallback(function(i,s){s===void 0&&(s={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,ao({fromRouteId:t},s)))},[e,t])}const Cp={};function RC(e,t,n){Cp[e]||(Cp[e]=!0)}function DC(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function LC(e){return wC(e.context)}function Oa(e){Ee(!1)}function AC(e){let{basename:t="/",children:n=null,location:r,navigationType:i=Wn.Pop,navigator:s,static:o=!1,future:a}=e;Do()&&Ee(!1);let l=t.replace(/^\/*/,"/"),u=b.useMemo(()=>({basename:l,navigator:s,static:o,future:ao({v7_relativeSplatPath:!1},a)}),[l,a,s,o]);typeof r=="string"&&(r=es(r));let{pathname:c="/",search:d="",hash:f="",state:m=null,key:p="default"}=r,v=b.useMemo(()=>{let x=Xf(c,l);return x==null?null:{location:{pathname:x,search:d,hash:f,state:m,key:p},navigationType:i}},[l,c,d,f,m,p,i]);return v==null?null:b.createElement(qr.Provider,{value:u},b.createElement(Gl.Provider,{children:n,value:v}))}function $C(e){let{children:t,location:n}=e;return xC(yd(t),n)}new Promise(()=>{});function yd(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,i)=>{if(!b.isValidElement(r))return;let s=[...t,i];if(r.type===b.Fragment){n.push.apply(n,yd(r.props.children,s));return}r.type!==Oa&&Ee(!1),!r.props.index||!r.props.children||Ee(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=yd(r.props.children,s)),n.push(o)}),n}/** + */function ao(){return ao=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),b.useCallback(function(u,c){if(c===void 0&&(c={}),!a.current)return;if(typeof u=="number"){r.go(u);return}let d=W1(u,JSON.parse(o),s,c.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Jn([t,d.pathname])),(c.replace?r.replace:r.push)(d,c.state,c)},[t,r,o,s,e])}const SC=b.createContext(null);function PC(e){let t=b.useContext(ar).outlet;return t&&b.createElement(SC.Provider,{value:e},t)}function q1(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(qr),{matches:i}=b.useContext(ar),{pathname:s}=Zl(),o=JSON.stringify(z1(i,r.v7_relativeSplatPath));return b.useMemo(()=>W1(e,JSON.parse(o),s,n==="path"),[e,o,s,n])}function kC(e,t){return CC(e,t)}function CC(e,t,n,r){Do()||Ee(!1);let{navigator:i}=b.useContext(qr),{matches:s}=b.useContext(ar),o=s[s.length-1],a=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=Zl(),c;if(t){var d;let x=typeof t=="string"?es(t):t;l==="/"||(d=x.pathname)!=null&&d.startsWith(l)||Ee(!1),c=x}else c=u;let f=c.pathname||"/",m=f;if(l!=="/"){let x=l.replace(/^\//,"").split("/");m="/"+f.replace(/^\//,"").split("/").slice(x.length).join("/")}let p=Xk(e,{pathname:m}),v=MC(p&&p.map(x=>Object.assign({},x,{params:Object.assign({},a,x.params),pathname:Jn([l,i.encodeLocation?i.encodeLocation(x.pathname).pathname:x.pathname]),pathnameBase:x.pathnameBase==="/"?l:Jn([l,i.encodeLocation?i.encodeLocation(x.pathnameBase).pathname:x.pathnameBase])})),s,n,r);return t&&v?b.createElement(Jl.Provider,{value:{location:ao({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:Un.Pop}},v):v}function EC(){let e=LC(),t=gC(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:i},n):null,null)}const TC=b.createElement(EC,null);class jC extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(ar.Provider,{value:this.props.routeContext},b.createElement(B1.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function NC(e){let{routeContext:t,match:n,children:r}=e,i=b.useContext(Yf);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(ar.Provider,{value:t},r)}function MC(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,a=(i=n)==null?void 0:i.errors;if(a!=null){let c=o.findIndex(d=>d.route.id&&(a==null?void 0:a[d.route.id])!==void 0);c>=0||Ee(!1),o=o.slice(0,Math.min(o.length,c+1))}let l=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let c=0;c=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((c,d,f)=>{let m,p=!1,v=null,x=null;n&&(m=a&&d.route.id?a[d.route.id]:void 0,v=d.route.errorElement||TC,l&&(u<0&&f===0?($C("route-fallback"),p=!0,x=null):u===f&&(p=!0,x=d.route.hydrateFallbackElement||null)));let y=t.concat(o.slice(0,f+1)),g=()=>{let w;return m?w=v:p?w=x:d.route.Component?w=b.createElement(d.route.Component,null):d.route.element?w=d.route.element:w=c,b.createElement(NC,{match:d,routeContext:{outlet:c,matches:y,isDataRoute:n!=null},children:w})};return n&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?b.createElement(jC,{location:n.location,revalidation:n.revalidation,component:v,error:m,children:g(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):g()},null)}var K1=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(K1||{}),Q1=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(Q1||{});function OC(e){let t=b.useContext(Yf);return t||Ee(!1),t}function RC(e){let t=b.useContext(vC);return t||Ee(!1),t}function DC(e){let t=b.useContext(ar);return t||Ee(!1),t}function X1(e){let t=DC(),n=t.matches[t.matches.length-1];return n.route.id||Ee(!1),n.route.id}function LC(){var e;let t=b.useContext(B1),n=RC(),r=X1();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function AC(){let{router:e}=OC(K1.UseNavigateStable),t=X1(Q1.UseNavigateStable),n=b.useRef(!1);return H1(()=>{n.current=!0}),b.useCallback(function(i,s){s===void 0&&(s={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,ao({fromRouteId:t},s)))},[e,t])}const Tp={};function $C(e,t,n){Tp[e]||(Tp[e]=!0)}function FC(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function IC(e){return PC(e.context)}function Da(e){Ee(!1)}function VC(e){let{basename:t="/",children:n=null,location:r,navigationType:i=Un.Pop,navigator:s,static:o=!1,future:a}=e;Do()&&Ee(!1);let l=t.replace(/^\/*/,"/"),u=b.useMemo(()=>({basename:l,navigator:s,static:o,future:ao({v7_relativeSplatPath:!1},a)}),[l,a,s,o]);typeof r=="string"&&(r=es(r));let{pathname:c="/",search:d="",hash:f="",state:m=null,key:p="default"}=r,v=b.useMemo(()=>{let x=Gf(c,l);return x==null?null:{location:{pathname:x,search:d,hash:f,state:m,key:p},navigationType:i}},[l,c,d,f,m,p,i]);return v==null?null:b.createElement(qr.Provider,{value:u},b.createElement(Jl.Provider,{children:n,value:v}))}function _C(e){let{children:t,location:n}=e;return kC(vd(t),n)}new Promise(()=>{});function vd(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,i)=>{if(!b.isValidElement(r))return;let s=[...t,i];if(r.type===b.Fragment){n.push.apply(n,vd(r.props.children,s));return}r.type!==Da&&Ee(!1),!r.props.index||!r.props.children||Ee(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=vd(r.props.children,s)),n.push(o)}),n}/** * React Router DOM v6.30.1 * * Copyright (c) Remix Software Inc. @@ -69,7 +69,7 @@ Error generating stack: `+s.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function vd(){return vd=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function VC(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function IC(e,t){return e.button===0&&(!t||t==="_self")&&!VC(e)}const _C=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],zC="6";try{window.__reactRouterVersion=zC}catch{}const WC="startTransition",Ep=Sb[WC];function UC(e){let{basename:t,children:n,future:r,window:i}=e,s=b.useRef();s.current==null&&(s.current=Wk({window:i,v5Compat:!0}));let o=s.current,[a,l]=b.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},c=b.useCallback(d=>{u&&Ep?Ep(()=>l(d)):l(d)},[l,u]);return b.useLayoutEffect(()=>o.listen(c),[o,c]),b.useEffect(()=>DC(r),[r]),b.createElement(AC,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o,future:r})}const BC=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",HC=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Yf=b.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:s,replace:o,state:a,target:l,to:u,preventScrollReset:c,viewTransition:d}=t,f=FC(t,_C),{basename:m}=b.useContext(qr),p,v=!1;if(typeof u=="string"&&HC.test(u)&&(p=u,BC))try{let w=new URL(window.location.href),S=u.startsWith("//")?new URL(w.protocol+u):new URL(u),P=Xf(S.pathname,m);S.origin===w.origin&&P!=null?u=P+S.search+S.hash:v=!0}catch{}let x=pC(u,{relative:i}),y=qC(u,{replace:o,state:a,target:l,preventScrollReset:c,relative:i,viewTransition:d});function g(w){r&&r(w),w.defaultPrevented||y(w)}return b.createElement("a",vd({},f,{href:p||x,onClick:v||s?r:g,ref:n,target:l}))});var Tp;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Tp||(Tp={}));var jp;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(jp||(jp={}));function qC(e,t){let{target:n,replace:r,state:i,preventScrollReset:s,relative:o,viewTransition:a}=t===void 0?{}:t,l=gC(),u=Yl(),c=B1(e,{relative:o});return b.useCallback(d=>{if(IC(d,n)){d.preventDefault();let f=r!==void 0?r:fl(u)===fl(c);l(e,{replace:f,state:i,preventScrollReset:s,relative:o,viewTransition:a})}},[u,l,c,r,i,n,e,s,o,a])}var KC=({as:e="div",...t},n)=>h.jsx(e,{...t,ref:n}),QC=b.forwardRef(KC),XC="https://challenges.cloudflare.com/turnstile/v0/api.js",Jf="cf-turnstile-script",GC="cf-turnstile",Zf="onloadTurnstileCallback",Q1=e=>!!document.getElementById(e),YC=({render:e="explicit",onLoadCallbackName:t=Zf,scriptOptions:{nonce:n="",defer:r=!0,async:i=!0,id:s="",appendTo:o,onError:a,crossOrigin:l=""}={}})=>{let u=s||Jf;if(Q1(u))return;let c=document.createElement("script");c.id=u,c.src=`${XC}?onload=${t}&render=${e}`,!document.querySelector(`script[src="${c.src}"]`)&&(c.defer=!!r,c.async=!!i,n&&(c.nonce=n),l&&(c.crossOrigin=l),a&&(c.onerror=a,delete window[t]),(o==="body"?document.body:document.getElementsByTagName("head")[0]).appendChild(c))},cr={normal:{width:300,height:65},compact:{width:150,height:140},invisible:{width:0,height:0,overflow:"hidden"},flexible:{minWidth:300,width:"100%",height:65},interactionOnly:{width:"fit-content",height:"auto",display:"flex"}};function JC(e){if(e!=="invisible"&&e!=="interactionOnly")return e}function ZC(e=Jf){let[t,n]=b.useState(!1);return b.useEffect(()=>{let r=()=>{Q1(e)&&n(!0)},i=new MutationObserver(r);return i.observe(document,{childList:!0,subtree:!0}),r(),()=>{i.disconnect()}},[e]),t}var $s="unloaded",X1,eE=new Promise((e,t)=>{X1={resolve:e,reject:t},$s==="ready"&&e(void 0)}),tE=(e=Zf)=>($s==="unloaded"&&($s="loading",window[e]=()=>{X1.resolve(),$s="ready",delete window[e]}),eE),eh=b.forwardRef((e,t)=>{let{scriptOptions:n,options:r={},siteKey:i,onWidgetLoad:s,onSuccess:o,onExpire:a,onError:l,onBeforeInteractive:u,onAfterInteractive:c,onUnsupported:d,onTimeout:f,onLoadScript:m,id:p,style:v,as:x="div",injectScript:y=!0,rerenderOnCallbackChange:g=!1,...w}=e,S=r.size,P=b.useCallback(()=>typeof S>"u"?{}:r.execution==="execute"?cr.invisible:r.appearance==="interaction-only"?cr.interactionOnly:cr[S],[r.execution,S,r.appearance]),[T,C]=b.useState(P()),j=b.useRef(null),[$,_]=b.useState(!1),W=b.useRef(),ee=b.useRef(!1),ve=p||GC,te=b.useRef({onSuccess:o,onError:l,onExpire:a,onBeforeInteractive:u,onAfterInteractive:c,onUnsupported:d,onTimeout:f});b.useEffect(()=>{g||(te.current={onSuccess:o,onError:l,onExpire:a,onBeforeInteractive:u,onAfterInteractive:c,onUnsupported:d,onTimeout:f})});let E=(n==null?void 0:n.id)||Jf,O=ZC(E),V=(n==null?void 0:n.onLoadCallbackName)||Zf,N=r.appearance||"always",L=b.useMemo(()=>({sitekey:i,action:r.action,cData:r.cData,theme:r.theme||"auto",language:r.language||"auto",tabindex:r.tabIndex,"response-field":r.responseField,"response-field-name":r.responseFieldName,size:JC(S),retry:r.retry||"auto","retry-interval":r.retryInterval||8e3,"refresh-expired":r.refreshExpired||"auto","refresh-timeout":r.refreshTimeout||"auto",execution:r.execution||"render",appearance:r.appearance||"always","feedback-enabled":r.feedbackEnabled||!0,callback:A=>{var z,Q;ee.current=!0,g?o==null||o(A):(Q=(z=te.current).onSuccess)==null||Q.call(z,A)},"error-callback":g?l:(...A)=>{var z,Q;return(Q=(z=te.current).onError)==null?void 0:Q.call(z,...A)},"expired-callback":g?a:(...A)=>{var z,Q;return(Q=(z=te.current).onExpire)==null?void 0:Q.call(z,...A)},"before-interactive-callback":g?u:(...A)=>{var z,Q;return(Q=(z=te.current).onBeforeInteractive)==null?void 0:Q.call(z,...A)},"after-interactive-callback":g?c:(...A)=>{var z,Q;return(Q=(z=te.current).onAfterInteractive)==null?void 0:Q.call(z,...A)},"unsupported-callback":g?d:(...A)=>{var z,Q;return(Q=(z=te.current).onUnsupported)==null?void 0:Q.call(z,...A)},"timeout-callback":g?f:(...A)=>{var z,Q;return(Q=(z=te.current).onTimeout)==null?void 0:Q.call(z,...A)}}),[r.action,r.appearance,r.cData,r.execution,r.language,r.refreshExpired,r.responseField,r.responseFieldName,r.retry,r.retryInterval,r.tabIndex,r.theme,r.feedbackEnabled,r.refreshTimeout,i,S,g,g?o:null,g?l:null,g?a:null,g?u:null,g?c:null,g?d:null,g?f:null]),D=b.useCallback(()=>typeof window<"u"&&!!window.turnstile,[]);return b.useEffect(function(){y&&!$&&YC({onLoadCallbackName:V,scriptOptions:{...n,id:E}})},[y,$,n,E]),b.useEffect(function(){$s!=="ready"&&tE(V).then(()=>_(!0)).catch(console.error)},[]),b.useEffect(function(){if(!j.current||!$)return;let A=!1;return(async()=>{if(A||!j.current)return;let z=window.turnstile.render(j.current,L);W.current=z,W.current&&(s==null||s(W.current))})(),()=>{A=!0,W.current&&(window.turnstile.remove(W.current),ee.current=!1)}},[ve,$,L]),b.useImperativeHandle(t,()=>{let{turnstile:A}=window;return{getResponse(){if(!(A!=null&&A.getResponse)||!W.current||!D()){console.warn("Turnstile has not been loaded");return}return A.getResponse(W.current)},async getResponsePromise(z=3e4,Q=100){return new Promise((be,vt)=>{let q,Le=async()=>{if(ee.current&&window.turnstile&&W.current)try{let zt=window.turnstile.getResponse(W.current);return q&&clearTimeout(q),zt?be(zt):vt(new Error("No response received"))}catch(zt){return q&&clearTimeout(q),console.warn("Failed to get response",zt),vt(new Error("Failed to get response"))}q||(q=setTimeout(()=>{q&&clearTimeout(q),vt(new Error("Timeout"))},z)),await new Promise(zt=>setTimeout(zt,Q)),await Le()};Le()})},reset(){if(!(A!=null&&A.reset)||!W.current||!D()){console.warn("Turnstile has not been loaded");return}r.execution==="execute"&&C(cr.invisible);try{ee.current=!1,A.reset(W.current)}catch(z){console.warn(`Failed to reset Turnstile widget ${W}`,z)}},remove(){if(!(A!=null&&A.remove)||!W.current||!D()){console.warn("Turnstile has not been loaded");return}C(cr.invisible),ee.current=!1,A.remove(W.current),W.current=null},render(){if(!(A!=null&&A.render)||!j.current||!D()||W.current){console.warn("Turnstile has not been loaded or container not found");return}let z=A.render(j.current,L);return W.current=z,W.current&&(s==null||s(W.current)),r.execution!=="execute"&&C(S?cr[S]:{}),z},execute(){if(r.execution!=="execute"){console.warn('Execution mode is not set to "execute"');return}if(!(A!=null&&A.execute)||!j.current||!W.current||!D()){console.warn("Turnstile has not been loaded or container not found");return}A.execute(j.current,L),C(S?cr[S]:{})},isExpired(){return!(A!=null&&A.isExpired)||!W.current||!D()?(console.warn("Turnstile has not been loaded"),!1):A.isExpired(W.current)}}},[W,r.execution,S,L,j,D,$,s]),b.useEffect(()=>{O&&!$&&window.turnstile&&_(!0)},[$,O]),b.useEffect(()=>{C(P())},[r.execution,S,N]),b.useEffect(()=>{!O||typeof m!="function"||m()},[O]),h.jsx(QC,{ref:j,as:x,id:ve,style:{...T,...v},...w})});eh.displayName="Turnstile";const Mp=["admiring","adoring","affectionate","agitated","amazing","angry","awesome","beautiful","blissful","bold","boring","brave","busy","charming","clever","cool","compassionate","competent","condescending","confident","cranky","crazy","dazzling","determined","distracted","dreamy","eager","ecstatic","elastic","elated","elegant","eloquent","epic","exciting","fervent","festive","flamboyant","focused","friendly","frosty","funny","gallant","gifted","goofy","gracious","great","happy","hardcore","heuristic","hopeful","hungry","infallible","inspiring","interesting","intelligent","jolly","jovial","keen","kind","laughing","loving","lucid","magical","mystifying","modest","musing","naughty","nervous","nice","nifty","nostalgic","objective","optimistic","peaceful","pedantic","pensive","practical","priceless","quirky","quizzical","recursing","relaxed","reverent","romantic","sad","serene","sharp","silly","sleepy","stoic","strange","stupefied","suspicious","sweet","tender","thirsty","trusting","unruffled","upbeat","vibrant","vigilant","vigorous","wizardly","wonderful","xenodochial","youthful","zealous","zen"],Np=["albattani","allen","almeida","antonelli","agnesi","archimedes","ardinghelli","aryabhata","austin","babbage","banach","banzai","bardeen","bartik","bassi","beaver","bell","benz","bhabha","bhaskara","black","blackburn","blackwell","bohr","booth","borg","bose","bouman","boyd","brahmagupta","brattain","brown","buck","burnell","cannon","carson","cartwright","carver","cerf","chandrasekhar","chaplygin","chatelet","chatterjee","chebyshev","cohen","chaum","clarke","colden","cori","cray","curran","curie","darwin","davinci","dewdney","dhawan","diffie","dijkstra","dirac","driscoll","dubinsky","easley","edison","einstein","elbakyan","elgamal","elion","ellis","engelbart","euclid","euler","faraday","feistel","fermat","fermi","feynman","franklin","gagarin","galileo","galois","ganguly","gates","gauss","germain","goldberg","goldstine","goldwasser","golick","goodall","gould","greider","grothendieck","haibt","hamilton","haslett","hawking","hellman","heisenberg","hermann","herschel","hertz","heyrovsky","hodgkin","hofstadter","hoover","hopper","hugle","hypatia","ishizaka","jackson","jang","jemison","jennings","jepsen","johnson","joliot","jones","kalam","kapitsa","kare","keldysh","keller","kepler","khayyam","khorana","kilby","kirch","knuth","kowalevski","lalande","lamarr","lamport","leakey","leavitt","lederberg","lehmann","lewin","lichterman","liskov","lovelace","lumiere","mahavira","margulis","matsumoto","maxwell","mayer","mccarthy","mcclintock","mclaren","mclean","mcnulty","mendel","mendeleev","meitner","meninsky","merkle","mestorf","mirzakhani","montalcini","moore","morse","murdock","moser","napier","nash","neumann","newton","niel","nightingale","nobel","noether","northcutt","noyce","panini","pare","pascal","pasteur","payne","perlman","pike","poincare","poitras","proskuriakova","ptolemy","raman","ramanujan","ride","ritchie","rhodes","robinson","roentgen","rosalind","rubin","saha","sammet","sanderson","satoshi","shamir","shannon","shaw","shirley","shockley","shtern","sinoussi","snyder","solomon","spence","stonebraker","sutherland","swanson","swartz","swirles","taussig","tereshkova","tesla","tharp","thompson","torvalds","tu","turing","varahamihira","vaughan","visvesvaraya","volhard","villani","wescoff","wilbur","wiles","williams","williamson","wilson","wing","wozniak","wright","wu","yalow","yonath","zhukovsky"],G1=(e="",t="-")=>{const n=`${Mp[Math.floor(Math.random()*Mp.length)]??""}${t}${Np[Math.floor(Math.random()*Np.length)]??""}`;return n===`boring${t}wozniak`?G1(e,t):e.length>0?`${e}${t}${n}`:n};function nE(){if(console&&console.warn){for(var e=arguments.length,t=new Array(e),n=0;n()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},Rp=(e,t,n)=>{e.loadNamespaces(t,Y1(e,n))},Dp=(e,t,n,r)=>{Rr(n)&&(n=[n]),n.forEach(i=>{e.options.ns.indexOf(i)<0&&e.options.ns.push(i)}),e.loadLanguages(t,Y1(e,r))},rE=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=t.languages[0],i=t.options?t.options.fallbackLng:!1,s=t.languages[t.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const o=(a,l)=>{const u=t.services.backendConnector.state[`${a}|${l}`];return u===-1||u===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(t.isLanguageChangingTo,e)?!1:!!(t.hasResourceBundle(r,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||o(r,e)&&(!i||o(s,e)))},iE=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!t.languages||!t.languages.length?(wd("i18n.languages were undefined or empty",t.languages),!0):t.options.ignoreJSONStructure!==void 0?t.hasLoadedNamespace(e,{lng:n.lng,precheck:(i,s)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&i.services.backendConnector.backend&&i.isLanguageChangingTo&&!s(i.isLanguageChangingTo,e))return!1}}):rE(e,t,n)},Rr=e=>typeof e=="string",sE=e=>typeof e=="object"&&e!==null,oE=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,aE={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},lE=e=>aE[e],uE=e=>e.replace(oE,lE);let xd={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:uE};const cE=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};xd={...xd,...e}},dE=()=>xd;let J1;const fE=e=>{J1=e},hE=()=>J1,mE={type:"3rdParty",init(e){cE(e.options.react),fE(e)}},pE=b.createContext();class gE{constructor(){Wh(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}}const yE=(e,t)=>{const n=b.useRef();return b.useEffect(()=>{n.current=e},[e,t]),n.current},Z1=(e,t,n,r)=>e.getFixedT(t,n,r),vE=(e,t,n,r)=>b.useCallback(Z1(e,t,n,r),[e,t,n,r]),ar=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:n}=t,{i18n:r,defaultNS:i}=b.useContext(pE)||{},s=n||r||hE();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new gE),!s){wd("You will need to pass in an i18next instance by using initReactI18next");const S=(T,C)=>Rr(C)?C:sE(C)&&Rr(C.defaultValue)?C.defaultValue:Array.isArray(T)?T[T.length-1]:T,P=[S,{},!1];return P.t=S,P.i18n={},P.ready=!1,P}s.options.react&&s.options.react.wait!==void 0&&wd("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const o={...dE(),...s.options.react,...t},{useSuspense:a,keyPrefix:l}=o;let u=i||s.options&&s.options.defaultNS;u=Rr(u)?[u]:u||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(u);const c=(s.isInitialized||s.initializedStoreOnce)&&u.every(S=>iE(S,s,o)),d=vE(s,t.lng||null,o.nsMode==="fallback"?u:u[0],l),f=()=>d,m=()=>Z1(s,t.lng||null,o.nsMode==="fallback"?u:u[0],l),[p,v]=b.useState(f);let x=u.join();t.lng&&(x=`${t.lng}${x}`);const y=yE(x),g=b.useRef(!0);b.useEffect(()=>{const{bindI18n:S,bindI18nStore:P}=o;g.current=!0,!c&&!a&&(t.lng?Dp(s,t.lng,u,()=>{g.current&&v(m)}):Rp(s,u,()=>{g.current&&v(m)})),c&&y&&y!==x&&g.current&&v(m);const T=()=>{g.current&&v(m)};return S&&s&&s.on(S,T),P&&s&&s.store.on(P,T),()=>{g.current=!1,S&&s&&S.split(" ").forEach(C=>s.off(C,T)),P&&s&&P.split(" ").forEach(C=>s.store.off(C,T))}},[s,x]),b.useEffect(()=>{g.current&&c&&v(f)},[s,l,c]);const w=[p,s,c];if(w.t=p,w.i18n=s,w.ready=c,c||!c&&!a)return w;throw new Promise(S=>{t.lng?Dp(s,t.lng,u,()=>S()):Rp(s,u,()=>S())})};/*! js-cookie v3.0.5 | MIT */function sa(e){for(var t=1;t"u")){o=sa({},t,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var l in o)o[l]&&(a+="; "+l,o[l]!==!0&&(a+="="+o[l].split(";")[0]));return document.cookie=i+"="+e.write(s,i)+a}}function r(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var s=document.cookie?document.cookie.split("; "):[],o={},a=0;a{if(typeof window=="object"){let t=(e?e.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return t.nonce=window.__nonce__,t.parentNode||(e||document.head).appendChild(t),t.firstChild}return e||xE},SE=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,PE=/\/\*[^]*?\*\/| +/g,Lp=/\n+/g,On=(e,t)=>{let n="",r="",i="";for(let s in e){let o=e[s];s[0]=="@"?s[1]=="i"?n=s+" "+o+";":r+=s[1]=="f"?On(o,s):s+"{"+On(o,s[1]=="k"?"":t)+"}":typeof o=="object"?r+=On(o,t?t.replace(/([^,])+/g,a=>s.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,a):a?a+" "+l:l)):s):o!=null&&(s=/^--/.test(s)?s:s.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=On.p?On.p(s,o):s+":"+o+";")}return n+(t&&i?t+"{"+i+"}":i)+r},rn={},ew=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+ew(e[n]);return t}return e},kE=(e,t,n,r,i)=>{let s=ew(e),o=rn[s]||(rn[s]=(l=>{let u=0,c=11;for(;u>>0;return"go"+c})(s));if(!rn[o]){let l=s!==e?e:(u=>{let c,d,f=[{}];for(;c=SE.exec(u.replace(PE,""));)c[4]?f.shift():c[3]?(d=c[3].replace(Lp," ").trim(),f.unshift(f[0][d]=f[0][d]||{})):f[0][c[1]]=c[2].replace(Lp," ").trim();return f[0]})(e);rn[o]=On(i?{["@keyframes "+o]:l}:l,n?"":"."+o)}let a=n&&rn.g?rn.g:null;return n&&(rn.g=rn[o]),((l,u,c,d)=>{d?u.data=u.data.replace(d,l):u.data.indexOf(l)===-1&&(u.data=c?l+u.data:u.data+l)})(rn[o],t,r,a),o},CE=(e,t,n)=>e.reduce((r,i,s)=>{let o=t[s];if(o&&o.call){let a=o(n),l=a&&a.props&&a.props.className||/^go/.test(a)&&a;o=l?"."+l:a&&typeof a=="object"?a.props?"":On(a,""):a===!1?"":a}return r+i+(o??"")},"");function Jl(e){let t=this||{},n=e.call?e(t.p):e;return kE(n.unshift?n.raw?CE(n,[].slice.call(arguments,1),t.p):n.reduce((r,i)=>Object.assign(r,i&&i.call?i(t.p):i),{}):n,bE(t.target),t.g,t.o,t.k)}let tw,Sd,Pd;Jl.bind({g:1});let xn=Jl.bind({k:1});function EE(e,t,n,r){On.p=t,tw=e,Sd=n,Pd=r}function lr(e,t){let n=this||{};return function(){let r=arguments;function i(s,o){let a=Object.assign({},s),l=a.className||i.className;n.p=Object.assign({theme:Sd&&Sd()},a),n.o=/ *go\d+/.test(l),a.className=Jl.apply(n,r)+(l?" "+l:"");let u=e;return e[0]&&(u=a.as||e,delete a.as),Pd&&u[0]&&Pd(a),tw(u,a)}return i}}var TE=e=>typeof e=="function",hl=(e,t)=>TE(e)?e(t):e,jE=(()=>{let e=0;return()=>(++e).toString()})(),nw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),ME=20,th="default",rw=(e,t)=>{let{toastLimit:n}=e.settings;switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,n)};case 1:return{...e,toasts:e.toasts.map(o=>o.id===t.toast.id?{...o,...t.toast}:o)};case 2:let{toast:r}=t;return rw(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:i}=t;return{...e,toasts:e.toasts.map(o=>o.id===i||i===void 0?{...o,dismissed:!0,visible:!1}:o)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(o=>o.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let s=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+s}))}}},Ra=[],iw={toasts:[],pausedAt:void 0,settings:{toastLimit:ME}},Yt={},sw=(e,t=th)=>{Yt[t]=rw(Yt[t]||iw,e),Ra.forEach(([n,r])=>{n===t&&r(Yt[t])})},ow=e=>Object.keys(Yt).forEach(t=>sw(e,t)),NE=e=>Object.keys(Yt).find(t=>Yt[t].toasts.some(n=>n.id===e)),Zl=(e=th)=>t=>{sw(t,e)},OE={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},RE=(e={},t=th)=>{let[n,r]=b.useState(Yt[t]||iw),i=b.useRef(Yt[t]);b.useEffect(()=>(i.current!==Yt[t]&&r(Yt[t]),Ra.push([t,r]),()=>{let o=Ra.findIndex(([a])=>a===t);o>-1&&Ra.splice(o,1)}),[t]);let s=n.toasts.map(o=>{var a,l,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((a=e[o.type])==null?void 0:a.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((l=e[o.type])==null?void 0:l.duration)||(e==null?void 0:e.duration)||OE[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:s}},DE=(e,t="blank",n)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(n==null?void 0:n.id)||jE()}),Lo=e=>(t,n)=>{let r=DE(t,e,n);return Zl(r.toasterId||NE(r.id))({type:2,toast:r}),r.id},J=(e,t)=>Lo("blank")(e,t);J.error=Lo("error");J.success=Lo("success");J.loading=Lo("loading");J.custom=Lo("custom");J.dismiss=(e,t)=>{let n={type:3,toastId:e};t?Zl(t)(n):ow(n)};J.dismissAll=e=>J.dismiss(void 0,e);J.remove=(e,t)=>{let n={type:4,toastId:e};t?Zl(t)(n):ow(n)};J.removeAll=e=>J.remove(void 0,e);J.promise=(e,t,n)=>{let r=J.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(i=>{let s=t.success?hl(t.success,i):void 0;return s?J.success(s,{id:r,...n,...n==null?void 0:n.success}):J.dismiss(r),i}).catch(i=>{let s=t.error?hl(t.error,i):void 0;s?J.error(s,{id:r,...n,...n==null?void 0:n.error}):J.dismiss(r)}),e};var LE=1e3,AE=(e,t="default")=>{let{toasts:n,pausedAt:r}=RE(e,t),i=b.useRef(new Map).current,s=b.useCallback((d,f=LE)=>{if(i.has(d))return;let m=setTimeout(()=>{i.delete(d),o({type:4,toastId:d})},f);i.set(d,m)},[]);b.useEffect(()=>{if(r)return;let d=Date.now(),f=n.map(m=>{if(m.duration===1/0)return;let p=(m.duration||0)+m.pauseDuration-(d-m.createdAt);if(p<0){m.visible&&J.dismiss(m.id);return}return setTimeout(()=>J.dismiss(m.id,t),p)});return()=>{f.forEach(m=>m&&clearTimeout(m))}},[n,r,t]);let o=b.useCallback(Zl(t),[t]),a=b.useCallback(()=>{o({type:5,time:Date.now()})},[o]),l=b.useCallback((d,f)=>{o({type:1,toast:{id:d,height:f}})},[o]),u=b.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),c=b.useCallback((d,f)=>{let{reverseOrder:m=!1,gutter:p=8,defaultPosition:v}=f||{},x=n.filter(w=>(w.position||v)===(d.position||v)&&w.height),y=x.findIndex(w=>w.id===d.id),g=x.filter((w,S)=>Sw.visible).slice(...m?[g+1]:[0,g]).reduce((w,S)=>w+(S.height||0)+p,0)},[n]);return b.useEffect(()=>{n.forEach(d=>{if(d.dismissed)s(d.id,d.removeDelay);else{let f=i.get(d.id);f&&(clearTimeout(f),i.delete(d.id))}})},[n,s]),{toasts:n,handlers:{updateHeight:l,startPause:a,endPause:u,calculateOffset:c}}},$E=xn` + */function wd(){return wd=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function WC(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function UC(e,t){return e.button===0&&(!t||t==="_self")&&!WC(e)}const BC=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],HC="6";try{window.__reactRouterVersion=HC}catch{}const qC="startTransition",jp=Eb[qC];function KC(e){let{basename:t,children:n,future:r,window:i}=e,s=b.useRef();s.current==null&&(s.current=qk({window:i,v5Compat:!0}));let o=s.current,[a,l]=b.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},c=b.useCallback(d=>{u&&jp?jp(()=>l(d)):l(d)},[l,u]);return b.useLayoutEffect(()=>o.listen(c),[o,c]),b.useEffect(()=>FC(r),[r]),b.createElement(VC,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o,future:r})}const QC=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",XC=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Jf=b.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:s,replace:o,state:a,target:l,to:u,preventScrollReset:c,viewTransition:d}=t,f=zC(t,BC),{basename:m}=b.useContext(qr),p,v=!1;if(typeof u=="string"&&XC.test(u)&&(p=u,QC))try{let w=new URL(window.location.href),S=u.startsWith("//")?new URL(w.protocol+u):new URL(u),P=Gf(S.pathname,m);S.origin===w.origin&&P!=null?u=P+S.search+S.hash:v=!0}catch{}let x=wC(u,{relative:i}),y=GC(u,{replace:o,state:a,target:l,preventScrollReset:c,relative:i,viewTransition:d});function g(w){r&&r(w),w.defaultPrevented||y(w)}return b.createElement("a",wd({},f,{href:p||x,onClick:v||s?r:g,ref:n,target:l}))});var Np;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Np||(Np={}));var Mp;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Mp||(Mp={}));function GC(e,t){let{target:n,replace:r,state:i,preventScrollReset:s,relative:o,viewTransition:a}=t===void 0?{}:t,l=xC(),u=Zl(),c=q1(e,{relative:o});return b.useCallback(d=>{if(UC(d,n)){d.preventDefault();let f=r!==void 0?r:ml(u)===ml(c);l(e,{replace:f,state:i,preventScrollReset:s,relative:o,viewTransition:a})}},[u,l,c,r,i,n,e,s,o,a])}var YC=({as:e="div",...t},n)=>h.jsx(e,{...t,ref:n}),JC=b.forwardRef(YC),ZC="https://challenges.cloudflare.com/turnstile/v0/api.js",Zf="cf-turnstile-script",eE="cf-turnstile",eh="onloadTurnstileCallback",G1=e=>!!document.getElementById(e),tE=({render:e="explicit",onLoadCallbackName:t=eh,scriptOptions:{nonce:n="",defer:r=!0,async:i=!0,id:s="",appendTo:o,onError:a,crossOrigin:l=""}={}})=>{let u=s||Zf;if(G1(u))return;let c=document.createElement("script");c.id=u,c.src=`${ZC}?onload=${t}&render=${e}`,!document.querySelector(`script[src="${c.src}"]`)&&(c.defer=!!r,c.async=!!i,n&&(c.nonce=n),l&&(c.crossOrigin=l),a&&(c.onerror=a,delete window[t]),(o==="body"?document.body:document.getElementsByTagName("head")[0]).appendChild(c))},cr={normal:{width:300,height:65},compact:{width:150,height:140},invisible:{width:0,height:0,overflow:"hidden"},flexible:{minWidth:300,width:"100%",height:65},interactionOnly:{width:"fit-content",height:"auto",display:"flex"}};function nE(e){if(e!=="invisible"&&e!=="interactionOnly")return e}function rE(e=Zf){let[t,n]=b.useState(!1);return b.useEffect(()=>{let r=()=>{G1(e)&&n(!0)},i=new MutationObserver(r);return i.observe(document,{childList:!0,subtree:!0}),r(),()=>{i.disconnect()}},[e]),t}var $s="unloaded",Y1,iE=new Promise((e,t)=>{Y1={resolve:e,reject:t},$s==="ready"&&e(void 0)}),sE=(e=eh)=>($s==="unloaded"&&($s="loading",window[e]=()=>{Y1.resolve(),$s="ready",delete window[e]}),iE),th=b.forwardRef((e,t)=>{let{scriptOptions:n,options:r={},siteKey:i,onWidgetLoad:s,onSuccess:o,onExpire:a,onError:l,onBeforeInteractive:u,onAfterInteractive:c,onUnsupported:d,onTimeout:f,onLoadScript:m,id:p,style:v,as:x="div",injectScript:y=!0,rerenderOnCallbackChange:g=!1,...w}=e,S=r.size,P=b.useCallback(()=>typeof S>"u"?{}:r.execution==="execute"?cr.invisible:r.appearance==="interaction-only"?cr.interactionOnly:cr[S],[r.execution,S,r.appearance]),[T,C]=b.useState(P()),j=b.useRef(null),[$,_]=b.useState(!1),W=b.useRef(),ee=b.useRef(!1),ve=p||eE,te=b.useRef({onSuccess:o,onError:l,onExpire:a,onBeforeInteractive:u,onAfterInteractive:c,onUnsupported:d,onTimeout:f});b.useEffect(()=>{g||(te.current={onSuccess:o,onError:l,onExpire:a,onBeforeInteractive:u,onAfterInteractive:c,onUnsupported:d,onTimeout:f})});let E=(n==null?void 0:n.id)||Zf,O=rE(E),I=(n==null?void 0:n.onLoadCallbackName)||eh,M=r.appearance||"always",L=b.useMemo(()=>({sitekey:i,action:r.action,cData:r.cData,theme:r.theme||"auto",language:r.language||"auto",tabindex:r.tabIndex,"response-field":r.responseField,"response-field-name":r.responseFieldName,size:nE(S),retry:r.retry||"auto","retry-interval":r.retryInterval||8e3,"refresh-expired":r.refreshExpired||"auto","refresh-timeout":r.refreshTimeout||"auto",execution:r.execution||"render",appearance:r.appearance||"always","feedback-enabled":r.feedbackEnabled||!0,callback:A=>{var z,Q;ee.current=!0,g?o==null||o(A):(Q=(z=te.current).onSuccess)==null||Q.call(z,A)},"error-callback":g?l:(...A)=>{var z,Q;return(Q=(z=te.current).onError)==null?void 0:Q.call(z,...A)},"expired-callback":g?a:(...A)=>{var z,Q;return(Q=(z=te.current).onExpire)==null?void 0:Q.call(z,...A)},"before-interactive-callback":g?u:(...A)=>{var z,Q;return(Q=(z=te.current).onBeforeInteractive)==null?void 0:Q.call(z,...A)},"after-interactive-callback":g?c:(...A)=>{var z,Q;return(Q=(z=te.current).onAfterInteractive)==null?void 0:Q.call(z,...A)},"unsupported-callback":g?d:(...A)=>{var z,Q;return(Q=(z=te.current).onUnsupported)==null?void 0:Q.call(z,...A)},"timeout-callback":g?f:(...A)=>{var z,Q;return(Q=(z=te.current).onTimeout)==null?void 0:Q.call(z,...A)}}),[r.action,r.appearance,r.cData,r.execution,r.language,r.refreshExpired,r.responseField,r.responseFieldName,r.retry,r.retryInterval,r.tabIndex,r.theme,r.feedbackEnabled,r.refreshTimeout,i,S,g,g?o:null,g?l:null,g?a:null,g?u:null,g?c:null,g?d:null,g?f:null]),D=b.useCallback(()=>typeof window<"u"&&!!window.turnstile,[]);return b.useEffect(function(){y&&!$&&tE({onLoadCallbackName:I,scriptOptions:{...n,id:E}})},[y,$,n,E]),b.useEffect(function(){$s!=="ready"&&sE(I).then(()=>_(!0)).catch(console.error)},[]),b.useEffect(function(){if(!j.current||!$)return;let A=!1;return(async()=>{if(A||!j.current)return;let z=window.turnstile.render(j.current,L);W.current=z,W.current&&(s==null||s(W.current))})(),()=>{A=!0,W.current&&(window.turnstile.remove(W.current),ee.current=!1)}},[ve,$,L]),b.useImperativeHandle(t,()=>{let{turnstile:A}=window;return{getResponse(){if(!(A!=null&&A.getResponse)||!W.current||!D()){console.warn("Turnstile has not been loaded");return}return A.getResponse(W.current)},async getResponsePromise(z=3e4,Q=100){return new Promise((be,vt)=>{let q,Le=async()=>{if(ee.current&&window.turnstile&&W.current)try{let zt=window.turnstile.getResponse(W.current);return q&&clearTimeout(q),zt?be(zt):vt(new Error("No response received"))}catch(zt){return q&&clearTimeout(q),console.warn("Failed to get response",zt),vt(new Error("Failed to get response"))}q||(q=setTimeout(()=>{q&&clearTimeout(q),vt(new Error("Timeout"))},z)),await new Promise(zt=>setTimeout(zt,Q)),await Le()};Le()})},reset(){if(!(A!=null&&A.reset)||!W.current||!D()){console.warn("Turnstile has not been loaded");return}r.execution==="execute"&&C(cr.invisible);try{ee.current=!1,A.reset(W.current)}catch(z){console.warn(`Failed to reset Turnstile widget ${W}`,z)}},remove(){if(!(A!=null&&A.remove)||!W.current||!D()){console.warn("Turnstile has not been loaded");return}C(cr.invisible),ee.current=!1,A.remove(W.current),W.current=null},render(){if(!(A!=null&&A.render)||!j.current||!D()||W.current){console.warn("Turnstile has not been loaded or container not found");return}let z=A.render(j.current,L);return W.current=z,W.current&&(s==null||s(W.current)),r.execution!=="execute"&&C(S?cr[S]:{}),z},execute(){if(r.execution!=="execute"){console.warn('Execution mode is not set to "execute"');return}if(!(A!=null&&A.execute)||!j.current||!W.current||!D()){console.warn("Turnstile has not been loaded or container not found");return}A.execute(j.current,L),C(S?cr[S]:{})},isExpired(){return!(A!=null&&A.isExpired)||!W.current||!D()?(console.warn("Turnstile has not been loaded"),!1):A.isExpired(W.current)}}},[W,r.execution,S,L,j,D,$,s]),b.useEffect(()=>{O&&!$&&window.turnstile&&_(!0)},[$,O]),b.useEffect(()=>{C(P())},[r.execution,S,M]),b.useEffect(()=>{!O||typeof m!="function"||m()},[O]),h.jsx(JC,{ref:j,as:x,id:ve,style:{...T,...v},...w})});th.displayName="Turnstile";const Op=["admiring","adoring","affectionate","agitated","amazing","angry","awesome","beautiful","blissful","bold","boring","brave","busy","charming","clever","cool","compassionate","competent","condescending","confident","cranky","crazy","dazzling","determined","distracted","dreamy","eager","ecstatic","elastic","elated","elegant","eloquent","epic","exciting","fervent","festive","flamboyant","focused","friendly","frosty","funny","gallant","gifted","goofy","gracious","great","happy","hardcore","heuristic","hopeful","hungry","infallible","inspiring","interesting","intelligent","jolly","jovial","keen","kind","laughing","loving","lucid","magical","mystifying","modest","musing","naughty","nervous","nice","nifty","nostalgic","objective","optimistic","peaceful","pedantic","pensive","practical","priceless","quirky","quizzical","recursing","relaxed","reverent","romantic","sad","serene","sharp","silly","sleepy","stoic","strange","stupefied","suspicious","sweet","tender","thirsty","trusting","unruffled","upbeat","vibrant","vigilant","vigorous","wizardly","wonderful","xenodochial","youthful","zealous","zen"],Rp=["albattani","allen","almeida","antonelli","agnesi","archimedes","ardinghelli","aryabhata","austin","babbage","banach","banzai","bardeen","bartik","bassi","beaver","bell","benz","bhabha","bhaskara","black","blackburn","blackwell","bohr","booth","borg","bose","bouman","boyd","brahmagupta","brattain","brown","buck","burnell","cannon","carson","cartwright","carver","cerf","chandrasekhar","chaplygin","chatelet","chatterjee","chebyshev","cohen","chaum","clarke","colden","cori","cray","curran","curie","darwin","davinci","dewdney","dhawan","diffie","dijkstra","dirac","driscoll","dubinsky","easley","edison","einstein","elbakyan","elgamal","elion","ellis","engelbart","euclid","euler","faraday","feistel","fermat","fermi","feynman","franklin","gagarin","galileo","galois","ganguly","gates","gauss","germain","goldberg","goldstine","goldwasser","golick","goodall","gould","greider","grothendieck","haibt","hamilton","haslett","hawking","hellman","heisenberg","hermann","herschel","hertz","heyrovsky","hodgkin","hofstadter","hoover","hopper","hugle","hypatia","ishizaka","jackson","jang","jemison","jennings","jepsen","johnson","joliot","jones","kalam","kapitsa","kare","keldysh","keller","kepler","khayyam","khorana","kilby","kirch","knuth","kowalevski","lalande","lamarr","lamport","leakey","leavitt","lederberg","lehmann","lewin","lichterman","liskov","lovelace","lumiere","mahavira","margulis","matsumoto","maxwell","mayer","mccarthy","mcclintock","mclaren","mclean","mcnulty","mendel","mendeleev","meitner","meninsky","merkle","mestorf","mirzakhani","montalcini","moore","morse","murdock","moser","napier","nash","neumann","newton","niel","nightingale","nobel","noether","northcutt","noyce","panini","pare","pascal","pasteur","payne","perlman","pike","poincare","poitras","proskuriakova","ptolemy","raman","ramanujan","ride","ritchie","rhodes","robinson","roentgen","rosalind","rubin","saha","sammet","sanderson","satoshi","shamir","shannon","shaw","shirley","shockley","shtern","sinoussi","snyder","solomon","spence","stonebraker","sutherland","swanson","swartz","swirles","taussig","tereshkova","tesla","tharp","thompson","torvalds","tu","turing","varahamihira","vaughan","visvesvaraya","volhard","villani","wescoff","wilbur","wiles","williams","williamson","wilson","wing","wozniak","wright","wu","yalow","yonath","zhukovsky"],J1=(e="",t="-")=>{const n=`${Op[Math.floor(Math.random()*Op.length)]??""}${t}${Rp[Math.floor(Math.random()*Rp.length)]??""}`;return n===`boring${t}wozniak`?J1(e,t):e.length>0?`${e}${t}${n}`:n};function oE(){if(console&&console.warn){for(var e=arguments.length,t=new Array(e),n=0;n()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},Lp=(e,t,n)=>{e.loadNamespaces(t,Z1(e,n))},Ap=(e,t,n,r)=>{Rr(n)&&(n=[n]),n.forEach(i=>{e.options.ns.indexOf(i)<0&&e.options.ns.push(i)}),e.loadLanguages(t,Z1(e,r))},aE=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=t.languages[0],i=t.options?t.options.fallbackLng:!1,s=t.languages[t.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const o=(a,l)=>{const u=t.services.backendConnector.state[`${a}|${l}`];return u===-1||u===2};return n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(t.isLanguageChangingTo,e)?!1:!!(t.hasResourceBundle(r,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||o(r,e)&&(!i||o(s,e)))},lE=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!t.languages||!t.languages.length?(xd("i18n.languages were undefined or empty",t.languages),!0):t.options.ignoreJSONStructure!==void 0?t.hasLoadedNamespace(e,{lng:n.lng,precheck:(i,s)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&i.services.backendConnector.backend&&i.isLanguageChangingTo&&!s(i.isLanguageChangingTo,e))return!1}}):aE(e,t,n)},Rr=e=>typeof e=="string",uE=e=>typeof e=="object"&&e!==null,cE=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,dE={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},fE=e=>dE[e],hE=e=>e.replace(cE,fE);let bd={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:hE};const mE=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};bd={...bd,...e}},pE=()=>bd;let ew;const gE=e=>{ew=e},yE=()=>ew,vE={type:"3rdParty",init(e){mE(e.options.react),gE(e)}},wE=b.createContext();class xE{constructor(){Bh(this,"getUsedNamespaces",()=>Object.keys(this.usedNamespaces));this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}}const bE=(e,t)=>{const n=b.useRef();return b.useEffect(()=>{n.current=e},[e,t]),n.current},tw=(e,t,n,r)=>e.getFixedT(t,n,r),SE=(e,t,n,r)=>b.useCallback(tw(e,t,n,r),[e,t,n,r]),Pn=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:n}=t,{i18n:r,defaultNS:i}=b.useContext(wE)||{},s=n||r||yE();if(s&&!s.reportNamespaces&&(s.reportNamespaces=new xE),!s){xd("You will need to pass in an i18next instance by using initReactI18next");const S=(T,C)=>Rr(C)?C:uE(C)&&Rr(C.defaultValue)?C.defaultValue:Array.isArray(T)?T[T.length-1]:T,P=[S,{},!1];return P.t=S,P.i18n={},P.ready=!1,P}s.options.react&&s.options.react.wait!==void 0&&xd("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const o={...pE(),...s.options.react,...t},{useSuspense:a,keyPrefix:l}=o;let u=i||s.options&&s.options.defaultNS;u=Rr(u)?[u]:u||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(u);const c=(s.isInitialized||s.initializedStoreOnce)&&u.every(S=>lE(S,s,o)),d=SE(s,t.lng||null,o.nsMode==="fallback"?u:u[0],l),f=()=>d,m=()=>tw(s,t.lng||null,o.nsMode==="fallback"?u:u[0],l),[p,v]=b.useState(f);let x=u.join();t.lng&&(x=`${t.lng}${x}`);const y=bE(x),g=b.useRef(!0);b.useEffect(()=>{const{bindI18n:S,bindI18nStore:P}=o;g.current=!0,!c&&!a&&(t.lng?Ap(s,t.lng,u,()=>{g.current&&v(m)}):Lp(s,u,()=>{g.current&&v(m)})),c&&y&&y!==x&&g.current&&v(m);const T=()=>{g.current&&v(m)};return S&&s&&s.on(S,T),P&&s&&s.store.on(P,T),()=>{g.current=!1,S&&s&&S.split(" ").forEach(C=>s.off(C,T)),P&&s&&P.split(" ").forEach(C=>s.store.off(C,T))}},[s,x]),b.useEffect(()=>{g.current&&c&&v(f)},[s,l,c]);const w=[p,s,c];if(w.t=p,w.i18n=s,w.ready=c,c||!c&&!a)return w;throw new Promise(S=>{t.lng?Ap(s,t.lng,u,()=>S()):Lp(s,u,()=>S())})};/*! js-cookie v3.0.5 | MIT */function oa(e){for(var t=1;t"u")){o=oa({},t,o),typeof o.expires=="number"&&(o.expires=new Date(Date.now()+o.expires*864e5)),o.expires&&(o.expires=o.expires.toUTCString()),i=encodeURIComponent(i).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var l in o)o[l]&&(a+="; "+l,o[l]!==!0&&(a+="="+o[l].split(";")[0]));return document.cookie=i+"="+e.write(s,i)+a}}function r(i){if(!(typeof document>"u"||arguments.length&&!i)){for(var s=document.cookie?document.cookie.split("; "):[],o={},a=0;a{if(typeof window=="object"){let t=(e?e.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return t.nonce=window.__nonce__,t.parentNode||(e||document.head).appendChild(t),t.firstChild}return e||kE},EE=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,TE=/\/\*[^]*?\*\/| +/g,$p=/\n+/g,Rn=(e,t)=>{let n="",r="",i="";for(let s in e){let o=e[s];s[0]=="@"?s[1]=="i"?n=s+" "+o+";":r+=s[1]=="f"?Rn(o,s):s+"{"+Rn(o,s[1]=="k"?"":t)+"}":typeof o=="object"?r+=Rn(o,t?t.replace(/([^,])+/g,a=>s.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,a):a?a+" "+l:l)):s):o!=null&&(s=/^--/.test(s)?s:s.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=Rn.p?Rn.p(s,o):s+":"+o+";")}return n+(t&&i?t+"{"+i+"}":i)+r},rn={},nw=e=>{if(typeof e=="object"){let t="";for(let n in e)t+=n+nw(e[n]);return t}return e},jE=(e,t,n,r,i)=>{let s=nw(e),o=rn[s]||(rn[s]=(l=>{let u=0,c=11;for(;u>>0;return"go"+c})(s));if(!rn[o]){let l=s!==e?e:(u=>{let c,d,f=[{}];for(;c=EE.exec(u.replace(TE,""));)c[4]?f.shift():c[3]?(d=c[3].replace($p," ").trim(),f.unshift(f[0][d]=f[0][d]||{})):f[0][c[1]]=c[2].replace($p," ").trim();return f[0]})(e);rn[o]=Rn(i?{["@keyframes "+o]:l}:l,n?"":"."+o)}let a=n&&rn.g?rn.g:null;return n&&(rn.g=rn[o]),((l,u,c,d)=>{d?u.data=u.data.replace(d,l):u.data.indexOf(l)===-1&&(u.data=c?l+u.data:u.data+l)})(rn[o],t,r,a),o},NE=(e,t,n)=>e.reduce((r,i,s)=>{let o=t[s];if(o&&o.call){let a=o(n),l=a&&a.props&&a.props.className||/^go/.test(a)&&a;o=l?"."+l:a&&typeof a=="object"?a.props?"":Rn(a,""):a===!1?"":a}return r+i+(o??"")},"");function eu(e){let t=this||{},n=e.call?e(t.p):e;return jE(n.unshift?n.raw?NE(n,[].slice.call(arguments,1),t.p):n.reduce((r,i)=>Object.assign(r,i&&i.call?i(t.p):i),{}):n,CE(t.target),t.g,t.o,t.k)}let rw,Pd,kd;eu.bind({g:1});let xn=eu.bind({k:1});function ME(e,t,n,r){Rn.p=t,rw=e,Pd=n,kd=r}function lr(e,t){let n=this||{};return function(){let r=arguments;function i(s,o){let a=Object.assign({},s),l=a.className||i.className;n.p=Object.assign({theme:Pd&&Pd()},a),n.o=/ *go\d+/.test(l),a.className=eu.apply(n,r)+(l?" "+l:"");let u=e;return e[0]&&(u=a.as||e,delete a.as),kd&&u[0]&&kd(a),rw(u,a)}return i}}var OE=e=>typeof e=="function",pl=(e,t)=>OE(e)?e(t):e,RE=(()=>{let e=0;return()=>(++e).toString()})(),iw=(()=>{let e;return()=>{if(e===void 0&&typeof window<"u"){let t=matchMedia("(prefers-reduced-motion: reduce)");e=!t||t.matches}return e}})(),DE=20,nh="default",sw=(e,t)=>{let{toastLimit:n}=e.settings;switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,n)};case 1:return{...e,toasts:e.toasts.map(o=>o.id===t.toast.id?{...o,...t.toast}:o)};case 2:let{toast:r}=t;return sw(e,{type:e.toasts.find(o=>o.id===r.id)?1:0,toast:r});case 3:let{toastId:i}=t;return{...e,toasts:e.toasts.map(o=>o.id===i||i===void 0?{...o,dismissed:!0,visible:!1}:o)};case 4:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(o=>o.id!==t.toastId)};case 5:return{...e,pausedAt:t.time};case 6:let s=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map(o=>({...o,pauseDuration:o.pauseDuration+s}))}}},La=[],ow={toasts:[],pausedAt:void 0,settings:{toastLimit:DE}},Yt={},aw=(e,t=nh)=>{Yt[t]=sw(Yt[t]||ow,e),La.forEach(([n,r])=>{n===t&&r(Yt[t])})},lw=e=>Object.keys(Yt).forEach(t=>aw(e,t)),LE=e=>Object.keys(Yt).find(t=>Yt[t].toasts.some(n=>n.id===e)),tu=(e=nh)=>t=>{aw(t,e)},AE={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},$E=(e={},t=nh)=>{let[n,r]=b.useState(Yt[t]||ow),i=b.useRef(Yt[t]);b.useEffect(()=>(i.current!==Yt[t]&&r(Yt[t]),La.push([t,r]),()=>{let o=La.findIndex(([a])=>a===t);o>-1&&La.splice(o,1)}),[t]);let s=n.toasts.map(o=>{var a,l,u;return{...e,...e[o.type],...o,removeDelay:o.removeDelay||((a=e[o.type])==null?void 0:a.removeDelay)||(e==null?void 0:e.removeDelay),duration:o.duration||((l=e[o.type])==null?void 0:l.duration)||(e==null?void 0:e.duration)||AE[o.type],style:{...e.style,...(u=e[o.type])==null?void 0:u.style,...o.style}}});return{...n,toasts:s}},FE=(e,t="blank",n)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(n==null?void 0:n.id)||RE()}),Lo=e=>(t,n)=>{let r=FE(t,e,n);return tu(r.toasterId||LE(r.id))({type:2,toast:r}),r.id},J=(e,t)=>Lo("blank")(e,t);J.error=Lo("error");J.success=Lo("success");J.loading=Lo("loading");J.custom=Lo("custom");J.dismiss=(e,t)=>{let n={type:3,toastId:e};t?tu(t)(n):lw(n)};J.dismissAll=e=>J.dismiss(void 0,e);J.remove=(e,t)=>{let n={type:4,toastId:e};t?tu(t)(n):lw(n)};J.removeAll=e=>J.remove(void 0,e);J.promise=(e,t,n)=>{let r=J.loading(t.loading,{...n,...n==null?void 0:n.loading});return typeof e=="function"&&(e=e()),e.then(i=>{let s=t.success?pl(t.success,i):void 0;return s?J.success(s,{id:r,...n,...n==null?void 0:n.success}):J.dismiss(r),i}).catch(i=>{let s=t.error?pl(t.error,i):void 0;s?J.error(s,{id:r,...n,...n==null?void 0:n.error}):J.dismiss(r)}),e};var IE=1e3,VE=(e,t="default")=>{let{toasts:n,pausedAt:r}=$E(e,t),i=b.useRef(new Map).current,s=b.useCallback((d,f=IE)=>{if(i.has(d))return;let m=setTimeout(()=>{i.delete(d),o({type:4,toastId:d})},f);i.set(d,m)},[]);b.useEffect(()=>{if(r)return;let d=Date.now(),f=n.map(m=>{if(m.duration===1/0)return;let p=(m.duration||0)+m.pauseDuration-(d-m.createdAt);if(p<0){m.visible&&J.dismiss(m.id);return}return setTimeout(()=>J.dismiss(m.id,t),p)});return()=>{f.forEach(m=>m&&clearTimeout(m))}},[n,r,t]);let o=b.useCallback(tu(t),[t]),a=b.useCallback(()=>{o({type:5,time:Date.now()})},[o]),l=b.useCallback((d,f)=>{o({type:1,toast:{id:d,height:f}})},[o]),u=b.useCallback(()=>{r&&o({type:6,time:Date.now()})},[r,o]),c=b.useCallback((d,f)=>{let{reverseOrder:m=!1,gutter:p=8,defaultPosition:v}=f||{},x=n.filter(w=>(w.position||v)===(d.position||v)&&w.height),y=x.findIndex(w=>w.id===d.id),g=x.filter((w,S)=>Sw.visible).slice(...m?[g+1]:[0,g]).reduce((w,S)=>w+(S.height||0)+p,0)},[n]);return b.useEffect(()=>{n.forEach(d=>{if(d.dismissed)s(d.id,d.removeDelay);else{let f=i.get(d.id);f&&(clearTimeout(f),i.delete(d.id))}})},[n,s]),{toasts:n,handlers:{updateHeight:l,startPause:a,endPause:u,calculateOffset:c}}},_E=xn` from { transform: scale(0) rotate(45deg); opacity: 0; @@ -77,7 +77,7 @@ from { to { transform: scale(1) rotate(45deg); opacity: 1; -}`,FE=xn` +}`,zE=xn` from { transform: scale(0); opacity: 0; @@ -85,7 +85,7 @@ from { to { transform: scale(1); opacity: 1; -}`,VE=xn` +}`,WE=xn` from { transform: scale(0) rotate(90deg); opacity: 0; @@ -93,7 +93,7 @@ from { to { transform: scale(1) rotate(90deg); opacity: 1; -}`,IE=lr("div")` +}`,UE=lr("div")` width: 20px; opacity: 0; height: 20px; @@ -102,14 +102,14 @@ to { position: relative; transform: rotate(45deg); - animation: ${$E} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + animation: ${_E} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; animation-delay: 100ms; &:after, &:before { content: ''; - animation: ${FE} 0.15s ease-out forwards; + animation: ${zE} 0.15s ease-out forwards; animation-delay: 150ms; position: absolute; border-radius: 3px; @@ -122,18 +122,18 @@ to { } &:before { - animation: ${VE} 0.15s ease-out forwards; + animation: ${WE} 0.15s ease-out forwards; animation-delay: 180ms; transform: rotate(90deg); } -`,_E=xn` +`,BE=xn` from { transform: rotate(0deg); } to { transform: rotate(360deg); } -`,zE=lr("div")` +`,HE=lr("div")` width: 12px; height: 12px; box-sizing: border-box; @@ -141,8 +141,8 @@ to { border-radius: 100%; border-color: ${e=>e.secondary||"#e0e0e0"}; border-right-color: ${e=>e.primary||"#616161"}; - animation: ${_E} 1s linear infinite; -`,WE=xn` + animation: ${BE} 1s linear infinite; +`,qE=xn` from { transform: scale(0) rotate(45deg); opacity: 0; @@ -150,7 +150,7 @@ from { to { transform: scale(1) rotate(45deg); opacity: 1; -}`,UE=xn` +}`,KE=xn` 0% { height: 0; width: 0; @@ -164,7 +164,7 @@ to { 100% { opacity: 1; height: 10px; -}`,BE=lr("div")` +}`,QE=lr("div")` width: 20px; opacity: 0; height: 20px; @@ -173,13 +173,13 @@ to { position: relative; transform: rotate(45deg); - animation: ${WE} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) + animation: ${qE} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; animation-delay: 100ms; &:after { content: ''; box-sizing: border-box; - animation: ${UE} 0.2s ease-out forwards; + animation: ${KE} 0.2s ease-out forwards; opacity: 0; animation-delay: 200ms; position: absolute; @@ -191,16 +191,16 @@ to { height: 10px; width: 6px; } -`,HE=lr("div")` +`,XE=lr("div")` position: absolute; -`,qE=lr("div")` +`,GE=lr("div")` position: relative; display: flex; justify-content: center; align-items: center; min-width: 20px; min-height: 20px; -`,KE=xn` +`,YE=xn` from { transform: scale(0.6); opacity: 0.4; @@ -208,20 +208,20 @@ from { to { transform: scale(1); opacity: 1; -}`,QE=lr("div")` +}`,JE=lr("div")` position: relative; transform: scale(0.6); opacity: 0.4; min-width: 20px; - animation: ${KE} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) + animation: ${YE} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; -`,XE=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?b.createElement(QE,null,t):t:n==="blank"?null:b.createElement(qE,null,b.createElement(zE,{...r}),n!=="loading"&&b.createElement(HE,null,n==="error"?b.createElement(IE,{...r}):b.createElement(BE,{...r})))},GE=e=>` +`,ZE=({toast:e})=>{let{icon:t,type:n,iconTheme:r}=e;return t!==void 0?typeof t=="string"?b.createElement(JE,null,t):t:n==="blank"?null:b.createElement(GE,null,b.createElement(HE,{...r}),n!=="loading"&&b.createElement(XE,null,n==="error"?b.createElement(UE,{...r}):b.createElement(QE,{...r})))},e3=e=>` 0% {transform: translate3d(0,${e*-200}%,0) scale(.6); opacity:.5;} 100% {transform: translate3d(0,0,0) scale(1); opacity:1;} -`,YE=e=>` +`,t3=e=>` 0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;} 100% {transform: translate3d(0,${e*-150}%,-1px) scale(.6); opacity:0;} -`,JE="0%{opacity:0;} 100%{opacity:1;}",ZE="0%{opacity:1;} 100%{opacity:0;}",e3=lr("div")` +`,n3="0%{opacity:0;} 100%{opacity:1;}",r3="0%{opacity:1;} 100%{opacity:0;}",i3=lr("div")` display: flex; align-items: center; background: #fff; @@ -233,19 +233,19 @@ to { pointer-events: auto; padding: 8px 10px; border-radius: 8px; -`,t3=lr("div")` +`,s3=lr("div")` display: flex; justify-content: center; margin: 4px 10px; color: inherit; flex: 1 1 auto; white-space: pre-line; -`,n3=(e,t)=>{let n=e.includes("top")?1:-1,[r,i]=nw()?[JE,ZE]:[GE(n),YE(n)];return{animation:t?`${xn(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${xn(i)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},r3=b.memo(({toast:e,position:t,style:n,children:r})=>{let i=e.height?n3(e.position||t||"top-center",e.visible):{opacity:0},s=b.createElement(XE,{toast:e}),o=b.createElement(t3,{...e.ariaProps},hl(e.message,e));return b.createElement(e3,{className:e.className,style:{...i,...n,...e.style}},typeof r=="function"?r({icon:s,message:o}):b.createElement(b.Fragment,null,s,o))});EE(b.createElement);var i3=({id:e,className:t,style:n,onHeightUpdate:r,children:i})=>{let s=b.useCallback(o=>{if(o){let a=()=>{let l=o.getBoundingClientRect().height;r(e,l)};a(),new MutationObserver(a).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return b.createElement("div",{ref:s,className:t,style:n},i)},s3=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},i=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:nw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...i}},o3=Jl` +`,o3=(e,t)=>{let n=e.includes("top")?1:-1,[r,i]=iw()?[n3,r3]:[e3(n),t3(n)];return{animation:t?`${xn(r)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${xn(i)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}},a3=b.memo(({toast:e,position:t,style:n,children:r})=>{let i=e.height?o3(e.position||t||"top-center",e.visible):{opacity:0},s=b.createElement(ZE,{toast:e}),o=b.createElement(s3,{...e.ariaProps},pl(e.message,e));return b.createElement(i3,{className:e.className,style:{...i,...n,...e.style}},typeof r=="function"?r({icon:s,message:o}):b.createElement(b.Fragment,null,s,o))});ME(b.createElement);var l3=({id:e,className:t,style:n,onHeightUpdate:r,children:i})=>{let s=b.useCallback(o=>{if(o){let a=()=>{let l=o.getBoundingClientRect().height;r(e,l)};a(),new MutationObserver(a).observe(o,{subtree:!0,childList:!0,characterData:!0})}},[e,r]);return b.createElement("div",{ref:s,className:t,style:n},i)},u3=(e,t)=>{let n=e.includes("top"),r=n?{top:0}:{bottom:0},i=e.includes("center")?{justifyContent:"center"}:e.includes("right")?{justifyContent:"flex-end"}:{};return{left:0,right:0,display:"flex",position:"absolute",transition:iw()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:`translateY(${t*(n?1:-1)}px)`,...r,...i}},c3=eu` z-index: 9999; > * { pointer-events: auto; } -`,oa=16,a3=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:i,toasterId:s,containerStyle:o,containerClassName:a})=>{let{toasts:l,handlers:u}=AE(n,s);return b.createElement("div",{"data-rht-toaster":s||"",style:{position:"fixed",zIndex:9999,top:oa,left:oa,right:oa,bottom:oa,pointerEvents:"none",...o},className:a,onMouseEnter:u.startPause,onMouseLeave:u.endPause},l.map(c=>{let d=c.position||t,f=u.calculateOffset(c,{reverseOrder:e,gutter:r,defaultPosition:t}),m=s3(d,f);return b.createElement(i3,{id:c.id,key:c.id,onHeightUpdate:u.updateHeight,className:c.visible?o3:"",style:m},c.type==="custom"?hl(c.message,c):i?i(c):b.createElement(r3,{toast:c,position:d}))}))},l3=J;function le(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function zr(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const aw=6048e5,u3=864e5,aa=43200,Ap=1440;let c3={};function Ao(){return c3}function Wr(e,t){var a,l,u,c;const n=Ao(),r=(t==null?void 0:t.weekStartsOn)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.weekStartsOn)??n.weekStartsOn??((c=(u=n.locale)==null?void 0:u.options)==null?void 0:c.weekStartsOn)??0,i=le(e),s=i.getDay(),o=(s=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function $p(e){const t=le(e);return t.setHours(0,0,0,0),t}function pl(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function d3(e,t){const n=$p(e),r=$p(t),i=n.getTime()-pl(n),s=r.getTime()-pl(r);return Math.round((i-s)/u3)}function f3(e){const t=lw(e),n=zr(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),ml(n)}function Da(e,t){const n=le(e),r=le(t),i=n.getTime()-r.getTime();return i<0?-1:i>0?1:i}function h3(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function m3(e){if(!h3(e)&&typeof e!="number")return!1;const t=le(e);return!isNaN(Number(t))}function p3(e,t){const n=le(e),r=le(t),i=n.getFullYear()-r.getFullYear(),s=n.getMonth()-r.getMonth();return i*12+s}function g3(e){return e?Math[e]:Math.trunc}function y3(e,t){return le(e).getTime()-le(t).getTime()}function v3(e){const t=le(e);return t.setHours(23,59,59,999),t}function w3(e){const t=le(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function x3(e){const t=le(e);return+v3(t)==+w3(t)}function b3(e,t){const n=le(e),r=le(t),i=Da(n,r),s=Math.abs(p3(n,r));let o;if(s<1)o=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-i*s);let a=Da(n,r)===-i;x3(le(e))&&s===1&&Da(e,r)===1&&(a=!1),o=i*(s-Number(a))}return o===0?0:o}function S3(e,t,n){const r=y3(e,t)/1e3;return g3(n==null?void 0:n.roundingMethod)(r)}function P3(e){const t=le(e),n=zr(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const k3={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},C3=(e,t,n)=>{let r;const i=k3[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function re(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const E3={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},T3={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},j3={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},M3={date:re({formats:E3,defaultWidth:"full"}),time:re({formats:T3,defaultWidth:"full"}),dateTime:re({formats:j3,defaultWidth:"full"})},N3={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},O3=(e,t,n,r)=>N3[e];function U(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let i;if(r==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,a=n!=null&&n.width?String(n.width):o;i=e.formattingValues[a]||e.formattingValues[o]}else{const o=e.defaultWidth,a=n!=null&&n.width?String(n.width):e.defaultWidth;i=e.values[a]||e.values[o]}const s=e.argumentCallback?e.argumentCallback(t):t;return i[s]}}const R3={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},D3={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},L3={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},A3={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},$3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},F3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},V3=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},I3={ordinalNumber:V3,era:U({values:R3,defaultWidth:"wide"}),quarter:U({values:D3,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:L3,defaultWidth:"wide"}),day:U({values:A3,defaultWidth:"wide"}),dayPeriod:U({values:$3,defaultWidth:"wide",formattingValues:F3,defaultFormattingWidth:"wide"})};function B(e){return(t,n={})=>{const r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(i);if(!s)return null;const o=s[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?z3(a,d=>d.test(o)):_3(a,d=>d.test(o));let u;u=e.valueCallback?e.valueCallback(l):l,u=n.valueCallback?n.valueCallback(u):u;const c=t.slice(o.length);return{value:u,rest:c}}}function _3(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function z3(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const i=r[0],s=t.match(e.parsePattern);if(!s)return null;let o=e.valueCallback?e.valueCallback(s[0]):s[0];o=n.valueCallback?n.valueCallback(o):o;const a=t.slice(i.length);return{value:o,rest:a}}}const W3=/^(\d+)(th|st|nd|rd)?/i,U3=/\d+/i,B3={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},H3={any:[/^b/i,/^(a|c)/i]},q3={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},K3={any:[/1/i,/2/i,/3/i,/4/i]},Q3={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},X3={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},G3={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Y3={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},J3={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Z3={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},eT={ordinalNumber:_t({matchPattern:W3,parsePattern:U3,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:B3,defaultMatchWidth:"wide",parsePatterns:H3,defaultParseWidth:"any"}),quarter:B({matchPatterns:q3,defaultMatchWidth:"wide",parsePatterns:K3,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:Q3,defaultMatchWidth:"wide",parsePatterns:X3,defaultParseWidth:"any"}),day:B({matchPatterns:G3,defaultMatchWidth:"wide",parsePatterns:Y3,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:J3,defaultMatchWidth:"any",parsePatterns:Z3,defaultParseWidth:"any"})},eu={code:"en-US",formatDistance:C3,formatLong:M3,formatRelative:O3,localize:I3,match:eT,options:{weekStartsOn:0,firstWeekContainsDate:1}};function tT(e){const t=le(e);return d3(t,P3(t))+1}function nT(e){const t=le(e),n=ml(t).getTime()-f3(t).getTime();return Math.round(n/aw)+1}function uw(e,t){var c,d,f,m;const n=le(e),r=n.getFullYear(),i=Ao(),s=(t==null?void 0:t.firstWeekContainsDate)??((d=(c=t==null?void 0:t.locale)==null?void 0:c.options)==null?void 0:d.firstWeekContainsDate)??i.firstWeekContainsDate??((m=(f=i.locale)==null?void 0:f.options)==null?void 0:m.firstWeekContainsDate)??1,o=zr(e,0);o.setFullYear(r+1,0,s),o.setHours(0,0,0,0);const a=Wr(o,t),l=zr(e,0);l.setFullYear(r,0,s),l.setHours(0,0,0,0);const u=Wr(l,t);return n.getTime()>=a.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function rT(e,t){var a,l,u,c;const n=Ao(),r=(t==null?void 0:t.firstWeekContainsDate)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.firstWeekContainsDate)??n.firstWeekContainsDate??((c=(u=n.locale)==null?void 0:u.options)==null?void 0:c.firstWeekContainsDate)??1,i=uw(e,t),s=zr(e,0);return s.setFullYear(i,0,r),s.setHours(0,0,0,0),Wr(s,t)}function iT(e,t){const n=le(e),r=Wr(n,t).getTime()-rT(n,t).getTime();return Math.round(r/aw)+1}function se(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const kn={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return se(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):se(n+1,2)},d(e,t){return se(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return se(e.getHours()%12||12,t.length)},H(e,t){return se(e.getHours(),t.length)},m(e,t){return se(e.getMinutes(),t.length)},s(e,t){return se(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),i=Math.floor(r*Math.pow(10,n-3));return se(i,t.length)}},Xr={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},sT={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return kn.y(e,t)},Y:function(e,t,n,r){const i=uw(e,r),s=i>0?i:1-i;if(t==="YY"){const o=s%100;return se(o,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):se(s,t.length)},R:function(e,t){const n=lw(e);return se(n,t.length)},u:function(e,t){const n=e.getFullYear();return se(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return se(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return se(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return kn.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return se(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const i=iT(e,r);return t==="wo"?n.ordinalNumber(i,{unit:"week"}):se(i,t.length)},I:function(e,t,n){const r=nT(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):se(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):kn.d(e,t)},D:function(e,t,n){const r=tT(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):se(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const i=e.getDay(),s=(i-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return se(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const i=e.getDay(),s=(i-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return se(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),i=r===0?7:r;switch(t){case"i":return String(i);case"ii":return se(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const i=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let i;switch(r===12?i=Xr.noon:r===0?i=Xr.midnight:i=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let i;switch(r>=17?i=Xr.evening:r>=12?i=Xr.afternoon:r>=4?i=Xr.morning:i=Xr.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return kn.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):kn.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):se(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):se(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):kn.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):kn.s(e,t)},S:function(e,t){return kn.S(e,t)},X:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();if(s===0)return"Z";switch(t){case"X":return Vp(s);case"XXXX":case"XX":return mr(s);case"XXXXX":case"XXX":default:return mr(s,":")}},x:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return Vp(s);case"xxxx":case"xx":return mr(s);case"xxxxx":case"xxx":default:return mr(s,":")}},O:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Fp(s,":");case"OOOO":default:return"GMT"+mr(s,":")}},z:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Fp(s,":");case"zzzz":default:return"GMT"+mr(s,":")}},t:function(e,t,n,r){const i=r._originalDate||e,s=Math.floor(i.getTime()/1e3);return se(s,t.length)},T:function(e,t,n,r){const s=(r._originalDate||e).getTime();return se(s,t.length)}};function Fp(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),s=r%60;return s===0?n+String(i):n+String(i)+t+se(s,2)}function Vp(e,t){return e%60===0?(e>0?"-":"+")+se(Math.abs(e)/60,2):mr(e,t)}function mr(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),i=se(Math.floor(r/60),2),s=se(r%60,2);return n+i+t+s}const Ip=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},cw=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},oT=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return Ip(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",Ip(r,t)).replace("{{time}}",cw(i,t))},aT={p:cw,P:oT},lT=/^D+$/,uT=/^Y+$/,cT=["D","DD","YY","YYYY"];function dT(e){return lT.test(e)}function fT(e){return uT.test(e)}function _p(e,t,n){const r=hT(e,t,n);if(console.warn(r),cT.includes(e))throw new RangeError(r)}function hT(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const mT=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,pT=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,gT=/^'([^]*?)'?$/,yT=/''/g,vT=/[a-zA-Z]/;function wT(e,t,n){var c,d,f,m;const r=Ao(),i=r.locale??eu,s=r.firstWeekContainsDate??((d=(c=r.locale)==null?void 0:c.options)==null?void 0:d.firstWeekContainsDate)??1,o=r.weekStartsOn??((m=(f=r.locale)==null?void 0:f.options)==null?void 0:m.weekStartsOn)??0,a=le(e);if(!m3(a))throw new RangeError("Invalid time value");const l={firstWeekContainsDate:s,weekStartsOn:o,locale:i,_originalDate:a};return t.match(pT).map(function(p){const v=p[0];if(v==="p"||v==="P"){const x=aT[v];return x(p,i.formatLong)}return p}).join("").match(mT).map(function(p){if(p==="''")return"'";const v=p[0];if(v==="'")return xT(p);const x=sT[v];if(x)return fT(p)&&_p(p,t,String(e)),dT(p)&&_p(p,t,String(e)),x(a,p,i.localize,l);if(v.match(vT))throw new RangeError("Format string contains an unescaped latin alphabet character `"+v+"`");return p}).join("")}function xT(e){const t=e.match(gT);return t?t[1].replace(yT,"'"):e}function bT(e,t,n){const r=Ao(),i=(n==null?void 0:n.locale)??r.locale??eu,s=2520,o=Da(e,t);if(isNaN(o))throw new RangeError("Invalid time value");const a=Object.assign({},n,{addSuffix:n==null?void 0:n.addSuffix,comparison:o});let l,u;o>0?(l=le(t),u=le(e)):(l=le(e),u=le(t));const c=S3(u,l),d=(pl(u)-pl(l))/1e3,f=Math.round((c-d)/60);let m;if(f<2)return n!=null&&n.includeSeconds?c<5?i.formatDistance("lessThanXSeconds",5,a):c<10?i.formatDistance("lessThanXSeconds",10,a):c<20?i.formatDistance("lessThanXSeconds",20,a):c<40?i.formatDistance("halfAMinute",0,a):c<60?i.formatDistance("lessThanXMinutes",1,a):i.formatDistance("xMinutes",1,a):f===0?i.formatDistance("lessThanXMinutes",1,a):i.formatDistance("xMinutes",f,a);if(f<45)return i.formatDistance("xMinutes",f,a);if(f<90)return i.formatDistance("aboutXHours",1,a);if(f{let r;const i=n!=null&&n.addSuffix?zp[e].withPreposition:zp[e].standalone;return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:"vor "+r:r},kT={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.y"},CT={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},ET={full:"{{date}} 'um' {{time}}",long:"{{date}} 'um' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},TT={date:re({formats:kT,defaultWidth:"full"}),time:re({formats:CT,defaultWidth:"full"}),dateTime:re({formats:ET,defaultWidth:"full"})},jT={lastWeek:"'letzten' eeee 'um' p",yesterday:"'gestern um' p",today:"'heute um' p",tomorrow:"'morgen um' p",nextWeek:"eeee 'um' p",other:"P"},MT=(e,t,n,r)=>jT[e],NT={narrow:["v.Chr.","n.Chr."],abbreviated:["v.Chr.","n.Chr."],wide:["vor Christus","nach Christus"]},OT={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"]},kd={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],wide:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},RT={narrow:kd.narrow,abbreviated:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],wide:kd.wide},DT={narrow:["S","M","D","M","D","F","S"],short:["So","Mo","Di","Mi","Do","Fr","Sa"],abbreviated:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],wide:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},LT={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachm.",evening:"Abend",night:"Nacht"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"}},AT={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachm.",evening:"abends",night:"nachts"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"}},$T=e=>Number(e)+".",FT={ordinalNumber:$T,era:U({values:NT,defaultWidth:"wide"}),quarter:U({values:OT,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:kd,formattingValues:RT,defaultWidth:"wide"}),day:U({values:DT,defaultWidth:"wide"}),dayPeriod:U({values:LT,defaultWidth:"wide",formattingValues:AT,defaultFormattingWidth:"wide"})},VT=/^(\d+)(\.)?/i,IT=/\d+/i,_T={narrow:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,abbreviated:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,wide:/^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i},zT={any:[/^v/i,/^n/i]},WT={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? Quartal/i},UT={any:[/1/i,/2/i,/3/i,/4/i]},BT={narrow:/^[jfmasond]/i,abbreviated:/^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\.?/i,wide:/^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i},HT={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^j[aä]/i,/^f/i,/^mär/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},qT={narrow:/^[smdmf]/i,short:/^(so|mo|di|mi|do|fr|sa)/i,abbreviated:/^(son?|mon?|die?|mit?|don?|fre?|sam?)\.?/i,wide:/^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i},KT={any:[/^so/i,/^mo/i,/^di/i,/^mi/i,/^do/i,/^f/i,/^sa/i]},QT={narrow:/^(vm\.?|nm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,abbreviated:/^(vorm\.?|nachm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,wide:/^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i},XT={any:{am:/^v/i,pm:/^n/i,midnight:/^Mitte/i,noon:/^Mitta/i,morning:/morgens/i,afternoon:/nachmittags/i,evening:/abends/i,night:/nachts/i}},GT={ordinalNumber:_t({matchPattern:VT,parsePattern:IT,valueCallback:e=>parseInt(e)}),era:B({matchPatterns:_T,defaultMatchWidth:"wide",parsePatterns:zT,defaultParseWidth:"any"}),quarter:B({matchPatterns:WT,defaultMatchWidth:"wide",parsePatterns:UT,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:BT,defaultMatchWidth:"wide",parsePatterns:HT,defaultParseWidth:"any"}),day:B({matchPatterns:qT,defaultMatchWidth:"wide",parsePatterns:KT,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:QT,defaultMatchWidth:"wide",parsePatterns:XT,defaultParseWidth:"any"})},YT={code:"de",formatDistance:PT,formatLong:TT,formatRelative:MT,localize:FT,match:GT,options:{weekStartsOn:1,firstWeekContainsDate:4}},JT={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}},ZT=(e,t,n)=>{let r;const i=JT[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"dans "+r:"il y a "+r:r},ej={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},tj={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},nj={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},rj={date:re({formats:ej,defaultWidth:"full"}),time:re({formats:tj,defaultWidth:"full"}),dateTime:re({formats:nj,defaultWidth:"full"})},ij={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"},sj=(e,t,n,r)=>ij[e],oj={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},aj={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},lj={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},uj={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},cj={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}},dj=(e,t)=>{const n=Number(e),r=t==null?void 0:t.unit;if(n===0)return"0";const i=["year","week","hour","minute","second"];let s;return n===1?s=r&&i.includes(r)?"ère":"er":s="ème",n+s},fj={ordinalNumber:dj,era:U({values:oj,defaultWidth:"wide"}),quarter:U({values:aj,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:lj,defaultWidth:"wide"}),day:U({values:uj,defaultWidth:"wide"}),dayPeriod:U({values:cj,defaultWidth:"wide"})},hj=/^(\d+)(ième|ère|ème|er|e)?/i,mj=/\d+/i,pj={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},gj={any:[/^av/i,/^ap/i]},yj={narrow:/^T?[1234]/i,abbreviated:/^[1234](er|ème|e)? trim\.?/i,wide:/^[1234](er|ème|e)? trimestre/i},vj={any:[/1/i,/2/i,/3/i,/4/i]},wj={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},xj={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},bj={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},Sj={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},Pj={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},kj={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},Cj={ordinalNumber:_t({matchPattern:hj,parsePattern:mj,valueCallback:e=>parseInt(e)}),era:B({matchPatterns:pj,defaultMatchWidth:"wide",parsePatterns:gj,defaultParseWidth:"any"}),quarter:B({matchPatterns:yj,defaultMatchWidth:"wide",parsePatterns:vj,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:wj,defaultMatchWidth:"wide",parsePatterns:xj,defaultParseWidth:"any"}),day:B({matchPatterns:bj,defaultMatchWidth:"wide",parsePatterns:Sj,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:Pj,defaultMatchWidth:"any",parsePatterns:kj,defaultParseWidth:"any"})},Ej={code:"fr",formatDistance:ZT,formatLong:rj,formatRelative:sj,localize:fj,match:Cj,options:{weekStartsOn:1,firstWeekContainsDate:4}},Tj={lessThanXSeconds:{one:"meno di un secondo",other:"meno di {{count}} secondi"},xSeconds:{one:"un secondo",other:"{{count}} secondi"},halfAMinute:"alcuni secondi",lessThanXMinutes:{one:"meno di un minuto",other:"meno di {{count}} minuti"},xMinutes:{one:"un minuto",other:"{{count}} minuti"},aboutXHours:{one:"circa un'ora",other:"circa {{count}} ore"},xHours:{one:"un'ora",other:"{{count}} ore"},xDays:{one:"un giorno",other:"{{count}} giorni"},aboutXWeeks:{one:"circa una settimana",other:"circa {{count}} settimane"},xWeeks:{one:"una settimana",other:"{{count}} settimane"},aboutXMonths:{one:"circa un mese",other:"circa {{count}} mesi"},xMonths:{one:"un mese",other:"{{count}} mesi"},aboutXYears:{one:"circa un anno",other:"circa {{count}} anni"},xYears:{one:"un anno",other:"{{count}} anni"},overXYears:{one:"più di un anno",other:"più di {{count}} anni"},almostXYears:{one:"quasi un anno",other:"quasi {{count}} anni"}},jj=(e,t,n)=>{let r;const i=Tj[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"tra "+r:r+" fa":r},Mj={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},Nj={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Oj={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Rj={date:re({formats:Mj,defaultWidth:"full"}),time:re({formats:Nj,defaultWidth:"full"}),dateTime:re({formats:Oj,defaultWidth:"full"})},nh=["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"];function Dj(e){switch(e){case 0:return"'domenica scorsa alle' p";default:return"'"+nh[e]+" scorso alle' p"}}function Wp(e){return"'"+nh[e]+" alle' p"}function Lj(e){switch(e){case 0:return"'domenica prossima alle' p";default:return"'"+nh[e]+" prossimo alle' p"}}const Aj={lastWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Wp(r):Dj(r)},yesterday:"'ieri alle' p",today:"'oggi alle' p",tomorrow:"'domani alle' p",nextWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Wp(r):Lj(r)},other:"P"},$j=(e,t,n,r)=>{const i=Aj[e];return typeof i=="function"?i(t,n,r):i},Fj={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["avanti Cristo","dopo Cristo"]},Vj={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},Ij={narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],abbreviated:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],wide:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},_j={narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],abbreviated:["dom","lun","mar","mer","gio","ven","sab"],wide:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},zj={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"}},Wj={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"}},Uj=(e,t)=>{const n=Number(e);return String(n)},Bj={ordinalNumber:Uj,era:U({values:Fj,defaultWidth:"wide"}),quarter:U({values:Vj,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:Ij,defaultWidth:"wide"}),day:U({values:_j,defaultWidth:"wide"}),dayPeriod:U({values:zj,defaultWidth:"wide",formattingValues:Wj,defaultFormattingWidth:"wide"})},Hj=/^(\d+)(º)?/i,qj=/\d+/i,Kj={narrow:/^(aC|dC)/i,abbreviated:/^(a\.?\s?C\.?|a\.?\s?e\.?\s?v\.?|d\.?\s?C\.?|e\.?\s?v\.?)/i,wide:/^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i},Qj={any:[/^a/i,/^(d|e)/i]},Xj={narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](º)? trimestre/i},Gj={any:[/1/i,/2/i,/3/i,/4/i]},Yj={narrow:/^[gfmalsond]/i,abbreviated:/^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,wide:/^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i},Jj={narrow:[/^g/i,/^f/i,/^m/i,/^a/i,/^m/i,/^g/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ge/i,/^f/i,/^mar/i,/^ap/i,/^mag/i,/^gi/i,/^l/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},Zj={narrow:/^[dlmgvs]/i,short:/^(do|lu|ma|me|gi|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|gio|ven|sab)/i,wide:/^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i},eM={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^g/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^g/i,/^v/i,/^s/i]},tM={narrow:/^(a|m\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,any:/^([ap]\.?\s?m\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i},nM={any:{am:/^a/i,pm:/^p/i,midnight:/^mezza/i,noon:/^mezzo/i,morning:/mattina/i,afternoon:/pomeriggio/i,evening:/sera/i,night:/notte/i}},rM={ordinalNumber:_t({matchPattern:Hj,parsePattern:qj,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:Kj,defaultMatchWidth:"wide",parsePatterns:Qj,defaultParseWidth:"any"}),quarter:B({matchPatterns:Xj,defaultMatchWidth:"wide",parsePatterns:Gj,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:Yj,defaultMatchWidth:"wide",parsePatterns:Jj,defaultParseWidth:"any"}),day:B({matchPatterns:Zj,defaultMatchWidth:"wide",parsePatterns:eM,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:tM,defaultMatchWidth:"any",parsePatterns:nM,defaultParseWidth:"any"})},iM={code:"it",formatDistance:jj,formatLong:Rj,formatRelative:$j,localize:Bj,match:rM,options:{weekStartsOn:1,firstWeekContainsDate:4}},sM={lessThanXSeconds:{one:"1秒未満",other:"{{count}}秒未満",oneWithSuffix:"約1秒",otherWithSuffix:"約{{count}}秒"},xSeconds:{one:"1秒",other:"{{count}}秒"},halfAMinute:"30秒",lessThanXMinutes:{one:"1分未満",other:"{{count}}分未満",oneWithSuffix:"約1分",otherWithSuffix:"約{{count}}分"},xMinutes:{one:"1分",other:"{{count}}分"},aboutXHours:{one:"約1時間",other:"約{{count}}時間"},xHours:{one:"1時間",other:"{{count}}時間"},xDays:{one:"1日",other:"{{count}}日"},aboutXWeeks:{one:"約1週間",other:"約{{count}}週間"},xWeeks:{one:"1週間",other:"{{count}}週間"},aboutXMonths:{one:"約1か月",other:"約{{count}}か月"},xMonths:{one:"1か月",other:"{{count}}か月"},aboutXYears:{one:"約1年",other:"約{{count}}年"},xYears:{one:"1年",other:"{{count}}年"},overXYears:{one:"1年以上",other:"{{count}}年以上"},almostXYears:{one:"1年近く",other:"{{count}}年近く"}},oM=(e,t,n)=>{n=n||{};let r;const i=sM[e];return typeof i=="string"?r=i:t===1?n.addSuffix&&i.oneWithSuffix?r=i.oneWithSuffix:r=i.one:n.addSuffix&&i.otherWithSuffix?r=i.otherWithSuffix.replace("{{count}}",String(t)):r=i.other.replace("{{count}}",String(t)),n.addSuffix?n.comparison&&n.comparison>0?r+"後":r+"前":r},aM={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},lM={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},uM={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},cM={date:re({formats:aM,defaultWidth:"full"}),time:re({formats:lM,defaultWidth:"full"}),dateTime:re({formats:uM,defaultWidth:"full"})},dM={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},fM=(e,t,n,r)=>dM[e],hM={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},mM={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},pM={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},gM={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},yM={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},vM={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},wM=(e,t)=>{const n=Number(e);switch(String(t==null?void 0:t.unit)){case"year":return`${n}年`;case"quarter":return`第${n}四半期`;case"month":return`${n}月`;case"week":return`第${n}週`;case"date":return`${n}日`;case"hour":return`${n}時`;case"minute":return`${n}分`;case"second":return`${n}秒`;default:return`${n}`}},xM={ordinalNumber:wM,era:U({values:hM,defaultWidth:"wide"}),quarter:U({values:mM,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:U({values:pM,defaultWidth:"wide"}),day:U({values:gM,defaultWidth:"wide"}),dayPeriod:U({values:yM,defaultWidth:"wide",formattingValues:vM,defaultFormattingWidth:"wide"})},bM=/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,SM=/\d+/i,PM={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},kM={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},CM={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},EM={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},TM={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},jM={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},MM={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},NM={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},OM={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},RM={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},DM={ordinalNumber:_t({matchPattern:bM,parsePattern:SM,valueCallback:function(e){return parseInt(e,10)}}),era:B({matchPatterns:PM,defaultMatchWidth:"wide",parsePatterns:kM,defaultParseWidth:"any"}),quarter:B({matchPatterns:CM,defaultMatchWidth:"wide",parsePatterns:EM,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:TM,defaultMatchWidth:"wide",parsePatterns:jM,defaultParseWidth:"any"}),day:B({matchPatterns:MM,defaultMatchWidth:"wide",parsePatterns:NM,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:OM,defaultMatchWidth:"any",parsePatterns:RM,defaultParseWidth:"any"})},LM={code:"ja",formatDistance:oM,formatLong:cM,formatRelative:fM,localize:xM,match:DM,options:{weekStartsOn:0,firstWeekContainsDate:1}},AM={lessThanXSeconds:{one:"1초 미만",other:"{{count}}초 미만"},xSeconds:{one:"1초",other:"{{count}}초"},halfAMinute:"30초",lessThanXMinutes:{one:"1분 미만",other:"{{count}}분 미만"},xMinutes:{one:"1분",other:"{{count}}분"},aboutXHours:{one:"약 1시간",other:"약 {{count}}시간"},xHours:{one:"1시간",other:"{{count}}시간"},xDays:{one:"1일",other:"{{count}}일"},aboutXWeeks:{one:"약 1주",other:"약 {{count}}주"},xWeeks:{one:"1주",other:"{{count}}주"},aboutXMonths:{one:"약 1개월",other:"약 {{count}}개월"},xMonths:{one:"1개월",other:"{{count}}개월"},aboutXYears:{one:"약 1년",other:"약 {{count}}년"},xYears:{one:"1년",other:"{{count}}년"},overXYears:{one:"1년 이상",other:"{{count}}년 이상"},almostXYears:{one:"거의 1년",other:"거의 {{count}}년"}},$M=(e,t,n)=>{let r;const i=AM[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+" 후":r+" 전":r},FM={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},VM={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},IM={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},_M={date:re({formats:FM,defaultWidth:"full"}),time:re({formats:VM,defaultWidth:"full"}),dateTime:re({formats:IM,defaultWidth:"full"})},zM={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"},WM=(e,t,n,r)=>zM[e],UM={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},BM={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},HM={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],wide:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},qM={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},KM={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},QM={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},XM=(e,t)=>{const n=Number(e);switch(String(t==null?void 0:t.unit)){case"minute":case"second":return String(n);case"date":return n+"일";default:return n+"번째"}},GM={ordinalNumber:XM,era:U({values:UM,defaultWidth:"wide"}),quarter:U({values:BM,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:HM,defaultWidth:"wide"}),day:U({values:qM,defaultWidth:"wide"}),dayPeriod:U({values:KM,defaultWidth:"wide",formattingValues:QM,defaultFormattingWidth:"wide"})},YM=/^(\d+)(일|번째)?/i,JM=/\d+/i,ZM={narrow:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(기원전|서기)/i},eN={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},tN={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},nN={any:[/1/i,/2/i,/3/i,/4/i]},rN={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},iN={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},sN={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},oN={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},aN={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},lN={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},uN={ordinalNumber:_t({matchPattern:YM,parsePattern:JM,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:ZM,defaultMatchWidth:"wide",parsePatterns:eN,defaultParseWidth:"any"}),quarter:B({matchPatterns:tN,defaultMatchWidth:"wide",parsePatterns:nN,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:rN,defaultMatchWidth:"wide",parsePatterns:iN,defaultParseWidth:"any"}),day:B({matchPatterns:sN,defaultMatchWidth:"wide",parsePatterns:oN,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:aN,defaultMatchWidth:"any",parsePatterns:lN,defaultParseWidth:"any"})},cN={code:"ko",formatDistance:$M,formatLong:_M,formatRelative:WM,localize:GM,match:uN,options:{weekStartsOn:0,firstWeekContainsDate:1}},dN={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"aproximadamente 1 hora",other:"aproximadamente {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"aproximadamente 1 semana",other:"aproximadamente {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"aproximadamente 1 mês",other:"aproximadamente {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"aproximadamente 1 ano",other:"aproximadamente {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}},fN=(e,t,n)=>{let r;const i=dN[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"daqui a "+r:"há "+r:r},hN={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d 'de' MMM 'de' y",short:"dd/MM/y"},mN={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},pN={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gN={date:re({formats:hN,defaultWidth:"full"}),time:re({formats:mN,defaultWidth:"full"}),dateTime:re({formats:pN,defaultWidth:"full"})},yN={lastWeek:e=>{const t=e.getDay();return"'"+(t===0||t===6?"último":"última")+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"},vN=(e,t,n,r)=>{const i=yN[e];return typeof i=="function"?i(t):i},wN={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["antes de Cristo","depois de Cristo"]},xN={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},bN={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},SN={narrow:["d","s","t","q","q","s","s"],short:["dom","seg","ter","qua","qui","sex","sáb"],abbreviated:["dom","seg","ter","qua","qui","sex","sáb"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},PN={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"}},kN={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"}},CN=(e,t)=>Number(e)+"º",EN={ordinalNumber:CN,era:U({values:wN,defaultWidth:"wide"}),quarter:U({values:xN,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:bN,defaultWidth:"wide"}),day:U({values:SN,defaultWidth:"wide"}),dayPeriod:U({values:PN,defaultWidth:"wide",formattingValues:kN,defaultFormattingWidth:"wide"})},TN=/^(\d+)(º|ª)?/i,jN=/\d+/i,MN={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era comum|depois de cristo|era comum)/i},NN={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era comum)/i,/^(depois de cristo|era comum)/i]},ON={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º|ª)? trimestre/i},RN={any:[/1/i,/2/i,/3/i,/4/i]},DN={narrow:/^[jfmasond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},LN={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ab/i,/^mai/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},AN={narrow:/^[dstq]/i,short:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,wide:/^(domingo|segunda-?\s?feira|terça-?\s?feira|quarta-?\s?feira|quinta-?\s?feira|sexta-?\s?feira|s[áa]bado)/i},$N={narrow:[/^d/i,/^s/i,/^t/i,/^q/i,/^q/i,/^s/i,/^s/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[áa]/i]},FN={narrow:/^(a|p|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,any:/^([ap]\.?\s?m\.?|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i},VN={any:{am:/^a/i,pm:/^p/i,midnight:/^meia/i,noon:/^meio/i,morning:/manh[ãa]/i,afternoon:/tarde/i,evening:/noite/i,night:/madrugada/i}},IN={ordinalNumber:_t({matchPattern:TN,parsePattern:jN,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:MN,defaultMatchWidth:"wide",parsePatterns:NN,defaultParseWidth:"any"}),quarter:B({matchPatterns:ON,defaultMatchWidth:"wide",parsePatterns:RN,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:DN,defaultMatchWidth:"wide",parsePatterns:LN,defaultParseWidth:"any"}),day:B({matchPatterns:AN,defaultMatchWidth:"wide",parsePatterns:$N,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:FN,defaultMatchWidth:"any",parsePatterns:VN,defaultParseWidth:"any"})},_N={code:"pt",formatDistance:fN,formatLong:gN,formatRelative:vN,localize:EN,match:IN,options:{weekStartsOn:1,firstWeekContainsDate:4}};function fs(e,t){if(e.one!==void 0&&t===1)return e.one;const n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace("{{count}}",String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace("{{count}}",String(t)):e.pluralGenitive.replace("{{count}}",String(t))}function Ke(e){return(t,n)=>n!=null&&n.addSuffix?n.comparison&&n.comparison>0?e.future?fs(e.future,t):"через "+fs(e.regular,t):e.past?fs(e.past,t):fs(e.regular,t)+" назад":fs(e.regular,t)}const zN={lessThanXSeconds:Ke({regular:{one:"меньше секунды",singularNominative:"меньше {{count}} секунды",singularGenitive:"меньше {{count}} секунд",pluralGenitive:"меньше {{count}} секунд"},future:{one:"меньше, чем через секунду",singularNominative:"меньше, чем через {{count}} секунду",singularGenitive:"меньше, чем через {{count}} секунды",pluralGenitive:"меньше, чем через {{count}} секунд"}}),xSeconds:Ke({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунды",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду назад",singularGenitive:"{{count}} секунды назад",pluralGenitive:"{{count}} секунд назад"},future:{singularNominative:"через {{count}} секунду",singularGenitive:"через {{count}} секунды",pluralGenitive:"через {{count}} секунд"}}),halfAMinute:(e,t)=>t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"через полминуты":"полминуты назад":"полминуты",lessThanXMinutes:Ke({regular:{one:"меньше минуты",singularNominative:"меньше {{count}} минуты",singularGenitive:"меньше {{count}} минут",pluralGenitive:"меньше {{count}} минут"},future:{one:"меньше, чем через минуту",singularNominative:"меньше, чем через {{count}} минуту",singularGenitive:"меньше, чем через {{count}} минуты",pluralGenitive:"меньше, чем через {{count}} минут"}}),xMinutes:Ke({regular:{singularNominative:"{{count}} минута",singularGenitive:"{{count}} минуты",pluralGenitive:"{{count}} минут"},past:{singularNominative:"{{count}} минуту назад",singularGenitive:"{{count}} минуты назад",pluralGenitive:"{{count}} минут назад"},future:{singularNominative:"через {{count}} минуту",singularGenitive:"через {{count}} минуты",pluralGenitive:"через {{count}} минут"}}),aboutXHours:Ke({regular:{singularNominative:"около {{count}} часа",singularGenitive:"около {{count}} часов",pluralGenitive:"около {{count}} часов"},future:{singularNominative:"приблизительно через {{count}} час",singularGenitive:"приблизительно через {{count}} часа",pluralGenitive:"приблизительно через {{count}} часов"}}),xHours:Ke({regular:{singularNominative:"{{count}} час",singularGenitive:"{{count}} часа",pluralGenitive:"{{count}} часов"}}),xDays:Ke({regular:{singularNominative:"{{count}} день",singularGenitive:"{{count}} дня",pluralGenitive:"{{count}} дней"}}),aboutXWeeks:Ke({regular:{singularNominative:"около {{count}} недели",singularGenitive:"около {{count}} недель",pluralGenitive:"около {{count}} недель"},future:{singularNominative:"приблизительно через {{count}} неделю",singularGenitive:"приблизительно через {{count}} недели",pluralGenitive:"приблизительно через {{count}} недель"}}),xWeeks:Ke({regular:{singularNominative:"{{count}} неделя",singularGenitive:"{{count}} недели",pluralGenitive:"{{count}} недель"}}),aboutXMonths:Ke({regular:{singularNominative:"около {{count}} месяца",singularGenitive:"около {{count}} месяцев",pluralGenitive:"около {{count}} месяцев"},future:{singularNominative:"приблизительно через {{count}} месяц",singularGenitive:"приблизительно через {{count}} месяца",pluralGenitive:"приблизительно через {{count}} месяцев"}}),xMonths:Ke({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяца",pluralGenitive:"{{count}} месяцев"}}),aboutXYears:Ke({regular:{singularNominative:"около {{count}} года",singularGenitive:"около {{count}} лет",pluralGenitive:"около {{count}} лет"},future:{singularNominative:"приблизительно через {{count}} год",singularGenitive:"приблизительно через {{count}} года",pluralGenitive:"приблизительно через {{count}} лет"}}),xYears:Ke({regular:{singularNominative:"{{count}} год",singularGenitive:"{{count}} года",pluralGenitive:"{{count}} лет"}}),overXYears:Ke({regular:{singularNominative:"больше {{count}} года",singularGenitive:"больше {{count}} лет",pluralGenitive:"больше {{count}} лет"},future:{singularNominative:"больше, чем через {{count}} год",singularGenitive:"больше, чем через {{count}} года",pluralGenitive:"больше, чем через {{count}} лет"}}),almostXYears:Ke({regular:{singularNominative:"почти {{count}} год",singularGenitive:"почти {{count}} года",pluralGenitive:"почти {{count}} лет"},future:{singularNominative:"почти через {{count}} год",singularGenitive:"почти через {{count}} года",pluralGenitive:"почти через {{count}} лет"}})},WN=(e,t,n)=>zN[e](t,n),UN={full:"EEEE, d MMMM y 'г.'",long:"d MMMM y 'г.'",medium:"d MMM y 'г.'",short:"dd.MM.y"},BN={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},HN={any:"{{date}}, {{time}}"},qN={date:re({formats:UN,defaultWidth:"full"}),time:re({formats:BN,defaultWidth:"full"}),dateTime:re({formats:HN,defaultWidth:"any"})},rh=["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"];function KN(e){const t=rh[e];switch(e){case 0:return"'в прошлое "+t+" в' p";case 1:case 2:case 4:return"'в прошлый "+t+" в' p";case 3:case 5:case 6:return"'в прошлую "+t+" в' p"}}function Up(e){const t=rh[e];return e===2?"'во "+t+" в' p":"'в "+t+" в' p"}function QN(e){const t=rh[e];switch(e){case 0:return"'в следующее "+t+" в' p";case 1:case 2:case 4:return"'в следующий "+t+" в' p";case 3:case 5:case 6:return"'в следующую "+t+" в' p"}}const XN={lastWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Up(r):KN(r)},yesterday:"'вчера в' p",today:"'сегодня в' p",tomorrow:"'завтра в' p",nextWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Up(r):QN(r)},other:"P"},GN=(e,t,n,r)=>{const i=XN[e];return typeof i=="function"?i(t,n,r):i},YN={narrow:["до н.э.","н.э."],abbreviated:["до н. э.","н. э."],wide:["до нашей эры","нашей эры"]},JN={narrow:["1","2","3","4"],abbreviated:["1-й кв.","2-й кв.","3-й кв.","4-й кв."],wide:["1-й квартал","2-й квартал","3-й квартал","4-й квартал"]},ZN={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],wide:["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},e4={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],wide:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},t4={narrow:["В","П","В","С","Ч","П","С"],short:["вс","пн","вт","ср","чт","пт","сб"],abbreviated:["вск","пнд","втр","срд","чтв","птн","суб"],wide:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},n4={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утро",afternoon:"день",evening:"вечер",night:"ночь"}},r4={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утра",afternoon:"дня",evening:"вечера",night:"ночи"}},i4=(e,t)=>{const n=Number(e),r=t==null?void 0:t.unit;let i;return r==="date"?i="-е":r==="week"||r==="minute"||r==="second"?i="-я":i="-й",n+i},s4={ordinalNumber:i4,era:U({values:YN,defaultWidth:"wide"}),quarter:U({values:JN,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:ZN,defaultWidth:"wide",formattingValues:e4,defaultFormattingWidth:"wide"}),day:U({values:t4,defaultWidth:"wide"}),dayPeriod:U({values:n4,defaultWidth:"any",formattingValues:r4,defaultFormattingWidth:"wide"})},o4=/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,a4=/\d+/i,l4={narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},u4={any:[/^д/i,/^н/i]},c4={narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},d4={any:[/1/i,/2/i,/3/i,/4/i]},f4={narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},h4={narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},m4={narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},p4={narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},g4={narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},y4={any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},v4={ordinalNumber:_t({matchPattern:o4,parsePattern:a4,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:l4,defaultMatchWidth:"wide",parsePatterns:u4,defaultParseWidth:"any"}),quarter:B({matchPatterns:c4,defaultMatchWidth:"wide",parsePatterns:d4,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:f4,defaultMatchWidth:"wide",parsePatterns:h4,defaultParseWidth:"any"}),day:B({matchPatterns:m4,defaultMatchWidth:"wide",parsePatterns:p4,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:g4,defaultMatchWidth:"wide",parsePatterns:y4,defaultParseWidth:"any"})},w4={code:"ru",formatDistance:WN,formatLong:qN,formatRelative:GN,localize:s4,match:v4,options:{weekStartsOn:1,firstWeekContainsDate:1}},x4={lessThanXSeconds:{one:"bir saniyeden az",other:"{{count}} saniyeden az"},xSeconds:{one:"1 saniye",other:"{{count}} saniye"},halfAMinute:"yarım dakika",lessThanXMinutes:{one:"bir dakikadan az",other:"{{count}} dakikadan az"},xMinutes:{one:"1 dakika",other:"{{count}} dakika"},aboutXHours:{one:"yaklaşık 1 saat",other:"yaklaşık {{count}} saat"},xHours:{one:"1 saat",other:"{{count}} saat"},xDays:{one:"1 gün",other:"{{count}} gün"},aboutXWeeks:{one:"yaklaşık 1 hafta",other:"yaklaşık {{count}} hafta"},xWeeks:{one:"1 hafta",other:"{{count}} hafta"},aboutXMonths:{one:"yaklaşık 1 ay",other:"yaklaşık {{count}} ay"},xMonths:{one:"1 ay",other:"{{count}} ay"},aboutXYears:{one:"yaklaşık 1 yıl",other:"yaklaşık {{count}} yıl"},xYears:{one:"1 yıl",other:"{{count}} yıl"},overXYears:{one:"1 yıldan fazla",other:"{{count}} yıldan fazla"},almostXYears:{one:"neredeyse 1 yıl",other:"neredeyse {{count}} yıl"}},b4=(e,t,n)=>{let r;const i=x4[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+" sonra":r+" önce":r},S4={full:"d MMMM y EEEE",long:"d MMMM y",medium:"d MMM y",short:"dd.MM.yyyy"},P4={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},k4={full:"{{date}} 'saat' {{time}}",long:"{{date}} 'saat' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},C4={date:re({formats:S4,defaultWidth:"full"}),time:re({formats:P4,defaultWidth:"full"}),dateTime:re({formats:k4,defaultWidth:"full"})},E4={lastWeek:"'geçen hafta' eeee 'saat' p",yesterday:"'dün saat' p",today:"'bugün saat' p",tomorrow:"'yarın saat' p",nextWeek:"eeee 'saat' p",other:"P"},T4=(e,t,n,r)=>E4[e],j4={narrow:["MÖ","MS"],abbreviated:["MÖ","MS"],wide:["Milattan Önce","Milattan Sonra"]},M4={narrow:["1","2","3","4"],abbreviated:["1Ç","2Ç","3Ç","4Ç"],wide:["İlk çeyrek","İkinci Çeyrek","Üçüncü çeyrek","Son çeyrek"]},N4={narrow:["O","Ş","M","N","M","H","T","A","E","E","K","A"],abbreviated:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],wide:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"]},O4={narrow:["P","P","S","Ç","P","C","C"],short:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],abbreviated:["Paz","Pzt","Sal","Çar","Per","Cum","Cts"],wide:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},R4={narrow:{am:"öö",pm:"ös",midnight:"gy",noon:"ö",morning:"sa",afternoon:"ös",evening:"ak",night:"ge"},abbreviated:{am:"ÖÖ",pm:"ÖS",midnight:"gece yarısı",noon:"öğle",morning:"sabah",afternoon:"öğleden sonra",evening:"akşam",night:"gece"},wide:{am:"Ö.Ö.",pm:"Ö.S.",midnight:"gece yarısı",noon:"öğle",morning:"sabah",afternoon:"öğleden sonra",evening:"akşam",night:"gece"}},D4={narrow:{am:"öö",pm:"ös",midnight:"gy",noon:"ö",morning:"sa",afternoon:"ös",evening:"ak",night:"ge"},abbreviated:{am:"ÖÖ",pm:"ÖS",midnight:"gece yarısı",noon:"öğlen",morning:"sabahleyin",afternoon:"öğleden sonra",evening:"akşamleyin",night:"geceleyin"},wide:{am:"ö.ö.",pm:"ö.s.",midnight:"gece yarısı",noon:"öğlen",morning:"sabahleyin",afternoon:"öğleden sonra",evening:"akşamleyin",night:"geceleyin"}},L4=(e,t)=>Number(e)+".",A4={ordinalNumber:L4,era:U({values:j4,defaultWidth:"wide"}),quarter:U({values:M4,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:U({values:N4,defaultWidth:"wide"}),day:U({values:O4,defaultWidth:"wide"}),dayPeriod:U({values:R4,defaultWidth:"wide",formattingValues:D4,defaultFormattingWidth:"wide"})},$4=/^(\d+)(\.)?/i,F4=/\d+/i,V4={narrow:/^(mö|ms)/i,abbreviated:/^(mö|ms)/i,wide:/^(milattan önce|milattan sonra)/i},I4={any:[/(^mö|^milattan önce)/i,/(^ms|^milattan sonra)/i]},_4={narrow:/^[1234]/i,abbreviated:/^[1234]ç/i,wide:/^((i|İ)lk|(i|İ)kinci|üçüncü|son) çeyrek/i},z4={any:[/1/i,/2/i,/3/i,/4/i],abbreviated:[/1ç/i,/2ç/i,/3ç/i,/4ç/i],wide:[/^(i|İ)lk çeyrek/i,/(i|İ)kinci çeyrek/i,/üçüncü çeyrek/i,/son çeyrek/i]},W4={narrow:/^[oşmnhtaek]/i,abbreviated:/^(oca|şub|mar|nis|may|haz|tem|ağu|eyl|eki|kas|ara)/i,wide:/^(ocak|şubat|mart|nisan|mayıs|haziran|temmuz|ağustos|eylül|ekim|kasım|aralık)/i},U4={narrow:[/^o/i,/^ş/i,/^m/i,/^n/i,/^m/i,/^h/i,/^t/i,/^a/i,/^e/i,/^e/i,/^k/i,/^a/i],any:[/^o/i,/^ş/i,/^mar/i,/^n/i,/^may/i,/^h/i,/^t/i,/^ağ/i,/^ey/i,/^ek/i,/^k/i,/^ar/i]},B4={narrow:/^[psçc]/i,short:/^(pz|pt|sa|ça|pe|cu|ct)/i,abbreviated:/^(paz|pzt|sal|çar|per|cum|cts)/i,wide:/^(pazar(?!tesi)|pazartesi|salı|çarşamba|perşembe|cuma(?!rtesi)|cumartesi)/i},H4={narrow:[/^p/i,/^p/i,/^s/i,/^ç/i,/^p/i,/^c/i,/^c/i],any:[/^pz/i,/^pt/i,/^sa/i,/^ça/i,/^pe/i,/^cu/i,/^ct/i],wide:[/^pazar(?!tesi)/i,/^pazartesi/i,/^salı/i,/^çarşamba/i,/^perşembe/i,/^cuma(?!rtesi)/i,/^cumartesi/i]},q4={narrow:/^(öö|ös|gy|ö|sa|ös|ak|ge)/i,any:/^(ö\.?\s?[ös]\.?|öğleden sonra|gece yarısı|öğle|(sabah|öğ|akşam|gece)(leyin))/i},K4={any:{am:/^ö\.?ö\.?/i,pm:/^ö\.?s\.?/i,midnight:/^(gy|gece yarısı)/i,noon:/^öğ/i,morning:/^sa/i,afternoon:/^öğleden sonra/i,evening:/^ak/i,night:/^ge/i}},Q4={ordinalNumber:_t({matchPattern:$4,parsePattern:F4,valueCallback:function(e){return parseInt(e,10)}}),era:B({matchPatterns:V4,defaultMatchWidth:"wide",parsePatterns:I4,defaultParseWidth:"any"}),quarter:B({matchPatterns:_4,defaultMatchWidth:"wide",parsePatterns:z4,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:W4,defaultMatchWidth:"wide",parsePatterns:U4,defaultParseWidth:"any"}),day:B({matchPatterns:B4,defaultMatchWidth:"wide",parsePatterns:H4,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:q4,defaultMatchWidth:"any",parsePatterns:K4,defaultParseWidth:"any"})},X4={code:"tr",formatDistance:b4,formatLong:C4,formatRelative:T4,localize:A4,match:Q4,options:{weekStartsOn:1,firstWeekContainsDate:1}},G4={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},Y4=(e,t,n)=>{let r;const i=G4[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},J4={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},Z4={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},eO={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},tO={date:re({formats:J4,defaultWidth:"full"}),time:re({formats:Z4,defaultWidth:"full"}),dateTime:re({formats:eO,defaultWidth:"full"})};function Bp(e,t,n){const r="eeee p";return lo(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const nO={lastWeek:Bp,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:Bp,other:"PP p"},rO=(e,t,n,r)=>{const i=nO[e];return typeof i=="function"?i(t,n,r):i},iO={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},sO={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},oO={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},aO={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},lO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},uO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},cO=(e,t)=>{const n=Number(e);switch(t==null?void 0:t.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},dO={ordinalNumber:cO,era:U({values:iO,defaultWidth:"wide"}),quarter:U({values:sO,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:oO,defaultWidth:"wide"}),day:U({values:aO,defaultWidth:"wide"}),dayPeriod:U({values:lO,defaultWidth:"wide",formattingValues:uO,defaultFormattingWidth:"wide"})},fO=/^(第\s*)?\d+(日|时|分|秒)?/i,hO=/\d+/i,mO={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},pO={any:[/^(前)/i,/^(公元)/i]},gO={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},yO={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},vO={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},wO={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},xO={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},bO={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},SO={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},PO={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},kO={ordinalNumber:_t({matchPattern:fO,parsePattern:hO,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:mO,defaultMatchWidth:"wide",parsePatterns:pO,defaultParseWidth:"any"}),quarter:B({matchPatterns:gO,defaultMatchWidth:"wide",parsePatterns:yO,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:vO,defaultMatchWidth:"wide",parsePatterns:wO,defaultParseWidth:"any"}),day:B({matchPatterns:xO,defaultMatchWidth:"wide",parsePatterns:bO,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:SO,defaultMatchWidth:"any",parsePatterns:PO,defaultParseWidth:"any"})},CO={code:"zh-CN",formatDistance:Y4,formatLong:tO,formatRelative:rO,localize:dO,match:kO,options:{weekStartsOn:1,firstWeekContainsDate:4}},EO={lessThanXSeconds:{one:"少於 1 秒",other:"少於 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分鐘",lessThanXMinutes:{one:"少於 1 分鐘",other:"少於 {{count}} 分鐘"},xMinutes:{one:"1 分鐘",other:"{{count}} 分鐘"},xHours:{one:"1 小時",other:"{{count}} 小時"},aboutXHours:{one:"大約 1 小時",other:"大約 {{count}} 小時"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大約 1 個星期",other:"大約 {{count}} 個星期"},xWeeks:{one:"1 個星期",other:"{{count}} 個星期"},aboutXMonths:{one:"大約 1 個月",other:"大約 {{count}} 個月"},xMonths:{one:"1 個月",other:"{{count}} 個月"},aboutXYears:{one:"大約 1 年",other:"大約 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超過 1 年",other:"超過 {{count}} 年"},almostXYears:{one:"將近 1 年",other:"將近 {{count}} 年"}},TO=(e,t,n)=>{let r;const i=EO[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+"內":r+"前":r},jO={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},MO={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},NO={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},OO={date:re({formats:jO,defaultWidth:"full"}),time:re({formats:MO,defaultWidth:"full"}),dateTime:re({formats:NO,defaultWidth:"full"})},RO={lastWeek:"'上個'eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個'eeee p",other:"P"},DO=(e,t,n,r)=>RO[e],LO={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},AO={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},$O={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},FO={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},VO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},IO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},_O=(e,t)=>{const n=Number(e);switch(t==null?void 0:t.unit){case"date":return n+"日";case"hour":return n+"時";case"minute":return n+"分";case"second":return n+"秒";default:return"第 "+n}},zO={ordinalNumber:_O,era:U({values:LO,defaultWidth:"wide"}),quarter:U({values:AO,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:$O,defaultWidth:"wide"}),day:U({values:FO,defaultWidth:"wide"}),dayPeriod:U({values:VO,defaultWidth:"wide",formattingValues:IO,defaultFormattingWidth:"wide"})},WO=/^(第\s*)?\d+(日|時|分|秒)?/i,UO=/\d+/i,BO={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},HO={any:[/^(前)/i,/^(公元)/i]},qO={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},KO={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},QO={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},XO={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},GO={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},YO={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},JO={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},ZO={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},eR={ordinalNumber:_t({matchPattern:WO,parsePattern:UO,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:BO,defaultMatchWidth:"wide",parsePatterns:HO,defaultParseWidth:"any"}),quarter:B({matchPatterns:qO,defaultMatchWidth:"wide",parsePatterns:KO,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:QO,defaultMatchWidth:"wide",parsePatterns:XO,defaultParseWidth:"any"}),day:B({matchPatterns:GO,defaultMatchWidth:"wide",parsePatterns:YO,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:JO,defaultMatchWidth:"any",parsePatterns:ZO,defaultParseWidth:"any"})},tR={code:"zh-TW",formatDistance:TO,formatLong:OO,formatRelative:DO,localize:zO,match:eR,options:{weekStartsOn:1,firstWeekContainsDate:4}};function dw(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t${e.text}`,className:"w-full h-[60vh] border-0",sandbox:"allow-popups allow-popups-to-escape-sandbox",title:"Email Content"})})]})}function iR(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-6 h-6",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"})})}function sR(e){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",...e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M20.25 20.25v-4.5m0 4.5h-4.5m4.5 0L15 15M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15m11.25-6L15 9"})})}const oR={zh:CO,"zh-TW":tR,en:eu,fr:Ej,ja:LM,de:YT,ko:cN,it:iM,pt:_N,tr:X4,ru:w4};function aR({emails:e,isLoading:t,isFetching:n,onDelete:r,isDeleting:i,onRefresh:s,selectedIds:o,setSelectedIds:a,isAddressCreated:l,onSelectEmail:u,showViewPasswordButton:c,onShowPassword:d,selectedEmail:f,onCloseDetail:m,onExpand:p}){const{t:v,i18n:x}=ar(),y=oR[x.language]||eu,g=P=>{a(T=>T.includes(P)?T.filter(C=>C!==P):[...T,P])},w=()=>{e.length!==0&&(o.length===e.length?a([]):a(e.map(P=>P.id)))},S=()=>f?h.jsx(mw,{email:f,onClose:m}):l?t?h.jsxs("div",{className:"w-full items-center h-full flex-col justify-center flex",children:[h.jsx(Hp,{}),h.jsx("p",{className:"text-zinc-400 mt-6",children:v("Waiting for emails...")})]}):e.length===0?h.jsxs("div",{className:"w-full items-center h-full flex-col justify-center flex",children:[h.jsx(Hp,{}),h.jsx("p",{className:"text-zinc-400 mt-6",children:v("Waiting for emails...")})]}):e.map(P=>{var T,C;return h.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[h.jsx("input",{type:"checkbox",className:"h-4 w-4 rounded border-neutral-300 bg-neutral-100 data-[state=checked]:border-neutral-900 data-[state=checked]:bg-neutral-600 data-[state=checked]:text-neutral-100 dark:border-neutral-700 dark:bg-neutral-800 dark:data-[state=checked]:border-neutral-300 dark:data-[state=checked]:bg-neutral-300",checked:o.includes(P.id),onChange:()=>g(P.id)}),h.jsxs("div",{onClick:()=>u(P),className:"cursor-pointer flex-1 flex flex-col items-start gap-2 rounded-lg border border-zinc-600 p-3 text-left text-sm transition-all hover:bg-zinc-700",children:[h.jsxs("div",{className:"flex w-full flex-col gap-1",children:[h.jsxs("div",{className:"flex items-center",children:[h.jsx("div",{className:"flex items-center gap-2",children:h.jsxs("div",{className:"font-semibold",children:[((T=P.from)==null?void 0:T.name)||P.messageFrom," ",((C=P.from)==null?void 0:C.address)&&`(${P.from.address})`]})}),h.jsx("div",{className:"ml-auto text-xs",children:ST(new Date(P.date||P.createdAt),{addSuffix:!0,locale:y})})]}),h.jsx("div",{className:"text-xs font-medium",children:P.subject})]}),h.jsx("div",{className:"line-clamp-2 text-xs text-zinc-300 font-normal w-full",children:(P.text||P.html||"").substring(0,300)})]})]},P.id)}):h.jsxs("div",{className:"w-full items-center h-full flex-col justify-center flex",children:[h.jsx(nR,{}),h.jsx("p",{className:"text-zinc-400 mt-6",children:v("Please create a temporary email address first")})]});return h.jsxs("div",{className:"rounded-md border border-cyan-50/20 text-white",children:[h.jsxs("div",{className:"w-full rounded-t-md p-2 flex items-center bg-zinc-800 text-zinc-200 gap-2",children:[h.jsxs("div",{className:"flex items-center justify-start gap-2 font-bold",children:[h.jsx(fw,{className:"size-6"}),v("INBOX"),l&&e.length>0&&!f&&h.jsx("span",{className:"inline-flex items-center justify-center w-5 h-5 text-xs font-bold text-white bg-zinc-600 rounded-full",children:e.length}),f&&h.jsxs("button",{onClick:m,className:"flex items-center gap-1 text-sm font-semibold text-cyan-400 hover:text-cyan-300 ml-2",children:[h.jsx(iR,{}),v("Return to email list")]})]}),h.jsx("div",{className:"ml-auto flex items-center gap-2",children:f?h.jsxs(h.Fragment,{children:[h.jsx("button",{onClick:p,className:"p-1 rounded text-cyan-400 hover:text-cyan-300",title:v("Expand"),children:h.jsx(sR,{className:"w-5 h-5"})}),h.jsx("button",{onClick:()=>r([f.id]),disabled:i,className:"p-1 rounded text-red-500 disabled:text-gray-500 hover:text-red-400",title:v("Delete"),children:h.jsx(qp,{className:"w-5 h-5"})})]}):h.jsxs(h.Fragment,{children:[c&&h.jsx("button",{className:"p-1 rounded text-cyan-400 hover:text-cyan-300",title:v("View password"),onClick:d,children:h.jsx(Cd,{className:"w-5 h-5"})}),l&&e.length>0&&h.jsxs(h.Fragment,{children:[h.jsx("input",{type:"checkbox",className:"h-4 w-4 rounded bg-zinc-700 border-zinc-600 text-cyan-600 focus:ring-cyan-500",title:"全选",checked:o.length===e.length&&e.length>0,onChange:w}),h.jsx("button",{onClick:()=>r(o),disabled:o.length===0||i,className:"p-1 rounded text-red-500 disabled:text-gray-500 hover:text-red-400",title:"删除选中",children:h.jsx(qp,{className:"w-5 h-5"})})]}),h.jsx("button",{className:"p-1 rounded",title:"refresh",onClick:s,disabled:!l||n,children:h.jsx(hw,{className:uo("size-6",l&&"animate-spin")})})]})})]}),h.jsx("div",{className:uo("flex flex-col flex-1 overflow-y-auto p-2",!f&&"grids h-[488px]"),children:S()})]})}function lR(e){return h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[h.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h.jsx("path",{d:"M5 12l5 5l10 -10"})]})}function uR(e){return h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[h.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h.jsx("path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z"}),h.jsx("path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1"})]})}function Ed({text:e,className:t}){const[n,r]=b.useState(!1),{t:i}=ar(),s=async()=>{try{await navigator.clipboard.writeText(e),r(!0),J.success(i("Copied to clipboard"))}catch(o){console.error("复制文本失败: ",o)}};return b.useEffect(()=>{if(n){const o=setTimeout(()=>{r(!1)},2e3);return()=>clearTimeout(o)}},[n]),h.jsx("button",{onClick:s,className:uo("focus:outline-none focus-visible:outline-none",t),"aria-label":"Copy to clipboard",children:n?h.jsx(lR,{className:"h-5 w-5 text-green-500"}):h.jsx(uR,{className:"h-5 w-5 text-gray-400"})})}const tu="/api";async function cR(e){const t=await fetch(`${tu}/emails`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:e})});if(!t.ok)throw new Error("Network response was not ok");return t.json()}async function dR(e){const t=await fetch(`${tu}/verify`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e})});if(!t.ok){const n=await t.json();throw new Error(n.message||"Turnstile verification failed")}return t.json()}async function fR(e){const t=await fetch(`${tu}/delete-emails`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e})});if(!t.ok)throw new Error("Failed to delete emails");return t.json()}async function hR(e){const t=await fetch(`${tu}/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(!t.ok){const n=await t.json();throw new Error(n.message||"Login failed")}return t.json()}const pw=b.createContext(null),gw=()=>{const e=b.useContext(pw);if(!e)throw new Error("useConfig 必须在 ConfigProvider 内部使用");return e};function mR(){const e="abcdefghijklmnopqrstuvwxyz.";return e.charAt(Math.floor(Math.random()*e.length))}function pR(e,t){let n="";for(let r=0;r{function n(){t({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",n),n(),()=>window.removeEventListener("resize",n)},[]),{windowSize:e,isMobile:typeof(e==null?void 0:e.width)=="number"&&(e==null?void 0:e.width)<768,isDesktop:typeof(e==null?void 0:e.width)=="number"&&(e==null?void 0:e.width)>=768}}const ih=b.createContext({});function nu(e){const t=b.useRef(null);return t.current===null&&(t.current=e()),t.current}const ru=b.createContext(null),sh=b.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class yR extends b.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function vR({children:e,isPresent:t}){const n=b.useId(),r=b.useRef(null),i=b.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=b.useContext(sh);return b.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:u}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const c=document.createElement("style");return s&&(c.nonce=s),document.head.appendChild(c),c.sheet&&c.sheet.insertRule(` +`,aa=16,d3=({reverseOrder:e,position:t="top-center",toastOptions:n,gutter:r,children:i,toasterId:s,containerStyle:o,containerClassName:a})=>{let{toasts:l,handlers:u}=VE(n,s);return b.createElement("div",{"data-rht-toaster":s||"",style:{position:"fixed",zIndex:9999,top:aa,left:aa,right:aa,bottom:aa,pointerEvents:"none",...o},className:a,onMouseEnter:u.startPause,onMouseLeave:u.endPause},l.map(c=>{let d=c.position||t,f=u.calculateOffset(c,{reverseOrder:e,gutter:r,defaultPosition:t}),m=u3(d,f);return b.createElement(l3,{id:c.id,key:c.id,onHeightUpdate:u.updateHeight,className:c.visible?c3:"",style:m},c.type==="custom"?pl(c.message,c):i?i(c):b.createElement(a3,{toast:c,position:d}))}))},f3=J;function le(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function zr(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}const uw=6048e5,h3=864e5,la=43200,Fp=1440;let m3={};function Ao(){return m3}function Wr(e,t){var a,l,u,c;const n=Ao(),r=(t==null?void 0:t.weekStartsOn)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.weekStartsOn)??n.weekStartsOn??((c=(u=n.locale)==null?void 0:u.options)==null?void 0:c.weekStartsOn)??0,i=le(e),s=i.getDay(),o=(s=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function Ip(e){const t=le(e);return t.setHours(0,0,0,0),t}function yl(e){const t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}function p3(e,t){const n=Ip(e),r=Ip(t),i=n.getTime()-yl(n),s=r.getTime()-yl(r);return Math.round((i-s)/h3)}function g3(e){const t=cw(e),n=zr(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),gl(n)}function Aa(e,t){const n=le(e),r=le(t),i=n.getTime()-r.getTime();return i<0?-1:i>0?1:i}function y3(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function v3(e){if(!y3(e)&&typeof e!="number")return!1;const t=le(e);return!isNaN(Number(t))}function w3(e,t){const n=le(e),r=le(t),i=n.getFullYear()-r.getFullYear(),s=n.getMonth()-r.getMonth();return i*12+s}function x3(e){return e?Math[e]:Math.trunc}function b3(e,t){return le(e).getTime()-le(t).getTime()}function S3(e){const t=le(e);return t.setHours(23,59,59,999),t}function P3(e){const t=le(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function k3(e){const t=le(e);return+S3(t)==+P3(t)}function C3(e,t){const n=le(e),r=le(t),i=Aa(n,r),s=Math.abs(w3(n,r));let o;if(s<1)o=0;else{n.getMonth()===1&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-i*s);let a=Aa(n,r)===-i;k3(le(e))&&s===1&&Aa(e,r)===1&&(a=!1),o=i*(s-Number(a))}return o===0?0:o}function E3(e,t,n){const r=b3(e,t)/1e3;return x3(n==null?void 0:n.roundingMethod)(r)}function T3(e){const t=le(e),n=zr(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const j3={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},N3=(e,t,n)=>{let r;const i=j3[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function re(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const M3={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},O3={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},R3={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},D3={date:re({formats:M3,defaultWidth:"full"}),time:re({formats:O3,defaultWidth:"full"}),dateTime:re({formats:R3,defaultWidth:"full"})},L3={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},A3=(e,t,n,r)=>L3[e];function U(e){return(t,n)=>{const r=n!=null&&n.context?String(n.context):"standalone";let i;if(r==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,a=n!=null&&n.width?String(n.width):o;i=e.formattingValues[a]||e.formattingValues[o]}else{const o=e.defaultWidth,a=n!=null&&n.width?String(n.width):e.defaultWidth;i=e.values[a]||e.values[o]}const s=e.argumentCallback?e.argumentCallback(t):t;return i[s]}}const $3={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},F3={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},I3={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},V3={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},_3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},z3={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},W3=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},U3={ordinalNumber:W3,era:U({values:$3,defaultWidth:"wide"}),quarter:U({values:F3,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:I3,defaultWidth:"wide"}),day:U({values:V3,defaultWidth:"wide"}),dayPeriod:U({values:_3,defaultWidth:"wide",formattingValues:z3,defaultFormattingWidth:"wide"})};function B(e){return(t,n={})=>{const r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(i);if(!s)return null;const o=s[0],a=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(a)?H3(a,d=>d.test(o)):B3(a,d=>d.test(o));let u;u=e.valueCallback?e.valueCallback(l):l,u=n.valueCallback?n.valueCallback(u):u;const c=t.slice(o.length);return{value:u,rest:c}}}function B3(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function H3(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const i=r[0],s=t.match(e.parsePattern);if(!s)return null;let o=e.valueCallback?e.valueCallback(s[0]):s[0];o=n.valueCallback?n.valueCallback(o):o;const a=t.slice(i.length);return{value:o,rest:a}}}const q3=/^(\d+)(th|st|nd|rd)?/i,K3=/\d+/i,Q3={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},X3={any:[/^b/i,/^(a|c)/i]},G3={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Y3={any:[/1/i,/2/i,/3/i,/4/i]},J3={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Z3={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},eT={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},tT={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},nT={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},rT={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},iT={ordinalNumber:_t({matchPattern:q3,parsePattern:K3,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:Q3,defaultMatchWidth:"wide",parsePatterns:X3,defaultParseWidth:"any"}),quarter:B({matchPatterns:G3,defaultMatchWidth:"wide",parsePatterns:Y3,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:J3,defaultMatchWidth:"wide",parsePatterns:Z3,defaultParseWidth:"any"}),day:B({matchPatterns:eT,defaultMatchWidth:"wide",parsePatterns:tT,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:nT,defaultMatchWidth:"any",parsePatterns:rT,defaultParseWidth:"any"})},nu={code:"en-US",formatDistance:N3,formatLong:D3,formatRelative:A3,localize:U3,match:iT,options:{weekStartsOn:0,firstWeekContainsDate:1}};function sT(e){const t=le(e);return p3(t,T3(t))+1}function oT(e){const t=le(e),n=gl(t).getTime()-g3(t).getTime();return Math.round(n/uw)+1}function dw(e,t){var c,d,f,m;const n=le(e),r=n.getFullYear(),i=Ao(),s=(t==null?void 0:t.firstWeekContainsDate)??((d=(c=t==null?void 0:t.locale)==null?void 0:c.options)==null?void 0:d.firstWeekContainsDate)??i.firstWeekContainsDate??((m=(f=i.locale)==null?void 0:f.options)==null?void 0:m.firstWeekContainsDate)??1,o=zr(e,0);o.setFullYear(r+1,0,s),o.setHours(0,0,0,0);const a=Wr(o,t),l=zr(e,0);l.setFullYear(r,0,s),l.setHours(0,0,0,0);const u=Wr(l,t);return n.getTime()>=a.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function aT(e,t){var a,l,u,c;const n=Ao(),r=(t==null?void 0:t.firstWeekContainsDate)??((l=(a=t==null?void 0:t.locale)==null?void 0:a.options)==null?void 0:l.firstWeekContainsDate)??n.firstWeekContainsDate??((c=(u=n.locale)==null?void 0:u.options)==null?void 0:c.firstWeekContainsDate)??1,i=dw(e,t),s=zr(e,0);return s.setFullYear(i,0,r),s.setHours(0,0,0,0),Wr(s,t)}function lT(e,t){const n=le(e),r=Wr(n,t).getTime()-aT(n,t).getTime();return Math.round(r/uw)+1}function se(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Cn={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return se(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):se(n+1,2)},d(e,t){return se(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return se(e.getHours()%12||12,t.length)},H(e,t){return se(e.getHours(),t.length)},m(e,t){return se(e.getMinutes(),t.length)},s(e,t){return se(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),i=Math.floor(r*Math.pow(10,n-3));return se(i,t.length)}},Xr={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},uT={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return Cn.y(e,t)},Y:function(e,t,n,r){const i=dw(e,r),s=i>0?i:1-i;if(t==="YY"){const o=s%100;return se(o,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):se(s,t.length)},R:function(e,t){const n=cw(e);return se(n,t.length)},u:function(e,t){const n=e.getFullYear();return se(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return se(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return se(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Cn.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return se(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const i=lT(e,r);return t==="wo"?n.ordinalNumber(i,{unit:"week"}):se(i,t.length)},I:function(e,t,n){const r=oT(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):se(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Cn.d(e,t)},D:function(e,t,n){const r=sT(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):se(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const i=e.getDay(),s=(i-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return se(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});case"eeee":default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const i=e.getDay(),s=(i-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return se(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});case"cccc":default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),i=r===0?7:r;switch(t){case"i":return String(i);case"ii":return se(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const i=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let i;switch(r===12?i=Xr.noon:r===0?i=Xr.midnight:i=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let i;switch(r>=17?i=Xr.evening:r>=12?i=Xr.afternoon:r>=4?i=Xr.morning:i=Xr.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Cn.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Cn.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):se(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):se(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Cn.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Cn.s(e,t)},S:function(e,t){return Cn.S(e,t)},X:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();if(s===0)return"Z";switch(t){case"X":return _p(s);case"XXXX":case"XX":return mr(s);case"XXXXX":case"XXX":default:return mr(s,":")}},x:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return _p(s);case"xxxx":case"xx":return mr(s);case"xxxxx":case"xxx":default:return mr(s,":")}},O:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Vp(s,":");case"OOOO":default:return"GMT"+mr(s,":")}},z:function(e,t,n,r){const s=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Vp(s,":");case"zzzz":default:return"GMT"+mr(s,":")}},t:function(e,t,n,r){const i=r._originalDate||e,s=Math.floor(i.getTime()/1e3);return se(s,t.length)},T:function(e,t,n,r){const s=(r._originalDate||e).getTime();return se(s,t.length)}};function Vp(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),s=r%60;return s===0?n+String(i):n+String(i)+t+se(s,2)}function _p(e,t){return e%60===0?(e>0?"-":"+")+se(Math.abs(e)/60,2):mr(e,t)}function mr(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),i=se(Math.floor(r/60),2),s=se(r%60,2);return n+i+t+s}const zp=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},fw=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},cT=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return zp(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",zp(r,t)).replace("{{time}}",fw(i,t))},dT={p:fw,P:cT},fT=/^D+$/,hT=/^Y+$/,mT=["D","DD","YY","YYYY"];function pT(e){return fT.test(e)}function gT(e){return hT.test(e)}function Wp(e,t,n){const r=yT(e,t,n);if(console.warn(r),mT.includes(e))throw new RangeError(r)}function yT(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const vT=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,wT=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,xT=/^'([^]*?)'?$/,bT=/''/g,ST=/[a-zA-Z]/;function PT(e,t,n){var c,d,f,m;const r=Ao(),i=r.locale??nu,s=r.firstWeekContainsDate??((d=(c=r.locale)==null?void 0:c.options)==null?void 0:d.firstWeekContainsDate)??1,o=r.weekStartsOn??((m=(f=r.locale)==null?void 0:f.options)==null?void 0:m.weekStartsOn)??0,a=le(e);if(!v3(a))throw new RangeError("Invalid time value");const l={firstWeekContainsDate:s,weekStartsOn:o,locale:i,_originalDate:a};return t.match(wT).map(function(p){const v=p[0];if(v==="p"||v==="P"){const x=dT[v];return x(p,i.formatLong)}return p}).join("").match(vT).map(function(p){if(p==="''")return"'";const v=p[0];if(v==="'")return kT(p);const x=uT[v];if(x)return gT(p)&&Wp(p,t,String(e)),pT(p)&&Wp(p,t,String(e)),x(a,p,i.localize,l);if(v.match(ST))throw new RangeError("Format string contains an unescaped latin alphabet character `"+v+"`");return p}).join("")}function kT(e){const t=e.match(xT);return t?t[1].replace(bT,"'"):e}function CT(e,t,n){const r=Ao(),i=(n==null?void 0:n.locale)??r.locale??nu,s=2520,o=Aa(e,t);if(isNaN(o))throw new RangeError("Invalid time value");const a=Object.assign({},n,{addSuffix:n==null?void 0:n.addSuffix,comparison:o});let l,u;o>0?(l=le(t),u=le(e)):(l=le(e),u=le(t));const c=E3(u,l),d=(yl(u)-yl(l))/1e3,f=Math.round((c-d)/60);let m;if(f<2)return n!=null&&n.includeSeconds?c<5?i.formatDistance("lessThanXSeconds",5,a):c<10?i.formatDistance("lessThanXSeconds",10,a):c<20?i.formatDistance("lessThanXSeconds",20,a):c<40?i.formatDistance("halfAMinute",0,a):c<60?i.formatDistance("lessThanXMinutes",1,a):i.formatDistance("xMinutes",1,a):f===0?i.formatDistance("lessThanXMinutes",1,a):i.formatDistance("xMinutes",f,a);if(f<45)return i.formatDistance("xMinutes",f,a);if(f<90)return i.formatDistance("aboutXHours",1,a);if(f{let r;const i=n!=null&&n.addSuffix?Up[e].withPreposition:Up[e].standalone;return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:"vor "+r:r},jT={full:"EEEE, do MMMM y",long:"do MMMM y",medium:"do MMM y",short:"dd.MM.y"},NT={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},MT={full:"{{date}} 'um' {{time}}",long:"{{date}} 'um' {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},OT={date:re({formats:jT,defaultWidth:"full"}),time:re({formats:NT,defaultWidth:"full"}),dateTime:re({formats:MT,defaultWidth:"full"})},RT={lastWeek:"'letzten' eeee 'um' p",yesterday:"'gestern um' p",today:"'heute um' p",tomorrow:"'morgen um' p",nextWeek:"eeee 'um' p",other:"P"},DT=(e,t,n,r)=>RT[e],LT={narrow:["v.Chr.","n.Chr."],abbreviated:["v.Chr.","n.Chr."],wide:["vor Christus","nach Christus"]},AT={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"]},Cd={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],wide:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},$T={narrow:Cd.narrow,abbreviated:["Jan.","Feb.","März","Apr.","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez."],wide:Cd.wide},FT={narrow:["S","M","D","M","D","F","S"],short:["So","Mo","Di","Mi","Do","Fr","Sa"],abbreviated:["So.","Mo.","Di.","Mi.","Do.","Fr.","Sa."],wide:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},IT={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachm.",evening:"Abend",night:"Nacht"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"Morgen",afternoon:"Nachmittag",evening:"Abend",night:"Nacht"}},VT={narrow:{am:"vm.",pm:"nm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachm.",evening:"abends",night:"nachts"},abbreviated:{am:"vorm.",pm:"nachm.",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"},wide:{am:"vormittags",pm:"nachmittags",midnight:"Mitternacht",noon:"Mittag",morning:"morgens",afternoon:"nachmittags",evening:"abends",night:"nachts"}},_T=e=>Number(e)+".",zT={ordinalNumber:_T,era:U({values:LT,defaultWidth:"wide"}),quarter:U({values:AT,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:Cd,formattingValues:$T,defaultWidth:"wide"}),day:U({values:FT,defaultWidth:"wide"}),dayPeriod:U({values:IT,defaultWidth:"wide",formattingValues:VT,defaultFormattingWidth:"wide"})},WT=/^(\d+)(\.)?/i,UT=/\d+/i,BT={narrow:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,abbreviated:/^(v\.? ?Chr\.?|n\.? ?Chr\.?)/i,wide:/^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i},HT={any:[/^v/i,/^n/i]},qT={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](\.)? Quartal/i},KT={any:[/1/i,/2/i,/3/i,/4/i]},QT={narrow:/^[jfmasond]/i,abbreviated:/^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\.?/i,wide:/^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i},XT={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^j[aä]/i,/^f/i,/^mär/i,/^ap/i,/^mai/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},GT={narrow:/^[smdmf]/i,short:/^(so|mo|di|mi|do|fr|sa)/i,abbreviated:/^(son?|mon?|die?|mit?|don?|fre?|sam?)\.?/i,wide:/^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i},YT={any:[/^so/i,/^mo/i,/^di/i,/^mi/i,/^do/i,/^f/i,/^sa/i]},JT={narrow:/^(vm\.?|nm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,abbreviated:/^(vorm\.?|nachm\.?|Mitternacht|Mittag|morgens|nachm\.?|abends|nachts)/i,wide:/^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i},ZT={any:{am:/^v/i,pm:/^n/i,midnight:/^Mitte/i,noon:/^Mitta/i,morning:/morgens/i,afternoon:/nachmittags/i,evening:/abends/i,night:/nachts/i}},ej={ordinalNumber:_t({matchPattern:WT,parsePattern:UT,valueCallback:e=>parseInt(e)}),era:B({matchPatterns:BT,defaultMatchWidth:"wide",parsePatterns:HT,defaultParseWidth:"any"}),quarter:B({matchPatterns:qT,defaultMatchWidth:"wide",parsePatterns:KT,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:QT,defaultMatchWidth:"wide",parsePatterns:XT,defaultParseWidth:"any"}),day:B({matchPatterns:GT,defaultMatchWidth:"wide",parsePatterns:YT,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:JT,defaultMatchWidth:"wide",parsePatterns:ZT,defaultParseWidth:"any"})},tj={code:"de",formatDistance:TT,formatLong:OT,formatRelative:DT,localize:zT,match:ej,options:{weekStartsOn:1,firstWeekContainsDate:4}},nj={lessThanXSeconds:{one:"moins d’une seconde",other:"moins de {{count}} secondes"},xSeconds:{one:"1 seconde",other:"{{count}} secondes"},halfAMinute:"30 secondes",lessThanXMinutes:{one:"moins d’une minute",other:"moins de {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"environ 1 heure",other:"environ {{count}} heures"},xHours:{one:"1 heure",other:"{{count}} heures"},xDays:{one:"1 jour",other:"{{count}} jours"},aboutXWeeks:{one:"environ 1 semaine",other:"environ {{count}} semaines"},xWeeks:{one:"1 semaine",other:"{{count}} semaines"},aboutXMonths:{one:"environ 1 mois",other:"environ {{count}} mois"},xMonths:{one:"1 mois",other:"{{count}} mois"},aboutXYears:{one:"environ 1 an",other:"environ {{count}} ans"},xYears:{one:"1 an",other:"{{count}} ans"},overXYears:{one:"plus d’un an",other:"plus de {{count}} ans"},almostXYears:{one:"presqu’un an",other:"presque {{count}} ans"}},rj=(e,t,n)=>{let r;const i=nj[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"dans "+r:"il y a "+r:r},ij={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},sj={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},oj={full:"{{date}} 'à' {{time}}",long:"{{date}} 'à' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},aj={date:re({formats:ij,defaultWidth:"full"}),time:re({formats:sj,defaultWidth:"full"}),dateTime:re({formats:oj,defaultWidth:"full"})},lj={lastWeek:"eeee 'dernier à' p",yesterday:"'hier à' p",today:"'aujourd’hui à' p",tomorrow:"'demain à' p'",nextWeek:"eeee 'prochain à' p",other:"P"},uj=(e,t,n,r)=>lj[e],cj={narrow:["av. J.-C","ap. J.-C"],abbreviated:["av. J.-C","ap. J.-C"],wide:["avant Jésus-Christ","après Jésus-Christ"]},dj={narrow:["T1","T2","T3","T4"],abbreviated:["1er trim.","2ème trim.","3ème trim.","4ème trim."],wide:["1er trimestre","2ème trimestre","3ème trimestre","4ème trimestre"]},fj={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],wide:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},hj={narrow:["D","L","M","M","J","V","S"],short:["di","lu","ma","me","je","ve","sa"],abbreviated:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],wide:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},mj={narrow:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"mat.",afternoon:"ap.m.",evening:"soir",night:"mat."},abbreviated:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"matin",afternoon:"après-midi",evening:"soir",night:"matin"},wide:{am:"AM",pm:"PM",midnight:"minuit",noon:"midi",morning:"du matin",afternoon:"de l’après-midi",evening:"du soir",night:"du matin"}},pj=(e,t)=>{const n=Number(e),r=t==null?void 0:t.unit;if(n===0)return"0";const i=["year","week","hour","minute","second"];let s;return n===1?s=r&&i.includes(r)?"ère":"er":s="ème",n+s},gj={ordinalNumber:pj,era:U({values:cj,defaultWidth:"wide"}),quarter:U({values:dj,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:fj,defaultWidth:"wide"}),day:U({values:hj,defaultWidth:"wide"}),dayPeriod:U({values:mj,defaultWidth:"wide"})},yj=/^(\d+)(ième|ère|ème|er|e)?/i,vj=/\d+/i,wj={narrow:/^(av\.J\.C|ap\.J\.C|ap\.J\.-C)/i,abbreviated:/^(av\.J\.-C|av\.J-C|apr\.J\.-C|apr\.J-C|ap\.J-C)/i,wide:/^(avant Jésus-Christ|après Jésus-Christ)/i},xj={any:[/^av/i,/^ap/i]},bj={narrow:/^T?[1234]/i,abbreviated:/^[1234](er|ème|e)? trim\.?/i,wide:/^[1234](er|ème|e)? trimestre/i},Sj={any:[/1/i,/2/i,/3/i,/4/i]},Pj={narrow:/^[jfmasond]/i,abbreviated:/^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\.?/i,wide:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i},kj={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^av/i,/^ma/i,/^juin/i,/^juil/i,/^ao/i,/^s/i,/^o/i,/^n/i,/^d/i]},Cj={narrow:/^[lmjvsd]/i,short:/^(di|lu|ma|me|je|ve|sa)/i,abbreviated:/^(dim|lun|mar|mer|jeu|ven|sam)\.?/i,wide:/^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i},Ej={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^j/i,/^v/i,/^s/i],any:[/^di/i,/^lu/i,/^ma/i,/^me/i,/^je/i,/^ve/i,/^sa/i]},Tj={narrow:/^(a|p|minuit|midi|mat\.?|ap\.?m\.?|soir|nuit)/i,any:/^([ap]\.?\s?m\.?|du matin|de l'après[-\s]midi|du soir|de la nuit)/i},jj={any:{am:/^a/i,pm:/^p/i,midnight:/^min/i,noon:/^mid/i,morning:/mat/i,afternoon:/ap/i,evening:/soir/i,night:/nuit/i}},Nj={ordinalNumber:_t({matchPattern:yj,parsePattern:vj,valueCallback:e=>parseInt(e)}),era:B({matchPatterns:wj,defaultMatchWidth:"wide",parsePatterns:xj,defaultParseWidth:"any"}),quarter:B({matchPatterns:bj,defaultMatchWidth:"wide",parsePatterns:Sj,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:Pj,defaultMatchWidth:"wide",parsePatterns:kj,defaultParseWidth:"any"}),day:B({matchPatterns:Cj,defaultMatchWidth:"wide",parsePatterns:Ej,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:Tj,defaultMatchWidth:"any",parsePatterns:jj,defaultParseWidth:"any"})},Mj={code:"fr",formatDistance:rj,formatLong:aj,formatRelative:uj,localize:gj,match:Nj,options:{weekStartsOn:1,firstWeekContainsDate:4}},Oj={lessThanXSeconds:{one:"meno di un secondo",other:"meno di {{count}} secondi"},xSeconds:{one:"un secondo",other:"{{count}} secondi"},halfAMinute:"alcuni secondi",lessThanXMinutes:{one:"meno di un minuto",other:"meno di {{count}} minuti"},xMinutes:{one:"un minuto",other:"{{count}} minuti"},aboutXHours:{one:"circa un'ora",other:"circa {{count}} ore"},xHours:{one:"un'ora",other:"{{count}} ore"},xDays:{one:"un giorno",other:"{{count}} giorni"},aboutXWeeks:{one:"circa una settimana",other:"circa {{count}} settimane"},xWeeks:{one:"una settimana",other:"{{count}} settimane"},aboutXMonths:{one:"circa un mese",other:"circa {{count}} mesi"},xMonths:{one:"un mese",other:"{{count}} mesi"},aboutXYears:{one:"circa un anno",other:"circa {{count}} anni"},xYears:{one:"un anno",other:"{{count}} anni"},overXYears:{one:"più di un anno",other:"più di {{count}} anni"},almostXYears:{one:"quasi un anno",other:"quasi {{count}} anni"}},Rj=(e,t,n)=>{let r;const i=Oj[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"tra "+r:r+" fa":r},Dj={full:"EEEE d MMMM y",long:"d MMMM y",medium:"d MMM y",short:"dd/MM/y"},Lj={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Aj={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},$j={date:re({formats:Dj,defaultWidth:"full"}),time:re({formats:Lj,defaultWidth:"full"}),dateTime:re({formats:Aj,defaultWidth:"full"})},rh=["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"];function Fj(e){switch(e){case 0:return"'domenica scorsa alle' p";default:return"'"+rh[e]+" scorso alle' p"}}function Bp(e){return"'"+rh[e]+" alle' p"}function Ij(e){switch(e){case 0:return"'domenica prossima alle' p";default:return"'"+rh[e]+" prossimo alle' p"}}const Vj={lastWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Bp(r):Fj(r)},yesterday:"'ieri alle' p",today:"'oggi alle' p",tomorrow:"'domani alle' p",nextWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Bp(r):Ij(r)},other:"P"},_j=(e,t,n,r)=>{const i=Vj[e];return typeof i=="function"?i(t,n,r):i},zj={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["avanti Cristo","dopo Cristo"]},Wj={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},Uj={narrow:["G","F","M","A","M","G","L","A","S","O","N","D"],abbreviated:["gen","feb","mar","apr","mag","giu","lug","ago","set","ott","nov","dic"],wide:["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},Bj={narrow:["D","L","M","M","G","V","S"],short:["dom","lun","mar","mer","gio","ven","sab"],abbreviated:["dom","lun","mar","mer","gio","ven","sab"],wide:["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},Hj={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"mattina",afternoon:"pomeriggio",evening:"sera",night:"notte"}},qj={narrow:{am:"m.",pm:"p.",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},abbreviated:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"},wide:{am:"AM",pm:"PM",midnight:"mezzanotte",noon:"mezzogiorno",morning:"di mattina",afternoon:"del pomeriggio",evening:"di sera",night:"di notte"}},Kj=(e,t)=>{const n=Number(e);return String(n)},Qj={ordinalNumber:Kj,era:U({values:zj,defaultWidth:"wide"}),quarter:U({values:Wj,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:Uj,defaultWidth:"wide"}),day:U({values:Bj,defaultWidth:"wide"}),dayPeriod:U({values:Hj,defaultWidth:"wide",formattingValues:qj,defaultFormattingWidth:"wide"})},Xj=/^(\d+)(º)?/i,Gj=/\d+/i,Yj={narrow:/^(aC|dC)/i,abbreviated:/^(a\.?\s?C\.?|a\.?\s?e\.?\s?v\.?|d\.?\s?C\.?|e\.?\s?v\.?)/i,wide:/^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i},Jj={any:[/^a/i,/^(d|e)/i]},Zj={narrow:/^[1234]/i,abbreviated:/^t[1234]/i,wide:/^[1234](º)? trimestre/i},eN={any:[/1/i,/2/i,/3/i,/4/i]},tN={narrow:/^[gfmalsond]/i,abbreviated:/^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,wide:/^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i},nN={narrow:[/^g/i,/^f/i,/^m/i,/^a/i,/^m/i,/^g/i,/^l/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ge/i,/^f/i,/^mar/i,/^ap/i,/^mag/i,/^gi/i,/^l/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},rN={narrow:/^[dlmgvs]/i,short:/^(do|lu|ma|me|gi|ve|sa)/i,abbreviated:/^(dom|lun|mar|mer|gio|ven|sab)/i,wide:/^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i},iN={narrow:[/^d/i,/^l/i,/^m/i,/^m/i,/^g/i,/^v/i,/^s/i],any:[/^d/i,/^l/i,/^ma/i,/^me/i,/^g/i,/^v/i,/^s/i]},sN={narrow:/^(a|m\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,any:/^([ap]\.?\s?m\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i},oN={any:{am:/^a/i,pm:/^p/i,midnight:/^mezza/i,noon:/^mezzo/i,morning:/mattina/i,afternoon:/pomeriggio/i,evening:/sera/i,night:/notte/i}},aN={ordinalNumber:_t({matchPattern:Xj,parsePattern:Gj,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:Yj,defaultMatchWidth:"wide",parsePatterns:Jj,defaultParseWidth:"any"}),quarter:B({matchPatterns:Zj,defaultMatchWidth:"wide",parsePatterns:eN,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:tN,defaultMatchWidth:"wide",parsePatterns:nN,defaultParseWidth:"any"}),day:B({matchPatterns:rN,defaultMatchWidth:"wide",parsePatterns:iN,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:sN,defaultMatchWidth:"any",parsePatterns:oN,defaultParseWidth:"any"})},lN={code:"it",formatDistance:Rj,formatLong:$j,formatRelative:_j,localize:Qj,match:aN,options:{weekStartsOn:1,firstWeekContainsDate:4}},uN={lessThanXSeconds:{one:"1秒未満",other:"{{count}}秒未満",oneWithSuffix:"約1秒",otherWithSuffix:"約{{count}}秒"},xSeconds:{one:"1秒",other:"{{count}}秒"},halfAMinute:"30秒",lessThanXMinutes:{one:"1分未満",other:"{{count}}分未満",oneWithSuffix:"約1分",otherWithSuffix:"約{{count}}分"},xMinutes:{one:"1分",other:"{{count}}分"},aboutXHours:{one:"約1時間",other:"約{{count}}時間"},xHours:{one:"1時間",other:"{{count}}時間"},xDays:{one:"1日",other:"{{count}}日"},aboutXWeeks:{one:"約1週間",other:"約{{count}}週間"},xWeeks:{one:"1週間",other:"{{count}}週間"},aboutXMonths:{one:"約1か月",other:"約{{count}}か月"},xMonths:{one:"1か月",other:"{{count}}か月"},aboutXYears:{one:"約1年",other:"約{{count}}年"},xYears:{one:"1年",other:"{{count}}年"},overXYears:{one:"1年以上",other:"{{count}}年以上"},almostXYears:{one:"1年近く",other:"{{count}}年近く"}},cN=(e,t,n)=>{n=n||{};let r;const i=uN[e];return typeof i=="string"?r=i:t===1?n.addSuffix&&i.oneWithSuffix?r=i.oneWithSuffix:r=i.one:n.addSuffix&&i.otherWithSuffix?r=i.otherWithSuffix.replace("{{count}}",String(t)):r=i.other.replace("{{count}}",String(t)),n.addSuffix?n.comparison&&n.comparison>0?r+"後":r+"前":r},dN={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},fN={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},hN={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},mN={date:re({formats:dN,defaultWidth:"full"}),time:re({formats:fN,defaultWidth:"full"}),dateTime:re({formats:hN,defaultWidth:"full"})},pN={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},gN=(e,t,n,r)=>pN[e],yN={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},vN={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},wN={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},xN={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},bN={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},SN={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},PN=(e,t)=>{const n=Number(e);switch(String(t==null?void 0:t.unit)){case"year":return`${n}年`;case"quarter":return`第${n}四半期`;case"month":return`${n}月`;case"week":return`第${n}週`;case"date":return`${n}日`;case"hour":return`${n}時`;case"minute":return`${n}分`;case"second":return`${n}秒`;default:return`${n}`}},kN={ordinalNumber:PN,era:U({values:yN,defaultWidth:"wide"}),quarter:U({values:vN,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:U({values:wN,defaultWidth:"wide"}),day:U({values:xN,defaultWidth:"wide"}),dayPeriod:U({values:bN,defaultWidth:"wide",formattingValues:SN,defaultFormattingWidth:"wide"})},CN=/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,EN=/\d+/i,TN={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},jN={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},NN={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},MN={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},ON={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},RN={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},DN={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},LN={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},AN={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},$N={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},FN={ordinalNumber:_t({matchPattern:CN,parsePattern:EN,valueCallback:function(e){return parseInt(e,10)}}),era:B({matchPatterns:TN,defaultMatchWidth:"wide",parsePatterns:jN,defaultParseWidth:"any"}),quarter:B({matchPatterns:NN,defaultMatchWidth:"wide",parsePatterns:MN,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:ON,defaultMatchWidth:"wide",parsePatterns:RN,defaultParseWidth:"any"}),day:B({matchPatterns:DN,defaultMatchWidth:"wide",parsePatterns:LN,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:AN,defaultMatchWidth:"any",parsePatterns:$N,defaultParseWidth:"any"})},IN={code:"ja",formatDistance:cN,formatLong:mN,formatRelative:gN,localize:kN,match:FN,options:{weekStartsOn:0,firstWeekContainsDate:1}},VN={lessThanXSeconds:{one:"1초 미만",other:"{{count}}초 미만"},xSeconds:{one:"1초",other:"{{count}}초"},halfAMinute:"30초",lessThanXMinutes:{one:"1분 미만",other:"{{count}}분 미만"},xMinutes:{one:"1분",other:"{{count}}분"},aboutXHours:{one:"약 1시간",other:"약 {{count}}시간"},xHours:{one:"1시간",other:"{{count}}시간"},xDays:{one:"1일",other:"{{count}}일"},aboutXWeeks:{one:"약 1주",other:"약 {{count}}주"},xWeeks:{one:"1주",other:"{{count}}주"},aboutXMonths:{one:"약 1개월",other:"약 {{count}}개월"},xMonths:{one:"1개월",other:"{{count}}개월"},aboutXYears:{one:"약 1년",other:"약 {{count}}년"},xYears:{one:"1년",other:"{{count}}년"},overXYears:{one:"1년 이상",other:"{{count}}년 이상"},almostXYears:{one:"거의 1년",other:"거의 {{count}}년"}},_N=(e,t,n)=>{let r;const i=VN[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+" 후":r+" 전":r},zN={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},WN={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},UN={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},BN={date:re({formats:zN,defaultWidth:"full"}),time:re({formats:WN,defaultWidth:"full"}),dateTime:re({formats:UN,defaultWidth:"full"})},HN={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"},qN=(e,t,n,r)=>HN[e],KN={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},QN={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},XN={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],wide:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},GN={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},YN={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},JN={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},ZN=(e,t)=>{const n=Number(e);switch(String(t==null?void 0:t.unit)){case"minute":case"second":return String(n);case"date":return n+"일";default:return n+"번째"}},eM={ordinalNumber:ZN,era:U({values:KN,defaultWidth:"wide"}),quarter:U({values:QN,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:XN,defaultWidth:"wide"}),day:U({values:GN,defaultWidth:"wide"}),dayPeriod:U({values:YN,defaultWidth:"wide",formattingValues:JN,defaultFormattingWidth:"wide"})},tM=/^(\d+)(일|번째)?/i,nM=/\d+/i,rM={narrow:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(기원전|서기)/i},iM={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},sM={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},oM={any:[/1/i,/2/i,/3/i,/4/i]},aM={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},lM={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},uM={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},cM={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},dM={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},fM={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},hM={ordinalNumber:_t({matchPattern:tM,parsePattern:nM,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:rM,defaultMatchWidth:"wide",parsePatterns:iM,defaultParseWidth:"any"}),quarter:B({matchPatterns:sM,defaultMatchWidth:"wide",parsePatterns:oM,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:aM,defaultMatchWidth:"wide",parsePatterns:lM,defaultParseWidth:"any"}),day:B({matchPatterns:uM,defaultMatchWidth:"wide",parsePatterns:cM,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:dM,defaultMatchWidth:"any",parsePatterns:fM,defaultParseWidth:"any"})},mM={code:"ko",formatDistance:_N,formatLong:BN,formatRelative:qN,localize:eM,match:hM,options:{weekStartsOn:0,firstWeekContainsDate:1}},pM={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"aproximadamente 1 hora",other:"aproximadamente {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"aproximadamente 1 semana",other:"aproximadamente {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"aproximadamente 1 mês",other:"aproximadamente {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"aproximadamente 1 ano",other:"aproximadamente {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}},gM=(e,t,n)=>{let r;const i=pM[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?"daqui a "+r:"há "+r:r},yM={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d 'de' MMM 'de' y",short:"dd/MM/y"},vM={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},wM={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},xM={date:re({formats:yM,defaultWidth:"full"}),time:re({formats:vM,defaultWidth:"full"}),dateTime:re({formats:wM,defaultWidth:"full"})},bM={lastWeek:e=>{const t=e.getDay();return"'"+(t===0||t===6?"último":"última")+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"},SM=(e,t,n,r)=>{const i=bM[e];return typeof i=="function"?i(t):i},PM={narrow:["aC","dC"],abbreviated:["a.C.","d.C."],wide:["antes de Cristo","depois de Cristo"]},kM={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},CM={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},EM={narrow:["d","s","t","q","q","s","s"],short:["dom","seg","ter","qua","qui","sex","sáb"],abbreviated:["dom","seg","ter","qua","qui","sex","sáb"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},TM={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"noite",night:"madrugada"}},jM={narrow:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"},wide:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da noite",night:"da madrugada"}},NM=(e,t)=>Number(e)+"º",MM={ordinalNumber:NM,era:U({values:PM,defaultWidth:"wide"}),quarter:U({values:kM,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:CM,defaultWidth:"wide"}),day:U({values:EM,defaultWidth:"wide"}),dayPeriod:U({values:TM,defaultWidth:"wide",formattingValues:jM,defaultFormattingWidth:"wide"})},OM=/^(\d+)(º|ª)?/i,RM=/\d+/i,DM={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|a\.?\s?e\.?\s?c\.?|d\.?\s?c\.?|e\.?\s?c\.?)/i,wide:/^(antes de cristo|antes da era comum|depois de cristo|era comum)/i},LM={any:[/^ac/i,/^dc/i],wide:[/^(antes de cristo|antes da era comum)/i,/^(depois de cristo|era comum)/i]},AM={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º|ª)? trimestre/i},$M={any:[/1/i,/2/i,/3/i,/4/i]},FM={narrow:/^[jfmasond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},IM={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ab/i,/^mai/i,/^jun/i,/^jul/i,/^ag/i,/^s/i,/^o/i,/^n/i,/^d/i]},VM={narrow:/^[dstq]/i,short:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,wide:/^(domingo|segunda-?\s?feira|terça-?\s?feira|quarta-?\s?feira|quinta-?\s?feira|sexta-?\s?feira|s[áa]bado)/i},_M={narrow:[/^d/i,/^s/i,/^t/i,/^q/i,/^q/i,/^s/i,/^s/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[áa]/i]},zM={narrow:/^(a|p|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,any:/^([ap]\.?\s?m\.?|meia-?\s?noite|meio-?\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i},WM={any:{am:/^a/i,pm:/^p/i,midnight:/^meia/i,noon:/^meio/i,morning:/manh[ãa]/i,afternoon:/tarde/i,evening:/noite/i,night:/madrugada/i}},UM={ordinalNumber:_t({matchPattern:OM,parsePattern:RM,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:DM,defaultMatchWidth:"wide",parsePatterns:LM,defaultParseWidth:"any"}),quarter:B({matchPatterns:AM,defaultMatchWidth:"wide",parsePatterns:$M,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:FM,defaultMatchWidth:"wide",parsePatterns:IM,defaultParseWidth:"any"}),day:B({matchPatterns:VM,defaultMatchWidth:"wide",parsePatterns:_M,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:zM,defaultMatchWidth:"any",parsePatterns:WM,defaultParseWidth:"any"})},BM={code:"pt",formatDistance:gM,formatLong:xM,formatRelative:SM,localize:MM,match:UM,options:{weekStartsOn:1,firstWeekContainsDate:4}};function fs(e,t){if(e.one!==void 0&&t===1)return e.one;const n=t%10,r=t%100;return n===1&&r!==11?e.singularNominative.replace("{{count}}",String(t)):n>=2&&n<=4&&(r<10||r>20)?e.singularGenitive.replace("{{count}}",String(t)):e.pluralGenitive.replace("{{count}}",String(t))}function Ke(e){return(t,n)=>n!=null&&n.addSuffix?n.comparison&&n.comparison>0?e.future?fs(e.future,t):"через "+fs(e.regular,t):e.past?fs(e.past,t):fs(e.regular,t)+" назад":fs(e.regular,t)}const HM={lessThanXSeconds:Ke({regular:{one:"меньше секунды",singularNominative:"меньше {{count}} секунды",singularGenitive:"меньше {{count}} секунд",pluralGenitive:"меньше {{count}} секунд"},future:{one:"меньше, чем через секунду",singularNominative:"меньше, чем через {{count}} секунду",singularGenitive:"меньше, чем через {{count}} секунды",pluralGenitive:"меньше, чем через {{count}} секунд"}}),xSeconds:Ke({regular:{singularNominative:"{{count}} секунда",singularGenitive:"{{count}} секунды",pluralGenitive:"{{count}} секунд"},past:{singularNominative:"{{count}} секунду назад",singularGenitive:"{{count}} секунды назад",pluralGenitive:"{{count}} секунд назад"},future:{singularNominative:"через {{count}} секунду",singularGenitive:"через {{count}} секунды",pluralGenitive:"через {{count}} секунд"}}),halfAMinute:(e,t)=>t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"через полминуты":"полминуты назад":"полминуты",lessThanXMinutes:Ke({regular:{one:"меньше минуты",singularNominative:"меньше {{count}} минуты",singularGenitive:"меньше {{count}} минут",pluralGenitive:"меньше {{count}} минут"},future:{one:"меньше, чем через минуту",singularNominative:"меньше, чем через {{count}} минуту",singularGenitive:"меньше, чем через {{count}} минуты",pluralGenitive:"меньше, чем через {{count}} минут"}}),xMinutes:Ke({regular:{singularNominative:"{{count}} минута",singularGenitive:"{{count}} минуты",pluralGenitive:"{{count}} минут"},past:{singularNominative:"{{count}} минуту назад",singularGenitive:"{{count}} минуты назад",pluralGenitive:"{{count}} минут назад"},future:{singularNominative:"через {{count}} минуту",singularGenitive:"через {{count}} минуты",pluralGenitive:"через {{count}} минут"}}),aboutXHours:Ke({regular:{singularNominative:"около {{count}} часа",singularGenitive:"около {{count}} часов",pluralGenitive:"около {{count}} часов"},future:{singularNominative:"приблизительно через {{count}} час",singularGenitive:"приблизительно через {{count}} часа",pluralGenitive:"приблизительно через {{count}} часов"}}),xHours:Ke({regular:{singularNominative:"{{count}} час",singularGenitive:"{{count}} часа",pluralGenitive:"{{count}} часов"}}),xDays:Ke({regular:{singularNominative:"{{count}} день",singularGenitive:"{{count}} дня",pluralGenitive:"{{count}} дней"}}),aboutXWeeks:Ke({regular:{singularNominative:"около {{count}} недели",singularGenitive:"около {{count}} недель",pluralGenitive:"около {{count}} недель"},future:{singularNominative:"приблизительно через {{count}} неделю",singularGenitive:"приблизительно через {{count}} недели",pluralGenitive:"приблизительно через {{count}} недель"}}),xWeeks:Ke({regular:{singularNominative:"{{count}} неделя",singularGenitive:"{{count}} недели",pluralGenitive:"{{count}} недель"}}),aboutXMonths:Ke({regular:{singularNominative:"около {{count}} месяца",singularGenitive:"около {{count}} месяцев",pluralGenitive:"около {{count}} месяцев"},future:{singularNominative:"приблизительно через {{count}} месяц",singularGenitive:"приблизительно через {{count}} месяца",pluralGenitive:"приблизительно через {{count}} месяцев"}}),xMonths:Ke({regular:{singularNominative:"{{count}} месяц",singularGenitive:"{{count}} месяца",pluralGenitive:"{{count}} месяцев"}}),aboutXYears:Ke({regular:{singularNominative:"около {{count}} года",singularGenitive:"около {{count}} лет",pluralGenitive:"около {{count}} лет"},future:{singularNominative:"приблизительно через {{count}} год",singularGenitive:"приблизительно через {{count}} года",pluralGenitive:"приблизительно через {{count}} лет"}}),xYears:Ke({regular:{singularNominative:"{{count}} год",singularGenitive:"{{count}} года",pluralGenitive:"{{count}} лет"}}),overXYears:Ke({regular:{singularNominative:"больше {{count}} года",singularGenitive:"больше {{count}} лет",pluralGenitive:"больше {{count}} лет"},future:{singularNominative:"больше, чем через {{count}} год",singularGenitive:"больше, чем через {{count}} года",pluralGenitive:"больше, чем через {{count}} лет"}}),almostXYears:Ke({regular:{singularNominative:"почти {{count}} год",singularGenitive:"почти {{count}} года",pluralGenitive:"почти {{count}} лет"},future:{singularNominative:"почти через {{count}} год",singularGenitive:"почти через {{count}} года",pluralGenitive:"почти через {{count}} лет"}})},qM=(e,t,n)=>HM[e](t,n),KM={full:"EEEE, d MMMM y 'г.'",long:"d MMMM y 'г.'",medium:"d MMM y 'г.'",short:"dd.MM.y"},QM={full:"H:mm:ss zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},XM={any:"{{date}}, {{time}}"},GM={date:re({formats:KM,defaultWidth:"full"}),time:re({formats:QM,defaultWidth:"full"}),dateTime:re({formats:XM,defaultWidth:"any"})},ih=["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"];function YM(e){const t=ih[e];switch(e){case 0:return"'в прошлое "+t+" в' p";case 1:case 2:case 4:return"'в прошлый "+t+" в' p";case 3:case 5:case 6:return"'в прошлую "+t+" в' p"}}function Hp(e){const t=ih[e];return e===2?"'во "+t+" в' p":"'в "+t+" в' p"}function JM(e){const t=ih[e];switch(e){case 0:return"'в следующее "+t+" в' p";case 1:case 2:case 4:return"'в следующий "+t+" в' p";case 3:case 5:case 6:return"'в следующую "+t+" в' p"}}const ZM={lastWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Hp(r):YM(r)},yesterday:"'вчера в' p",today:"'сегодня в' p",tomorrow:"'завтра в' p",nextWeek:(e,t,n)=>{const r=e.getDay();return lo(e,t,n)?Hp(r):JM(r)},other:"P"},e4=(e,t,n,r)=>{const i=ZM[e];return typeof i=="function"?i(t,n,r):i},t4={narrow:["до н.э.","н.э."],abbreviated:["до н. э.","н. э."],wide:["до нашей эры","нашей эры"]},n4={narrow:["1","2","3","4"],abbreviated:["1-й кв.","2-й кв.","3-й кв.","4-й кв."],wide:["1-й квартал","2-й квартал","3-й квартал","4-й квартал"]},r4={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","март","апр.","май","июнь","июль","авг.","сент.","окт.","нояб.","дек."],wide:["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},i4={narrow:["Я","Ф","М","А","М","И","И","А","С","О","Н","Д"],abbreviated:["янв.","фев.","мар.","апр.","мая","июн.","июл.","авг.","сент.","окт.","нояб.","дек."],wide:["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]},s4={narrow:["В","П","В","С","Ч","П","С"],short:["вс","пн","вт","ср","чт","пт","сб"],abbreviated:["вск","пнд","втр","срд","чтв","птн","суб"],wide:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},o4={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утро",afternoon:"день",evening:"веч.",night:"ночь"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утро",afternoon:"день",evening:"вечер",night:"ночь"}},a4={narrow:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},abbreviated:{am:"ДП",pm:"ПП",midnight:"полн.",noon:"полд.",morning:"утра",afternoon:"дня",evening:"веч.",night:"ночи"},wide:{am:"ДП",pm:"ПП",midnight:"полночь",noon:"полдень",morning:"утра",afternoon:"дня",evening:"вечера",night:"ночи"}},l4=(e,t)=>{const n=Number(e),r=t==null?void 0:t.unit;let i;return r==="date"?i="-е":r==="week"||r==="minute"||r==="second"?i="-я":i="-й",n+i},u4={ordinalNumber:l4,era:U({values:t4,defaultWidth:"wide"}),quarter:U({values:n4,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:r4,defaultWidth:"wide",formattingValues:i4,defaultFormattingWidth:"wide"}),day:U({values:s4,defaultWidth:"wide"}),dayPeriod:U({values:o4,defaultWidth:"any",formattingValues:a4,defaultFormattingWidth:"wide"})},c4=/^(\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i,d4=/\d+/i,f4={narrow:/^((до )?н\.?\s?э\.?)/i,abbreviated:/^((до )?н\.?\s?э\.?)/i,wide:/^(до нашей эры|нашей эры|наша эра)/i},h4={any:[/^д/i,/^н/i]},m4={narrow:/^[1234]/i,abbreviated:/^[1234](-?[ыои]?й?)? кв.?/i,wide:/^[1234](-?[ыои]?й?)? квартал/i},p4={any:[/1/i,/2/i,/3/i,/4/i]},g4={narrow:/^[яфмаисонд]/i,abbreviated:/^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\.?/i,wide:/^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i},y4={narrow:[/^я/i,/^ф/i,/^м/i,/^а/i,/^м/i,/^и/i,/^и/i,/^а/i,/^с/i,/^о/i,/^н/i,/^я/i],any:[/^я/i,/^ф/i,/^мар/i,/^ап/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^ав/i,/^с/i,/^о/i,/^н/i,/^д/i]},v4={narrow:/^[впсч]/i,short:/^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\.?/i,abbreviated:/^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,wide:/^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i},w4={narrow:[/^в/i,/^п/i,/^в/i,/^с/i,/^ч/i,/^п/i,/^с/i],any:[/^в[ос]/i,/^п[он]/i,/^в/i,/^ср/i,/^ч/i,/^п[ят]/i,/^с[уб]/i]},x4={narrow:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,abbreviated:/^([дп]п|полн\.?|полд\.?|утр[оа]|день|дня|веч\.?|ноч[ьи])/i,wide:/^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i},b4={any:{am:/^дп/i,pm:/^пп/i,midnight:/^полн/i,noon:/^полд/i,morning:/^у/i,afternoon:/^д[ен]/i,evening:/^в/i,night:/^н/i}},S4={ordinalNumber:_t({matchPattern:c4,parsePattern:d4,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:f4,defaultMatchWidth:"wide",parsePatterns:h4,defaultParseWidth:"any"}),quarter:B({matchPatterns:m4,defaultMatchWidth:"wide",parsePatterns:p4,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:g4,defaultMatchWidth:"wide",parsePatterns:y4,defaultParseWidth:"any"}),day:B({matchPatterns:v4,defaultMatchWidth:"wide",parsePatterns:w4,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:x4,defaultMatchWidth:"wide",parsePatterns:b4,defaultParseWidth:"any"})},P4={code:"ru",formatDistance:qM,formatLong:GM,formatRelative:e4,localize:u4,match:S4,options:{weekStartsOn:1,firstWeekContainsDate:1}},k4={lessThanXSeconds:{one:"bir saniyeden az",other:"{{count}} saniyeden az"},xSeconds:{one:"1 saniye",other:"{{count}} saniye"},halfAMinute:"yarım dakika",lessThanXMinutes:{one:"bir dakikadan az",other:"{{count}} dakikadan az"},xMinutes:{one:"1 dakika",other:"{{count}} dakika"},aboutXHours:{one:"yaklaşık 1 saat",other:"yaklaşık {{count}} saat"},xHours:{one:"1 saat",other:"{{count}} saat"},xDays:{one:"1 gün",other:"{{count}} gün"},aboutXWeeks:{one:"yaklaşık 1 hafta",other:"yaklaşık {{count}} hafta"},xWeeks:{one:"1 hafta",other:"{{count}} hafta"},aboutXMonths:{one:"yaklaşık 1 ay",other:"yaklaşık {{count}} ay"},xMonths:{one:"1 ay",other:"{{count}} ay"},aboutXYears:{one:"yaklaşık 1 yıl",other:"yaklaşık {{count}} yıl"},xYears:{one:"1 yıl",other:"{{count}} yıl"},overXYears:{one:"1 yıldan fazla",other:"{{count}} yıldan fazla"},almostXYears:{one:"neredeyse 1 yıl",other:"neredeyse {{count}} yıl"}},C4=(e,t,n)=>{let r;const i=k4[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",t.toString()),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+" sonra":r+" önce":r},E4={full:"d MMMM y EEEE",long:"d MMMM y",medium:"d MMM y",short:"dd.MM.yyyy"},T4={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},j4={full:"{{date}} 'saat' {{time}}",long:"{{date}} 'saat' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},N4={date:re({formats:E4,defaultWidth:"full"}),time:re({formats:T4,defaultWidth:"full"}),dateTime:re({formats:j4,defaultWidth:"full"})},M4={lastWeek:"'geçen hafta' eeee 'saat' p",yesterday:"'dün saat' p",today:"'bugün saat' p",tomorrow:"'yarın saat' p",nextWeek:"eeee 'saat' p",other:"P"},O4=(e,t,n,r)=>M4[e],R4={narrow:["MÖ","MS"],abbreviated:["MÖ","MS"],wide:["Milattan Önce","Milattan Sonra"]},D4={narrow:["1","2","3","4"],abbreviated:["1Ç","2Ç","3Ç","4Ç"],wide:["İlk çeyrek","İkinci Çeyrek","Üçüncü çeyrek","Son çeyrek"]},L4={narrow:["O","Ş","M","N","M","H","T","A","E","E","K","A"],abbreviated:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],wide:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"]},A4={narrow:["P","P","S","Ç","P","C","C"],short:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],abbreviated:["Paz","Pzt","Sal","Çar","Per","Cum","Cts"],wide:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},$4={narrow:{am:"öö",pm:"ös",midnight:"gy",noon:"ö",morning:"sa",afternoon:"ös",evening:"ak",night:"ge"},abbreviated:{am:"ÖÖ",pm:"ÖS",midnight:"gece yarısı",noon:"öğle",morning:"sabah",afternoon:"öğleden sonra",evening:"akşam",night:"gece"},wide:{am:"Ö.Ö.",pm:"Ö.S.",midnight:"gece yarısı",noon:"öğle",morning:"sabah",afternoon:"öğleden sonra",evening:"akşam",night:"gece"}},F4={narrow:{am:"öö",pm:"ös",midnight:"gy",noon:"ö",morning:"sa",afternoon:"ös",evening:"ak",night:"ge"},abbreviated:{am:"ÖÖ",pm:"ÖS",midnight:"gece yarısı",noon:"öğlen",morning:"sabahleyin",afternoon:"öğleden sonra",evening:"akşamleyin",night:"geceleyin"},wide:{am:"ö.ö.",pm:"ö.s.",midnight:"gece yarısı",noon:"öğlen",morning:"sabahleyin",afternoon:"öğleden sonra",evening:"akşamleyin",night:"geceleyin"}},I4=(e,t)=>Number(e)+".",V4={ordinalNumber:I4,era:U({values:R4,defaultWidth:"wide"}),quarter:U({values:D4,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:U({values:L4,defaultWidth:"wide"}),day:U({values:A4,defaultWidth:"wide"}),dayPeriod:U({values:$4,defaultWidth:"wide",formattingValues:F4,defaultFormattingWidth:"wide"})},_4=/^(\d+)(\.)?/i,z4=/\d+/i,W4={narrow:/^(mö|ms)/i,abbreviated:/^(mö|ms)/i,wide:/^(milattan önce|milattan sonra)/i},U4={any:[/(^mö|^milattan önce)/i,/(^ms|^milattan sonra)/i]},B4={narrow:/^[1234]/i,abbreviated:/^[1234]ç/i,wide:/^((i|İ)lk|(i|İ)kinci|üçüncü|son) çeyrek/i},H4={any:[/1/i,/2/i,/3/i,/4/i],abbreviated:[/1ç/i,/2ç/i,/3ç/i,/4ç/i],wide:[/^(i|İ)lk çeyrek/i,/(i|İ)kinci çeyrek/i,/üçüncü çeyrek/i,/son çeyrek/i]},q4={narrow:/^[oşmnhtaek]/i,abbreviated:/^(oca|şub|mar|nis|may|haz|tem|ağu|eyl|eki|kas|ara)/i,wide:/^(ocak|şubat|mart|nisan|mayıs|haziran|temmuz|ağustos|eylül|ekim|kasım|aralık)/i},K4={narrow:[/^o/i,/^ş/i,/^m/i,/^n/i,/^m/i,/^h/i,/^t/i,/^a/i,/^e/i,/^e/i,/^k/i,/^a/i],any:[/^o/i,/^ş/i,/^mar/i,/^n/i,/^may/i,/^h/i,/^t/i,/^ağ/i,/^ey/i,/^ek/i,/^k/i,/^ar/i]},Q4={narrow:/^[psçc]/i,short:/^(pz|pt|sa|ça|pe|cu|ct)/i,abbreviated:/^(paz|pzt|sal|çar|per|cum|cts)/i,wide:/^(pazar(?!tesi)|pazartesi|salı|çarşamba|perşembe|cuma(?!rtesi)|cumartesi)/i},X4={narrow:[/^p/i,/^p/i,/^s/i,/^ç/i,/^p/i,/^c/i,/^c/i],any:[/^pz/i,/^pt/i,/^sa/i,/^ça/i,/^pe/i,/^cu/i,/^ct/i],wide:[/^pazar(?!tesi)/i,/^pazartesi/i,/^salı/i,/^çarşamba/i,/^perşembe/i,/^cuma(?!rtesi)/i,/^cumartesi/i]},G4={narrow:/^(öö|ös|gy|ö|sa|ös|ak|ge)/i,any:/^(ö\.?\s?[ös]\.?|öğleden sonra|gece yarısı|öğle|(sabah|öğ|akşam|gece)(leyin))/i},Y4={any:{am:/^ö\.?ö\.?/i,pm:/^ö\.?s\.?/i,midnight:/^(gy|gece yarısı)/i,noon:/^öğ/i,morning:/^sa/i,afternoon:/^öğleden sonra/i,evening:/^ak/i,night:/^ge/i}},J4={ordinalNumber:_t({matchPattern:_4,parsePattern:z4,valueCallback:function(e){return parseInt(e,10)}}),era:B({matchPatterns:W4,defaultMatchWidth:"wide",parsePatterns:U4,defaultParseWidth:"any"}),quarter:B({matchPatterns:B4,defaultMatchWidth:"wide",parsePatterns:H4,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:q4,defaultMatchWidth:"wide",parsePatterns:K4,defaultParseWidth:"any"}),day:B({matchPatterns:Q4,defaultMatchWidth:"wide",parsePatterns:X4,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:G4,defaultMatchWidth:"any",parsePatterns:Y4,defaultParseWidth:"any"})},Z4={code:"tr",formatDistance:C4,formatLong:N4,formatRelative:O4,localize:V4,match:J4,options:{weekStartsOn:1,firstWeekContainsDate:1}},eO={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},tO=(e,t,n)=>{let r;const i=eO[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},nO={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},rO={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},iO={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},sO={date:re({formats:nO,defaultWidth:"full"}),time:re({formats:rO,defaultWidth:"full"}),dateTime:re({formats:iO,defaultWidth:"full"})};function qp(e,t,n){const r="eeee p";return lo(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const oO={lastWeek:qp,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:qp,other:"PP p"},aO=(e,t,n,r)=>{const i=oO[e];return typeof i=="function"?i(t,n,r):i},lO={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},uO={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},cO={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},dO={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},fO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},hO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},mO=(e,t)=>{const n=Number(e);switch(t==null?void 0:t.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},pO={ordinalNumber:mO,era:U({values:lO,defaultWidth:"wide"}),quarter:U({values:uO,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:cO,defaultWidth:"wide"}),day:U({values:dO,defaultWidth:"wide"}),dayPeriod:U({values:fO,defaultWidth:"wide",formattingValues:hO,defaultFormattingWidth:"wide"})},gO=/^(第\s*)?\d+(日|时|分|秒)?/i,yO=/\d+/i,vO={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},wO={any:[/^(前)/i,/^(公元)/i]},xO={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},bO={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},SO={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},PO={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},kO={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},CO={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},EO={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},TO={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},jO={ordinalNumber:_t({matchPattern:gO,parsePattern:yO,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:vO,defaultMatchWidth:"wide",parsePatterns:wO,defaultParseWidth:"any"}),quarter:B({matchPatterns:xO,defaultMatchWidth:"wide",parsePatterns:bO,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:SO,defaultMatchWidth:"wide",parsePatterns:PO,defaultParseWidth:"any"}),day:B({matchPatterns:kO,defaultMatchWidth:"wide",parsePatterns:CO,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:EO,defaultMatchWidth:"any",parsePatterns:TO,defaultParseWidth:"any"})},NO={code:"zh-CN",formatDistance:tO,formatLong:sO,formatRelative:aO,localize:pO,match:jO,options:{weekStartsOn:1,firstWeekContainsDate:4}},MO={lessThanXSeconds:{one:"少於 1 秒",other:"少於 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分鐘",lessThanXMinutes:{one:"少於 1 分鐘",other:"少於 {{count}} 分鐘"},xMinutes:{one:"1 分鐘",other:"{{count}} 分鐘"},xHours:{one:"1 小時",other:"{{count}} 小時"},aboutXHours:{one:"大約 1 小時",other:"大約 {{count}} 小時"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大約 1 個星期",other:"大約 {{count}} 個星期"},xWeeks:{one:"1 個星期",other:"{{count}} 個星期"},aboutXMonths:{one:"大約 1 個月",other:"大約 {{count}} 個月"},xMonths:{one:"1 個月",other:"{{count}} 個月"},aboutXYears:{one:"大約 1 年",other:"大約 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超過 1 年",other:"超過 {{count}} 年"},almostXYears:{one:"將近 1 年",other:"將近 {{count}} 年"}},OO=(e,t,n)=>{let r;const i=MO[e];return typeof i=="string"?r=i:t===1?r=i.one:r=i.other.replace("{{count}}",String(t)),n!=null&&n.addSuffix?n.comparison&&n.comparison>0?r+"內":r+"前":r},RO={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},DO={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},LO={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},AO={date:re({formats:RO,defaultWidth:"full"}),time:re({formats:DO,defaultWidth:"full"}),dateTime:re({formats:LO,defaultWidth:"full"})},$O={lastWeek:"'上個'eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個'eeee p",other:"P"},FO=(e,t,n,r)=>$O[e],IO={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},VO={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},_O={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},zO={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},WO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},UO={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},BO=(e,t)=>{const n=Number(e);switch(t==null?void 0:t.unit){case"date":return n+"日";case"hour":return n+"時";case"minute":return n+"分";case"second":return n+"秒";default:return"第 "+n}},HO={ordinalNumber:BO,era:U({values:IO,defaultWidth:"wide"}),quarter:U({values:VO,defaultWidth:"wide",argumentCallback:e=>e-1}),month:U({values:_O,defaultWidth:"wide"}),day:U({values:zO,defaultWidth:"wide"}),dayPeriod:U({values:WO,defaultWidth:"wide",formattingValues:UO,defaultFormattingWidth:"wide"})},qO=/^(第\s*)?\d+(日|時|分|秒)?/i,KO=/\d+/i,QO={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},XO={any:[/^(前)/i,/^(公元)/i]},GO={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},YO={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},JO={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},ZO={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},eR={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},tR={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},nR={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},rR={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},iR={ordinalNumber:_t({matchPattern:qO,parsePattern:KO,valueCallback:e=>parseInt(e,10)}),era:B({matchPatterns:QO,defaultMatchWidth:"wide",parsePatterns:XO,defaultParseWidth:"any"}),quarter:B({matchPatterns:GO,defaultMatchWidth:"wide",parsePatterns:YO,defaultParseWidth:"any",valueCallback:e=>e+1}),month:B({matchPatterns:JO,defaultMatchWidth:"wide",parsePatterns:ZO,defaultParseWidth:"any"}),day:B({matchPatterns:eR,defaultMatchWidth:"wide",parsePatterns:tR,defaultParseWidth:"any"}),dayPeriod:B({matchPatterns:nR,defaultMatchWidth:"any",parsePatterns:rR,defaultParseWidth:"any"})},sR={code:"zh-TW",formatDistance:OO,formatLong:AO,formatRelative:FO,localize:HO,match:iR,options:{weekStartsOn:1,firstWeekContainsDate:4}};function hw(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t${e.text}`,className:"w-full h-[60vh] border-0",sandbox:"allow-popups allow-popups-to-escape-sandbox",title:"Email Content"})})]})}function oR(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-6 h-6",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"})})}function aR(e){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",...e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M20.25 20.25v-4.5m0 4.5h-4.5m4.5 0L15 15M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15m11.25-6L15 9"})})}const $o="/api";async function lR(e){const t=await fetch(`${$o}/emails`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:e})});if(!t.ok)throw new Error("Network response was not ok");return t.json()}async function uR(e){const t=await fetch(`${$o}/verify`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e})});if(!t.ok){const n=await t.json();throw new Error(n.message||"Turnstile verification failed")}return t.json()}async function cR(e){const t=await fetch(`${$o}/delete-emails`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:e})});if(!t.ok)throw new Error("Failed to delete emails");return t.json()}async function dR(e){const t=await fetch(`${$o}/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:e})});if(!t.ok){const n=await t.json();throw new Error(n.message||"Login failed")}return t.json()}async function fR(){const e=await fetch(`${$o}/stats`);if(!e.ok)throw new Error("Failed to fetch site stats");return e.json()}function yw({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.25 9.75 16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z"})})}function vw({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"})})}function hR(e){return e.toLocaleString()}function ua({icon:e,label:t,value:n,color:r}){return h.jsxs("div",{className:"flex flex-col items-center p-4 rounded-lg bg-zinc-800/50 border border-zinc-700/50 hover:border-zinc-600 transition-colors",children:[h.jsx("div",{className:`p-2 rounded-full mb-2 ${r}`,children:e}),h.jsx("span",{className:"text-2xl font-bold text-white mb-1",children:hR(n)}),h.jsx("span",{className:"text-xs text-zinc-400 text-center",children:t})]})}function mR(){const{t:e}=Pn(),[t,n]=b.useState(null),[r,i]=b.useState(!0);return b.useEffect(()=>{(async()=>{try{const o=await fR();n(o)}catch(o){console.error("Failed to fetch site stats:",o)}finally{i(!1)}})()},[]),r?h.jsx("div",{className:"w-full flex flex-col items-center justify-center py-8",children:h.jsxs("div",{className:"animate-pulse flex flex-col items-center",children:[h.jsx("div",{className:"h-4 w-32 bg-zinc-700 rounded mb-4"}),h.jsx("div",{className:"grid grid-cols-2 gap-3 w-full max-w-xs",children:[...Array(4)].map((s,o)=>h.jsx("div",{className:"h-24 bg-zinc-700/50 rounded-lg"},o))})]})}):t?h.jsxs("div",{className:"w-full flex flex-col items-center py-4 px-2",children:[h.jsx("h3",{className:"text-zinc-400 text-sm mb-4 font-medium",children:e("Site Statistics")}),h.jsxs("div",{className:"grid grid-cols-2 gap-3 w-full max-w-sm",children:[h.jsx(ua,{icon:h.jsx(pw,{className:"w-5 h-5 text-cyan-400"}),label:e("Addresses Created"),value:t.totalAddressesCreated,color:"bg-cyan-500/10"}),h.jsx(ua,{icon:h.jsx(sh,{className:"w-5 h-5 text-green-400"}),label:e("Emails Received"),value:t.totalEmailsReceived,color:"bg-green-500/10"}),h.jsx(ua,{icon:h.jsx(yw,{className:"w-5 h-5 text-purple-400"}),label:e("API Keys Created"),value:t.totalApiKeysCreated,color:"bg-purple-500/10"}),h.jsx(ua,{icon:h.jsx(vw,{className:"w-5 h-5 text-orange-400"}),label:e("API Calls"),value:t.totalApiCalls,color:"bg-orange-500/10"})]}),h.jsx("p",{className:"text-zinc-500 text-xs mt-4 text-center",children:e("Please create a temporary email address first")})]}):null}const pR={zh:NO,"zh-TW":sR,en:nu,fr:Mj,ja:IN,de:tj,ko:mM,it:lN,pt:BM,tr:Z4,ru:P4};function gR({emails:e,isLoading:t,isFetching:n,onDelete:r,isDeleting:i,onRefresh:s,selectedIds:o,setSelectedIds:a,isAddressCreated:l,onSelectEmail:u,showViewPasswordButton:c,onShowPassword:d,selectedEmail:f,onCloseDetail:m,onExpand:p}){const{t:v,i18n:x}=Pn(),y=pR[x.language]||nu,g=P=>{a(T=>T.includes(P)?T.filter(C=>C!==P):[...T,P])},w=()=>{e.length!==0&&(o.length===e.length?a([]):a(e.map(P=>P.id)))},S=()=>f?h.jsx(gw,{email:f,onClose:m}):l?t?h.jsxs("div",{className:"w-full items-center h-full flex-col justify-center flex",children:[h.jsx(Kp,{}),h.jsx("p",{className:"text-zinc-400 mt-6",children:v("Waiting for emails...")})]}):e.length===0?h.jsxs("div",{className:"w-full items-center h-full flex-col justify-center flex",children:[h.jsx(Kp,{}),h.jsx("p",{className:"text-zinc-400 mt-6",children:v("Waiting for emails...")})]}):e.map(P=>{var T,C;return h.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[h.jsx("input",{type:"checkbox",className:"h-4 w-4 rounded border-neutral-300 bg-neutral-100 data-[state=checked]:border-neutral-900 data-[state=checked]:bg-neutral-600 data-[state=checked]:text-neutral-100 dark:border-neutral-700 dark:bg-neutral-800 dark:data-[state=checked]:border-neutral-300 dark:data-[state=checked]:bg-neutral-300",checked:o.includes(P.id),onChange:()=>g(P.id)}),h.jsxs("div",{onClick:()=>u(P),className:"cursor-pointer flex-1 flex flex-col items-start gap-2 rounded-lg border border-zinc-600 p-3 text-left text-sm transition-all hover:bg-zinc-700",children:[h.jsxs("div",{className:"flex w-full flex-col gap-1",children:[h.jsxs("div",{className:"flex items-center",children:[h.jsx("div",{className:"flex items-center gap-2",children:h.jsxs("div",{className:"font-semibold",children:[((T=P.from)==null?void 0:T.name)||P.messageFrom," ",((C=P.from)==null?void 0:C.address)&&`(${P.from.address})`]})}),h.jsx("div",{className:"ml-auto text-xs",children:ET(new Date(P.date||P.createdAt),{addSuffix:!0,locale:y})})]}),h.jsx("div",{className:"text-xs font-medium",children:P.subject})]}),h.jsx("div",{className:"line-clamp-2 text-xs text-zinc-300 font-normal w-full",children:(P.text||P.html||"").substring(0,300)})]})]},P.id)}):h.jsx("div",{className:"w-full items-center h-full flex-col justify-center flex",children:h.jsx(mR,{})});return h.jsxs("div",{className:"rounded-md border border-cyan-50/20 text-white",children:[h.jsxs("div",{className:"w-full rounded-t-md p-2 flex items-center bg-zinc-800 text-zinc-200 gap-2",children:[h.jsxs("div",{className:"flex items-center justify-start gap-2 font-bold",children:[h.jsx(sh,{className:"size-6"}),v("INBOX"),l&&e.length>0&&!f&&h.jsx("span",{className:"inline-flex items-center justify-center w-5 h-5 text-xs font-bold text-white bg-zinc-600 rounded-full",children:e.length}),f&&h.jsxs("button",{onClick:m,className:"flex items-center gap-1 text-sm font-semibold text-cyan-400 hover:text-cyan-300 ml-2",children:[h.jsx(oR,{}),v("Return to email list")]})]}),h.jsx("div",{className:"ml-auto flex items-center gap-2",children:f?h.jsxs(h.Fragment,{children:[h.jsx("button",{onClick:p,className:"p-1 rounded text-cyan-400 hover:text-cyan-300",title:v("Expand"),children:h.jsx(aR,{className:"w-5 h-5"})}),h.jsx("button",{onClick:()=>r([f.id]),disabled:i,className:"p-1 rounded text-red-500 disabled:text-gray-500 hover:text-red-400",title:v("Delete"),children:h.jsx(Qp,{className:"w-5 h-5"})})]}):h.jsxs(h.Fragment,{children:[c&&h.jsx("button",{className:"p-1 rounded text-cyan-400 hover:text-cyan-300",title:v("View password"),onClick:d,children:h.jsx(Ed,{className:"w-5 h-5"})}),l&&e.length>0&&h.jsxs(h.Fragment,{children:[h.jsx("input",{type:"checkbox",className:"h-4 w-4 rounded bg-zinc-700 border-zinc-600 text-cyan-600 focus:ring-cyan-500",title:"全选",checked:o.length===e.length&&e.length>0,onChange:w}),h.jsx("button",{onClick:()=>r(o),disabled:o.length===0||i,className:"p-1 rounded text-red-500 disabled:text-gray-500 hover:text-red-400",title:"删除选中",children:h.jsx(Qp,{className:"w-5 h-5"})})]}),h.jsx("button",{className:"p-1 rounded",title:"refresh",onClick:s,disabled:!l||n,children:h.jsx(mw,{className:uo("size-6",l&&"animate-spin")})})]})})]}),h.jsx("div",{className:uo("flex flex-col flex-1 overflow-y-auto p-2",!f&&"grids h-[488px]"),children:S()})]})}function yR(e){return h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[h.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h.jsx("path",{d:"M5 12l5 5l10 -10"})]})}function vR(e){return h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",strokeWidth:"2",stroke:"currentColor",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[h.jsx("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),h.jsx("path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z"}),h.jsx("path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1"})]})}function Td({text:e,className:t}){const[n,r]=b.useState(!1),{t:i}=Pn(),s=async()=>{try{await navigator.clipboard.writeText(e),r(!0),J.success(i("Copied to clipboard"))}catch(o){console.error("复制文本失败: ",o)}};return b.useEffect(()=>{if(n){const o=setTimeout(()=>{r(!1)},2e3);return()=>clearTimeout(o)}},[n]),h.jsx("button",{onClick:s,className:uo("focus:outline-none focus-visible:outline-none",t),"aria-label":"Copy to clipboard",children:n?h.jsx(yR,{className:"h-5 w-5 text-green-500"}):h.jsx(vR,{className:"h-5 w-5 text-gray-400"})})}const ww=b.createContext(null),xw=()=>{const e=b.useContext(ww);if(!e)throw new Error("useConfig 必须在 ConfigProvider 内部使用");return e};function wR(){const e="abcdefghijklmnopqrstuvwxyz.";return e.charAt(Math.floor(Math.random()*e.length))}function xR(e,t){let n="";for(let r=0;r{function n(){t({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",n),n(),()=>window.removeEventListener("resize",n)},[]),{windowSize:e,isMobile:typeof(e==null?void 0:e.width)=="number"&&(e==null?void 0:e.width)<768,isDesktop:typeof(e==null?void 0:e.width)=="number"&&(e==null?void 0:e.width)>=768}}const oh=b.createContext({});function ru(e){const t=b.useRef(null);return t.current===null&&(t.current=e()),t.current}const iu=b.createContext(null),ah=b.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});class SR extends b.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function PR({children:e,isPresent:t}){const n=b.useId(),r=b.useRef(null),i=b.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=b.useContext(ah);return b.useInsertionEffect(()=>{const{width:o,height:a,top:l,left:u}=i.current;if(t||!r.current||!o||!a)return;r.current.dataset.motionPopId=n;const c=document.createElement("style");return s&&(c.nonce=s),document.head.appendChild(c),c.sheet&&c.sheet.insertRule(` [data-motion-pop-id="${n}"] { position: absolute !important; width: ${o}px !important; @@ -253,7 +253,7 @@ to { top: ${l}px !important; left: ${u}px !important; } - `),()=>{document.head.removeChild(c)}},[t]),h.jsx(yR,{isPresent:t,childRef:r,sizeRef:i,children:b.cloneElement(e,{ref:r})})}const wR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=nu(xR),l=b.useId(),u=b.useCallback(d=>{a.set(d,!0);for(const f of a.values())if(!f)return;r&&r()},[a,r]),c=b.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:u,register:d=>(a.set(d,!1),()=>a.delete(d))}),s?[Math.random(),u]:[n,u]);return b.useMemo(()=>{a.forEach((d,f)=>a.set(f,!1))},[n]),b.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=h.jsx(vR,{isPresent:n,children:e})),h.jsx(ru.Provider,{value:c,children:e})};function xR(){return new Map}function yw(e=!0){const t=b.useContext(ru);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=b.useId();b.useEffect(()=>{e&&i(s)},[e]);const o=b.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const la=e=>e.key||"";function Kp(e){const t=[];return b.Children.forEach(e,n=>{b.isValidElement(n)&&t.push(n)}),t}const oh=typeof window<"u",ah=oh?b.useLayoutEffect:b.useEffect,bR=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=yw(o),u=b.useMemo(()=>Kp(e),[e]),c=o&&!a?[]:u.map(la),d=b.useRef(!0),f=b.useRef(u),m=nu(()=>new Map),[p,v]=b.useState(u),[x,y]=b.useState(u);ah(()=>{d.current=!1,f.current=u;for(let S=0;S{const P=la(S),T=o&&!a?!1:u===x||c.includes(P),C=()=>{if(m.has(P))m.set(P,!0);else return;let j=!0;m.forEach($=>{$||(j=!1)}),j&&(w==null||w(),y(f.current),o&&(l==null||l()),r&&r())};return h.jsx(wR,{isPresent:T,initial:!d.current||n?void 0:!1,custom:T?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:T?void 0:C,children:S},P)})})},ht=e=>e;let vw=ht;function lh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Bi=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},hn=e=>e*1e3,mn=e=>e/1e3,SR={useManualTiming:!1};function PR(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(u){s.has(u)&&(l.schedule(u),e()),u(o)}const l={schedule:(u,c=!1,d=!1)=>{const m=d&&r?t:n;return c&&s.add(u),m.has(u)||m.add(u),u},cancel:u=>{n.delete(u),s.delete(u)},process:u=>{if(o=u,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(u))}};return l}const ua=["read","resolveKeyframes","update","preRender","render","postRender"],kR=40;function ww(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=ua.reduce((y,g)=>(y[g]=PR(s),y),{}),{read:a,resolveKeyframes:l,update:u,preRender:c,render:d,postRender:f}=o,m=()=>{const y=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(y-i.timestamp,kR),1),i.timestamp=y,i.isProcessing=!0,a.process(i),l.process(i),u.process(i),c.process(i),d.process(i),f.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(m))},p=()=>{n=!0,r=!0,i.isProcessing||e(m)};return{schedule:ua.reduce((y,g)=>{const w=o[g];return y[g]=(S,P=!1,T=!1)=>(n||p(),w.schedule(S,P,T)),y},{}),cancel:y=>{for(let g=0;gQp[e].some(n=>!!t[n])};function CR(e){for(const t in e)Hi[t]={...Hi[t],...e[t]}}const ER=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function gl(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||ER.has(e)}let bw=e=>!gl(e);function TR(e){e&&(bw=t=>t.startsWith("on")?!gl(t):e(t))}try{TR(require("@emotion/is-prop-valid").default)}catch{}function jR(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(bw(i)||n===!0&&gl(i)||!t&&!gl(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function MR(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const iu=b.createContext({});function co(e){return typeof e=="string"||Array.isArray(e)}function su(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const uh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],ch=["initial",...uh];function ou(e){return su(e.animate)||ch.some(t=>co(e[t]))}function Sw(e){return!!(ou(e)||e.variants)}function NR(e,t){if(ou(e)){const{initial:n,animate:r}=e;return{initial:n===!1||co(n)?n:void 0,animate:co(r)?r:void 0}}return e.inherit!==!1?t:{}}function OR(e){const{initial:t,animate:n}=NR(e,b.useContext(iu));return b.useMemo(()=>({initial:t,animate:n}),[Xp(t),Xp(n)])}function Xp(e){return Array.isArray(e)?e.join(" "):e}const RR=Symbol.for("motionComponentSymbol");function ci(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function DR(e,t,n){return b.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ci(n)&&(n.current=r))},[t])}const dh=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),LR="framerAppearId",Pw="data-"+dh(LR),{schedule:fh}=ww(queueMicrotask,!1),kw=b.createContext({});function AR(e,t,n,r,i){var s,o;const{visualElement:a}=b.useContext(iu),l=b.useContext(xw),u=b.useContext(ru),c=b.useContext(sh).reducedMotion,d=b.useRef(null);r=r||l.renderer,!d.current&&r&&(d.current=r(e,{visualState:t,parent:a,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:c}));const f=d.current,m=b.useContext(kw);f&&!f.projection&&i&&(f.type==="html"||f.type==="svg")&&$R(d.current,n,i,m);const p=b.useRef(!1);b.useInsertionEffect(()=>{f&&p.current&&f.update(n,u)});const v=n[Pw],x=b.useRef(!!v&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return ah(()=>{f&&(p.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),fh.render(f.render),x.current&&f.animationState&&f.animationState.animateChanges())}),b.useEffect(()=>{f&&(!x.current&&f.animationState&&f.animationState.animateChanges(),x.current&&(queueMicrotask(()=>{var y;(y=window.MotionHandoffMarkAsComplete)===null||y===void 0||y.call(window,v)}),x.current=!1))}),f}function $R(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Cw(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&ci(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:u})}function Cw(e){if(e)return e.options.allowProjection!==!1?e.projection:Cw(e.parent)}function FR({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&CR(e);function a(u,c){let d;const f={...b.useContext(sh),...u,layoutId:VR(u)},{isStatic:m}=f,p=OR(u),v=r(u,m);if(!m&&oh){IR();const x=_R(f);d=x.MeasureLayout,p.visualElement=AR(i,v,f,t,x.ProjectionNode)}return h.jsxs(iu.Provider,{value:p,children:[d&&p.visualElement?h.jsx(d,{visualElement:p.visualElement,...f}):null,n(i,u,DR(v,p.visualElement,c),v,m,p.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=b.forwardRef(a);return l[RR]=i,l}function VR({layoutId:e}){const t=b.useContext(ih).id;return t&&e!==void 0?t+"-"+e:e}function IR(e,t){b.useContext(xw).strict}function _R(e){const{drag:t,layout:n}=Hi;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const zR=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function hh(e){return typeof e!="string"||e.includes("-")?!1:!!(zR.indexOf(e)>-1||/[A-Z]/u.test(e))}function Gp(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function mh(e,t,n,r){if(typeof t=="function"){const[i,s]=Gp(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=Gp(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const Td=e=>Array.isArray(e),WR=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),UR=e=>Td(e)?e[e.length-1]||0:e,Be=e=>!!(e&&e.getVelocity);function La(e){const t=Be(e)?e.get():e;return WR(t)?t.toValue():t}function BR({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:HR(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const Ew=e=>(t,n)=>{const r=b.useContext(iu),i=b.useContext(ru),s=()=>BR(e,t,r,i);return n?s():nu(s)};function HR(e,t,n,r){const i={},s=r(e,{});for(const f in s)i[f]=La(s[f]);let{initial:o,animate:a}=e;const l=ou(e),u=Sw(e);t&&u&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let c=n?n.initial===!1:!1;c=c||o===!1;const d=c?a:o;if(d&&typeof d!="boolean"&&!su(d)){const f=Array.isArray(d)?d:[d];for(let m=0;mt=>typeof t=="string"&&t.startsWith(e),jw=Tw("--"),qR=Tw("var(--"),ph=e=>qR(e)?KR.test(e.split("/*")[0].trim()):!1,KR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Mw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,bn=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},fo={...ns,transform:e=>bn(0,1,e)},ca={...ns,default:1},$o=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),En=$o("deg"),tn=$o("%"),K=$o("px"),QR=$o("vh"),XR=$o("vw"),Yp={...tn,parse:e=>tn.parse(e)/100,transform:e=>tn.transform(e*100)},GR={borderWidth:K,borderTopWidth:K,borderRightWidth:K,borderBottomWidth:K,borderLeftWidth:K,borderRadius:K,radius:K,borderTopLeftRadius:K,borderTopRightRadius:K,borderBottomRightRadius:K,borderBottomLeftRadius:K,width:K,maxWidth:K,height:K,maxHeight:K,top:K,right:K,bottom:K,left:K,padding:K,paddingTop:K,paddingRight:K,paddingBottom:K,paddingLeft:K,margin:K,marginTop:K,marginRight:K,marginBottom:K,marginLeft:K,backgroundPositionX:K,backgroundPositionY:K},YR={rotate:En,rotateX:En,rotateY:En,rotateZ:En,scale:ca,scaleX:ca,scaleY:ca,scaleZ:ca,skew:En,skewX:En,skewY:En,distance:K,translateX:K,translateY:K,translateZ:K,x:K,y:K,z:K,perspective:K,transformPerspective:K,opacity:fo,originX:Yp,originY:Yp,originZ:K},Jp={...ns,transform:Math.round},gh={...GR,...YR,zIndex:Jp,size:K,fillOpacity:fo,strokeOpacity:fo,numOctaves:Jp},JR={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},ZR=ts.length;function eD(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),Nw=()=>({...wh(),attrs:{}}),xh=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Ow(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const Rw=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Dw(e,t,n,r){Ow(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(Rw.has(i)?i:dh(i),t.attrs[i])}const yl={};function sD(e){Object.assign(yl,e)}function Lw(e,{layout:t,layoutId:n}){return Kr.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!yl[e]||e==="opacity")}function bh(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Be(i[o])||t.style&&Be(t.style[o])||Lw(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function Aw(e,t,n){const r=bh(e,t,n);for(const i in e)if(Be(e[i])||Be(t[i])){const s=ts.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function oD(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const eg=["x","y","width","height","cx","cy","r"],aD={useVisualState:Ew({scrapeMotionValuesFromProps:Aw,createRenderState:Nw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(Kr.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{oD(n,r),fe.render(()=>{vh(r,i,xh(n.tagName),e.transformTemplate),Dw(n,r)})})}})},lD={useVisualState:Ew({scrapeMotionValuesFromProps:bh,createRenderState:wh})};function $w(e,t,n){for(const r in t)!Be(t[r])&&!Lw(r,n)&&(e[r]=t[r])}function uD({transformTemplate:e},t){return b.useMemo(()=>{const n=wh();return yh(n,t,e),Object.assign({},n.vars,n.style)},[t])}function cD(e,t){const n=e.style||{},r={};return $w(r,n,e),Object.assign(r,uD(e,t)),r}function dD(e,t){const n={},r=cD(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function fD(e,t,n,r){const i=b.useMemo(()=>{const s=Nw();return vh(s,t,xh(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};$w(s,e.style,e),i.style={...s,...i.style}}return i}function hD(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(hh(n)?fD:dD)(r,s,o,n),u=jR(r,typeof n=="string",e),c=n!==b.Fragment?{...u,...l,ref:i}:{},{children:d}=r,f=b.useMemo(()=>Be(d)?d.get():d,[d]);return b.createElement(n,{...c,children:f})}}function mD(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...hh(r)?aD:lD,preloadedFeatures:e,useRender:hD(i),createVisualElement:t,Component:r};return FR(o)}}function Fw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class gD{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(pD()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class yD extends gD{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function Sh(e,t){return e?e[t]||e.default||e:void 0}const jd=2e4;function Vw(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=jd?1/0:t}function Ph(e){return typeof e=="function"}function tg(e,t){e.timeline=t,e.onfinish=null}const kh=e=>Array.isArray(e)&&typeof e[0]=="number",vD={linearEasing:void 0};function wD(e,t){const n=lh(e);return()=>{var r;return(r=vD[t])!==null&&r!==void 0?r:n()}}const vl=wD(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Iw=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Md={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Ps([0,.65,.55,1]),circOut:Ps([.55,0,1,.45]),backIn:Ps([.31,.01,.66,-.59]),backOut:Ps([.33,1.53,.69,.99])};function zw(e,t){if(e)return typeof e=="function"&&vl()?Iw(e,t):kh(e)?Ps(e):Array.isArray(e)?e.map(n=>zw(n,t)||Md.easeOut):Md[e]}const Rt={x:!1,y:!1};function Ww(){return Rt.x||Rt.y}function xD(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function Uw(e,t){const n=xD(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function ng(e){return t=>{t.pointerType==="touch"||Ww()||e(t)}}function bD(e,t,n={}){const[r,i,s]=Uw(e,n),o=ng(a=>{const{target:l}=a,u=t(a);if(typeof u!="function"||!l)return;const c=ng(d=>{u(d),l.removeEventListener("pointerleave",c)});l.addEventListener("pointerleave",c,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}const Bw=(e,t)=>t?e===t?!0:Bw(e,t.parentElement):!1,Ch=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,SD=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function PD(e){return SD.has(e.tagName)||e.tabIndex!==-1}const ks=new WeakSet;function rg(e){return t=>{t.key==="Enter"&&e(t)}}function Uu(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const kD=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=rg(()=>{if(ks.has(n))return;Uu(n,"down");const i=rg(()=>{Uu(n,"up")}),s=()=>Uu(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function ig(e){return Ch(e)&&!Ww()}function CD(e,t,n={}){const[r,i,s]=Uw(e,n),o=a=>{const l=a.currentTarget;if(!ig(a)||ks.has(l))return;ks.add(l);const u=t(a),c=(m,p)=>{window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",f),!(!ig(m)||!ks.has(l))&&(ks.delete(l),typeof u=="function"&&u(m,{success:p}))},d=m=>{c(m,n.useGlobalTarget||Bw(l,m.target))},f=m=>{c(m,!1)};window.addEventListener("pointerup",d,i),window.addEventListener("pointercancel",f,i)};return r.forEach(a=>{!PD(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",u=>kD(u,i),i)}),s}function ED(e){return e==="x"||e==="y"?Rt[e]?null:(Rt[e]=!0,()=>{Rt[e]=!1}):Rt.x||Rt.y?null:(Rt.x=Rt.y=!0,()=>{Rt.x=Rt.y=!1})}const Hw=new Set(["width","height","top","left","right","bottom",...ts]);let Aa;function TD(){Aa=void 0}const nn={now:()=>(Aa===void 0&&nn.set($e.isProcessing||SR.useManualTiming?$e.timestamp:performance.now()),Aa),set:e=>{Aa=e,queueMicrotask(TD)}};function Eh(e,t){e.indexOf(t)===-1&&e.push(t)}function Th(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class jh{constructor(){this.subscriptions=[]}add(t){return Eh(this.subscriptions,t),()=>Th(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class MD{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=nn.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=nn.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=jD(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new jh);const r=this.events[t].add(n);return t==="change"?()=>{r(),fe.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=nn.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>sg)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,sg);return qw(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ho(e,t){return new MD(e,t)}function ND(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ho(n))}function Mh(e,t){const n=au(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=UR(s[o]);ND(e,o,a)}}function OD(e){return!!(Be(e)&&e.add)}function Nd(e,t){const n=e.getValue("willChange");if(OD(n))return n.add(t)}function Kw(e){return e.props[Pw]}const Qw=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,RD=1e-7,DD=12;function LD(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=Qw(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>RD&&++aLD(s,0,1,e,n);return s=>s===0||s===1?s:Qw(i(s),t,r)}const Xw=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Gw=e=>t=>1-e(1-t),Yw=Fo(.33,1.53,.69,.99),Nh=Gw(Yw),Jw=Xw(Nh),Zw=e=>(e*=2)<1?.5*Nh(e):.5*(2-Math.pow(2,-10*(e-1))),Oh=e=>1-Math.sin(Math.acos(e)),ex=Gw(Oh),tx=Xw(Oh),nx=e=>/^0[^.\s]+$/u.test(e);function AD(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||nx(e):!0}const Fs=e=>Math.round(e*1e5)/1e5,Rh=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function $D(e){return e==null}const FD=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Dh=(e,t)=>n=>!!(typeof n=="string"&&FD.test(n)&&n.startsWith(e)||t&&!$D(n)&&Object.prototype.hasOwnProperty.call(n,t)),rx=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Rh);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},VD=e=>bn(0,255,e),Bu={...ns,transform:e=>Math.round(VD(e))},br={test:Dh("rgb","red"),parse:rx("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Bu.transform(e)+", "+Bu.transform(t)+", "+Bu.transform(n)+", "+Fs(fo.transform(r))+")"};function ID(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const Od={test:Dh("#"),parse:ID,transform:br.transform},di={test:Dh("hsl","hue"),parse:rx("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+tn.transform(Fs(t))+", "+tn.transform(Fs(n))+", "+Fs(fo.transform(r))+")"},ze={test:e=>br.test(e)||Od.test(e)||di.test(e),parse:e=>br.test(e)?br.parse(e):di.test(e)?di.parse(e):Od.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?br.transform(e):di.transform(e)},_D=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function zD(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Rh))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(_D))===null||n===void 0?void 0:n.length)||0)>0}const ix="number",sx="color",WD="var",UD="var(",og="${}",BD=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function mo(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(BD,l=>(ze.test(l)?(r.color.push(s),i.push(sx),n.push(ze.parse(l))):l.startsWith(UD)?(r.var.push(s),i.push(WD),n.push(l)):(r.number.push(s),i.push(ix),n.push(parseFloat(l))),++s,og)).split(og);return{values:n,split:a,indexes:r,types:i}}function ox(e){return mo(e).values}function ax(e){const{split:t,types:n}=mo(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function qD(e){const t=ox(e);return ax(e)(t.map(HD))}const tr={test:zD,parse:ox,createTransformer:ax,getAnimatableNone:qD},KD=new Set(["brightness","contrast","saturate","opacity"]);function QD(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Rh)||[];if(!r)return e;const i=n.replace(r,"");let s=KD.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const XD=/\b([a-z-]*)\(.*?\)/gu,Rd={...tr,getAnimatableNone:e=>{const t=e.match(XD);return t?t.map(QD).join(" "):e}},GD={...gh,color:ze,backgroundColor:ze,outlineColor:ze,fill:ze,stroke:ze,borderColor:ze,borderTopColor:ze,borderRightColor:ze,borderBottomColor:ze,borderLeftColor:ze,filter:Rd,WebkitFilter:Rd},Lh=e=>GD[e];function lx(e,t){let n=Lh(e);return n!==Rd&&(n=tr),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const YD=new Set(["auto","none","0"]);function JD(e,t,n){let r=0,i;for(;re===ns||e===K,lg=(e,t)=>parseFloat(e.split(", ")[t]),ug=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return lg(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?lg(s[1],e):0}},ZD=new Set(["x","y","z"]),e5=ts.filter(e=>!ZD.has(e));function t5(e){const t=[];return e5.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const qi={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:ug(4,13),y:ug(5,14)};qi.translateX=qi.x;qi.translateY=qi.y;const Dr=new Set;let Dd=!1,Ld=!1;function ux(){if(Ld){const e=Array.from(Dr).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=t5(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Ld=!1,Dd=!1,Dr.forEach(e=>e.complete()),Dr.clear()}function cx(){Dr.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Ld=!0)})}function n5(){cx(),ux()}class Ah{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Dr.add(this),Dd||(Dd=!0,fe.read(cx),fe.resolveKeyframes(ux))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),r5=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function i5(e){const t=r5.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function fx(e,t,n=1){const[r,i]=i5(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return dx(o)?parseFloat(o):o}return ph(i)?fx(i,t,n+1):i}const hx=e=>t=>t.test(e),s5={test:e=>e==="auto",parse:e=>e},mx=[ns,K,tn,En,XR,QR,s5],cg=e=>mx.find(hx(e));class px extends Ah{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(u)}),this.resolveNoneKeyframes()}}const dg=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(tr.test(e)||e==="0")&&!e.startsWith("url("));function o5(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function lu(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(l5),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const u5=40;class gx{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=nn.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>u5?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&n5(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=nn.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:u}=this.options;if(!u&&!a5(t,r,i,s))if(o)this.options.duration=0;else{l&&l(lu(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const c=this.initPlayback(t,n);c!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...c},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const pe=(e,t,n)=>e+(t-e)*n;function Hu(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function c5({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=Hu(l,a,e+1/3),s=Hu(l,a,e),o=Hu(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function wl(e,t){return n=>n>0?t:e}const qu=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},d5=[Od,br,di],f5=e=>d5.find(t=>t.test(e));function fg(e){const t=f5(e);if(!t)return!1;let n=t.parse(e);return t===di&&(n=c5(n)),n}const hg=(e,t)=>{const n=fg(e),r=fg(t);if(!n||!r)return wl(e,t);const i={...n};return s=>(i.red=qu(n.red,r.red,s),i.green=qu(n.green,r.green,s),i.blue=qu(n.blue,r.blue,s),i.alpha=pe(n.alpha,r.alpha,s),br.transform(i))},h5=(e,t)=>n=>t(e(n)),Vo=(...e)=>e.reduce(h5),Ad=new Set(["none","hidden"]);function m5(e,t){return Ad.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function p5(e,t){return n=>pe(e,t,n)}function $h(e){return typeof e=="number"?p5:typeof e=="string"?ph(e)?wl:ze.test(e)?hg:v5:Array.isArray(e)?yx:typeof e=="object"?ze.test(e)?hg:g5:wl}function yx(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>$h(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function y5(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=tr.createTransformer(t),r=mo(e),i=mo(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Ad.has(e)&&!i.values.length||Ad.has(t)&&!r.values.length?m5(e,t):Vo(yx(y5(r,i),i.values),n):wl(e,t)};function vx(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?pe(e,t,n):$h(e)(e,t)}const w5=5;function wx(e,t,n){const r=Math.max(t-w5,0);return qw(n-e(r),t-r)}const we={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Ku=.001;function x5({duration:e=we.duration,bounce:t=we.bounce,velocity:n=we.velocity,mass:r=we.mass}){let i,s,o=1-t;o=bn(we.minDamping,we.maxDamping,o),e=bn(we.minDuration,we.maxDuration,mn(e)),o<1?(i=u=>{const c=u*o,d=c*e,f=c-n,m=$d(u,o),p=Math.exp(-d);return Ku-f/m*p},s=u=>{const d=u*o*e,f=d*n+n,m=Math.pow(o,2)*Math.pow(u,2)*e,p=Math.exp(-d),v=$d(Math.pow(u,2),o);return(-i(u)+Ku>0?-1:1)*((f-m)*p)/v}):(i=u=>{const c=Math.exp(-u*e),d=(u-n)*e+1;return-Ku+c*d},s=u=>{const c=Math.exp(-u*e),d=(n-u)*(e*e);return c*d});const a=5/e,l=S5(i,s,a);if(e=hn(e),isNaN(l))return{stiffness:we.stiffness,damping:we.damping,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const b5=12;function S5(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function C5(e){let t={velocity:we.velocity,stiffness:we.stiffness,damping:we.damping,mass:we.mass,isResolvedFromDuration:!1,...e};if(!mg(e,k5)&&mg(e,P5))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*bn(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:we.mass,stiffness:i,damping:s}}else{const n=x5(e);t={...t,...n,mass:we.mass},t.isResolvedFromDuration=!0}return t}function xx(e=we.visualDuration,t=we.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:u,mass:c,duration:d,velocity:f,isResolvedFromDuration:m}=C5({...n,velocity:-mn(n.velocity||0)}),p=f||0,v=u/(2*Math.sqrt(l*c)),x=o-s,y=mn(Math.sqrt(l/c)),g=Math.abs(x)<5;r||(r=g?we.restSpeed.granular:we.restSpeed.default),i||(i=g?we.restDelta.granular:we.restDelta.default);let w;if(v<1){const P=$d(y,v);w=T=>{const C=Math.exp(-v*y*T);return o-C*((p+v*y*x)/P*Math.sin(P*T)+x*Math.cos(P*T))}}else if(v===1)w=P=>o-Math.exp(-y*P)*(x+(p+y*x)*P);else{const P=y*Math.sqrt(v*v-1);w=T=>{const C=Math.exp(-v*y*T),j=Math.min(P*T,300);return o-C*((p+v*y*x)*Math.sinh(j)+P*x*Math.cosh(j))/P}}const S={calculatedDuration:m&&d||null,next:P=>{const T=w(P);if(m)a.done=P>=d;else{let C=0;v<1&&(C=P===0?hn(p):wx(w,P,T));const j=Math.abs(C)<=r,$=Math.abs(o-T)<=i;a.done=j&&$}return a.value=a.done?o:T,a},toString:()=>{const P=Math.min(Vw(S),jd),T=Iw(C=>S.next(P*C).value,P,30);return P+"ms "+T}};return S}function pg({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:u=.5,restSpeed:c}){const d=e[0],f={done:!1,value:d},m=j=>a!==void 0&&jl,p=j=>a===void 0?l:l===void 0||Math.abs(a-j)-v*Math.exp(-j/r),w=j=>y+g(j),S=j=>{const $=g(j),_=w(j);f.done=Math.abs($)<=u,f.value=f.done?y:_};let P,T;const C=j=>{m(f.value)&&(P=j,T=xx({keyframes:[f.value,p(f.value)],velocity:wx(w,j,f.value),damping:i,stiffness:s,restDelta:u,restSpeed:c}))};return C(0),{calculatedDuration:null,next:j=>{let $=!1;return!T&&P===void 0&&($=!0,S(j),C(j)),P!==void 0&&j>=P?T.next(j-P):(!$&&S(j),f)}}}const E5=Fo(.42,0,1,1),T5=Fo(0,0,.58,1),bx=Fo(.42,0,.58,1),j5=e=>Array.isArray(e)&&typeof e[0]!="number",M5={linear:ht,easeIn:E5,easeInOut:bx,easeOut:T5,circIn:Oh,circInOut:tx,circOut:ex,backIn:Nh,backInOut:Jw,backOut:Yw,anticipate:Zw},gg=e=>{if(kh(e)){vw(e.length===4);const[t,n,r,i]=e;return Fo(t,n,r,i)}else if(typeof e=="string")return M5[e];return e};function N5(e,t,n){const r=[],i=n||vx,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=N5(t,r,i),l=a.length,u=c=>{if(o&&c1)for(;du(bn(e[0],e[s-1],c)):u}function R5(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=Bi(0,t,r);e.push(pe(n,1,i))}}function D5(e){const t=[0];return R5(t,e.length-1),t}function L5(e,t){return e.map(n=>n*t)}function A5(e,t){return e.map(()=>t||bx).splice(0,e.length-1)}function xl({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=j5(r)?r.map(gg):gg(r),s={done:!1,value:t[0]},o=L5(n&&n.length===t.length?n:D5(t),e),a=O5(o,t,{ease:Array.isArray(i)?i:A5(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const $5=e=>{const t=({timestamp:n})=>e(n);return{start:()=>fe.update(t,!0),stop:()=>er(t),now:()=>$e.isProcessing?$e.timestamp:nn.now()}},F5={decay:pg,inertia:pg,tween:xl,keyframes:xl,spring:xx},V5=e=>e/100;class Fh extends gx{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||Ah,a=(l,u)=>this.onKeyframesResolved(l,u);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Ph(n)?n:F5[n]||xl;let l,u;a!==xl&&typeof t[0]!="number"&&(l=Vo(V5,vx(t[0],t[1])),t=[0,100]);const c=a({...this.options,keyframes:t});s==="mirror"&&(u=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),c.calculatedDuration===null&&(c.calculatedDuration=Vw(c));const{calculatedDuration:d}=c,f=d+i,m=f*(r+1)-i;return{generator:c,mirroredGenerator:u,mapPercentToKeyframes:l,calculatedDuration:d,resolvedDuration:f,totalDuration:m}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:j}=this.options;return{done:!0,value:j[j.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:u,totalDuration:c,resolvedDuration:d}=r;if(this.startTime===null)return s.next(0);const{delay:f,repeat:m,repeatType:p,repeatDelay:v,onUpdate:x}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-c/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const y=this.currentTime-f*(this.speed>=0?1:-1),g=this.speed>=0?y<0:y>c;this.currentTime=Math.max(y,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=c);let w=this.currentTime,S=s;if(m){const j=Math.min(this.currentTime,c)/d;let $=Math.floor(j),_=j%1;!_&&j>=1&&(_=1),_===1&&$--,$=Math.min($,m+1),!!($%2)&&(p==="reverse"?(_=1-_,v&&(_-=v/d)):p==="mirror"&&(S=o)),w=bn(0,1,_)*d}const P=g?{done:!1,value:l[0]}:S.next(w);a&&(P.value=a(P.value));let{done:T}=P;!g&&u!==null&&(T=this.speed>=0?this.currentTime>=c:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&T);return C&&i!==void 0&&(P.value=lu(l,this.options,i)),x&&x(P.value),C&&this.finish(),P}get duration(){const{resolved:t}=this;return t?mn(t.calculatedDuration):0}get time(){return mn(this.currentTime)}set time(t){t=hn(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=mn(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=$5,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const I5=new Set(["opacity","clipPath","filter","transform"]);function _5(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const u={[t]:n};l&&(u.offset=l);const c=zw(a,i);return Array.isArray(c)&&(u.easing=c),e.animate(u,{delay:r,duration:i,easing:Array.isArray(c)?"linear":c,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const z5=lh(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),bl=10,W5=2e4;function U5(e){return Ph(e.type)||e.type==="spring"||!_w(e.ease)}function B5(e,t){const n=new Fh({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:u}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&vl()&&H5(s)&&(s=Sx[s]),U5(this.options)){const{onComplete:d,onUpdate:f,motionValue:m,element:p,...v}=this.options,x=B5(t,v);t=x.keyframes,t.length===1&&(t[1]=t[0]),r=x.duration,i=x.times,s=x.ease,o="keyframes"}const c=_5(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return c.startTime=u??this.calcStartTime(),this.pendingTimeline?(tg(c,this.pendingTimeline),this.pendingTimeline=void 0):c.onfinish=()=>{const{onComplete:d}=this.options;a.set(lu(t,this.options,n)),d&&d(),this.cancel(),this.resolveFinishedPromise()},{animation:c,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return mn(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return mn(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=hn(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ht;const{animation:r}=n;tg(r,t)}return ht}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:c,onComplete:d,element:f,...m}=this.options,p=new Fh({...m,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),v=hn(this.time);u.setWithVelocity(p.sample(v-bl).value,p.sample(v).value,bl)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:u}=n.owner.getProps();return z5()&&r&&I5.has(r)&&!l&&!u&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const q5={type:"spring",stiffness:500,damping:25,restSpeed:10},K5=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),Q5={type:"keyframes",duration:.8},X5={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},G5=(e,{keyframes:t})=>t.length>2?Q5:Kr.has(e)?e.startsWith("scale")?K5(t[1]):q5:X5;function Y5({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:u,...c}){return!!Object.keys(c).length}const Vh=(e,t,n,r={},i,s)=>o=>{const a=Sh(r,e)||{},l=a.delay||r.delay||0;let{elapsed:u=0}=r;u=u-hn(l);let c={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-u,onUpdate:f=>{t.set(f),a.onUpdate&&a.onUpdate(f)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};Y5(a)||(c={...c,...G5(e,c)}),c.duration&&(c.duration=hn(c.duration)),c.repeatDelay&&(c.repeatDelay=hn(c.repeatDelay)),c.from!==void 0&&(c.keyframes[0]=c.from);let d=!1;if((c.type===!1||c.duration===0&&!c.repeatDelay)&&(c.duration=0,c.delay===0&&(d=!0)),d&&!s&&t.get()!==void 0){const f=lu(c.keyframes,a);if(f!==void 0)return fe.update(()=>{c.onUpdate(f),c.onComplete()}),new yD([])}return!s&&yg.supports(c)?new yg(c):new Fh(c)};function J5({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Px(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const u=[],c=i&&e.animationState&&e.animationState.getState()[i];for(const d in l){const f=e.getValue(d,(s=e.latestValues[d])!==null&&s!==void 0?s:null),m=l[d];if(m===void 0||c&&J5(c,d))continue;const p={delay:n,...Sh(o||{},d)};let v=!1;if(window.MotionHandoffAnimation){const y=Kw(e);if(y){const g=window.MotionHandoffAnimation(y,d,fe);g!==null&&(p.startTime=g,v=!0)}}Nd(e,d),f.start(Vh(d,f,m,e.shouldReduceMotion&&Hw.has(d)?{type:!1}:p,e,v));const x=f.animation;x&&u.push(x)}return a&&Promise.all(u).then(()=>{fe.update(()=>{a&&Mh(e,a)})}),u}function Fd(e,t,n={}){var r;const i=au(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(Px(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:c=0,staggerChildren:d,staggerDirection:f}=s;return Z5(e,t,c+u,d,f,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[u,c]=l==="beforeChildren"?[o,a]:[a,o];return u().then(()=>c())}else return Promise.all([o(),a(n.delay)])}function Z5(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(u=0)=>u*r:(u=0)=>a-u*r;return Array.from(e.variantChildren).sort(eL).forEach((u,c)=>{u.notify("AnimationStart",t),o.push(Fd(u,t,{...s,delay:n+l(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function eL(e,t){return e.sortNodePosition(t)}function kx(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>Fd(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=Fd(e,t,n);else{const i=typeof t=="function"?au(e,t,n.custom):t;r=Promise.all(Px(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const tL=ch.length;function Cx(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Cx(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>kx(e,n,r)))}function sL(e){let t=iL(e),n=vg(),r=!0;const i=l=>(u,c)=>{var d;const f=au(e,c,l==="exit"?(d=e.presenceContext)===null||d===void 0?void 0:d.custom:void 0);if(f){const{transition:m,transitionEnd:p,...v}=f;u={...u,...v,...p}}return u};function s(l){t=l(e)}function o(l){const{props:u}=e,c=Cx(e.parent)||{},d=[],f=new Set;let m={},p=1/0;for(let x=0;xp&&S,$=!1;const _=Array.isArray(w)?w:[w];let W=_.reduce(i(y),{});P===!1&&(W={});const{prevResolvedValues:ee={}}=g,ve={...ee,...W},te=V=>{j=!0,f.has(V)&&($=!0,f.delete(V)),g.needsAnimating[V]=!0;const N=e.getValue(V);N&&(N.liveStyle=!1)};for(const V in ve){const N=W[V],L=ee[V];if(m.hasOwnProperty(V))continue;let D=!1;Td(N)&&Td(L)?D=!Fw(N,L):D=N!==L,D?N!=null?te(V):f.add(V):N!==void 0&&f.has(V)?te(V):g.protectedKeys[V]=!0}g.prevProp=w,g.prevResolvedValues=W,g.isActive&&(m={...m,...W}),r&&e.blockInitialAnimation&&(j=!1),j&&(!(T&&C)||$)&&d.push(..._.map(V=>({animation:V,options:{type:y}})))}if(f.size){const x={};f.forEach(y=>{const g=e.getBaseTarget(y),w=e.getValue(y);w&&(w.liveStyle=!0),x[y]=g??null}),d.push({animation:x})}let v=!!d.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(d):Promise.resolve()}function a(l,u){var c;if(n[l].isActive===u)return Promise.resolve();(c=e.variantChildren)===null||c===void 0||c.forEach(f=>{var m;return(m=f.animationState)===null||m===void 0?void 0:m.setActive(l,u)}),n[l].isActive=u;const d=o(l);for(const f in n)n[f].protectedKeys={};return d}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=vg(),r=!0}}}function oL(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Fw(t,e):!1}function dr(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function vg(){return{animate:dr(!0),whileInView:dr(),whileHover:dr(),whileTap:dr(),whileDrag:dr(),whileFocus:dr(),exit:dr()}}class ur{constructor(t){this.isMounted=!1,this.node=t}update(){}}class aL extends ur{constructor(t){super(t),t.animationState||(t.animationState=sL(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();su(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let lL=0;class uL extends ur{constructor(){super(...arguments),this.id=lL++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const cL={animation:{Feature:aL},exit:{Feature:uL}};function po(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Io(e){return{point:{x:e.pageX,y:e.pageY}}}const dL=e=>t=>Ch(t)&&e(t,Io(t));function Vs(e,t,n,r){return po(e,t,dL(n),r)}const wg=(e,t)=>Math.abs(e-t);function fL(e,t){const n=wg(e.x,t.x),r=wg(e.y,t.y);return Math.sqrt(n**2+r**2)}class Ex{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const d=Xu(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,m=fL(d.offset,{x:0,y:0})>=3;if(!f&&!m)return;const{point:p}=d,{timestamp:v}=$e;this.history.push({...p,timestamp:v});const{onStart:x,onMove:y}=this.handlers;f||(x&&x(this.lastMoveEvent,d),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,d)},this.handlePointerMove=(d,f)=>{this.lastMoveEvent=d,this.lastMoveEventInfo=Qu(f,this.transformPagePoint),fe.update(this.updatePoint,!0)},this.handlePointerUp=(d,f)=>{this.end();const{onEnd:m,onSessionEnd:p,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=Xu(d.type==="pointercancel"?this.lastMoveEventInfo:Qu(f,this.transformPagePoint),this.history);this.startEvent&&m&&m(d,x),p&&p(d,x)},!Ch(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=Io(t),a=Qu(o,this.transformPagePoint),{point:l}=a,{timestamp:u}=$e;this.history=[{...l,timestamp:u}];const{onSessionStart:c}=n;c&&c(t,Xu(a,this.history)),this.removeListeners=Vo(Vs(this.contextWindow,"pointermove",this.handlePointerMove),Vs(this.contextWindow,"pointerup",this.handlePointerUp),Vs(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),er(this.updatePoint)}}function Qu(e,t){return t?{point:t(e.point)}:e}function xg(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Xu({point:e},t){return{point:e,delta:xg(e,Tx(t)),offset:xg(e,hL(t)),velocity:mL(t,.1)}}function hL(e){return e[0]}function Tx(e){return e[e.length-1]}function mL(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=Tx(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>hn(t)));)n--;if(!r)return{x:0,y:0};const s=mn(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const jx=1e-4,pL=1-jx,gL=1+jx,Mx=.01,yL=0-Mx,vL=0+Mx;function pt(e){return e.max-e.min}function wL(e,t,n){return Math.abs(e-t)<=n}function bg(e,t,n,r=.5){e.origin=r,e.originPoint=pe(t.min,t.max,e.origin),e.scale=pt(n)/pt(t),e.translate=pe(n.min,n.max,e.origin)-e.originPoint,(e.scale>=pL&&e.scale<=gL||isNaN(e.scale))&&(e.scale=1),(e.translate>=yL&&e.translate<=vL||isNaN(e.translate))&&(e.translate=0)}function Is(e,t,n,r){bg(e.x,t.x,n.x,r?r.originX:void 0),bg(e.y,t.y,n.y,r?r.originY:void 0)}function Sg(e,t,n){e.min=n.min+t.min,e.max=e.min+pt(t)}function xL(e,t,n){Sg(e.x,t.x,n.x),Sg(e.y,t.y,n.y)}function Pg(e,t,n){e.min=t.min-n.min,e.max=e.min+pt(t)}function _s(e,t,n){Pg(e.x,t.x,n.x),Pg(e.y,t.y,n.y)}function bL(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?pe(n,e,r.max):Math.min(e,n)),e}function kg(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function SL(e,{top:t,left:n,bottom:r,right:i}){return{x:kg(e.x,n,i),y:kg(e.y,t,r)}}function Cg(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Bi(t.min,t.max-r,e.min):r>i&&(n=Bi(e.min,e.max-i,t.min)),bn(0,1,n)}function CL(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Vd=.35;function EL(e=Vd){return e===!1?e=0:e===!0&&(e=Vd),{x:Eg(e,"left","right"),y:Eg(e,"top","bottom")}}function Eg(e,t,n){return{min:Tg(e,t),max:Tg(e,n)}}function Tg(e,t){return typeof e=="number"?e:e[t]||0}const jg=()=>({translate:0,scale:1,origin:0,originPoint:0}),fi=()=>({x:jg(),y:jg()}),Mg=()=>({min:0,max:0}),Se=()=>({x:Mg(),y:Mg()});function xt(e){return[e("x"),e("y")]}function Nx({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function TL({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function jL(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Gu(e){return e===void 0||e===1}function Id({scale:e,scaleX:t,scaleY:n}){return!Gu(e)||!Gu(t)||!Gu(n)}function pr(e){return Id(e)||Ox(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Ox(e){return Ng(e.x)||Ng(e.y)}function Ng(e){return e&&e!=="0%"}function Sl(e,t,n){const r=e-n,i=t*r;return n+i}function Og(e,t,n,r,i){return i!==void 0&&(e=Sl(e,i,r)),Sl(e,n,r)+t}function _d(e,t=0,n=1,r,i){e.min=Og(e.min,t,n,r,i),e.max=Og(e.max,t,n,r,i)}function Rx(e,{x:t,y:n}){_d(e.x,t.translate,t.scale,t.originPoint),_d(e.y,n.translate,n.scale,n.originPoint)}const Rg=.999999999999,Dg=1.0000000000001;function ML(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;aRg&&(t.x=1),t.yRg&&(t.y=1)}function hi(e,t){e.min=e.min+t,e.max=e.max+t}function Lg(e,t,n,r,i=.5){const s=pe(e.min,e.max,i);_d(e,t,n,s,r)}function mi(e,t){Lg(e.x,t.x,t.scaleX,t.scale,t.originX),Lg(e.y,t.y,t.scaleY,t.scale,t.originY)}function Dx(e,t){return Nx(jL(e.getBoundingClientRect(),t))}function NL(e,t,n){const r=Dx(e,n),{scroll:i}=t;return i&&(hi(r.x,i.offset.x),hi(r.y,i.offset.y)),r}const Lx=({current:e})=>e?e.ownerDocument.defaultView:null,OL=new WeakMap;class RL{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Se(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=c=>{const{dragSnapToOrigin:d}=this.getProps();d?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Io(c).point)},s=(c,d)=>{const{drag:f,dragPropagation:m,onDragStart:p}=this.getProps();if(f&&!m&&(this.openDragLock&&this.openDragLock(),this.openDragLock=ED(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xt(x=>{let y=this.getAxisMotionValue(x).get()||0;if(tn.test(y)){const{projection:g}=this.visualElement;if(g&&g.layout){const w=g.layout.layoutBox[x];w&&(y=pt(w)*(parseFloat(y)/100))}}this.originPoint[x]=y}),p&&fe.postRender(()=>p(c,d)),Nd(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(c,d)=>{const{dragPropagation:f,dragDirectionLock:m,onDirectionLock:p,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:x}=d;if(m&&this.currentDirection===null){this.currentDirection=DL(x),this.currentDirection!==null&&p&&p(this.currentDirection);return}this.updateAxis("x",d.point,x),this.updateAxis("y",d.point,x),this.visualElement.render(),v&&v(c,d)},a=(c,d)=>this.stop(c,d),l=()=>xt(c=>{var d;return this.getAnimationState(c)==="paused"&&((d=this.getAxisMotionValue(c).animation)===null||d===void 0?void 0:d.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Ex(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Lx(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&fe.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!da(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=bL(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&ci(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=SL(i.layoutBox,n):this.constraints=!1,this.elastic=EL(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&xt(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=CL(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ci(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=NL(r,i.root,this.visualElement.getTransformPagePoint());let o=PL(i.layout.layoutBox,s);if(n){const a=n(TL(o));this.hasMutatedConstraints=!!a,a&&(o=Nx(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=xt(c=>{if(!da(c,n,this.currentDirection))return;let d=l&&l[c]||{};o&&(d={min:0,max:0});const f=i?200:1e6,m=i?40:1e7,p={type:"inertia",velocity:r?t[c]:0,bounceStiffness:f,bounceDamping:m,timeConstant:750,restDelta:1,restSpeed:10,...s,...d};return this.startAxisValueAnimation(c,p)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return Nd(this.visualElement,t),r.start(Vh(t,r,0,n,this.visualElement,!1))}stopAnimation(){xt(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){xt(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){xt(n=>{const{drag:r}=this.getProps();if(!da(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-pe(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ci(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};xt(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=kL({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),xt(o=>{if(!da(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:u}=this.constraints[o];a.set(pe(l,u,i[o]))})}addListeners(){if(!this.visualElement.current)return;OL.set(this.visualElement,this);const t=this.visualElement.current,n=Vs(t,"pointerdown",l=>{const{drag:u,dragListener:c=!0}=this.getProps();u&&c&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();ci(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),fe.read(r);const o=po(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(xt(c=>{const d=this.getAxisMotionValue(c);d&&(this.originPoint[c]+=l[c].translate,d.set(d.get()+l[c].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Vd,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function da(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function DL(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class LL extends ur{constructor(t){super(t),this.removeGroupControls=ht,this.removeListeners=ht,this.controls=new RL(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ht}unmount(){this.removeGroupControls(),this.removeListeners()}}const Ag=e=>(t,n)=>{e&&fe.postRender(()=>e(t,n))};class AL extends ur{constructor(){super(...arguments),this.removePointerDownListener=ht}onPointerDown(t){this.session=new Ex(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Lx(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:Ag(t),onStart:Ag(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&fe.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Vs(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const $a={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function $g(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const hs={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(K.test(e))e=parseFloat(e);else return e;const n=$g(e,t.target.x),r=$g(e,t.target.y);return`${n}% ${r}%`}},$L={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=tr.parse(e);if(i.length>5)return r;const s=tr.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const u=pe(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=u),typeof i[3+o]=="number"&&(i[3+o]/=u),s(i)}};class FL extends b.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;sD(VL),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),$a.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||fe.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),fh.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Ax(e){const[t,n]=yw(),r=b.useContext(ih);return h.jsx(FL,{...e,layoutGroup:r,switchLayoutGroup:b.useContext(kw),isPresent:t,safeToRemove:n})}const VL={borderRadius:{...hs,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:hs,borderTopRightRadius:hs,borderBottomLeftRadius:hs,borderBottomRightRadius:hs,boxShadow:$L};function IL(e,t,n){const r=Be(e)?e:ho(e);return r.start(Vh("",r,t,n)),r.animation}function _L(e){return e instanceof SVGElement&&e.tagName!=="svg"}const zL=(e,t)=>e.depth-t.depth;class WL{constructor(){this.children=[],this.isDirty=!1}add(t){Eh(this.children,t),this.isDirty=!0}remove(t){Th(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(zL),this.isDirty=!1,this.children.forEach(t)}}function UL(e,t){const n=nn.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(er(r),e(s-t))};return fe.read(r,!0),()=>er(r)}const $x=["TopLeft","TopRight","BottomLeft","BottomRight"],BL=$x.length,Fg=e=>typeof e=="string"?parseFloat(e):e,Vg=e=>typeof e=="number"||K.test(e);function HL(e,t,n,r,i,s){i?(e.opacity=pe(0,n.opacity!==void 0?n.opacity:1,qL(r)),e.opacityExit=pe(t.opacity!==void 0?t.opacity:1,0,KL(r))):s&&(e.opacity=pe(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(Bi(e,t,r))}function _g(e,t){e.min=t.min,e.max=t.max}function wt(e,t){_g(e.x,t.x),_g(e.y,t.y)}function zg(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Wg(e,t,n,r,i){return e-=t,e=Sl(e,1/n,r),i!==void 0&&(e=Sl(e,1/i,r)),e}function QL(e,t=0,n=1,r=.5,i,s=e,o=e){if(tn.test(t)&&(t=parseFloat(t),t=pe(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=pe(s.min,s.max,r);e===s&&(a-=t),e.min=Wg(e.min,t,n,a,i),e.max=Wg(e.max,t,n,a,i)}function Ug(e,t,[n,r,i],s,o){QL(e,t[n],t[r],t[i],t.scale,s,o)}const XL=["x","scaleX","originX"],GL=["y","scaleY","originY"];function Bg(e,t,n,r){Ug(e.x,t,XL,n?n.x:void 0,r?r.x:void 0),Ug(e.y,t,GL,n?n.y:void 0,r?r.y:void 0)}function Hg(e){return e.translate===0&&e.scale===1}function Vx(e){return Hg(e.x)&&Hg(e.y)}function qg(e,t){return e.min===t.min&&e.max===t.max}function YL(e,t){return qg(e.x,t.x)&&qg(e.y,t.y)}function Kg(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Ix(e,t){return Kg(e.x,t.x)&&Kg(e.y,t.y)}function Qg(e){return pt(e.x)/pt(e.y)}function Xg(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class JL{constructor(){this.members=[]}add(t){Eh(this.members,t),t.scheduleRender()}remove(t){if(Th(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function ZL(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:c,rotateX:d,rotateY:f,skewX:m,skewY:p}=n;u&&(r=`perspective(${u}px) ${r}`),c&&(r+=`rotate(${c}deg) `),d&&(r+=`rotateX(${d}deg) `),f&&(r+=`rotateY(${f}deg) `),m&&(r+=`skewX(${m}deg) `),p&&(r+=`skewY(${p}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const gr={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Cs=typeof window<"u"&&window.MotionDebug!==void 0,Yu=["","X","Y","Z"],eA={visibility:"hidden"},Gg=1e3;let tA=0;function Ju(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function _x(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=Kw(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",fe,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&_x(r)}function zx({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=tA++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Cs&&(gr.totalNodes=gr.resolvedTargetDeltas=gr.recalculatedProjection=0),this.nodes.forEach(iA),this.nodes.forEach(uA),this.nodes.forEach(cA),this.nodes.forEach(sA),Cs&&window.MotionDebug.record(gr)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,d&&d(),d=UL(f,250),$a.hasAnimatedSinceResize&&($a.hasAnimatedSinceResize=!1,this.nodes.forEach(Jg))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||u)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:f,hasRelativeTargetChanged:m,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||c.getDefaultTransition()||pA,{onLayoutAnimationStart:x,onLayoutAnimationComplete:y}=c.getProps(),g=!this.targetLayout||!Ix(this.targetLayout,p)||m,w=!f&&m;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||w||f&&(g||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,w);const S={...Sh(v,"layout"),onPlay:x,onComplete:y};(c.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||Jg(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,er(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(dA),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&_x(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;c{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const P=S/1e3;Zg(d.x,o.x,P),Zg(d.y,o.y,P),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(_s(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),hA(this.relativeTarget,this.relativeTargetOrigin,f,P),w&&YL(this.relativeTarget,w)&&(this.isProjectionDirty=!1),w||(w=Se()),wt(w,this.relativeTarget)),v&&(this.animationValues=c,HL(c,u,this.latestValues,P,g,y)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=P},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(er(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=fe.update(()=>{$a.hasAnimatedSinceResize=!0,this.currentAnimation=IL(0,Gg,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Gg),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:u,latestValues:c}=o;if(!(!a||!l||!u)){if(this!==o&&this.layout&&u&&Wx(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||Se();const d=pt(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+d;const f=pt(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+f}wt(a,l),mi(a,c),Is(this.projectionDeltaWithTransform,this.layoutCorrected,a,c)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new JL),this.sharedNodes.get(o).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const u={};l.z&&Ju("z",o,u,this.animationValues);for(let c=0;c{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(Yg),this.root.sharedNodes.clear()}}}function nA(e){e.updateLayout()}function rA(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?xt(d=>{const f=o?n.measuredBox[d]:n.layoutBox[d],m=pt(f);f.min=r[d].min,f.max=f.min+m}):Wx(s,n.layoutBox,r)&&xt(d=>{const f=o?n.measuredBox[d]:n.layoutBox[d],m=pt(r[d]);f.max=f.min+m,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+m)});const a=fi();Is(a,r,n.layoutBox);const l=fi();o?Is(l,e.applyTransform(i,!0),n.measuredBox):Is(l,r,n.layoutBox);const u=!Vx(a);let c=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:f,layout:m}=d;if(f&&m){const p=Se();_s(p,n.layoutBox,f.layoutBox);const v=Se();_s(v,r,m.layoutBox),Ix(p,v)||(c=!0),d.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=p,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:u,hasRelativeTargetChanged:c})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function iA(e){Cs&&gr.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function sA(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function oA(e){e.clearSnapshot()}function Yg(e){e.clearMeasurements()}function aA(e){e.isLayoutDirty=!1}function lA(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Jg(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function uA(e){e.resolveTargetDelta()}function cA(e){e.calcProjection()}function dA(e){e.resetSkewAndRotation()}function fA(e){e.removeLeadSnapshot()}function Zg(e,t,n){e.translate=pe(t.translate,0,n),e.scale=pe(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function ey(e,t,n,r){e.min=pe(t.min,n.min,r),e.max=pe(t.max,n.max,r)}function hA(e,t,n,r){ey(e.x,t.x,n.x,r),ey(e.y,t.y,n.y,r)}function mA(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const pA={duration:.45,ease:[.4,0,.1,1]},ty=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),ny=ty("applewebkit/")&&!ty("chrome/")?Math.round:ht;function ry(e){e.min=ny(e.min),e.max=ny(e.max)}function gA(e){ry(e.x),ry(e.y)}function Wx(e,t,n){return e==="position"||e==="preserve-aspect"&&!wL(Qg(t),Qg(n),.2)}function yA(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const vA=zx({attachResizeListener:(e,t)=>po(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Zu={current:void 0},Ux=zx({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Zu.current){const e=new vA({});e.mount(window),e.setOptions({layoutScroll:!0}),Zu.current=e}return Zu.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),wA={pan:{Feature:AL},drag:{Feature:LL,ProjectionNode:Ux,MeasureLayout:Ax}};function iy(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&fe.postRender(()=>s(t,Io(t)))}class xA extends ur{mount(){const{current:t}=this.node;t&&(this.unmount=bD(t,n=>(iy(this.node,n,"Start"),r=>iy(this.node,r,"End"))))}unmount(){}}class bA extends ur{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Vo(po(this.node.current,"focus",()=>this.onFocus()),po(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function sy(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&fe.postRender(()=>s(t,Io(t)))}class SA extends ur{mount(){const{current:t}=this.node;t&&(this.unmount=CD(t,n=>(sy(this.node,n,"Start"),(r,{success:i})=>sy(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const zd=new WeakMap,ec=new WeakMap,PA=e=>{const t=zd.get(e.target);t&&t(e)},kA=e=>{e.forEach(PA)};function CA({root:e,...t}){const n=e||document;ec.has(n)||ec.set(n,{});const r=ec.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(kA,{root:e,...t})),r[i]}function EA(e,t,n){const r=CA(t);return zd.set(e,n),r.observe(e),()=>{zd.delete(e),r.unobserve(e)}}const TA={some:0,all:1};class jA extends ur{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:TA[i]},a=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,s&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=u?c:d;f&&f(l)};return EA(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(MA(t,n))&&this.startObserver()}unmount(){}}function MA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const NA={inView:{Feature:jA},tap:{Feature:SA},focus:{Feature:bA},hover:{Feature:xA}},OA={layout:{ProjectionNode:Ux,MeasureLayout:Ax}},Wd={current:null},Bx={current:!1};function RA(){if(Bx.current=!0,!!oh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Wd.current=e.matches;e.addListener(t),t()}else Wd.current=!1}const DA=[...mx,ze,tr],LA=e=>DA.find(hx(e)),oy=new WeakMap;function AA(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Be(i))e.addValue(r,i);else if(Be(s))e.addValue(r,ho(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,ho(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const ay=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class $A{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Ah,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const m=nn.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),Bx.current||RA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Wd.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){oy.delete(this.current),this.projection&&this.projection.unmount(),er(this.notifyUpdate),er(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=Kr.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&fe.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Hi){const n=Hi[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Se()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ho(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(dx(i)||nx(i))?i=parseFloat(i):!LA(i)&&tr.test(n)&&(i=lx(t,n)),this.setBaseTarget(t,Be(i)?i.get():i)),Be(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=mh(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Be(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new jh),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class Hx extends $A{constructor(){super(...arguments),this.KeyframeResolver=px}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Be(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function FA(e){return window.getComputedStyle(e)}class VA extends Hx{constructor(){super(...arguments),this.type="html",this.renderInstance=Ow}readValueFromInstance(t,n){if(Kr.has(n)){const r=Lh(n);return r&&r.default||0}else{const r=FA(t),i=(jw(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Dx(t,n)}build(t,n,r){yh(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return bh(t,n,r)}}class IA extends Hx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Se}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Kr.has(n)){const r=Lh(n);return r&&r.default||0}return n=Rw.has(n)?n:dh(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Aw(t,n,r)}build(t,n,r){vh(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){Dw(t,n,r,i)}mount(t){this.isSVGTag=xh(t.tagName),super.mount(t)}}const _A=(e,t)=>hh(e)?new IA(t):new VA(t,{allowProjection:e!==b.Fragment}),zA=mD({...cL,...NA,...wA,...OA},_A),ly=MR(zA);function WA(e){e.values.forEach(t=>t.stop())}function Ud(e,t){[...t].reverse().forEach(r=>{const i=e.getVariant(r);i&&Mh(e,i),e.variantChildren&&e.variantChildren.forEach(s=>{Ud(s,t)})})}function UA(e,t){if(Array.isArray(t))return Ud(e,t);if(typeof t=="string")return Ud(e,[t]);Mh(e,t)}function BA(){const e=new Set,t={subscribe(n){return e.add(n),()=>void e.delete(n)},start(n,r){const i=[];return e.forEach(s=>{i.push(kx(s,n,{transitionOverride:r}))}),Promise.all(i)},set(n){return e.forEach(r=>{UA(r,n)})},stop(){e.forEach(n=>{WA(n)})},mount(){return()=>{t.stop()}}};return t}function HA(){const e=nu(BA);return ah(e.mount,[]),e}const qA=HA;function KA({setShow:e,showBlur:t,children:n,theme:r="light"}){const i=b.useRef(null),s=qA(),o={type:"spring",stiffness:500,damping:30};b.useEffect(()=>{s.start({y:20,transition:o})},[]);async function a(l,u){var m;const c=u.offset.y,d=u.velocity.y,f=((m=i.current)==null?void 0:m.getBoundingClientRect().height)||0;c>f/2||d>800?(await s.start({y:"100%",transition:o}),e(!1)):s.start({y:0,transition:o})}return h.jsxs(bR,{children:[h.jsxs(ly.div,{ref:i,className:uo("group fixed inset-x-0 bottom-0 z-40 w-screen cursor-grab overflow-y-scroll pb-5 active:cursor-grabbing sm:hidden",r==="light"?"bg-white":"bg-neutral-800/95"),style:{maxHeight:"95%"},initial:{y:"100%"},animate:s,exit:{y:"100%"},transition:o,drag:"y",dragDirectionLock:!0,onDragEnd:a,dragElastic:{top:0,bottom:1},dragConstraints:{top:0,bottom:0},children:[h.jsxs("div",{className:uo("rounded-t-4xl -mb-1 flex h-7 w-full items-center justify-center border-t",r==="light"?"border-gray-200":"border-cyan-50/20"),children:[h.jsx("div",{className:"-mr-1 h-1 w-6 rounded-full bg-gray-300 transition-all group-active:rotate-12"}),h.jsx("div",{className:"h-1 w-6 rounded-full bg-gray-300 transition-all group-active:-rotate-12"})]}),n]},"leaflet"),t&&h.jsx(ly.div,{className:"fixed inset-0 z-30 bg-gray-100 bg-opacity-10 backdrop-blur",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:()=>e(!1)},"leaflet-backdrop")]})}function qx({children:e,showModal:t,setShowModal:n,theme:r="light"}){const i=b.useRef(null),{isMobile:s}=gR();b.useEffect(()=>{function a(l){i.current&&!i.current.contains(l.target)&&n(!1)}return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}},[i,n]);const o=b.useCallback(a=>{a.key==="Escape"&&n(!1)},[n]);return b.useEffect(()=>(document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)),[o]),s?t?h.jsx(KA,{setShow:n,showBlur:!0,theme:r,children:e}):null:h.jsx(h.Fragment,{children:t&&h.jsx("div",{className:"fixed inset-0 z-40 flex items-center justify-center",style:{backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",backgroundColor:"rgba(0, 0, 0, 0.4)"},children:h.jsx("div",{className:"relative z-50 w-full max-w-lg",ref:i,children:e})})})}function Ih(e){return h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[h.jsx("path",{d:"M18 6 6 18"}),h.jsx("path",{d:"m6 6 12 12"})]})}function QA({showPasswordModal:e,setShowPasswordModal:t,onLogin:n,isLoggingIn:r}){const{t:i}=ar(),[s,o]=b.useState(""),a=async l=>{if(l.preventDefault(),!s){l3.error(i("Password is required"));return}await n(s)};return h.jsx(qx,{showModal:e,setShowModal:t,children:h.jsxs("div",{className:"w-full overflow-hidden bg-white/95 backdrop-blur-xl shadow-xl p-4 md:max-w-3xl md:rounded-2xl md:border md:border-gray-200",children:[h.jsx(Ih,{className:"absolute top-4 right-4 h-6 w-6 text-gray-500 hover:text-gray-700 cursor-pointer",onClick:()=>t(!1),onPointerDown:l=>l.stopPropagation()}),h.jsxs("div",{className:"flex flex-col items-center justify-center space-y-3 border-b border-gray-200 px-4 py-5 text-center md:px-16",children:[h.jsx("h3",{className:"font-display text-2xl font-bold",children:i("Save password")}),h.jsx("p",{className:"text-gray-500",children:i("Save your password and continue using this email in 1 day")})]}),h.jsxs("form",{onSubmit:a,className:"flex flex-col mt-4 space-y-4 px-4",children:[h.jsx("input",{value:s,onChange:l=>o(l.target.value),type:"text",name:"password",placeholder:i("Enter your password *"),required:!0,className:"rounded-md border border-slate-200 px-3 py-2 shadow-inner w-full"}),h.jsxs("p",{className:"text-sm",children:[i("How to get a password? Click to create a temporary email and receive at least one email to generate a password"),"."]}),h.jsxs("p",{className:"text-sm text-yellow-600",children:[i("Remember your password, otherwise your email will expire and cannot be retrieved"),"."]}),h.jsx("button",{type:"submit",disabled:r,className:"py-2.5 text-white rounded-md w-full bg-cyan-600 hover:opacity-90 disabled:cursor-not-allowed disabled:bg-zinc-500",children:i(r?"Submitting...":"Login")})]})]})})}function XA(){const[e,t]=b.useState(!1),n=b.useCallback(({onLogin:r,isLoggingIn:i})=>h.jsx(QA,{showPasswordModal:e,setShowPasswordModal:t,onLogin:r,isLoggingIn:i}),[e]);return b.useMemo(()=>({showPasswordModal:e,setShowPasswordModal:t,PasswordModal:n}),[t,n,e])}function GA({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"})})}function YA({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21.75 17.25v-.228a4.5 4.5 0 0 0-.12-1.03l-2.268-9.64a3.375 3.375 0 0 0-3.285-2.602H7.923a3.375 3.375 0 0 0-3.285 2.602l-2.268 9.64a4.5 4.5 0 0 0-.12 1.03v.228m19.5 0a3 3 0 0 1-3 3H5.25a3 3 0 0 1-3-3m19.5 0a3 3 0 0 0-3-3H5.25a3 3 0 0 0-3 3m16.5 0h.008v.008h-.008v-.008Zm-3 0h.008v.008h-.008v-.008Z"})})}function JA({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.25 9.75 16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z"})})}function ZA({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5a17.92 17.92 0 0 1-8.716-2.247m0 0A8.966 8.966 0 0 1 3 12c0-1.97.633-3.794 1.708-5.273"})})}function Fa({showModal:e,setShowModal:t,title:n,children:r}){return h.jsx(qx,{showModal:e,setShowModal:t,theme:"dark",children:h.jsxs("div",{className:"w-full max-h-[80vh] flex flex-col bg-neutral-800/95 backdrop-blur-xl shadow-xl md:max-w-3xl md:rounded-2xl md:border md:border-cyan-50/20",children:[h.jsxs("div",{className:"flex-shrink-0 flex items-center justify-center p-4 border-b border-cyan-50/20 relative",children:[h.jsx("h3",{className:"font-display text-2xl font-bold text-white",children:n}),h.jsx(Ih,{className:"absolute top-4 right-4 h-6 w-6 text-gray-400 hover:text-white cursor-pointer",onClick:()=>t(!1),onPointerDown:i=>i.stopPropagation()})]}),h.jsx("div",{className:"flex-grow overflow-y-auto text-white p-6",children:h.jsx("div",{className:"text-white",children:r})})]})})}function e6(e){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 22 22",children:h.jsx("path",{fill:"#0891b2",d:"M7.376 6.745c-.447.275 1.197 4.242 1.598 4.888a1.206 1.206 0 0 0 2.053-1.266c-.397-.648-3.205-3.898-3.651-3.622m-.335-4.343a8.98 8.98 0 0 1 5.918 0c.329.114.765-.115.572-.611c-.141-.36-.277-.712-.332-.855c-.131-.339-.6-.619-.804-.665C11.623.097 10.823 0 10 0S8.377.097 7.604.271c-.204.046-.672.326-.803.665l-.332.855c-.193.496.243.726.572.611m12.057.784a10.132 10.132 0 0 0-1.283-1.285c-.153-.129-.603-.234-.888.051l-1.648 1.647a9.27 9.27 0 0 1 1.155.966c.362.361.677.752.966 1.155l1.647-1.647c.286-.286.181-.735.051-.887M10 2.9A8.1 8.1 0 0 0 1.899 11A8.1 8.1 0 0 0 10 19.101A8.1 8.1 0 0 0 10 2.9m0 14.201A6.1 6.1 0 1 1 10.001 4.9A6.1 6.1 0 0 1 10 17.1z"})})}const tc=e=>e<10?`0${e}`:`${e}`;function t6({expiryTimestamp:e,onReset:t}){const{t:n}=ar(),r=b.useCallback(()=>{const o=e-Date.now();let a={hours:"00",minutes:"00",seconds:"00",expired:o<=0};if(o>0){const l=Math.floor(o/1e3),u=l%60,c=Math.floor(l/60),d=c%60,f=Math.floor(c/60);a={hours:tc(f),minutes:tc(d),seconds:tc(u),expired:!1}}return a},[e]),[i,s]=b.useState(r());return b.useEffect(()=>{s(r());const o=setInterval(()=>{s(r())},1e3);return()=>clearInterval(o)},[e,r]),b.useEffect(()=>{i.expired},[i.expired]),h.jsxs("div",{className:"flex items-center justify-between gap-2 text-sm text-cyan-400 my-4 p-3 bg-white/5 rounded-md border border-cyan-50/20 shadow-inner",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[" ",h.jsx(e6,{className:"w-5 h-5"}),i.expired?h.jsx("span",{children:n("Email expired")}):h.jsxs("span",{children:[n("Expires in"),": ",i.hours,":",i.minutes,":",i.seconds]})]}),!i.expired&&h.jsxs("button",{onClick:t,className:"p-1 rounded text-cyan-400 hover:text-cyan-300 focus:outline-none focus:ring-1 focus:ring-cyan-500",title:n("Reset validity"),children:[h.jsx(hw,{className:"w-5 h-5"})," "]})]})}function n6(){const e=gw(),{t}=ar(),n=Hf(),[r,i]=b.useState(()=>Bt.get("userMailbox")),[s,o]=b.useState(()=>{const q=Bt.get("emailExpiry");return q?parseInt(q,10):void 0}),[a,l]=b.useState(""),[u,c]=b.useState([]),[d,f]=b.useState(!1),[m,p]=b.useState(null),[v,x]=b.useState(e.emailDomain[0]),[y,g]=b.useState(!1),{PasswordModal:w,setShowPasswordModal:S}=XA(),[P,T]=b.useState(!1),[C,j]=b.useState(!1),{data:$=[],isLoading:_,isFetching:W,refetch:ee}=dP({queryKey:["emails",r],queryFn:()=>cR(r),enabled:!!r,refetchInterval:2e4,onError:q=>{J.error(`${t("Failed to get emails")}: ${q.message}`,{duration:5e3})},retry:!1}),ve=b.useCallback(q=>{J(Le=>h.jsxs("div",{className:"w-full max-w-lg p-4 bg-slate-800 text-white rounded-lg shadow-lg border border-slate-700",children:[h.jsxs("div",{className:"flex items-center justify-between pb-2 mb-3 border-b border-slate-700",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx(Cd,{className:"h-6 w-6 text-cyan-400"}),h.jsx("h3",{className:"text-lg font-semibold",children:t("View password")})]}),h.jsx("button",{onClick:()=>J.dismiss(Le.id),className:"p-1 rounded-full text-gray-400 hover:bg-slate-700 hover:text-white focus:outline-none focus:ring-2 focus:ring-cyan-500","aria-label":"Close",children:h.jsx(Ih,{className:"h-5 w-5"})})]}),h.jsxs("div",{children:[h.jsx("p",{className:"text-sm text-gray-300",children:t("Save your password and continue using this email in 1 day")}),h.jsxs("div",{className:"mt-2 flex items-center text-sm bg-slate-700 px-2 py-1 rounded",children:[h.jsx("span",{className:"flex-1 font-mono break-all text-gray-100",children:q}),h.jsx(Ed,{text:q,className:"p-1"})]}),h.jsx("p",{className:"mt-3 text-xs text-yellow-400",children:t("Remember your password, otherwise your email will expire and cannot be retrieved")})]})]}),{id:"password-notification",duration:5e3,position:"top-center",style:{background:"transparent",border:"none",padding:0,boxShadow:"none"}})},[t]),te=b.useRef($.length);b.useEffect(()=>{if($.length>0&&!C&&j(!0),!r)j(!1),o(void 0),J.dismiss("password-notification");else{const q=Bt.get("emailExpiry");q&&!s&&o(parseInt(q,10))}te.current=$.length},[$,r,C,s]);const E=async()=>{if(!a){J.error(t("No captcha response"));return}try{await dR(a),f(!0);const q=`${G1("",mR())}@${v}`,zt=Date.now()+24*60*60*1e3;Bt.set("userMailbox",q,{expires:1}),Bt.set("emailExpiry",zt.toString(),{expires:1}),i(q),o(zt),j(!1),J.success(t("Email created successfully"))}catch(q){J.error(t("Failed to verify captcha")),console.error("Turnstile verification failed:",q)}},O=()=>{Bt.remove("userMailbox"),Bt.remove("emailExpiry"),i(void 0),j(!1),p(null),o(void 0),n.invalidateQueries({queryKey:["emails"]})},V=()=>{ee(),J.success(t("Mailbox refreshed"))},N=b.useCallback(()=>{const q=Date.now()+864e5,Le=new Date(Date.now()+24*60*60*1e3);Bt.set("emailExpiry",q.toString(),{expires:Le}),o(q),J.success(t("Validity reset successfully"))},[t]),L=fP({mutationFn:q=>fR(q),onSuccess:()=>{J.success(t("Emails deleted successfully")),c([]),m&&u.includes(m.id)&&p(null),n.invalidateQueries({queryKey:["emails",r]})},onError:()=>{J.error(t("Failed to delete emails"))}}),D=q=>{if(q.length===0){J.error(t("Please select emails to delete"));return}L.mutate(q)},A=async q=>{T(!0);try{const Le=await hR(q),_h=Date.now()+24*60*60*1e3;Bt.set("userMailbox",Le.address,{expires:1}),Bt.set("emailExpiry",_h.toString(),{expires:1}),i(Le.address),o(_h),S(!1),J.success(t("Login successful"))}catch(Le){J.error(`${t("Login failed")}: ${t(Le.message)}`)}finally{T(!1)}},z=b.useCallback(()=>r&&e.cookiesSecret?pR(r,e.cookiesSecret):null,[r,e.cookiesSecret]),Q=q=>{p(q)},be=()=>{p(null)},vt=()=>{g(!0)};return h.jsxs("div",{className:"h-full flex flex-col gap-4 md:flex-row justify-center items-start mt-24 mx-6 md:mx-10",children:[h.jsx(w,{onLogin:A,isLoggingIn:P}),m&&h.jsx(Fa,{showModal:y,setShowModal:g,title:t("Email Detail"),children:h.jsx(mw,{email:m,onClose:()=>g(!1)})}),h.jsxs("div",{className:"flex flex-col text-white items-start w-full md:w-[350px] mx-auto gap-2",children:[h.jsxs("div",{className:"w-full mb-4 md:max-w-[350px] shrink-0 group group-hover:before:duration-500 group-hover:after:duration-500 after:duration-500 hover:border-cyan-600 hover:before:[box-shadow:_20px_20px_20px_30px_#a21caf] duration-500 before:duration-500 hover:duration-500 hover:after:-right-8 hover:before:right-12 hover:before:-bottom-8 hover:before:blur origin-left hover:decoration-2 relative bg-neutral-800 h-full border text-left p-4 rounded-lg overflow-hidden border-cyan-50/20 before:absolute before:w-12 before:h-12 before:content[''] before:right-1 before:top-1 before:z-10 before:bg-violet-500 before:rounded-full before:blur-lg after:absolute after:z-10 after:w-20 after:h-20 after:content[''] after:bg-rose-300 after:right-8 after:top-3 after:rounded-full after:blur-lg",children:[h.jsx("h1",{className:"text-gray-50 text-xl font-bold mb-7 group-hover:text-cyan-500 duration-500",children:t("Virtual Temporary Email")}),h.jsxs("div",{className:"flex flex-col gap-4 text-sm text-gray-200",children:[h.jsxs("a",{href:"https://github.com/oiov/vmail",target:"_blank",rel:"noopener noreferrer",className:"flex items-center after:content-['↗'] gap-1.5 hover:text-cyan-400 transition-colors cursor-pointer",children:[h.jsx(GA,{className:"size-5 text-blue-400"})," ",t("Open Source")]}),h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx(YA,{className:"size-5 text-blue-400"}),t("Stable - 1M+ emails processed")]}),h.jsxs(Yf,{to:"/api-docs",className:"flex items-center after:content-['↗'] gap-1.5 hover:text-cyan-400 transition-colors cursor-pointer",children:[h.jsx(JA,{className:"size-5 text-blue-400"}),t("Open RESTful API")]}),h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx(ZA,{className:"size-5 text-blue-400"}),t("Multi-domain configurable")]})]})]}),r?h.jsxs("div",{className:"w-full md:max-w-[350px] mb-4",children:[h.jsx("div",{className:"mb-4 font-semibold text-sm",children:t("Email address")}),h.jsxs("div",{className:"flex items-center text-zinc-100 bg-white/10 backdrop-blur-xl shadow-inner px-4 py-4 rounded-md w-full",children:[h.jsx("span",{className:"truncate",children:r}),h.jsx(Ed,{text:r,className:"p-1 rounded-md ml-auto"})]}),s&&h.jsx(t6,{expiryTimestamp:s,onReset:N}),h.jsx("button",{onClick:O,className:"py-2.5 rounded-md w-full bg-cyan-600 hover:opacity-90 disabled:cursor-not-allowed disabled:bg-zinc-500",children:t("Stop")})]}):h.jsxs("div",{className:"w-full md:max-w-[350px]",children:[h.jsxs("div",{className:"mb-4",children:[h.jsx("div",{className:"mb-3 font-semibold",children:t("Domain")}),h.jsx("select",{value:v,onChange:q=>x(q.target.value),className:"w-full p-2.5 rounded-md bg-white/10 text-white border border-cyan-50/20",children:e.emailDomain.map(q=>h.jsxs("option",{value:q,className:"text-black",children:["@",q]},q))})]}),h.jsxs("div",{className:"text-sm relative mb-4",children:[h.jsx("div",{className:"mb-3 font-semibold",children:t("Validater")}),h.jsx("div",{className:"[&_iframe]:!w-full h-[65px] max-w-[300px] bg-gray-700",children:h.jsx(eh,{siteKey:e.turnstileKey,onSuccess:l,options:{theme:"dark"}})})]}),h.jsx("button",{onClick:E,disabled:!a,className:"py-2.5 rounded-md w-full bg-cyan-600 hover:opacity-90 disabled:cursor-not-allowed disabled:bg-zinc-500",children:t("Create temporary email")}),h.jsxs("p",{className:"mt-4 text-sm text-cyan-500 cursor-pointer",onClick:()=>S(!0),children:[h.jsx(Cd,{className:"inline-block w-4 h-4 mr-2"}),t("Have a password? Login.")]})]})]}),h.jsx("div",{className:"w-full flex-1 overflow-hidden",children:h.jsx(aR,{isAddressCreated:!!r,emails:$,isLoading:_,isFetching:W,onDelete:D,isDeleting:L.isPending,onRefresh:V,selectedIds:u,setSelectedIds:c,onSelectEmail:Q,showViewPasswordButton:C,onShowPassword:()=>{const q=z();q&&ve(q)},selectedEmail:m,onCloseDetail:be,onExpand:vt})})]})}function r6(){const{t:e}=ar(),t=gw(),n=b.useRef(null),[r,i]=b.useState(""),[s,o]=b.useState(!1),[a,l]=b.useState(null),[u,c]=b.useState("");b.useEffect(()=>{n.current&&n.current.querySelectorAll("pre code").forEach(p=>{p.classList.add("language-json")})},[]);const d=async()=>{if(!r){J.error(e("Please complete the verification first"));return}o(!0);try{const m=await fetch("/api/api-keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r,name:u||void 0})});if(!m.ok){const v=await m.json();throw new Error(v.message||"Failed to create API Key")}const p=await m.json();l(p.data.key),J.success(e("API Key created successfully"))}catch(m){J.error(m.message||e("Failed to create API Key"))}finally{o(!1)}},f=()=>{l(null),i(""),c("")};return h.jsx("div",{className:"min-h-screen bg-[#1f2023] text-white py-8 px-4 md:px-8 mt-16",children:h.jsxs("div",{className:"max-w-4xl mx-auto",ref:n,children:[h.jsxs("div",{className:"mb-8 pb-6 border-b border-gray-700",children:[h.jsx("h1",{className:"text-3xl font-bold text-cyan-400 mb-2",children:e("API Documentation")}),h.jsx("p",{className:"text-gray-400",children:e("RESTful API for programmatic access to temporary email services")})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Get API Key")}),h.jsx("div",{className:"bg-gray-800 rounded-lg p-4",children:a?h.jsxs("div",{children:[h.jsx("div",{className:"flex items-center gap-2 mb-3",children:h.jsx("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800",children:e("Created")})}),h.jsx("div",{className:"bg-yellow-900/30 border border-yellow-600/50 rounded-lg p-4 mb-4",children:h.jsxs("div",{className:"flex items-start gap-2",children:[h.jsx("svg",{className:"w-5 h-5 text-yellow-500 mt-0.5 flex-shrink-0",fill:"currentColor",viewBox:"0 0 20 20",children:h.jsx("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),h.jsxs("div",{children:[h.jsx("p",{className:"text-yellow-200 font-semibold text-sm",children:e("Important: Save your API Key now!")}),h.jsx("p",{className:"text-yellow-300/80 text-xs mt-1",children:e("This is the only time you will see the full API Key. It cannot be retrieved later.")})]})]})}),h.jsx("div",{className:"bg-gray-900 p-4 rounded-lg mb-4",children:h.jsxs("div",{className:"flex items-center justify-between gap-2",children:[h.jsx("code",{className:"text-green-400 text-sm break-all flex-1",children:a}),h.jsx(Ed,{text:a,className:"flex-shrink-0"})]})}),h.jsx("button",{onClick:f,className:"text-cyan-400 hover:text-cyan-300 text-sm underline",children:e("Create another API Key")})]}):h.jsxs("div",{children:[h.jsx("p",{className:"text-gray-300 mb-4",children:e("Create a free API Key to access the API. Each key has a rate limit of 100 requests per minute.")}),h.jsxs("div",{className:"space-y-4",children:[h.jsxs("div",{children:[h.jsxs("label",{className:"block text-sm text-gray-400 mb-2",children:[e("Key Name")," (",e("optional"),")"]}),h.jsx("input",{type:"text",value:u,onChange:m=>c(m.target.value),placeholder:e("e.g., My Project"),className:"w-full md:w-1/2 px-3 py-2 bg-gray-900 border border-gray-700 rounded-lg text-white placeholder-gray-500 focus:outline-none focus:border-cyan-500"})]}),h.jsxs("div",{children:[h.jsx("label",{className:"block text-sm text-gray-400 mb-2",children:e("Verification")}),h.jsx("div",{className:"[&_iframe]:!w-full h-[65px] max-w-[300px] bg-gray-700 rounded",children:h.jsx(eh,{siteKey:t.turnstileKey,onSuccess:i,options:{theme:"dark"}})})]}),h.jsx("button",{onClick:d,disabled:!r||s,className:"px-6 py-2.5 bg-cyan-600 hover:bg-cyan-700 disabled:bg-gray-600 disabled:cursor-not-allowed rounded-lg font-medium transition-colors",children:e(s?"Creating...":"Create API Key")})]})]})})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Authentication")}),h.jsxs("div",{className:"bg-gray-800 rounded-lg p-4 mb-4",children:[h.jsx("p",{className:"text-gray-300 mb-3",children:e("All API requests require an API Key. Include it in the request header:")}),h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto",children:h.jsx("code",{className:"text-green-400",children:"X-API-Key: your-api-key"})}),h.jsx("p",{className:"text-gray-400 text-sm mt-2",children:e("Or use Authorization header:")}),h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto mt-2",children:h.jsx("code",{className:"text-green-400",children:"Authorization: Bearer your-api-key"})})]})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:"Base URL"}),h.jsx("div",{className:"bg-gray-800 rounded-lg p-4",children:h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto",children:h.jsx("code",{className:"text-yellow-400",children:"https://vmail.dev/api/v1"})})})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Endpoints")}),h.jsxs("div",{className:"bg-gray-800 rounded-lg p-4 mb-6",children:[h.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[h.jsx("span",{className:"bg-green-600 text-white px-2 py-1 rounded text-sm font-mono",children:"POST"}),h.jsx("code",{className:"text-white font-mono",children:"/mailboxes"})]}),h.jsx("p",{className:"text-gray-300 mb-4",children:e("Create a new temporary mailbox")}),h.jsxs("h4",{className:"text-cyan-200 font-semibold mb-2",children:[e("Request Body")," (optional)"]}),h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto mb-4 text-sm",children:h.jsx("code",{className:"text-gray-300",children:`{ + `),()=>{document.head.removeChild(c)}},[t]),h.jsx(SR,{isPresent:t,childRef:r,sizeRef:i,children:b.cloneElement(e,{ref:r})})}const kR=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o})=>{const a=ru(CR),l=b.useId(),u=b.useCallback(d=>{a.set(d,!0);for(const f of a.values())if(!f)return;r&&r()},[a,r]),c=b.useMemo(()=>({id:l,initial:t,isPresent:n,custom:i,onExitComplete:u,register:d=>(a.set(d,!1),()=>a.delete(d))}),s?[Math.random(),u]:[n,u]);return b.useMemo(()=>{a.forEach((d,f)=>a.set(f,!1))},[n]),b.useEffect(()=>{!n&&!a.size&&r&&r()},[n]),o==="popLayout"&&(e=h.jsx(PR,{isPresent:n,children:e})),h.jsx(iu.Provider,{value:c,children:e})};function CR(){return new Map}function bw(e=!0){const t=b.useContext(iu);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=b.useId();b.useEffect(()=>{e&&i(s)},[e]);const o=b.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const ca=e=>e.key||"";function Xp(e){const t=[];return b.Children.forEach(e,n=>{b.isValidElement(n)&&t.push(n)}),t}const lh=typeof window<"u",uh=lh?b.useLayoutEffect:b.useEffect,ER=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1})=>{const[a,l]=bw(o),u=b.useMemo(()=>Xp(e),[e]),c=o&&!a?[]:u.map(ca),d=b.useRef(!0),f=b.useRef(u),m=ru(()=>new Map),[p,v]=b.useState(u),[x,y]=b.useState(u);uh(()=>{d.current=!1,f.current=u;for(let S=0;S{const P=ca(S),T=o&&!a?!1:u===x||c.includes(P),C=()=>{if(m.has(P))m.set(P,!0);else return;let j=!0;m.forEach($=>{$||(j=!1)}),j&&(w==null||w(),y(f.current),o&&(l==null||l()),r&&r())};return h.jsx(kR,{isPresent:T,initial:!d.current||n?void 0:!1,custom:T?void 0:t,presenceAffectsLayout:i,mode:s,onExitComplete:T?void 0:C,children:S},P)})})},ht=e=>e;let Sw=ht;function ch(e){let t;return()=>(t===void 0&&(t=e()),t)}const Bi=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},hn=e=>e*1e3,mn=e=>e/1e3,TR={useManualTiming:!1};function jR(e){let t=new Set,n=new Set,r=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function a(u){s.has(u)&&(l.schedule(u),e()),u(o)}const l={schedule:(u,c=!1,d=!1)=>{const m=d&&r?t:n;return c&&s.add(u),m.has(u)||m.add(u),u},cancel:u=>{n.delete(u),s.delete(u)},process:u=>{if(o=u,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(a),t.clear(),r=!1,i&&(i=!1,l.process(u))}};return l}const da=["read","resolveKeyframes","update","preRender","render","postRender"],NR=40;function Pw(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=da.reduce((y,g)=>(y[g]=jR(s),y),{}),{read:a,resolveKeyframes:l,update:u,preRender:c,render:d,postRender:f}=o,m=()=>{const y=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(y-i.timestamp,NR),1),i.timestamp=y,i.isProcessing=!0,a.process(i),l.process(i),u.process(i),c.process(i),d.process(i),f.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(m))},p=()=>{n=!0,r=!0,i.isProcessing||e(m)};return{schedule:da.reduce((y,g)=>{const w=o[g];return y[g]=(S,P=!1,T=!1)=>(n||p(),w.schedule(S,P,T)),y},{}),cancel:y=>{for(let g=0;gGp[e].some(n=>!!t[n])};function MR(e){for(const t in e)Hi[t]={...Hi[t],...e[t]}}const OR=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function vl(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OR.has(e)}let Cw=e=>!vl(e);function RR(e){e&&(Cw=t=>t.startsWith("on")?!vl(t):e(t))}try{RR(require("@emotion/is-prop-valid").default)}catch{}function DR(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(Cw(i)||n===!0&&vl(i)||!t&&!vl(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function LR(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const su=b.createContext({});function co(e){return typeof e=="string"||Array.isArray(e)}function ou(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const dh=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],fh=["initial",...dh];function au(e){return ou(e.animate)||fh.some(t=>co(e[t]))}function Ew(e){return!!(au(e)||e.variants)}function AR(e,t){if(au(e)){const{initial:n,animate:r}=e;return{initial:n===!1||co(n)?n:void 0,animate:co(r)?r:void 0}}return e.inherit!==!1?t:{}}function $R(e){const{initial:t,animate:n}=AR(e,b.useContext(su));return b.useMemo(()=>({initial:t,animate:n}),[Yp(t),Yp(n)])}function Yp(e){return Array.isArray(e)?e.join(" "):e}const FR=Symbol.for("motionComponentSymbol");function ci(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function IR(e,t,n){return b.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):ci(n)&&(n.current=r))},[t])}const hh=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),VR="framerAppearId",Tw="data-"+hh(VR),{schedule:mh}=Pw(queueMicrotask,!1),jw=b.createContext({});function _R(e,t,n,r,i){var s,o;const{visualElement:a}=b.useContext(su),l=b.useContext(kw),u=b.useContext(iu),c=b.useContext(ah).reducedMotion,d=b.useRef(null);r=r||l.renderer,!d.current&&r&&(d.current=r(e,{visualState:t,parent:a,props:n,presenceContext:u,blockInitialAnimation:u?u.initial===!1:!1,reducedMotionConfig:c}));const f=d.current,m=b.useContext(jw);f&&!f.projection&&i&&(f.type==="html"||f.type==="svg")&&zR(d.current,n,i,m);const p=b.useRef(!1);b.useInsertionEffect(()=>{f&&p.current&&f.update(n,u)});const v=n[Tw],x=b.useRef(!!v&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,v))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,v)));return uh(()=>{f&&(p.current=!0,window.MotionIsMounted=!0,f.updateFeatures(),mh.render(f.render),x.current&&f.animationState&&f.animationState.animateChanges())}),b.useEffect(()=>{f&&(!x.current&&f.animationState&&f.animationState.animateChanges(),x.current&&(queueMicrotask(()=>{var y;(y=window.MotionHandoffMarkAsComplete)===null||y===void 0||y.call(window,v)}),x.current=!1))}),f}function zR(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:a,layoutScroll:l,layoutRoot:u}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Nw(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||a&&ci(a),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,layoutScroll:l,layoutRoot:u})}function Nw(e){if(e)return e.options.allowProjection!==!1?e.projection:Nw(e.parent)}function WR({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var s,o;e&&MR(e);function a(u,c){let d;const f={...b.useContext(ah),...u,layoutId:UR(u)},{isStatic:m}=f,p=$R(u),v=r(u,m);if(!m&&lh){BR();const x=HR(f);d=x.MeasureLayout,p.visualElement=_R(i,v,f,t,x.ProjectionNode)}return h.jsxs(su.Provider,{value:p,children:[d&&p.visualElement?h.jsx(d,{visualElement:p.visualElement,...f}):null,n(i,u,IR(v,p.visualElement,c),v,m,p.visualElement)]})}a.displayName=`motion.${typeof i=="string"?i:`create(${(o=(s=i.displayName)!==null&&s!==void 0?s:i.name)!==null&&o!==void 0?o:""})`}`;const l=b.forwardRef(a);return l[FR]=i,l}function UR({layoutId:e}){const t=b.useContext(oh).id;return t&&e!==void 0?t+"-"+e:e}function BR(e,t){b.useContext(kw).strict}function HR(e){const{drag:t,layout:n}=Hi;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const qR=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function ph(e){return typeof e!="string"||e.includes("-")?!1:!!(qR.indexOf(e)>-1||/[A-Z]/u.test(e))}function Jp(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function gh(e,t,n,r){if(typeof t=="function"){const[i,s]=Jp(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=Jp(r);t=t(n!==void 0?n:e.custom,i,s)}return t}const jd=e=>Array.isArray(e),KR=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),QR=e=>jd(e)?e[e.length-1]||0:e,Be=e=>!!(e&&e.getVelocity);function $a(e){const t=Be(e)?e.get():e;return KR(t)?t.toValue():t}function XR({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,s){const o={latestValues:GR(r,i,s,e),renderState:t()};return n&&(o.onMount=a=>n({props:r,current:a,...o}),o.onUpdate=a=>n(a)),o}const Mw=e=>(t,n)=>{const r=b.useContext(su),i=b.useContext(iu),s=()=>XR(e,t,r,i);return n?s():ru(s)};function GR(e,t,n,r){const i={},s=r(e,{});for(const f in s)i[f]=$a(s[f]);let{initial:o,animate:a}=e;const l=au(e),u=Ew(e);t&&u&&!l&&e.inherit!==!1&&(o===void 0&&(o=t.initial),a===void 0&&(a=t.animate));let c=n?n.initial===!1:!1;c=c||o===!1;const d=c?a:o;if(d&&typeof d!="boolean"&&!ou(d)){const f=Array.isArray(d)?d:[d];for(let m=0;mt=>typeof t=="string"&&t.startsWith(e),Rw=Ow("--"),YR=Ow("var(--"),yh=e=>YR(e)?JR.test(e.split("/*")[0].trim()):!1,JR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Dw=(e,t)=>t&&typeof e=="number"?t.transform(e):e,bn=(e,t,n)=>n>t?t:ntypeof e=="number",parse:parseFloat,transform:e=>e},fo={...ns,transform:e=>bn(0,1,e)},fa={...ns,default:1},Fo=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Tn=Fo("deg"),tn=Fo("%"),K=Fo("px"),ZR=Fo("vh"),eD=Fo("vw"),Zp={...tn,parse:e=>tn.parse(e)/100,transform:e=>tn.transform(e*100)},tD={borderWidth:K,borderTopWidth:K,borderRightWidth:K,borderBottomWidth:K,borderLeftWidth:K,borderRadius:K,radius:K,borderTopLeftRadius:K,borderTopRightRadius:K,borderBottomRightRadius:K,borderBottomLeftRadius:K,width:K,maxWidth:K,height:K,maxHeight:K,top:K,right:K,bottom:K,left:K,padding:K,paddingTop:K,paddingRight:K,paddingBottom:K,paddingLeft:K,margin:K,marginTop:K,marginRight:K,marginBottom:K,marginLeft:K,backgroundPositionX:K,backgroundPositionY:K},nD={rotate:Tn,rotateX:Tn,rotateY:Tn,rotateZ:Tn,scale:fa,scaleX:fa,scaleY:fa,scaleZ:fa,skew:Tn,skewX:Tn,skewY:Tn,distance:K,translateX:K,translateY:K,translateZ:K,x:K,y:K,z:K,perspective:K,transformPerspective:K,opacity:fo,originX:Zp,originY:Zp,originZ:K},eg={...ns,transform:Math.round},vh={...tD,...nD,zIndex:eg,size:K,fillOpacity:fo,strokeOpacity:fo,numOctaves:eg},rD={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},iD=ts.length;function sD(e,t,n){let r="",i=!0;for(let s=0;s({style:{},transform:{},transformOrigin:{},vars:{}}),Lw=()=>({...bh(),attrs:{}}),Sh=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Aw(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const s in n)e.style.setProperty(s,n[s])}const $w=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function Fw(e,t,n,r){Aw(e,t,void 0,r);for(const i in t.attrs)e.setAttribute($w.has(i)?i:hh(i),t.attrs[i])}const wl={};function cD(e){Object.assign(wl,e)}function Iw(e,{layout:t,layoutId:n}){return Kr.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!wl[e]||e==="opacity")}function Ph(e,t,n){var r;const{style:i}=e,s={};for(const o in i)(Be(i[o])||t.style&&Be(t.style[o])||Iw(o,e)||((r=n==null?void 0:n.getValue(o))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function Vw(e,t,n){const r=Ph(e,t,n);for(const i in e)if(Be(e[i])||Be(t[i])){const s=ts.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}function dD(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const ng=["x","y","width","height","cx","cy","r"],fD={useVisualState:Mw({scrapeMotionValuesFromProps:Vw,createRenderState:Lw,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let s=!!e.drag;if(!s){for(const a in i)if(Kr.has(a)){s=!0;break}}if(!s)return;let o=!t;if(t)for(let a=0;a{dD(n,r),fe.render(()=>{xh(r,i,Sh(n.tagName),e.transformTemplate),Fw(n,r)})})}})},hD={useVisualState:Mw({scrapeMotionValuesFromProps:Ph,createRenderState:bh})};function _w(e,t,n){for(const r in t)!Be(t[r])&&!Iw(r,n)&&(e[r]=t[r])}function mD({transformTemplate:e},t){return b.useMemo(()=>{const n=bh();return wh(n,t,e),Object.assign({},n.vars,n.style)},[t])}function pD(e,t){const n=e.style||{},r={};return _w(r,n,e),Object.assign(r,mD(e,t)),r}function gD(e,t){const n={},r=pD(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}function yD(e,t,n,r){const i=b.useMemo(()=>{const s=Lw();return xh(s,t,Sh(r),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};_w(s,e.style,e),i.style={...s,...i.style}}return i}function vD(e=!1){return(n,r,i,{latestValues:s},o)=>{const l=(ph(n)?yD:gD)(r,s,o,n),u=DR(r,typeof n=="string",e),c=n!==b.Fragment?{...u,...l,ref:i}:{},{children:d}=r,f=b.useMemo(()=>Be(d)?d.get():d,[d]);return b.createElement(n,{...c,children:f})}}function wD(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...ph(r)?fD:hD,preloadedFeatures:e,useRender:vD(i),createVisualElement:t,Component:r};return WR(o)}}function zw(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;rwindow.ScrollTimeline!==void 0);class bD{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r{if(xD()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;nn[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class SD extends bD{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function kh(e,t){return e?e[t]||e.default||e:void 0}const Nd=2e4;function Ww(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t=Nd?1/0:t}function Ch(e){return typeof e=="function"}function rg(e,t){e.timeline=t,e.onfinish=null}const Eh=e=>Array.isArray(e)&&typeof e[0]=="number",PD={linearEasing:void 0};function kD(e,t){const n=ch(e);return()=>{var r;return(r=PD[t])!==null&&r!==void 0?r:n()}}const xl=kD(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Uw=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Md={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Ps([0,.65,.55,1]),circOut:Ps([.55,0,1,.45]),backIn:Ps([.31,.01,.66,-.59]),backOut:Ps([.33,1.53,.69,.99])};function Hw(e,t){if(e)return typeof e=="function"&&xl()?Uw(e,t):Eh(e)?Ps(e):Array.isArray(e)?e.map(n=>Hw(n,t)||Md.easeOut):Md[e]}const Rt={x:!1,y:!1};function qw(){return Rt.x||Rt.y}function CD(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function Kw(e,t){const n=CD(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function ig(e){return t=>{t.pointerType==="touch"||qw()||e(t)}}function ED(e,t,n={}){const[r,i,s]=Kw(e,n),o=ig(a=>{const{target:l}=a,u=t(a);if(typeof u!="function"||!l)return;const c=ig(d=>{u(d),l.removeEventListener("pointerleave",c)});l.addEventListener("pointerleave",c,i)});return r.forEach(a=>{a.addEventListener("pointerenter",o,i)}),s}const Qw=(e,t)=>t?e===t?!0:Qw(e,t.parentElement):!1,Th=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,TD=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function jD(e){return TD.has(e.tagName)||e.tabIndex!==-1}const ks=new WeakSet;function sg(e){return t=>{t.key==="Enter"&&e(t)}}function Bu(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const ND=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=sg(()=>{if(ks.has(n))return;Bu(n,"down");const i=sg(()=>{Bu(n,"up")}),s=()=>Bu(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function og(e){return Th(e)&&!qw()}function MD(e,t,n={}){const[r,i,s]=Kw(e,n),o=a=>{const l=a.currentTarget;if(!og(a)||ks.has(l))return;ks.add(l);const u=t(a),c=(m,p)=>{window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",f),!(!og(m)||!ks.has(l))&&(ks.delete(l),typeof u=="function"&&u(m,{success:p}))},d=m=>{c(m,n.useGlobalTarget||Qw(l,m.target))},f=m=>{c(m,!1)};window.addEventListener("pointerup",d,i),window.addEventListener("pointercancel",f,i)};return r.forEach(a=>{!jD(a)&&a.getAttribute("tabindex")===null&&(a.tabIndex=0),(n.useGlobalTarget?window:a).addEventListener("pointerdown",o,i),a.addEventListener("focus",u=>ND(u,i),i)}),s}function OD(e){return e==="x"||e==="y"?Rt[e]?null:(Rt[e]=!0,()=>{Rt[e]=!1}):Rt.x||Rt.y?null:(Rt.x=Rt.y=!0,()=>{Rt.x=Rt.y=!1})}const Xw=new Set(["width","height","top","left","right","bottom",...ts]);let Fa;function RD(){Fa=void 0}const nn={now:()=>(Fa===void 0&&nn.set($e.isProcessing||TR.useManualTiming?$e.timestamp:performance.now()),Fa),set:e=>{Fa=e,queueMicrotask(RD)}};function jh(e,t){e.indexOf(t)===-1&&e.push(t)}function Nh(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class Mh{constructor(){this.subscriptions=[]}add(t){return jh(this.subscriptions,t),()=>Nh(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s!isNaN(parseFloat(e));class LD{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const s=nn.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=nn.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=DD(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Mh);const r=this.events[t].add(n);return t==="change"?()=>{r(),fe.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=nn.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>ag)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,ag);return Gw(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ho(e,t){return new LD(e,t)}function AD(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ho(n))}function Oh(e,t){const n=lu(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const a=QR(s[o]);AD(e,o,a)}}function $D(e){return!!(Be(e)&&e.add)}function Od(e,t){const n=e.getValue("willChange");if($D(n))return n.add(t)}function Yw(e){return e.props[Tw]}const Jw=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,FD=1e-7,ID=12;function VD(e,t,n,r,i){let s,o,a=0;do o=t+(n-t)/2,s=Jw(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>FD&&++aVD(s,0,1,e,n);return s=>s===0||s===1?s:Jw(i(s),t,r)}const Zw=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,ex=e=>t=>1-e(1-t),tx=Io(.33,1.53,.69,.99),Rh=ex(tx),nx=Zw(Rh),rx=e=>(e*=2)<1?.5*Rh(e):.5*(2-Math.pow(2,-10*(e-1))),Dh=e=>1-Math.sin(Math.acos(e)),ix=ex(Dh),sx=Zw(Dh),ox=e=>/^0[^.\s]+$/u.test(e);function _D(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||ox(e):!0}const Fs=e=>Math.round(e*1e5)/1e5,Lh=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function zD(e){return e==null}const WD=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Ah=(e,t)=>n=>!!(typeof n=="string"&&WD.test(n)&&n.startsWith(e)||t&&!zD(n)&&Object.prototype.hasOwnProperty.call(n,t)),ax=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,a]=r.match(Lh);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:a!==void 0?parseFloat(a):1}},UD=e=>bn(0,255,e),Hu={...ns,transform:e=>Math.round(UD(e))},br={test:Ah("rgb","red"),parse:ax("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Hu.transform(e)+", "+Hu.transform(t)+", "+Hu.transform(n)+", "+Fs(fo.transform(r))+")"};function BD(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const Rd={test:Ah("#"),parse:BD,transform:br.transform},di={test:Ah("hsl","hue"),parse:ax("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+tn.transform(Fs(t))+", "+tn.transform(Fs(n))+", "+Fs(fo.transform(r))+")"},ze={test:e=>br.test(e)||Rd.test(e)||di.test(e),parse:e=>br.test(e)?br.parse(e):di.test(e)?di.parse(e):Rd.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?br.transform(e):di.transform(e)},HD=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function qD(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Lh))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(HD))===null||n===void 0?void 0:n.length)||0)>0}const lx="number",ux="color",KD="var",QD="var(",lg="${}",XD=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function mo(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const a=t.replace(XD,l=>(ze.test(l)?(r.color.push(s),i.push(ux),n.push(ze.parse(l))):l.startsWith(QD)?(r.var.push(s),i.push(KD),n.push(l)):(r.number.push(s),i.push(lx),n.push(parseFloat(l))),++s,lg)).split(lg);return{values:n,split:a,indexes:r,types:i}}function cx(e){return mo(e).values}function dx(e){const{split:t,types:n}=mo(e),r=t.length;return i=>{let s="";for(let o=0;otypeof e=="number"?0:e;function YD(e){const t=cx(e);return dx(e)(t.map(GD))}const nr={test:qD,parse:cx,createTransformer:dx,getAnimatableNone:YD},JD=new Set(["brightness","contrast","saturate","opacity"]);function ZD(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(Lh)||[];if(!r)return e;const i=n.replace(r,"");let s=JD.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const e5=/\b([a-z-]*)\(.*?\)/gu,Dd={...nr,getAnimatableNone:e=>{const t=e.match(e5);return t?t.map(ZD).join(" "):e}},t5={...vh,color:ze,backgroundColor:ze,outlineColor:ze,fill:ze,stroke:ze,borderColor:ze,borderTopColor:ze,borderRightColor:ze,borderBottomColor:ze,borderLeftColor:ze,filter:Dd,WebkitFilter:Dd},$h=e=>t5[e];function fx(e,t){let n=$h(e);return n!==Dd&&(n=nr),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const n5=new Set(["auto","none","0"]);function r5(e,t,n){let r=0,i;for(;re===ns||e===K,cg=(e,t)=>parseFloat(e.split(", ")[t]),dg=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return cg(i[1],t);{const s=r.match(/^matrix\((.+)\)$/u);return s?cg(s[1],e):0}},i5=new Set(["x","y","z"]),s5=ts.filter(e=>!i5.has(e));function o5(e){const t=[];return s5.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const qi={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:dg(4,13),y:dg(5,14)};qi.translateX=qi.x;qi.translateY=qi.y;const Dr=new Set;let Ld=!1,Ad=!1;function hx(){if(Ad){const e=Array.from(Dr).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=o5(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var a;(a=r.getValue(s))===null||a===void 0||a.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Ad=!1,Ld=!1,Dr.forEach(e=>e.complete()),Dr.clear()}function mx(){Dr.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Ad=!0)})}function a5(){mx(),hx()}class Fh{constructor(t,n,r,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Dr.add(this),Ld||(Ld=!0,fe.read(mx),fe.resolveKeyframes(hx))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let s=0;s/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),l5=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function u5(e){const t=l5.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function gx(e,t,n=1){const[r,i]=u5(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return px(o)?parseFloat(o):o}return yh(i)?gx(i,t,n+1):i}const yx=e=>t=>t.test(e),c5={test:e=>e==="auto",parse:e=>e},vx=[ns,K,tn,Tn,eD,ZR,c5],fg=e=>vx.find(yx(e));class wx extends Fh{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l{n.getValue(l).set(u)}),this.resolveNoneKeyframes()}}const hg=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(nr.test(e)||e==="0")&&!e.startsWith("url("));function d5(e){const t=e[0];if(e.length===1)return!0;for(let n=0;ne!==null;function uu(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(h5),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}const m5=40;class xx{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=nn.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>m5?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&a5(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=nn.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:s,delay:o,onComplete:a,onUpdate:l,isGenerator:u}=this.options;if(!u&&!f5(t,r,i,s))if(o)this.options.duration=0;else{l&&l(uu(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const c=this.initPlayback(t,n);c!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...c},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const pe=(e,t,n)=>e+(t-e)*n;function qu(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function p5({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=qu(l,a,e+1/3),s=qu(l,a,e),o=qu(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function bl(e,t){return n=>n>0?t:e}const Ku=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},g5=[Rd,br,di],y5=e=>g5.find(t=>t.test(e));function mg(e){const t=y5(e);if(!t)return!1;let n=t.parse(e);return t===di&&(n=p5(n)),n}const pg=(e,t)=>{const n=mg(e),r=mg(t);if(!n||!r)return bl(e,t);const i={...n};return s=>(i.red=Ku(n.red,r.red,s),i.green=Ku(n.green,r.green,s),i.blue=Ku(n.blue,r.blue,s),i.alpha=pe(n.alpha,r.alpha,s),br.transform(i))},v5=(e,t)=>n=>t(e(n)),Vo=(...e)=>e.reduce(v5),$d=new Set(["none","hidden"]);function w5(e,t){return $d.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function x5(e,t){return n=>pe(e,t,n)}function Ih(e){return typeof e=="number"?x5:typeof e=="string"?yh(e)?bl:ze.test(e)?pg:P5:Array.isArray(e)?bx:typeof e=="object"?ze.test(e)?pg:b5:bl}function bx(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>Ih(s)(s,t[o]));return s=>{for(let o=0;o{for(const s in r)n[s]=r[s](i);return n}}function S5(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let s=0;s{const n=nr.createTransformer(t),r=mo(e),i=mo(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?$d.has(e)&&!i.values.length||$d.has(t)&&!r.values.length?w5(e,t):Vo(bx(S5(r,i),i.values),n):bl(e,t)};function Sx(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?pe(e,t,n):Ih(e)(e,t)}const k5=5;function Px(e,t,n){const r=Math.max(t-k5,0);return Gw(n-e(r),t-r)}const we={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Qu=.001;function C5({duration:e=we.duration,bounce:t=we.bounce,velocity:n=we.velocity,mass:r=we.mass}){let i,s,o=1-t;o=bn(we.minDamping,we.maxDamping,o),e=bn(we.minDuration,we.maxDuration,mn(e)),o<1?(i=u=>{const c=u*o,d=c*e,f=c-n,m=Fd(u,o),p=Math.exp(-d);return Qu-f/m*p},s=u=>{const d=u*o*e,f=d*n+n,m=Math.pow(o,2)*Math.pow(u,2)*e,p=Math.exp(-d),v=Fd(Math.pow(u,2),o);return(-i(u)+Qu>0?-1:1)*((f-m)*p)/v}):(i=u=>{const c=Math.exp(-u*e),d=(u-n)*e+1;return-Qu+c*d},s=u=>{const c=Math.exp(-u*e),d=(n-u)*(e*e);return c*d});const a=5/e,l=T5(i,s,a);if(e=hn(e),isNaN(l))return{stiffness:we.stiffness,damping:we.damping,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const E5=12;function T5(e,t,n){let r=n;for(let i=1;ie[n]!==void 0)}function M5(e){let t={velocity:we.velocity,stiffness:we.stiffness,damping:we.damping,mass:we.mass,isResolvedFromDuration:!1,...e};if(!gg(e,N5)&&gg(e,j5))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*bn(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:we.mass,stiffness:i,damping:s}}else{const n=C5(e);t={...t,...n,mass:we.mass},t.isResolvedFromDuration=!0}return t}function kx(e=we.visualDuration,t=we.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],a={done:!1,value:s},{stiffness:l,damping:u,mass:c,duration:d,velocity:f,isResolvedFromDuration:m}=M5({...n,velocity:-mn(n.velocity||0)}),p=f||0,v=u/(2*Math.sqrt(l*c)),x=o-s,y=mn(Math.sqrt(l/c)),g=Math.abs(x)<5;r||(r=g?we.restSpeed.granular:we.restSpeed.default),i||(i=g?we.restDelta.granular:we.restDelta.default);let w;if(v<1){const P=Fd(y,v);w=T=>{const C=Math.exp(-v*y*T);return o-C*((p+v*y*x)/P*Math.sin(P*T)+x*Math.cos(P*T))}}else if(v===1)w=P=>o-Math.exp(-y*P)*(x+(p+y*x)*P);else{const P=y*Math.sqrt(v*v-1);w=T=>{const C=Math.exp(-v*y*T),j=Math.min(P*T,300);return o-C*((p+v*y*x)*Math.sinh(j)+P*x*Math.cosh(j))/P}}const S={calculatedDuration:m&&d||null,next:P=>{const T=w(P);if(m)a.done=P>=d;else{let C=0;v<1&&(C=P===0?hn(p):Px(w,P,T));const j=Math.abs(C)<=r,$=Math.abs(o-T)<=i;a.done=j&&$}return a.value=a.done?o:T,a},toString:()=>{const P=Math.min(Ww(S),Nd),T=Uw(C=>S.next(P*C).value,P,30);return P+"ms "+T}};return S}function yg({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:a,max:l,restDelta:u=.5,restSpeed:c}){const d=e[0],f={done:!1,value:d},m=j=>a!==void 0&&jl,p=j=>a===void 0?l:l===void 0||Math.abs(a-j)-v*Math.exp(-j/r),w=j=>y+g(j),S=j=>{const $=g(j),_=w(j);f.done=Math.abs($)<=u,f.value=f.done?y:_};let P,T;const C=j=>{m(f.value)&&(P=j,T=kx({keyframes:[f.value,p(f.value)],velocity:Px(w,j,f.value),damping:i,stiffness:s,restDelta:u,restSpeed:c}))};return C(0),{calculatedDuration:null,next:j=>{let $=!1;return!T&&P===void 0&&($=!0,S(j),C(j)),P!==void 0&&j>=P?T.next(j-P):(!$&&S(j),f)}}}const O5=Io(.42,0,1,1),R5=Io(0,0,.58,1),Cx=Io(.42,0,.58,1),D5=e=>Array.isArray(e)&&typeof e[0]!="number",L5={linear:ht,easeIn:O5,easeInOut:Cx,easeOut:R5,circIn:Dh,circInOut:sx,circOut:ix,backIn:Rh,backInOut:nx,backOut:tx,anticipate:rx},vg=e=>{if(Eh(e)){Sw(e.length===4);const[t,n,r,i]=e;return Io(t,n,r,i)}else if(typeof e=="string")return L5[e];return e};function A5(e,t,n){const r=[],i=n||Sx,s=e.length-1;for(let o=0;ot[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=A5(t,r,i),l=a.length,u=c=>{if(o&&c1)for(;du(bn(e[0],e[s-1],c)):u}function F5(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=Bi(0,t,r);e.push(pe(n,1,i))}}function I5(e){const t=[0];return F5(t,e.length-1),t}function V5(e,t){return e.map(n=>n*t)}function _5(e,t){return e.map(()=>t||Cx).splice(0,e.length-1)}function Sl({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=D5(r)?r.map(vg):vg(r),s={done:!1,value:t[0]},o=V5(n&&n.length===t.length?n:I5(t),e),a=$5(o,t,{ease:Array.isArray(i)?i:_5(t,i)});return{calculatedDuration:e,next:l=>(s.value=a(l),s.done=l>=e,s)}}const z5=e=>{const t=({timestamp:n})=>e(n);return{start:()=>fe.update(t,!0),stop:()=>tr(t),now:()=>$e.isProcessing?$e.timestamp:nn.now()}},W5={decay:yg,inertia:yg,tween:Sl,keyframes:Sl,spring:kx},U5=e=>e/100;class Vh extends xx{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:i,keyframes:s}=this.options,o=(i==null?void 0:i.KeyframeResolver)||Fh,a=(l,u)=>this.onKeyframesResolved(l,u);this.resolver=new o(s,a,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,a=Ch(n)?n:W5[n]||Sl;let l,u;a!==Sl&&typeof t[0]!="number"&&(l=Vo(U5,Sx(t[0],t[1])),t=[0,100]);const c=a({...this.options,keyframes:t});s==="mirror"&&(u=a({...this.options,keyframes:[...t].reverse(),velocity:-o})),c.calculatedDuration===null&&(c.calculatedDuration=Ww(c));const{calculatedDuration:d}=c,f=d+i,m=f*(r+1)-i;return{generator:c,mirroredGenerator:u,mapPercentToKeyframes:l,calculatedDuration:d,resolvedDuration:f,totalDuration:m}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:j}=this.options;return{done:!0,value:j[j.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:u,totalDuration:c,resolvedDuration:d}=r;if(this.startTime===null)return s.next(0);const{delay:f,repeat:m,repeatType:p,repeatDelay:v,onUpdate:x}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-c/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const y=this.currentTime-f*(this.speed>=0?1:-1),g=this.speed>=0?y<0:y>c;this.currentTime=Math.max(y,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=c);let w=this.currentTime,S=s;if(m){const j=Math.min(this.currentTime,c)/d;let $=Math.floor(j),_=j%1;!_&&j>=1&&(_=1),_===1&&$--,$=Math.min($,m+1),!!($%2)&&(p==="reverse"?(_=1-_,v&&(_-=v/d)):p==="mirror"&&(S=o)),w=bn(0,1,_)*d}const P=g?{done:!1,value:l[0]}:S.next(w);a&&(P.value=a(P.value));let{done:T}=P;!g&&u!==null&&(T=this.speed>=0?this.currentTime>=c:this.currentTime<=0);const C=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&T);return C&&i!==void 0&&(P.value=uu(l,this.options,i)),x&&x(P.value),C&&this.finish(),P}get duration(){const{resolved:t}=this;return t?mn(t.calculatedDuration):0}get time(){return mn(this.currentTime)}set time(t){t=hn(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=mn(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=z5,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const B5=new Set(["opacity","clipPath","filter","transform"]);function H5(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:a="easeInOut",times:l}={}){const u={[t]:n};l&&(u.offset=l);const c=Hw(a,i);return Array.isArray(c)&&(u.easing=c),e.animate(u,{delay:r,duration:i,easing:Array.isArray(c)?"linear":c,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}const q5=ch(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Pl=10,K5=2e4;function Q5(e){return Ch(e.type)||e.type==="spring"||!Bw(e.ease)}function X5(e,t){const n=new Vh({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let s=0;for(;!r.done&&sthis.onKeyframesResolved(o,a),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:s,type:o,motionValue:a,name:l,startTime:u}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof s=="string"&&xl()&&G5(s)&&(s=Ex[s]),Q5(this.options)){const{onComplete:d,onUpdate:f,motionValue:m,element:p,...v}=this.options,x=X5(t,v);t=x.keyframes,t.length===1&&(t[1]=t[0]),r=x.duration,i=x.times,s=x.ease,o="keyframes"}const c=H5(a.owner.current,l,t,{...this.options,duration:r,times:i,ease:s});return c.startTime=u??this.calcStartTime(),this.pendingTimeline?(rg(c,this.pendingTimeline),this.pendingTimeline=void 0):c.onfinish=()=>{const{onComplete:d}=this.options;a.set(uu(t,this.options,n)),d&&d(),this.cancel(),this.resolveFinishedPromise()},{animation:c,duration:r,times:i,type:o,ease:s,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return mn(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return mn(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=hn(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ht;const{animation:r}=n;rg(r,t)}return ht}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:s,ease:o,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:c,onComplete:d,element:f,...m}=this.options,p=new Vh({...m,keyframes:r,duration:i,type:s,ease:o,times:a,isGenerator:!0}),v=hn(this.time);u.setWithVelocity(p.sample(v-Pl).value,p.sample(v).value,Pl)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:s,damping:o,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:u}=n.owner.getProps();return q5()&&r&&B5.has(r)&&!l&&!u&&!i&&s!=="mirror"&&o!==0&&a!=="inertia"}}const Y5={type:"spring",stiffness:500,damping:25,restSpeed:10},J5=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),Z5={type:"keyframes",duration:.8},eL={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},tL=(e,{keyframes:t})=>t.length>2?Z5:Kr.has(e)?e.startsWith("scale")?J5(t[1]):Y5:eL;function nL({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:a,from:l,elapsed:u,...c}){return!!Object.keys(c).length}const _h=(e,t,n,r={},i,s)=>o=>{const a=kh(r,e)||{},l=a.delay||r.delay||0;let{elapsed:u=0}=r;u=u-hn(l);let c={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-u,onUpdate:f=>{t.set(f),a.onUpdate&&a.onUpdate(f)},onComplete:()=>{o(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:s?void 0:i};nL(a)||(c={...c,...tL(e,c)}),c.duration&&(c.duration=hn(c.duration)),c.repeatDelay&&(c.repeatDelay=hn(c.repeatDelay)),c.from!==void 0&&(c.keyframes[0]=c.from);let d=!1;if((c.type===!1||c.duration===0&&!c.repeatDelay)&&(c.duration=0,c.delay===0&&(d=!0)),d&&!s&&t.get()!==void 0){const f=uu(c.keyframes,a);if(f!==void 0)return fe.update(()=>{c.onUpdate(f),c.onComplete()}),new SD([])}return!s&&wg.supports(c)?new wg(c):new Vh(c)};function rL({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Tx(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:a,...l}=t;r&&(o=r);const u=[],c=i&&e.animationState&&e.animationState.getState()[i];for(const d in l){const f=e.getValue(d,(s=e.latestValues[d])!==null&&s!==void 0?s:null),m=l[d];if(m===void 0||c&&rL(c,d))continue;const p={delay:n,...kh(o||{},d)};let v=!1;if(window.MotionHandoffAnimation){const y=Yw(e);if(y){const g=window.MotionHandoffAnimation(y,d,fe);g!==null&&(p.startTime=g,v=!0)}}Od(e,d),f.start(_h(d,f,m,e.shouldReduceMotion&&Xw.has(d)?{type:!1}:p,e,v));const x=f.animation;x&&u.push(x)}return a&&Promise.all(u).then(()=>{fe.update(()=>{a&&Oh(e,a)})}),u}function Id(e,t,n={}){var r;const i=lu(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(Tx(e,i,n)):()=>Promise.resolve(),a=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:c=0,staggerChildren:d,staggerDirection:f}=s;return iL(e,t,c+u,d,f,n)}:()=>Promise.resolve(),{when:l}=s;if(l){const[u,c]=l==="beforeChildren"?[o,a]:[a,o];return u().then(()=>c())}else return Promise.all([o(),a(n.delay)])}function iL(e,t,n=0,r=0,i=1,s){const o=[],a=(e.variantChildren.size-1)*r,l=i===1?(u=0)=>u*r:(u=0)=>a-u*r;return Array.from(e.variantChildren).sort(sL).forEach((u,c)=>{u.notify("AnimationStart",t),o.push(Id(u,t,{...s,delay:n+l(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(o)}function sL(e,t){return e.sortNodePosition(t)}function jx(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>Id(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=Id(e,t,n);else{const i=typeof t=="function"?lu(e,t,n.custom):t;r=Promise.all(Tx(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const oL=fh.length;function Nx(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Nx(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;nPromise.all(t.map(({animation:n,options:r})=>jx(e,n,r)))}function cL(e){let t=uL(e),n=xg(),r=!0;const i=l=>(u,c)=>{var d;const f=lu(e,c,l==="exit"?(d=e.presenceContext)===null||d===void 0?void 0:d.custom:void 0);if(f){const{transition:m,transitionEnd:p,...v}=f;u={...u,...v,...p}}return u};function s(l){t=l(e)}function o(l){const{props:u}=e,c=Nx(e.parent)||{},d=[],f=new Set;let m={},p=1/0;for(let x=0;xp&&S,$=!1;const _=Array.isArray(w)?w:[w];let W=_.reduce(i(y),{});P===!1&&(W={});const{prevResolvedValues:ee={}}=g,ve={...ee,...W},te=I=>{j=!0,f.has(I)&&($=!0,f.delete(I)),g.needsAnimating[I]=!0;const M=e.getValue(I);M&&(M.liveStyle=!1)};for(const I in ve){const M=W[I],L=ee[I];if(m.hasOwnProperty(I))continue;let D=!1;jd(M)&&jd(L)?D=!zw(M,L):D=M!==L,D?M!=null?te(I):f.add(I):M!==void 0&&f.has(I)?te(I):g.protectedKeys[I]=!0}g.prevProp=w,g.prevResolvedValues=W,g.isActive&&(m={...m,...W}),r&&e.blockInitialAnimation&&(j=!1),j&&(!(T&&C)||$)&&d.push(..._.map(I=>({animation:I,options:{type:y}})))}if(f.size){const x={};f.forEach(y=>{const g=e.getBaseTarget(y),w=e.getValue(y);w&&(w.liveStyle=!0),x[y]=g??null}),d.push({animation:x})}let v=!!d.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,v?t(d):Promise.resolve()}function a(l,u){var c;if(n[l].isActive===u)return Promise.resolve();(c=e.variantChildren)===null||c===void 0||c.forEach(f=>{var m;return(m=f.animationState)===null||m===void 0?void 0:m.setActive(l,u)}),n[l].isActive=u;const d=o(l);for(const f in n)n[f].protectedKeys={};return d}return{animateChanges:o,setActive:a,setAnimateFunction:s,getState:()=>n,reset:()=>{n=xg(),r=!0}}}function dL(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!zw(t,e):!1}function dr(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function xg(){return{animate:dr(!0),whileInView:dr(),whileHover:dr(),whileTap:dr(),whileDrag:dr(),whileFocus:dr(),exit:dr()}}class ur{constructor(t){this.isMounted=!1,this.node=t}update(){}}class fL extends ur{constructor(t){super(t),t.animationState||(t.animationState=cL(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();ou(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let hL=0;class mL extends ur{constructor(){super(...arguments),this.id=hL++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const pL={animation:{Feature:fL},exit:{Feature:mL}};function po(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function _o(e){return{point:{x:e.pageX,y:e.pageY}}}const gL=e=>t=>Th(t)&&e(t,_o(t));function Is(e,t,n,r){return po(e,t,gL(n),r)}const bg=(e,t)=>Math.abs(e-t);function yL(e,t){const n=bg(e.x,t.x),r=bg(e.y,t.y);return Math.sqrt(n**2+r**2)}class Mx{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const d=Gu(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,m=yL(d.offset,{x:0,y:0})>=3;if(!f&&!m)return;const{point:p}=d,{timestamp:v}=$e;this.history.push({...p,timestamp:v});const{onStart:x,onMove:y}=this.handlers;f||(x&&x(this.lastMoveEvent,d),this.startEvent=this.lastMoveEvent),y&&y(this.lastMoveEvent,d)},this.handlePointerMove=(d,f)=>{this.lastMoveEvent=d,this.lastMoveEventInfo=Xu(f,this.transformPagePoint),fe.update(this.updatePoint,!0)},this.handlePointerUp=(d,f)=>{this.end();const{onEnd:m,onSessionEnd:p,resumeAnimation:v}=this.handlers;if(this.dragSnapToOrigin&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const x=Gu(d.type==="pointercancel"?this.lastMoveEventInfo:Xu(f,this.transformPagePoint),this.history);this.startEvent&&m&&m(d,x),p&&p(d,x)},!Th(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const o=_o(t),a=Xu(o,this.transformPagePoint),{point:l}=a,{timestamp:u}=$e;this.history=[{...l,timestamp:u}];const{onSessionStart:c}=n;c&&c(t,Gu(a,this.history)),this.removeListeners=Vo(Is(this.contextWindow,"pointermove",this.handlePointerMove),Is(this.contextWindow,"pointerup",this.handlePointerUp),Is(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),tr(this.updatePoint)}}function Xu(e,t){return t?{point:t(e.point)}:e}function Sg(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Gu({point:e},t){return{point:e,delta:Sg(e,Ox(t)),offset:Sg(e,vL(t)),velocity:wL(t,.1)}}function vL(e){return e[0]}function Ox(e){return e[e.length-1]}function wL(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=Ox(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>hn(t)));)n--;if(!r)return{x:0,y:0};const s=mn(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}const Rx=1e-4,xL=1-Rx,bL=1+Rx,Dx=.01,SL=0-Dx,PL=0+Dx;function pt(e){return e.max-e.min}function kL(e,t,n){return Math.abs(e-t)<=n}function Pg(e,t,n,r=.5){e.origin=r,e.originPoint=pe(t.min,t.max,e.origin),e.scale=pt(n)/pt(t),e.translate=pe(n.min,n.max,e.origin)-e.originPoint,(e.scale>=xL&&e.scale<=bL||isNaN(e.scale))&&(e.scale=1),(e.translate>=SL&&e.translate<=PL||isNaN(e.translate))&&(e.translate=0)}function Vs(e,t,n,r){Pg(e.x,t.x,n.x,r?r.originX:void 0),Pg(e.y,t.y,n.y,r?r.originY:void 0)}function kg(e,t,n){e.min=n.min+t.min,e.max=e.min+pt(t)}function CL(e,t,n){kg(e.x,t.x,n.x),kg(e.y,t.y,n.y)}function Cg(e,t,n){e.min=t.min-n.min,e.max=e.min+pt(t)}function _s(e,t,n){Cg(e.x,t.x,n.x),Cg(e.y,t.y,n.y)}function EL(e,{min:t,max:n},r){return t!==void 0&&en&&(e=r?pe(n,e,r.max):Math.min(e,n)),e}function Eg(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function TL(e,{top:t,left:n,bottom:r,right:i}){return{x:Eg(e.x,n,i),y:Eg(e.y,t,r)}}function Tg(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.minr?n=Bi(t.min,t.max-r,e.min):r>i&&(n=Bi(e.min,e.max-i,t.min)),bn(0,1,n)}function ML(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Vd=.35;function OL(e=Vd){return e===!1?e=0:e===!0&&(e=Vd),{x:jg(e,"left","right"),y:jg(e,"top","bottom")}}function jg(e,t,n){return{min:Ng(e,t),max:Ng(e,n)}}function Ng(e,t){return typeof e=="number"?e:e[t]||0}const Mg=()=>({translate:0,scale:1,origin:0,originPoint:0}),fi=()=>({x:Mg(),y:Mg()}),Og=()=>({min:0,max:0}),Se=()=>({x:Og(),y:Og()});function xt(e){return[e("x"),e("y")]}function Lx({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function RL({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function DL(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Yu(e){return e===void 0||e===1}function _d({scale:e,scaleX:t,scaleY:n}){return!Yu(e)||!Yu(t)||!Yu(n)}function pr(e){return _d(e)||Ax(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Ax(e){return Rg(e.x)||Rg(e.y)}function Rg(e){return e&&e!=="0%"}function kl(e,t,n){const r=e-n,i=t*r;return n+i}function Dg(e,t,n,r,i){return i!==void 0&&(e=kl(e,i,r)),kl(e,n,r)+t}function zd(e,t=0,n=1,r,i){e.min=Dg(e.min,t,n,r,i),e.max=Dg(e.max,t,n,r,i)}function $x(e,{x:t,y:n}){zd(e.x,t.translate,t.scale,t.originPoint),zd(e.y,n.translate,n.scale,n.originPoint)}const Lg=.999999999999,Ag=1.0000000000001;function LL(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let a=0;aLg&&(t.x=1),t.yLg&&(t.y=1)}function hi(e,t){e.min=e.min+t,e.max=e.max+t}function $g(e,t,n,r,i=.5){const s=pe(e.min,e.max,i);zd(e,t,n,s,r)}function mi(e,t){$g(e.x,t.x,t.scaleX,t.scale,t.originX),$g(e.y,t.y,t.scaleY,t.scale,t.originY)}function Fx(e,t){return Lx(DL(e.getBoundingClientRect(),t))}function AL(e,t,n){const r=Fx(e,n),{scroll:i}=t;return i&&(hi(r.x,i.offset.x),hi(r.y,i.offset.y)),r}const Ix=({current:e})=>e?e.ownerDocument.defaultView:null,$L=new WeakMap;class FL{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Se(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=c=>{const{dragSnapToOrigin:d}=this.getProps();d?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(_o(c).point)},s=(c,d)=>{const{drag:f,dragPropagation:m,onDragStart:p}=this.getProps();if(f&&!m&&(this.openDragLock&&this.openDragLock(),this.openDragLock=OD(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),xt(x=>{let y=this.getAxisMotionValue(x).get()||0;if(tn.test(y)){const{projection:g}=this.visualElement;if(g&&g.layout){const w=g.layout.layoutBox[x];w&&(y=pt(w)*(parseFloat(y)/100))}}this.originPoint[x]=y}),p&&fe.postRender(()=>p(c,d)),Od(this.visualElement,"transform");const{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},o=(c,d)=>{const{dragPropagation:f,dragDirectionLock:m,onDirectionLock:p,onDrag:v}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:x}=d;if(m&&this.currentDirection===null){this.currentDirection=IL(x),this.currentDirection!==null&&p&&p(this.currentDirection);return}this.updateAxis("x",d.point,x),this.updateAxis("y",d.point,x),this.visualElement.render(),v&&v(c,d)},a=(c,d)=>this.stop(c,d),l=()=>xt(c=>{var d;return this.getAnimationState(c)==="paused"&&((d=this.getAxisMotionValue(c).animation)===null||d===void 0?void 0:d.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new Mx(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Ix(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&fe.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!ha(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=EL(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&ci(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=TL(i.layoutBox,n):this.constraints=!1,this.elastic=OL(r),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&xt(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=ML(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ci(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=AL(r,i.root,this.visualElement.getTransformPagePoint());let o=jL(i.layout.layoutBox,s);if(n){const a=n(RL(o));this.hasMutatedConstraints=!!a,a&&(o=Lx(a))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=xt(c=>{if(!ha(c,n,this.currentDirection))return;let d=l&&l[c]||{};o&&(d={min:0,max:0});const f=i?200:1e6,m=i?40:1e7,p={type:"inertia",velocity:r?t[c]:0,bounceStiffness:f,bounceDamping:m,timeConstant:750,restDelta:1,restSpeed:10,...s,...d};return this.startAxisValueAnimation(c,p)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return Od(this.visualElement,t),r.start(_h(t,r,0,n,this.visualElement,!1))}stopAnimation(){xt(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){xt(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){xt(n=>{const{drag:r}=this.getProps();if(!ha(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:a}=i.layout.layoutBox[n];s.set(t[n]-pe(o,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!ci(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};xt(o=>{const a=this.getAxisMotionValue(o);if(a&&this.constraints!==!1){const l=a.get();i[o]=NL({min:l,max:l},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),xt(o=>{if(!ha(o,t,null))return;const a=this.getAxisMotionValue(o),{min:l,max:u}=this.constraints[o];a.set(pe(l,u,i[o]))})}addListeners(){if(!this.visualElement.current)return;$L.set(this.visualElement,this);const t=this.visualElement.current,n=Is(t,"pointerdown",l=>{const{drag:u,dragListener:c=!0}=this.getProps();u&&c&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();ci(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),fe.read(r);const o=po(window,"resize",()=>this.scalePositionWithinConstraints()),a=i.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(xt(c=>{const d=this.getAxisMotionValue(c);d&&(this.originPoint[c]+=l[c].translate,d.set(d.get()+l[c].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Vd,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:a}}}function ha(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function IL(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class VL extends ur{constructor(t){super(t),this.removeGroupControls=ht,this.removeListeners=ht,this.controls=new FL(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ht}unmount(){this.removeGroupControls(),this.removeListeners()}}const Fg=e=>(t,n)=>{e&&fe.postRender(()=>e(t,n))};class _L extends ur{constructor(){super(...arguments),this.removePointerDownListener=ht}onPointerDown(t){this.session=new Mx(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Ix(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:Fg(t),onStart:Fg(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&fe.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=Is(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Ia={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function Ig(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const hs={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(K.test(e))e=parseFloat(e);else return e;const n=Ig(e,t.target.x),r=Ig(e,t.target.y);return`${n}% ${r}%`}},zL={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=nr.parse(e);if(i.length>5)return r;const s=nr.createTransformer(e),o=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+o]/=a,i[1+o]/=l;const u=pe(a,l,.5);return typeof i[2+o]=="number"&&(i[2+o]/=u),typeof i[3+o]=="number"&&(i[3+o]/=u),s(i)}};class WL extends b.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;cD(UL),s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),Ia.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,o=r.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||fe.postRender(()=>{const a=o.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),mh.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Vx(e){const[t,n]=bw(),r=b.useContext(oh);return h.jsx(WL,{...e,layoutGroup:r,switchLayoutGroup:b.useContext(jw),isPresent:t,safeToRemove:n})}const UL={borderRadius:{...hs,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:hs,borderTopRightRadius:hs,borderBottomLeftRadius:hs,borderBottomRightRadius:hs,boxShadow:zL};function BL(e,t,n){const r=Be(e)?e:ho(e);return r.start(_h("",r,t,n)),r.animation}function HL(e){return e instanceof SVGElement&&e.tagName!=="svg"}const qL=(e,t)=>e.depth-t.depth;class KL{constructor(){this.children=[],this.isDirty=!1}add(t){jh(this.children,t),this.isDirty=!0}remove(t){Nh(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(qL),this.isDirty=!1,this.children.forEach(t)}}function QL(e,t){const n=nn.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(tr(r),e(s-t))};return fe.read(r,!0),()=>tr(r)}const _x=["TopLeft","TopRight","BottomLeft","BottomRight"],XL=_x.length,Vg=e=>typeof e=="string"?parseFloat(e):e,_g=e=>typeof e=="number"||K.test(e);function GL(e,t,n,r,i,s){i?(e.opacity=pe(0,n.opacity!==void 0?n.opacity:1,YL(r)),e.opacityExit=pe(t.opacity!==void 0?t.opacity:1,0,JL(r))):s&&(e.opacity=pe(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let o=0;ort?1:n(Bi(e,t,r))}function Wg(e,t){e.min=t.min,e.max=t.max}function wt(e,t){Wg(e.x,t.x),Wg(e.y,t.y)}function Ug(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Bg(e,t,n,r,i){return e-=t,e=kl(e,1/n,r),i!==void 0&&(e=kl(e,1/i,r)),e}function ZL(e,t=0,n=1,r=.5,i,s=e,o=e){if(tn.test(t)&&(t=parseFloat(t),t=pe(o.min,o.max,t/100)-o.min),typeof t!="number")return;let a=pe(s.min,s.max,r);e===s&&(a-=t),e.min=Bg(e.min,t,n,a,i),e.max=Bg(e.max,t,n,a,i)}function Hg(e,t,[n,r,i],s,o){ZL(e,t[n],t[r],t[i],t.scale,s,o)}const eA=["x","scaleX","originX"],tA=["y","scaleY","originY"];function qg(e,t,n,r){Hg(e.x,t,eA,n?n.x:void 0,r?r.x:void 0),Hg(e.y,t,tA,n?n.y:void 0,r?r.y:void 0)}function Kg(e){return e.translate===0&&e.scale===1}function Wx(e){return Kg(e.x)&&Kg(e.y)}function Qg(e,t){return e.min===t.min&&e.max===t.max}function nA(e,t){return Qg(e.x,t.x)&&Qg(e.y,t.y)}function Xg(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Ux(e,t){return Xg(e.x,t.x)&&Xg(e.y,t.y)}function Gg(e){return pt(e.x)/pt(e.y)}function Yg(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class rA{constructor(){this.members=[]}add(t){jh(this.members,t),t.scheduleRender()}remove(t){if(Nh(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function iA(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:c,rotateX:d,rotateY:f,skewX:m,skewY:p}=n;u&&(r=`perspective(${u}px) ${r}`),c&&(r+=`rotate(${c}deg) `),d&&(r+=`rotateX(${d}deg) `),f&&(r+=`rotateY(${f}deg) `),m&&(r+=`skewX(${m}deg) `),p&&(r+=`skewY(${p}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const gr={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Cs=typeof window<"u"&&window.MotionDebug!==void 0,Ju=["","X","Y","Z"],sA={visibility:"hidden"},Jg=1e3;let oA=0;function Zu(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Bx(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=Yw(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",fe,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Bx(r)}function Hx({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},a=t==null?void 0:t()){this.id=oA++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Cs&&(gr.totalNodes=gr.resolvedTargetDeltas=gr.recalculatedProjection=0),this.nodes.forEach(uA),this.nodes.forEach(mA),this.nodes.forEach(pA),this.nodes.forEach(cA),Cs&&window.MotionDebug.record(gr)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,d&&d(),d=QL(f,250),Ia.hasAnimatedSinceResize&&(Ia.hasAnimatedSinceResize=!1,this.nodes.forEach(ey))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||u)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:f,hasRelativeTargetChanged:m,layout:p})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const v=this.options.transition||c.getDefaultTransition()||xA,{onLayoutAnimationStart:x,onLayoutAnimationComplete:y}=c.getProps(),g=!this.targetLayout||!Ux(this.targetLayout,p)||m,w=!f&&m;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||w||f&&(g||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,w);const S={...kh(v,"layout"),onPlay:x,onComplete:y};(c.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||ey(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=p})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,tr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(gA),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Bx(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;c{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l{const P=S/1e3;ty(d.x,o.x,P),ty(d.y,o.y,P),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(_s(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),vA(this.relativeTarget,this.relativeTargetOrigin,f,P),w&&nA(this.relativeTarget,w)&&(this.isProjectionDirty=!1),w||(w=Se()),wt(w,this.relativeTarget)),v&&(this.animationValues=c,GL(c,u,this.latestValues,P,g,y)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=P},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(tr(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=fe.update(()=>{Ia.hasAnimatedSinceResize=!0,this.currentAnimation=BL(0,Jg,{...o,onUpdate:a=>{this.mixTargetDelta(a),o.onUpdate&&o.onUpdate(a)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Jg),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:a,target:l,layout:u,latestValues:c}=o;if(!(!a||!l||!u)){if(this!==o&&this.layout&&u&&qx(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||Se();const d=pt(this.layout.layoutBox.x);l.x.min=o.target.x.min,l.x.max=l.x.min+d;const f=pt(this.layout.layoutBox.y);l.y.min=o.target.y.min,l.y.max=l.y.min+f}wt(a,l),mi(a,c),Vs(this.projectionDeltaWithTransform,this.layoutCorrected,a,c)}}registerSharedNode(o,a){this.sharedNodes.has(o)||this.sharedNodes.set(o,new rA),this.sharedNodes.get(o).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:a}=this.options;return a?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:a}=this.options;return a?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:a,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),o&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let a=!1;const{latestValues:l}=o;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const u={};l.z&&Zu("z",o,u,this.animationValues);for(let c=0;c{var a;return(a=o.currentAnimation)===null||a===void 0?void 0:a.stop()}),this.root.nodes.forEach(Zg),this.root.sharedNodes.clear()}}}function aA(e){e.updateLayout()}function lA(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?xt(d=>{const f=o?n.measuredBox[d]:n.layoutBox[d],m=pt(f);f.min=r[d].min,f.max=f.min+m}):qx(s,n.layoutBox,r)&&xt(d=>{const f=o?n.measuredBox[d]:n.layoutBox[d],m=pt(r[d]);f.max=f.min+m,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+m)});const a=fi();Vs(a,r,n.layoutBox);const l=fi();o?Vs(l,e.applyTransform(i,!0),n.measuredBox):Vs(l,r,n.layoutBox);const u=!Wx(a);let c=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:f,layout:m}=d;if(f&&m){const p=Se();_s(p,n.layoutBox,f.layoutBox);const v=Se();_s(v,r,m.layoutBox),Ux(p,v)||(c=!0),d.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=p,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:l,layoutDelta:a,hasLayoutChanged:u,hasRelativeTargetChanged:c})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function uA(e){Cs&&gr.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function cA(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function dA(e){e.clearSnapshot()}function Zg(e){e.clearMeasurements()}function fA(e){e.isLayoutDirty=!1}function hA(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function ey(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function mA(e){e.resolveTargetDelta()}function pA(e){e.calcProjection()}function gA(e){e.resetSkewAndRotation()}function yA(e){e.removeLeadSnapshot()}function ty(e,t,n){e.translate=pe(t.translate,0,n),e.scale=pe(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function ny(e,t,n,r){e.min=pe(t.min,n.min,r),e.max=pe(t.max,n.max,r)}function vA(e,t,n,r){ny(e.x,t.x,n.x,r),ny(e.y,t.y,n.y,r)}function wA(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const xA={duration:.45,ease:[.4,0,.1,1]},ry=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),iy=ry("applewebkit/")&&!ry("chrome/")?Math.round:ht;function sy(e){e.min=iy(e.min),e.max=iy(e.max)}function bA(e){sy(e.x),sy(e.y)}function qx(e,t,n){return e==="position"||e==="preserve-aspect"&&!kL(Gg(t),Gg(n),.2)}function SA(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const PA=Hx({attachResizeListener:(e,t)=>po(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),ec={current:void 0},Kx=Hx({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!ec.current){const e=new PA({});e.mount(window),e.setOptions({layoutScroll:!0}),ec.current=e}return ec.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),kA={pan:{Feature:_L},drag:{Feature:VL,ProjectionNode:Kx,MeasureLayout:Vx}};function oy(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&fe.postRender(()=>s(t,_o(t)))}class CA extends ur{mount(){const{current:t}=this.node;t&&(this.unmount=ED(t,n=>(oy(this.node,n,"Start"),r=>oy(this.node,r,"End"))))}unmount(){}}class EA extends ur{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Vo(po(this.node.current,"focus",()=>this.onFocus()),po(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function ay(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&fe.postRender(()=>s(t,_o(t)))}class TA extends ur{mount(){const{current:t}=this.node;t&&(this.unmount=MD(t,n=>(ay(this.node,n,"Start"),(r,{success:i})=>ay(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Wd=new WeakMap,tc=new WeakMap,jA=e=>{const t=Wd.get(e.target);t&&t(e)},NA=e=>{e.forEach(jA)};function MA({root:e,...t}){const n=e||document;tc.has(n)||tc.set(n,{});const r=tc.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(NA,{root:e,...t})),r[i]}function OA(e,t,n){const r=MA(t);return Wd.set(e,n),r.observe(e),()=>{Wd.delete(e),r.unobserve(e)}}const RA={some:0,all:1};class DA extends ur{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:RA[i]},a=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,s&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=u?c:d;f&&f(l)};return OA(this.node.current,o,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(LA(t,n))&&this.startObserver()}unmount(){}}function LA({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const AA={inView:{Feature:DA},tap:{Feature:TA},focus:{Feature:EA},hover:{Feature:CA}},$A={layout:{ProjectionNode:Kx,MeasureLayout:Vx}},Ud={current:null},Qx={current:!1};function FA(){if(Qx.current=!0,!!lh)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Ud.current=e.matches;e.addListener(t),t()}else Ud.current=!1}const IA=[...vx,ze,nr],VA=e=>IA.find(yx(e)),ly=new WeakMap;function _A(e,t,n){for(const r in t){const i=t[r],s=n[r];if(Be(i))e.addValue(r,i);else if(Be(s))e.addValue(r,ho(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,ho(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const uy=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class zA{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Fh,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const m=nn.now();this.renderScheduledAtthis.bindToMotionValue(r,n)),Qx.current||FA(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Ud.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){ly.delete(this.current),this.projection&&this.projection.unmount(),tr(this.notifyUpdate),tr(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=Kr.has(t),i=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&fe.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Hi){const n=Hi[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Se()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;rn.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ho(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(px(i)||ox(i))?i=parseFloat(i):!VA(i)&&nr.test(n)&&(i=fx(t,n)),this.setBaseTarget(t,Be(i)?i.get():i)),Be(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const o=gh(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(r&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Be(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Mh),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class Xx extends zA{constructor(){super(...arguments),this.KeyframeResolver=wx}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Be(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function WA(e){return window.getComputedStyle(e)}class UA extends Xx{constructor(){super(...arguments),this.type="html",this.renderInstance=Aw}readValueFromInstance(t,n){if(Kr.has(n)){const r=$h(n);return r&&r.default||0}else{const r=WA(t),i=(Rw(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Fx(t,n)}build(t,n,r){wh(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Ph(t,n,r)}}class BA extends Xx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Se}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Kr.has(n)){const r=$h(n);return r&&r.default||0}return n=$w.has(n)?n:hh(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return Vw(t,n,r)}build(t,n,r){xh(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){Fw(t,n,r,i)}mount(t){this.isSVGTag=Sh(t.tagName),super.mount(t)}}const HA=(e,t)=>ph(e)?new BA(t):new UA(t,{allowProjection:e!==b.Fragment}),qA=wD({...pL,...AA,...kA,...$A},HA),cy=LR(qA);function KA(e){e.values.forEach(t=>t.stop())}function Bd(e,t){[...t].reverse().forEach(r=>{const i=e.getVariant(r);i&&Oh(e,i),e.variantChildren&&e.variantChildren.forEach(s=>{Bd(s,t)})})}function QA(e,t){if(Array.isArray(t))return Bd(e,t);if(typeof t=="string")return Bd(e,[t]);Oh(e,t)}function XA(){const e=new Set,t={subscribe(n){return e.add(n),()=>void e.delete(n)},start(n,r){const i=[];return e.forEach(s=>{i.push(jx(s,n,{transitionOverride:r}))}),Promise.all(i)},set(n){return e.forEach(r=>{QA(r,n)})},stop(){e.forEach(n=>{KA(n)})},mount(){return()=>{t.stop()}}};return t}function GA(){const e=ru(XA);return uh(e.mount,[]),e}const YA=GA;function JA({setShow:e,showBlur:t,children:n,theme:r="light"}){const i=b.useRef(null),s=YA(),o={type:"spring",stiffness:500,damping:30};b.useEffect(()=>{s.start({y:20,transition:o})},[]);async function a(l,u){var m;const c=u.offset.y,d=u.velocity.y,f=((m=i.current)==null?void 0:m.getBoundingClientRect().height)||0;c>f/2||d>800?(await s.start({y:"100%",transition:o}),e(!1)):s.start({y:0,transition:o})}return h.jsxs(ER,{children:[h.jsxs(cy.div,{ref:i,className:uo("group fixed inset-x-0 bottom-0 z-40 w-screen cursor-grab overflow-y-scroll pb-5 active:cursor-grabbing sm:hidden",r==="light"?"bg-white":"bg-neutral-800/95"),style:{maxHeight:"95%"},initial:{y:"100%"},animate:s,exit:{y:"100%"},transition:o,drag:"y",dragDirectionLock:!0,onDragEnd:a,dragElastic:{top:0,bottom:1},dragConstraints:{top:0,bottom:0},children:[h.jsxs("div",{className:uo("rounded-t-4xl -mb-1 flex h-7 w-full items-center justify-center border-t",r==="light"?"border-gray-200":"border-cyan-50/20"),children:[h.jsx("div",{className:"-mr-1 h-1 w-6 rounded-full bg-gray-300 transition-all group-active:rotate-12"}),h.jsx("div",{className:"h-1 w-6 rounded-full bg-gray-300 transition-all group-active:-rotate-12"})]}),n]},"leaflet"),t&&h.jsx(cy.div,{className:"fixed inset-0 z-30 bg-gray-100 bg-opacity-10 backdrop-blur",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:()=>e(!1)},"leaflet-backdrop")]})}function Gx({children:e,showModal:t,setShowModal:n,theme:r="light"}){const i=b.useRef(null),{isMobile:s}=bR();b.useEffect(()=>{function a(l){i.current&&!i.current.contains(l.target)&&n(!1)}return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}},[i,n]);const o=b.useCallback(a=>{a.key==="Escape"&&n(!1)},[n]);return b.useEffect(()=>(document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)),[o]),s?t?h.jsx(JA,{setShow:n,showBlur:!0,theme:r,children:e}):null:h.jsx(h.Fragment,{children:t&&h.jsx("div",{className:"fixed inset-0 z-40 flex items-center justify-center",style:{backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",backgroundColor:"rgba(0, 0, 0, 0.4)"},children:h.jsx("div",{className:"relative z-50 w-full max-w-lg",ref:i,children:e})})})}function zh(e){return h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[h.jsx("path",{d:"M18 6 6 18"}),h.jsx("path",{d:"m6 6 12 12"})]})}function ZA({showPasswordModal:e,setShowPasswordModal:t,onLogin:n,isLoggingIn:r}){const{t:i}=Pn(),[s,o]=b.useState(""),a=async l=>{if(l.preventDefault(),!s){f3.error(i("Password is required"));return}await n(s)};return h.jsx(Gx,{showModal:e,setShowModal:t,children:h.jsxs("div",{className:"w-full overflow-hidden bg-white/95 backdrop-blur-xl shadow-xl p-4 md:max-w-3xl md:rounded-2xl md:border md:border-gray-200",children:[h.jsx(zh,{className:"absolute top-4 right-4 h-6 w-6 text-gray-500 hover:text-gray-700 cursor-pointer",onClick:()=>t(!1),onPointerDown:l=>l.stopPropagation()}),h.jsxs("div",{className:"flex flex-col items-center justify-center space-y-3 border-b border-gray-200 px-4 py-5 text-center md:px-16",children:[h.jsx("h3",{className:"font-display text-2xl font-bold",children:i("Save password")}),h.jsx("p",{className:"text-gray-500",children:i("Save your password and continue using this email in 1 day")})]}),h.jsxs("form",{onSubmit:a,className:"flex flex-col mt-4 space-y-4 px-4",children:[h.jsx("input",{value:s,onChange:l=>o(l.target.value),type:"text",name:"password",placeholder:i("Enter your password *"),required:!0,className:"rounded-md border border-slate-200 px-3 py-2 shadow-inner w-full"}),h.jsxs("p",{className:"text-sm",children:[i("How to get a password? Click to create a temporary email and receive at least one email to generate a password"),"."]}),h.jsxs("p",{className:"text-sm text-yellow-600",children:[i("Remember your password, otherwise your email will expire and cannot be retrieved"),"."]}),h.jsx("button",{type:"submit",disabled:r,className:"py-2.5 text-white rounded-md w-full bg-cyan-600 hover:opacity-90 disabled:cursor-not-allowed disabled:bg-zinc-500",children:i(r?"Submitting...":"Login")})]})]})})}function e$(){const[e,t]=b.useState(!1),n=b.useCallback(({onLogin:r,isLoggingIn:i})=>h.jsx(ZA,{showPasswordModal:e,setShowPasswordModal:t,onLogin:r,isLoggingIn:i}),[e]);return b.useMemo(()=>({showPasswordModal:e,setShowPasswordModal:t,PasswordModal:n}),[t,n,e])}function t$({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"})})}function n$({className:e="h-5 w-5"}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:e,children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5a17.92 17.92 0 0 1-8.716-2.247m0 0A8.966 8.966 0 0 1 3 12c0-1.97.633-3.794 1.708-5.273"})})}function Va({showModal:e,setShowModal:t,title:n,children:r}){return h.jsx(Gx,{showModal:e,setShowModal:t,theme:"dark",children:h.jsxs("div",{className:"w-full max-h-[80vh] flex flex-col bg-neutral-800/95 backdrop-blur-xl shadow-xl md:max-w-3xl md:rounded-2xl md:border md:border-cyan-50/20",children:[h.jsxs("div",{className:"flex-shrink-0 flex items-center justify-center p-4 border-b border-cyan-50/20 relative",children:[h.jsx("h3",{className:"font-display text-2xl font-bold text-white",children:n}),h.jsx(zh,{className:"absolute top-4 right-4 h-6 w-6 text-gray-400 hover:text-white cursor-pointer",onClick:()=>t(!1),onPointerDown:i=>i.stopPropagation()})]}),h.jsx("div",{className:"flex-grow overflow-y-auto text-white p-6",children:h.jsx("div",{className:"text-white",children:r})})]})})}function r$(e){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 22 22",children:h.jsx("path",{fill:"#0891b2",d:"M7.376 6.745c-.447.275 1.197 4.242 1.598 4.888a1.206 1.206 0 0 0 2.053-1.266c-.397-.648-3.205-3.898-3.651-3.622m-.335-4.343a8.98 8.98 0 0 1 5.918 0c.329.114.765-.115.572-.611c-.141-.36-.277-.712-.332-.855c-.131-.339-.6-.619-.804-.665C11.623.097 10.823 0 10 0S8.377.097 7.604.271c-.204.046-.672.326-.803.665l-.332.855c-.193.496.243.726.572.611m12.057.784a10.132 10.132 0 0 0-1.283-1.285c-.153-.129-.603-.234-.888.051l-1.648 1.647a9.27 9.27 0 0 1 1.155.966c.362.361.677.752.966 1.155l1.647-1.647c.286-.286.181-.735.051-.887M10 2.9A8.1 8.1 0 0 0 1.899 11A8.1 8.1 0 0 0 10 19.101A8.1 8.1 0 0 0 10 2.9m0 14.201A6.1 6.1 0 1 1 10.001 4.9A6.1 6.1 0 0 1 10 17.1z"})})}const nc=e=>e<10?`0${e}`:`${e}`;function i$({expiryTimestamp:e,onReset:t}){const{t:n}=Pn(),r=b.useCallback(()=>{const o=e-Date.now();let a={hours:"00",minutes:"00",seconds:"00",expired:o<=0};if(o>0){const l=Math.floor(o/1e3),u=l%60,c=Math.floor(l/60),d=c%60,f=Math.floor(c/60);a={hours:nc(f),minutes:nc(d),seconds:nc(u),expired:!1}}return a},[e]),[i,s]=b.useState(r());return b.useEffect(()=>{s(r());const o=setInterval(()=>{s(r())},1e3);return()=>clearInterval(o)},[e,r]),b.useEffect(()=>{i.expired},[i.expired]),h.jsxs("div",{className:"flex items-center justify-between gap-2 text-sm text-cyan-400 my-4 p-3 bg-white/5 rounded-md border border-cyan-50/20 shadow-inner",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[" ",h.jsx(r$,{className:"w-5 h-5"}),i.expired?h.jsx("span",{children:n("Email expired")}):h.jsxs("span",{children:[n("Expires in"),": ",i.hours,":",i.minutes,":",i.seconds]})]}),!i.expired&&h.jsxs("button",{onClick:t,className:"p-1 rounded text-cyan-400 hover:text-cyan-300 focus:outline-none focus:ring-1 focus:ring-cyan-500",title:n("Reset validity"),children:[h.jsx(mw,{className:"w-5 h-5"})," "]})]})}function s$(){const e=xw(),{t}=Pn(),n=qf(),[r,i]=b.useState(()=>Bt.get("userMailbox")),[s,o]=b.useState(()=>{const q=Bt.get("emailExpiry");return q?parseInt(q,10):void 0}),[a,l]=b.useState(""),[u,c]=b.useState([]),[d,f]=b.useState(!1),[m,p]=b.useState(null),[v,x]=b.useState(e.emailDomain[0]),[y,g]=b.useState(!1),{PasswordModal:w,setShowPasswordModal:S}=e$(),[P,T]=b.useState(!1),[C,j]=b.useState(!1),{data:$=[],isLoading:_,isFetching:W,refetch:ee}=pP({queryKey:["emails",r],queryFn:()=>lR(r),enabled:!!r,refetchInterval:2e4,onError:q=>{J.error(`${t("Failed to get emails")}: ${q.message}`,{duration:5e3})},retry:!1}),ve=b.useCallback(q=>{J(Le=>h.jsxs("div",{className:"w-full max-w-lg p-4 bg-slate-800 text-white rounded-lg shadow-lg border border-slate-700",children:[h.jsxs("div",{className:"flex items-center justify-between pb-2 mb-3 border-b border-slate-700",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx(Ed,{className:"h-6 w-6 text-cyan-400"}),h.jsx("h3",{className:"text-lg font-semibold",children:t("View password")})]}),h.jsx("button",{onClick:()=>J.dismiss(Le.id),className:"p-1 rounded-full text-gray-400 hover:bg-slate-700 hover:text-white focus:outline-none focus:ring-2 focus:ring-cyan-500","aria-label":"Close",children:h.jsx(zh,{className:"h-5 w-5"})})]}),h.jsxs("div",{children:[h.jsx("p",{className:"text-sm text-gray-300",children:t("Save your password and continue using this email in 1 day")}),h.jsxs("div",{className:"mt-2 flex items-center text-sm bg-slate-700 px-2 py-1 rounded",children:[h.jsx("span",{className:"flex-1 font-mono break-all text-gray-100",children:q}),h.jsx(Td,{text:q,className:"p-1"})]}),h.jsx("p",{className:"mt-3 text-xs text-yellow-400",children:t("Remember your password, otherwise your email will expire and cannot be retrieved")})]})]}),{id:"password-notification",duration:5e3,position:"top-center",style:{background:"transparent",border:"none",padding:0,boxShadow:"none"}})},[t]),te=b.useRef($.length);b.useEffect(()=>{if($.length>0&&!C&&j(!0),!r)j(!1),o(void 0),J.dismiss("password-notification");else{const q=Bt.get("emailExpiry");q&&!s&&o(parseInt(q,10))}te.current=$.length},[$,r,C,s]);const E=async()=>{if(!a){J.error(t("No captcha response"));return}try{await uR(a),f(!0);const q=`${J1("",wR())}@${v}`,zt=Date.now()+24*60*60*1e3;Bt.set("userMailbox",q,{expires:1}),Bt.set("emailExpiry",zt.toString(),{expires:1}),i(q),o(zt),j(!1),J.success(t("Email created successfully"))}catch(q){J.error(t("Failed to verify captcha")),console.error("Turnstile verification failed:",q)}},O=()=>{Bt.remove("userMailbox"),Bt.remove("emailExpiry"),i(void 0),j(!1),p(null),o(void 0),n.invalidateQueries({queryKey:["emails"]})},I=()=>{ee(),J.success(t("Mailbox refreshed"))},M=b.useCallback(()=>{const q=Date.now()+864e5,Le=new Date(Date.now()+24*60*60*1e3);Bt.set("emailExpiry",q.toString(),{expires:Le}),o(q),J.success(t("Validity reset successfully"))},[t]),L=gP({mutationFn:q=>cR(q),onSuccess:()=>{J.success(t("Emails deleted successfully")),c([]),m&&u.includes(m.id)&&p(null),n.invalidateQueries({queryKey:["emails",r]})},onError:()=>{J.error(t("Failed to delete emails"))}}),D=q=>{if(q.length===0){J.error(t("Please select emails to delete"));return}L.mutate(q)},A=async q=>{T(!0);try{const Le=await dR(q),Wh=Date.now()+24*60*60*1e3;Bt.set("userMailbox",Le.address,{expires:1}),Bt.set("emailExpiry",Wh.toString(),{expires:1}),i(Le.address),o(Wh),S(!1),J.success(t("Login successful"))}catch(Le){J.error(`${t("Login failed")}: ${t(Le.message)}`)}finally{T(!1)}},z=b.useCallback(()=>r&&e.cookiesSecret?xR(r,e.cookiesSecret):null,[r,e.cookiesSecret]),Q=q=>{p(q)},be=()=>{p(null)},vt=()=>{g(!0)};return h.jsxs("div",{className:"h-full flex flex-col gap-4 md:flex-row justify-center items-start mt-24 mx-6 md:mx-10",children:[h.jsx(w,{onLogin:A,isLoggingIn:P}),m&&h.jsx(Va,{showModal:y,setShowModal:g,title:t("Email Detail"),children:h.jsx(gw,{email:m,onClose:()=>g(!1)})}),h.jsxs("div",{className:"flex flex-col text-white items-start w-full md:w-[350px] mx-auto gap-2",children:[h.jsxs("div",{className:"w-full mb-4 md:max-w-[350px] shrink-0 group group-hover:before:duration-500 group-hover:after:duration-500 after:duration-500 hover:border-cyan-600 hover:before:[box-shadow:_20px_20px_20px_30px_#a21caf] duration-500 before:duration-500 hover:duration-500 hover:after:-right-8 hover:before:right-12 hover:before:-bottom-8 hover:before:blur origin-left hover:decoration-2 relative bg-neutral-800 h-full border text-left p-4 rounded-lg overflow-hidden border-cyan-50/20 before:absolute before:w-12 before:h-12 before:content[''] before:right-1 before:top-1 before:z-10 before:bg-violet-500 before:rounded-full before:blur-lg after:absolute after:z-10 after:w-20 after:h-20 after:content[''] after:bg-rose-300 after:right-8 after:top-3 after:rounded-full after:blur-lg",children:[h.jsx("h1",{className:"text-gray-50 text-xl font-bold mb-7 group-hover:text-cyan-500 duration-500",children:t("Virtual Temporary Email")}),h.jsxs("div",{className:"flex flex-col gap-4 text-sm text-gray-200",children:[h.jsxs("a",{href:"https://github.com/oiov/vmail",target:"_blank",rel:"noopener noreferrer",className:"flex items-center after:content-['↗'] gap-1.5 hover:text-cyan-400 transition-colors cursor-pointer",children:[h.jsx(t$,{className:"size-5 text-blue-400"})," ",t("Open Source")]}),h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx(vw,{className:"size-5 text-blue-400"}),t("Stable - 1M+ emails processed")]}),h.jsxs(Jf,{to:"/api-docs",className:"flex items-center after:content-['↗'] gap-1.5 hover:text-cyan-400 transition-colors cursor-pointer",children:[h.jsx(yw,{className:"size-5 text-blue-400"}),t("Open RESTful API")]}),h.jsxs("div",{className:"flex items-center gap-1.5",children:[h.jsx(n$,{className:"size-5 text-blue-400"}),t("Multi-domain configurable")]})]})]}),r?h.jsxs("div",{className:"w-full md:max-w-[350px] mb-4",children:[h.jsx("div",{className:"mb-4 font-semibold text-sm",children:t("Email address")}),h.jsxs("div",{className:"flex items-center text-zinc-100 bg-white/10 backdrop-blur-xl shadow-inner px-4 py-4 rounded-md w-full",children:[h.jsx("span",{className:"truncate",children:r}),h.jsx(Td,{text:r,className:"p-1 rounded-md ml-auto"})]}),s&&h.jsx(i$,{expiryTimestamp:s,onReset:M}),h.jsx("button",{onClick:O,className:"py-2.5 rounded-md w-full bg-cyan-600 hover:opacity-90 disabled:cursor-not-allowed disabled:bg-zinc-500",children:t("Stop")})]}):h.jsxs("div",{className:"w-full md:max-w-[350px]",children:[h.jsxs("div",{className:"mb-4",children:[h.jsx("div",{className:"mb-3 font-semibold",children:t("Domain")}),h.jsx("select",{value:v,onChange:q=>x(q.target.value),className:"w-full p-2.5 rounded-md bg-white/10 text-white border border-cyan-50/20",children:e.emailDomain.map(q=>h.jsxs("option",{value:q,className:"text-black",children:["@",q]},q))})]}),h.jsxs("div",{className:"text-sm relative mb-4",children:[h.jsx("div",{className:"mb-3 font-semibold",children:t("Validater")}),h.jsx("div",{className:"[&_iframe]:!w-full h-[65px] max-w-[300px] bg-gray-700",children:h.jsx(th,{siteKey:e.turnstileKey,onSuccess:l,options:{theme:"dark"}})})]}),h.jsx("button",{onClick:E,disabled:!a,className:"py-2.5 rounded-md w-full bg-cyan-600 hover:opacity-90 disabled:cursor-not-allowed disabled:bg-zinc-500",children:t("Create temporary email")}),h.jsxs("p",{className:"mt-4 text-sm text-cyan-500 cursor-pointer",onClick:()=>S(!0),children:[h.jsx(Ed,{className:"inline-block w-4 h-4 mr-2"}),t("Have a password? Login.")]})]})]}),h.jsx("div",{className:"w-full flex-1 overflow-hidden",children:h.jsx(gR,{isAddressCreated:!!r,emails:$,isLoading:_,isFetching:W,onDelete:D,isDeleting:L.isPending,onRefresh:I,selectedIds:u,setSelectedIds:c,onSelectEmail:Q,showViewPasswordButton:C,onShowPassword:()=>{const q=z();q&&ve(q)},selectedEmail:m,onCloseDetail:be,onExpand:vt})})]})}function o$(){const{t:e}=Pn(),t=xw(),n=b.useRef(null),[r,i]=b.useState(""),[s,o]=b.useState(!1),[a,l]=b.useState(null),[u,c]=b.useState("");b.useEffect(()=>{n.current&&n.current.querySelectorAll("pre code").forEach(p=>{p.classList.add("language-json")})},[]);const d=async()=>{if(!r){J.error(e("Please complete the verification first"));return}o(!0);try{const m=await fetch("/api/api-keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r,name:u||void 0})});if(!m.ok){const v=await m.json();throw new Error(v.message||"Failed to create API Key")}const p=await m.json();l(p.data.key),J.success(e("API Key created successfully"))}catch(m){J.error(m.message||e("Failed to create API Key"))}finally{o(!1)}},f=()=>{l(null),i(""),c("")};return h.jsx("div",{className:"min-h-screen bg-[#1f2023] text-white py-8 px-4 md:px-8 mt-16",children:h.jsxs("div",{className:"max-w-4xl mx-auto",ref:n,children:[h.jsxs("div",{className:"mb-8 pb-6 border-b border-gray-700",children:[h.jsx("h1",{className:"text-3xl font-bold text-cyan-400 mb-2",children:e("API Documentation")}),h.jsx("p",{className:"text-gray-400",children:e("RESTful API for programmatic access to temporary email services")})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Get API Key")}),h.jsx("div",{className:"bg-gray-800 rounded-lg p-4",children:a?h.jsxs("div",{children:[h.jsx("div",{className:"flex items-center gap-2 mb-3",children:h.jsx("span",{className:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800",children:e("Created")})}),h.jsx("div",{className:"bg-yellow-900/30 border border-yellow-600/50 rounded-lg p-4 mb-4",children:h.jsxs("div",{className:"flex items-start gap-2",children:[h.jsx("svg",{className:"w-5 h-5 text-yellow-500 mt-0.5 flex-shrink-0",fill:"currentColor",viewBox:"0 0 20 20",children:h.jsx("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),h.jsxs("div",{children:[h.jsx("p",{className:"text-yellow-200 font-semibold text-sm",children:e("Important: Save your API Key now!")}),h.jsx("p",{className:"text-yellow-300/80 text-xs mt-1",children:e("This is the only time you will see the full API Key. It cannot be retrieved later.")})]})]})}),h.jsx("div",{className:"bg-gray-900 p-4 rounded-lg mb-4",children:h.jsxs("div",{className:"flex items-center justify-between gap-2",children:[h.jsx("code",{className:"text-green-400 text-sm break-all flex-1",children:a}),h.jsx(Td,{text:a,className:"flex-shrink-0"})]})}),h.jsx("button",{onClick:f,className:"text-cyan-400 hover:text-cyan-300 text-sm underline",children:e("Create another API Key")})]}):h.jsxs("div",{children:[h.jsx("p",{className:"text-gray-300 mb-4",children:e("Create a free API Key to access the API. Each key has a rate limit of 100 requests per minute.")}),h.jsxs("div",{className:"space-y-4",children:[h.jsxs("div",{children:[h.jsxs("label",{className:"block text-sm text-gray-400 mb-2",children:[e("Key Name")," (",e("optional"),")"]}),h.jsx("input",{type:"text",value:u,onChange:m=>c(m.target.value),placeholder:e("e.g., My Project"),className:"w-full md:w-1/2 px-3 py-2 bg-gray-900 border border-gray-700 rounded-lg text-white placeholder-gray-500 focus:outline-none focus:border-cyan-500"})]}),h.jsxs("div",{children:[h.jsx("label",{className:"block text-sm text-gray-400 mb-2",children:e("Verification")}),h.jsx("div",{className:"[&_iframe]:!w-full h-[65px] max-w-[300px] bg-gray-700 rounded",children:h.jsx(th,{siteKey:t.turnstileKey,onSuccess:i,options:{theme:"dark"}})})]}),h.jsx("button",{onClick:d,disabled:!r||s,className:"px-6 py-2.5 bg-cyan-600 hover:bg-cyan-700 disabled:bg-gray-600 disabled:cursor-not-allowed rounded-lg font-medium transition-colors",children:e(s?"Creating...":"Create API Key")})]})]})})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Authentication")}),h.jsxs("div",{className:"bg-gray-800 rounded-lg p-4 mb-4",children:[h.jsx("p",{className:"text-gray-300 mb-3",children:e("All API requests require an API Key. Include it in the request header:")}),h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto",children:h.jsx("code",{className:"text-green-400",children:"X-API-Key: your-api-key"})}),h.jsx("p",{className:"text-gray-400 text-sm mt-2",children:e("Or use Authorization header:")}),h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto mt-2",children:h.jsx("code",{className:"text-green-400",children:"Authorization: Bearer your-api-key"})})]})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:"Base URL"}),h.jsx("div",{className:"bg-gray-800 rounded-lg p-4",children:h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto",children:h.jsx("code",{className:"text-yellow-400",children:"https://vmail.dev/api/v1"})})})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Endpoints")}),h.jsxs("div",{className:"bg-gray-800 rounded-lg p-4 mb-6",children:[h.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[h.jsx("span",{className:"bg-green-600 text-white px-2 py-1 rounded text-sm font-mono",children:"POST"}),h.jsx("code",{className:"text-white font-mono",children:"/mailboxes"})]}),h.jsx("p",{className:"text-gray-300 mb-4",children:e("Create a new temporary mailbox")}),h.jsxs("h4",{className:"text-cyan-200 font-semibold mb-2",children:[e("Request Body")," (optional)"]}),h.jsx("pre",{className:"bg-gray-900 p-3 rounded overflow-x-auto mb-4 text-sm",children:h.jsx("code",{className:"text-gray-300",children:`{ "localPart": "mytest", // Optional: custom local part "domain": "example.com", // Optional: email domain "expiresIn": 86400 // Optional: expiry in seconds (default: 24h) @@ -330,12 +330,12 @@ curl https://vmail.dev/api/v1/mailboxes/abc123/messages \\ # Get specific message curl https://vmail.dev/api/v1/mailboxes/abc123/messages/msg_001 \\ - -H "X-API-Key: your-api-key"`})})]})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Rate Limits")}),h.jsx("div",{className:"bg-gray-800 rounded-lg p-4",children:h.jsx("p",{className:"text-gray-300",children:e("API requests are rate limited based on your API Key configuration. Default limit is 100 requests per minute.")})})]})]})})}function i6(){return h.jsxs("svg",{id:"iconce.com",width:"32",height:"32",viewBox:"0 0 256 256",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[h.jsxs("defs",{children:[h.jsxs("linearGradient",{id:"r5",gradientUnits:"userSpaceOnUse",gradientTransform:"rotate(45)",style:{transformOrigin:"center center"},children:[h.jsx("stop",{stopColor:"#5C5C5C"}),h.jsx("stop",{offset:"1",stopColor:"#0F1015"})]}),h.jsxs("radialGradient",{id:"r6",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(256) rotate(90) scale(512)",children:[h.jsx("stop",{stopColor:"white"}),h.jsx("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})]})]}),h.jsx("rect",{id:"r4",width:"256",height:"256",x:"0",y:"0",rx:"48",fill:"url(#r5)",stroke:"#FFFFFF",strokeWidth:"0",strokeOpacity:"100%",paintOrder:"stroke"}),h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"170",height:"170",viewBox:"0 0 24 24",fill:"none",stroke:"#FFFFFF",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-white",alignmentBaseline:"middle",x:"43",y:"43",children:[h.jsx("path",{d:"M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z"}),h.jsx("polyline",{points:"15,9 18,9 18,11"}),h.jsx("path",{d:"M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2v0"}),h.jsx("line",{x1:"6",x2:"7",y1:"10",y2:"10"})]})]})}function s6({className:e}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"mb-[1px]",children:h.jsx("path",{d:"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"})})}function o6(){return h.jsx("div",{children:h.jsxs("div",{className:"max-w-[1400px] ",children:[h.jsxs("p",{className:"mt-8",children:[h.jsx("strong",{children:"Vmail.DEV "})," is a Virtual temporary email service."," "]}),h.jsxs("p",{className:"mt-4",children:["You can get a temporary email without revealing any personal information, which greatly protects your privacy."," "]}),h.jsxs("p",{className:"mt-4",children:["It supports selecting one domain names, making it convenient for you to use in different scenarios."," "]}),h.jsxs("p",{className:"mt-4",children:["100% running on the ",h.jsx("strong",{children:"Cloudflare "})," network, providing you with a super-fast experience."," "]}),h.jsx("p",{className:"mt-4",children:"Misuse of the temporary email service not only violates our terms of service but can also impact the normal use of other users. We encourage each user to use our services responsibly to ensure that resources are allocated and used appropriately."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"copyrights",children:h.jsx("a",{href:"#copyrights",children:"Copyrights "})}),h.jsxs("p",{className:"mt-4",children:["All copyrights belong to"," ",h.jsxs("a",{href:"https://vmail.dev",rel:"nofollow",children:[h.jsx("strong",{children:"Vmail.DEV "})," "]}),"."," "]})]})})}function a6(){return h.jsx("div",{children:h.jsxs("div",{className:"max-w-[1400px] ",children:[h.jsx("p",{className:"mt-8",children:"At Vmail.DEV, we value the privacy of our users and are committed to protecting their personal information. This Privacy Policy outlines the practices we follow regarding the collection, use, storage, and deletion of data on our one-time email website."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Collection of Information",children:"1. Collection of Information"}),h.jsx("p",{className:"mt-4",children:"We only collect and store an email name for the duration of the session. This information is necessary to facilitate the functioning of our one-time email service."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Storage of Emails",children:"2. Storage of Emails"}),h.jsx("p",{className:"mt-4",children:"All emails sent and received through our one-time email service are temporarily stored in Cloudflare data centers. This storage is essential for the proper delivery and retrieval of emails during the active session."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Deletion of Emails",children:"3. Deletion of Emails"}),h.jsx("p",{className:"mt-4",children:"Once an email expires, we ensure the complete deletion of the email from our system. This means that all associated data, including the email content and any related information, will be permanently removed from our servers."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Data Security",children:"4. Data Security"}),h.jsx("p",{className:"mt-4",children:"We take appropriate measures to protect the personal information and emails stored on our website. However, it is important to note that no method of data transmission or storage is completely secure. While we strive to use commercially acceptable means to protect user data, we cannot guarantee absolute security."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Third-Party Services",children:"5. Third-Party Services"}),h.jsx("p",{className:"mt-4",children:"We may use third-party services, such as Cloudflare, to assist in the operation and maintenance of our website. These third-party services may have access to certain user data, including email names and content, solely for the purpose of providing their services. We ensure that any third-party services we use are reputable and have appropriate data protection measures in place."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"",children:"6. Information Sharing"}),h.jsx("p",{className:"mt-4",children:"We do not share, sell, or disclose any personal information or email content to third parties, except as required by law or as necessary to protect our rights, property, or safety."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Cookies",children:"7. Cookies"}),h.jsx("p",{className:"mt-4",children:"We may use cookies to enhance the user experience on our website. These cookies may collect non-personal information and are used solely for website analytics and functionality purposes."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Children's Privacy",children:"8. Children's Privacy"}),h.jsx("p",{className:"mt-4",children:"Our website is not intended for use by individuals under the age of 13. We do not knowingly collect personal information from children. If you believe that we may have inadvertently collected personal information from a child under 13, please contact us immediately, and we will take appropriate steps to delete such information."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Changes to the Privacy Policy",children:"9. Changes to the Privacy Policy"}),h.jsx("p",{className:"mt-4",children:"We reserve the right to modify or update this Privacy Policy at any time. Any changes made will be effective immediately upon posting the revised Privacy Policy on our website. It is advisable to review this Privacy Policy periodically for any updates."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Contact Us",children:"10. Contact Us"}),h.jsx("p",{className:"mt-4",children:"If you have any questions, concerns, or feedback regarding this Privacy Policy or our website's privacy practices, please contact us."}),h.jsx("p",{className:"mt-8",children:"Last updated: 2024-03-15"})]})})}function l6(){return h.jsx("div",{children:h.jsxs("div",{className:"max-w-[1400px] ",children:[h.jsx("p",{className:"mt-8",children:'Welcome to Vmail.DEV! These Terms of Service ("Terms") govern your access to and use of our website and services. By accessing or using our services, you agree to be bound by these Terms. If you do not agree to these Terms, please do not use our services.'}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Collection of Information",children:"1. Description of Service"}),h.jsx("p",{className:"mt-4",children:"Vmail.DEV is a minimalistic temporary email service that allows you to obtain a temporary email address without disclosing any personal information, ensuring the protection of your privacy. Our service supports the selection of multiple domain names, providing you with the convenience of using it in various scenarios. Additionally, Vmail.DEV operates on the Cloudflare network, guaranteeing a super-fast experience."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Storage of Emails",children:"2. Usage Restrictions"}),h.jsx("p",{className:"mt-4",children:"2.1 Availability: Please note that Vmail.DEV is not available in China Mainland. We apologize for any inconvenience caused."}),h.jsx("p",{className:"mt-4",children:"2.2 Copyright: All copyrights related to Vmail.DEV and its services belong to Vmail.DEV. You may not copy, reproduce, distribute, modify, or create derivative works of Vmail.DEV or any part thereof without explicit permission from Vmail.DEV."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Deletion of Emails",children:"3. User Responsibilities"}),h.jsx("p",{className:"mt-4",children:"3.1 Registration: You are not required to register or provide any personal information to use Vmail.DEV. However, you are solely responsible for maintaining the confidentiality of any temporary email addresses generated through our service."}),h.jsx("p",{className:"mt-4",children:"3.2 Prohibited Activities: While using Vmail.DEV, you agree not to engage in any activities that may violate any applicable laws, regulations, or these Terms. Prohibited activities include, but are not limited to:"}),h.jsxs("ul",{className:"mt-4",children:[h.jsx("li",{children:"a) Sending spam or unsolicited emails. "}),h.jsx("li",{children:"b) Interfering with or disrupting the operation of our services."}),h.jsx("li",{children:"c) Attempting to gain unauthorized access to our systems or networks."})]}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Data Security",children:"4. Disclaimer of Warranty"}),h.jsx("p",{className:"mt-4",children:'Vmail.DEV is provided on an "as is" and "as available" basis. We do not warrant that our services will be uninterrupted, error-free, or secure. Your use of Vmail.DEV is at your own risk, and we disclaim all warranties, whether express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement.'}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Third-Party Services",children:"5. Limitation of Liability"}),h.jsx("p",{className:"mt-4",children:"To the maximum extent permitted by law, in no event shall Vmail.DEV or its affiliates be liable for any indirect, incidental, special, consequential, or punitive damages, including without limitation, loss of profits, data, use, goodwill, or other intangible losses, resulting from your access to or use of Vmail.DEV or any content or services provided through Vmail.DEV."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"",children:"6. Modification of Terms"}),h.jsx("p",{className:"mt-4",children:"We reserve the right to modify these Terms at any time, without prior notice. Any changes to the Terms will be effective immediately upon posting. Your continued use of Vmail.DEV after the posting of any modified Terms constitutes your acceptance of such changes."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Cookies",children:"7. Governing Law and Jurisdiction"}),h.jsx("p",{className:"mt-4",children:"These Terms shall be governed by and construed in accordance with the laws of the jurisdiction where Vmail.DEV is located. Any disputes arising out of or in connection with these Terms shall be subject to the exclusive jurisdiction of the courts in that jurisdiction."}),h.jsx("p",{className:"mt-4",children:"If you have any questions or concerns regarding these Terms, please contact us."}),h.jsx("p",{className:"mt-8",children:"Last updated: 2024-04-10"})]})})}const ms=[{code:"zh",name:"简体中文",flag:"🇨🇳"},{code:"en",name:"English",flag:"🇺🇸"},{code:"ja",name:"日本語",flag:"🇯🇵"},{code:"ko",name:"한국어",flag:"🇰🇷"},{code:"fr",name:"Français",flag:"🇫🇷"},{code:"de",name:"Deutsch",flag:"🇩🇪"},{code:"it",name:"Italiano",flag:"🇮🇹"},{code:"pt",name:"Português",flag:"🇧🇷"},{code:"ru",name:"Русский",flag:"🇷🇺"},{code:"tr",name:"Türkçe",flag:"🇹🇷"},{code:"zh-TW",name:"繁體中文",flag:"🇹🇼"}];function u6(){const{t:e,i18n:t}=ar(),[n,r]=b.useState(!1),[i,s]=b.useState(!1),[o,a]=b.useState(!1),[l,u]=b.useState(!1),c=b.useRef(null),f=(()=>{const p=t.language,v=ms.find(w=>w.code===p);if(v)return v;const x=ms.find(w=>p.startsWith(w.code+"-")||w.code.startsWith(p+"-"));if(x)return x;const y=p.split("-")[0];return ms.find(w=>w.code===y)||ms[0]})(),m=p=>{t.changeLanguage(p),u(!1)};return b.useEffect(()=>{const p=v=>{c.current&&!c.current.contains(v.target)&&u(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]),h.jsxs(h.Fragment,{children:[h.jsxs("header",{className:"fixed top-0 z-20 h-20 w-full px-5 backdrop-blur-xl md:px-10 text-white flex items-center justify-between shadow-sm",children:[h.jsxs(Yf,{to:"/",className:"font-bold flex items-center justify-center gap-3",children:[h.jsx(i6,{}),h.jsx("button",{className:"cool-btn",children:h.jsx("span",{children:"VMAIL.DEV"})})]}),h.jsxs("nav",{className:"flex items-center",children:[h.jsx("a",{className:"ml-3 md:ml-8",target:"_blank",rel:"noopener noreferrer",href:"/api-docs",children:"API"}),h.jsx("button",{onClick:()=>r(!0),className:"ml-3 md:ml-8 text-sm md:text-base hidden md:block hover:text-cyan-400",children:e("About")}),h.jsx("button",{onClick:()=>s(!0),className:"ml-3 md:ml-8 text-sm md:text-base hidden md:block hover:text-cyan-400",children:e("Privacy")}),h.jsx("button",{onClick:()=>a(!0),className:"ml-3 md:ml-8 text-sm md:text-base hidden md:block hover:text-cyan-400",children:e("Terms")}),h.jsxs("div",{className:"relative ml-3 md:ml-8",ref:c,children:[h.jsxs("button",{onClick:()=>u(!l),className:"flex items-center gap-1 text-sm hover:text-cyan-400 px-2 py-1 rounded border border-transparent hover:border-cyan-400/30",children:[h.jsx("span",{children:f.flag}),h.jsx("span",{className:"hidden md:inline",children:f.name}),h.jsx("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),l&&h.jsx("div",{className:"absolute right-0 mt-2 w-40 bg-zinc-800 border border-zinc-700 rounded-lg shadow-lg py-1 z-50",children:ms.map(p=>h.jsxs("button",{onClick:()=>m(p.code),className:`w-full text-left px-3 py-2 text-sm hover:bg-zinc-700 flex items-center gap-2 ${p.code===t.language?"text-cyan-400":"text-white"}`,children:[h.jsx("span",{children:p.flag}),h.jsx("span",{children:p.name})]},p.code))})]}),h.jsx("a",{className:"ml-3 md:ml-8",target:"_blank",rel:"noopener noreferrer",href:"https://github.com/oiov/vmail",children:h.jsxs("button",{className:"whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-transparent hover:bg-accent hover:text-accent-foreground text-md flex h-[32px] w-[85px] cursor-pointer items-center justify-center rounded-md border-2 p-2 font-semibold hover:opacity-50",children:[h.jsx(s6,{}),h.jsx("div",{className:"ml-1.5 text-sm",children:"Star"})]})})]})]}),h.jsx(Fa,{showModal:n,setShowModal:r,title:e("About"),children:h.jsx(o6,{})}),h.jsx(Fa,{showModal:i,setShowModal:s,title:e("Privacy"),children:h.jsx(a6,{})}),h.jsx(Fa,{showModal:o,setShowModal:a,title:e("Terms"),children:h.jsx(l6,{})})]})}function c6({className:e}){return h.jsx("svg",{width:"512",height:"512",viewBox:"0 0 24 24",className:"h-6 w-6",xmlns:"http://www.w3.org/2000/svg",children:h.jsx("path",{fill:"currentColor",d:"M8.5 2h2.5L11 2h-2.5zM13 2h2.5L15.5 2h-2.5zM10.5 2h5v0h-5zM8.5 2h5v0h-5zM10 2h3.5L13.5 2h-3.5z",children:h.jsx("animate",{fill:"freeze",attributeName:"d",dur:"0.4s",keyTimes:"0;0.3;0.5;1",values:` + -H "X-API-Key: your-api-key"`})})]})]}),h.jsxs("section",{className:"mb-8",children:[h.jsx("h2",{className:"text-2xl font-semibold text-cyan-300 mb-4",children:e("Rate Limits")}),h.jsx("div",{className:"bg-gray-800 rounded-lg p-4",children:h.jsx("p",{className:"text-gray-300",children:e("API requests are rate limited based on your API Key configuration. Default limit is 100 requests per minute.")})})]})]})})}function a$(){return h.jsxs("svg",{id:"iconce.com",width:"32",height:"32",viewBox:"0 0 256 256",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[h.jsxs("defs",{children:[h.jsxs("linearGradient",{id:"r5",gradientUnits:"userSpaceOnUse",gradientTransform:"rotate(45)",style:{transformOrigin:"center center"},children:[h.jsx("stop",{stopColor:"#5C5C5C"}),h.jsx("stop",{offset:"1",stopColor:"#0F1015"})]}),h.jsxs("radialGradient",{id:"r6",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(256) rotate(90) scale(512)",children:[h.jsx("stop",{stopColor:"white"}),h.jsx("stop",{offset:"1",stopColor:"white",stopOpacity:"0"})]})]}),h.jsx("rect",{id:"r4",width:"256",height:"256",x:"0",y:"0",rx:"48",fill:"url(#r5)",stroke:"#FFFFFF",strokeWidth:"0",strokeOpacity:"100%",paintOrder:"stroke"}),h.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"170",height:"170",viewBox:"0 0 24 24",fill:"none",stroke:"#FFFFFF",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-white",alignmentBaseline:"middle",x:"43",y:"43",children:[h.jsx("path",{d:"M22 17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9.5C2 7 4 5 6.5 5H18c2.2 0 4 1.8 4 4v8Z"}),h.jsx("polyline",{points:"15,9 18,9 18,11"}),h.jsx("path",{d:"M6.5 5C9 5 11 7 11 9.5V17a2 2 0 0 1-2 2v0"}),h.jsx("line",{x1:"6",x2:"7",y1:"10",y2:"10"})]})]})}function l$({className:e}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"mb-[1px]",children:h.jsx("path",{d:"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"})})}function u$(){return h.jsx("div",{children:h.jsxs("div",{className:"max-w-[1400px] ",children:[h.jsxs("p",{className:"mt-8",children:[h.jsx("strong",{children:"Vmail.DEV "})," is a Virtual temporary email service."," "]}),h.jsxs("p",{className:"mt-4",children:["You can get a temporary email without revealing any personal information, which greatly protects your privacy."," "]}),h.jsxs("p",{className:"mt-4",children:["It supports selecting one domain names, making it convenient for you to use in different scenarios."," "]}),h.jsxs("p",{className:"mt-4",children:["100% running on the ",h.jsx("strong",{children:"Cloudflare "})," network, providing you with a super-fast experience."," "]}),h.jsx("p",{className:"mt-4",children:"Misuse of the temporary email service not only violates our terms of service but can also impact the normal use of other users. We encourage each user to use our services responsibly to ensure that resources are allocated and used appropriately."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"copyrights",children:h.jsx("a",{href:"#copyrights",children:"Copyrights "})}),h.jsxs("p",{className:"mt-4",children:["All copyrights belong to"," ",h.jsxs("a",{href:"https://vmail.dev",rel:"nofollow",children:[h.jsx("strong",{children:"Vmail.DEV "})," "]}),"."," "]})]})})}function c$(){return h.jsx("div",{children:h.jsxs("div",{className:"max-w-[1400px] ",children:[h.jsx("p",{className:"mt-8",children:"At Vmail.DEV, we value the privacy of our users and are committed to protecting their personal information. This Privacy Policy outlines the practices we follow regarding the collection, use, storage, and deletion of data on our one-time email website."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Collection of Information",children:"1. Collection of Information"}),h.jsx("p",{className:"mt-4",children:"We only collect and store an email name for the duration of the session. This information is necessary to facilitate the functioning of our one-time email service."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Storage of Emails",children:"2. Storage of Emails"}),h.jsx("p",{className:"mt-4",children:"All emails sent and received through our one-time email service are temporarily stored in Cloudflare data centers. This storage is essential for the proper delivery and retrieval of emails during the active session."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Deletion of Emails",children:"3. Deletion of Emails"}),h.jsx("p",{className:"mt-4",children:"Once an email expires, we ensure the complete deletion of the email from our system. This means that all associated data, including the email content and any related information, will be permanently removed from our servers."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Data Security",children:"4. Data Security"}),h.jsx("p",{className:"mt-4",children:"We take appropriate measures to protect the personal information and emails stored on our website. However, it is important to note that no method of data transmission or storage is completely secure. While we strive to use commercially acceptable means to protect user data, we cannot guarantee absolute security."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Third-Party Services",children:"5. Third-Party Services"}),h.jsx("p",{className:"mt-4",children:"We may use third-party services, such as Cloudflare, to assist in the operation and maintenance of our website. These third-party services may have access to certain user data, including email names and content, solely for the purpose of providing their services. We ensure that any third-party services we use are reputable and have appropriate data protection measures in place."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"",children:"6. Information Sharing"}),h.jsx("p",{className:"mt-4",children:"We do not share, sell, or disclose any personal information or email content to third parties, except as required by law or as necessary to protect our rights, property, or safety."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Cookies",children:"7. Cookies"}),h.jsx("p",{className:"mt-4",children:"We may use cookies to enhance the user experience on our website. These cookies may collect non-personal information and are used solely for website analytics and functionality purposes."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Children's Privacy",children:"8. Children's Privacy"}),h.jsx("p",{className:"mt-4",children:"Our website is not intended for use by individuals under the age of 13. We do not knowingly collect personal information from children. If you believe that we may have inadvertently collected personal information from a child under 13, please contact us immediately, and we will take appropriate steps to delete such information."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Changes to the Privacy Policy",children:"9. Changes to the Privacy Policy"}),h.jsx("p",{className:"mt-4",children:"We reserve the right to modify or update this Privacy Policy at any time. Any changes made will be effective immediately upon posting the revised Privacy Policy on our website. It is advisable to review this Privacy Policy periodically for any updates."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Contact Us",children:"10. Contact Us"}),h.jsx("p",{className:"mt-4",children:"If you have any questions, concerns, or feedback regarding this Privacy Policy or our website's privacy practices, please contact us."}),h.jsx("p",{className:"mt-8",children:"Last updated: 2024-03-15"})]})})}function d$(){return h.jsx("div",{children:h.jsxs("div",{className:"max-w-[1400px] ",children:[h.jsx("p",{className:"mt-8",children:'Welcome to Vmail.DEV! These Terms of Service ("Terms") govern your access to and use of our website and services. By accessing or using our services, you agree to be bound by these Terms. If you do not agree to these Terms, please do not use our services.'}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Collection of Information",children:"1. Description of Service"}),h.jsx("p",{className:"mt-4",children:"Vmail.DEV is a minimalistic temporary email service that allows you to obtain a temporary email address without disclosing any personal information, ensuring the protection of your privacy. Our service supports the selection of multiple domain names, providing you with the convenience of using it in various scenarios. Additionally, Vmail.DEV operates on the Cloudflare network, guaranteeing a super-fast experience."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Storage of Emails",children:"2. Usage Restrictions"}),h.jsx("p",{className:"mt-4",children:"2.1 Availability: Please note that Vmail.DEV is not available in China Mainland. We apologize for any inconvenience caused."}),h.jsx("p",{className:"mt-4",children:"2.2 Copyright: All copyrights related to Vmail.DEV and its services belong to Vmail.DEV. You may not copy, reproduce, distribute, modify, or create derivative works of Vmail.DEV or any part thereof without explicit permission from Vmail.DEV."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Deletion of Emails",children:"3. User Responsibilities"}),h.jsx("p",{className:"mt-4",children:"3.1 Registration: You are not required to register or provide any personal information to use Vmail.DEV. However, you are solely responsible for maintaining the confidentiality of any temporary email addresses generated through our service."}),h.jsx("p",{className:"mt-4",children:"3.2 Prohibited Activities: While using Vmail.DEV, you agree not to engage in any activities that may violate any applicable laws, regulations, or these Terms. Prohibited activities include, but are not limited to:"}),h.jsxs("ul",{className:"mt-4",children:[h.jsx("li",{children:"a) Sending spam or unsolicited emails. "}),h.jsx("li",{children:"b) Interfering with or disrupting the operation of our services."}),h.jsx("li",{children:"c) Attempting to gain unauthorized access to our systems or networks."})]}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Data Security",children:"4. Disclaimer of Warranty"}),h.jsx("p",{className:"mt-4",children:'Vmail.DEV is provided on an "as is" and "as available" basis. We do not warrant that our services will be uninterrupted, error-free, or secure. Your use of Vmail.DEV is at your own risk, and we disclaim all warranties, whether express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement.'}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Third-Party Services",children:"5. Limitation of Liability"}),h.jsx("p",{className:"mt-4",children:"To the maximum extent permitted by law, in no event shall Vmail.DEV or its affiliates be liable for any indirect, incidental, special, consequential, or punitive damages, including without limitation, loss of profits, data, use, goodwill, or other intangible losses, resulting from your access to or use of Vmail.DEV or any content or services provided through Vmail.DEV."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"",children:"6. Modification of Terms"}),h.jsx("p",{className:"mt-4",children:"We reserve the right to modify these Terms at any time, without prior notice. Any changes to the Terms will be effective immediately upon posting. Your continued use of Vmail.DEV after the posting of any modified Terms constitutes your acceptance of such changes."}),h.jsx("h2",{className:"mt-8 text-2xl font-bold",id:"Cookies",children:"7. Governing Law and Jurisdiction"}),h.jsx("p",{className:"mt-4",children:"These Terms shall be governed by and construed in accordance with the laws of the jurisdiction where Vmail.DEV is located. Any disputes arising out of or in connection with these Terms shall be subject to the exclusive jurisdiction of the courts in that jurisdiction."}),h.jsx("p",{className:"mt-4",children:"If you have any questions or concerns regarding these Terms, please contact us."}),h.jsx("p",{className:"mt-8",children:"Last updated: 2024-04-10"})]})})}const ms=[{code:"zh",name:"简体中文",flag:"🇨🇳"},{code:"en",name:"English",flag:"🇺🇸"},{code:"ja",name:"日本語",flag:"🇯🇵"},{code:"ko",name:"한국어",flag:"🇰🇷"},{code:"fr",name:"Français",flag:"🇫🇷"},{code:"de",name:"Deutsch",flag:"🇩🇪"},{code:"it",name:"Italiano",flag:"🇮🇹"},{code:"pt",name:"Português",flag:"🇧🇷"},{code:"ru",name:"Русский",flag:"🇷🇺"},{code:"tr",name:"Türkçe",flag:"🇹🇷"},{code:"zh-TW",name:"繁體中文",flag:"🇹🇼"}];function f$(){const{t:e,i18n:t}=Pn(),[n,r]=b.useState(!1),[i,s]=b.useState(!1),[o,a]=b.useState(!1),[l,u]=b.useState(!1),c=b.useRef(null),f=(()=>{const p=t.language,v=ms.find(w=>w.code===p);if(v)return v;const x=ms.find(w=>p.startsWith(w.code+"-")||w.code.startsWith(p+"-"));if(x)return x;const y=p.split("-")[0];return ms.find(w=>w.code===y)||ms[0]})(),m=p=>{t.changeLanguage(p),u(!1)};return b.useEffect(()=>{const p=v=>{c.current&&!c.current.contains(v.target)&&u(!1)};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]),h.jsxs(h.Fragment,{children:[h.jsxs("header",{className:"fixed top-0 z-20 h-20 w-full px-5 backdrop-blur-xl md:px-10 text-white flex items-center justify-between shadow-sm",children:[h.jsxs(Jf,{to:"/",className:"font-bold flex items-center justify-center gap-3",children:[h.jsx(a$,{}),h.jsx("button",{className:"cool-btn",children:h.jsx("span",{children:"VMAIL.DEV"})})]}),h.jsxs("nav",{className:"flex items-center",children:[h.jsx("a",{className:"ml-3 md:ml-8",target:"_blank",rel:"noopener noreferrer",href:"/api-docs",children:"API"}),h.jsx("button",{onClick:()=>r(!0),className:"ml-3 md:ml-8 text-sm md:text-base hidden md:block hover:text-cyan-400",children:e("About")}),h.jsx("button",{onClick:()=>s(!0),className:"ml-3 md:ml-8 text-sm md:text-base hidden md:block hover:text-cyan-400",children:e("Privacy")}),h.jsx("button",{onClick:()=>a(!0),className:"ml-3 md:ml-8 text-sm md:text-base hidden md:block hover:text-cyan-400",children:e("Terms")}),h.jsxs("div",{className:"relative ml-3 md:ml-8",ref:c,children:[h.jsxs("button",{onClick:()=>u(!l),className:"flex items-center gap-1 text-sm hover:text-cyan-400 px-2 py-1 rounded border border-transparent hover:border-cyan-400/30",children:[h.jsx("span",{children:f.flag}),h.jsx("span",{className:"hidden md:inline",children:f.name}),h.jsx("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:h.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]}),l&&h.jsx("div",{className:"absolute right-0 mt-2 w-40 bg-zinc-800 border border-zinc-700 rounded-lg shadow-lg py-1 z-50",children:ms.map(p=>h.jsxs("button",{onClick:()=>m(p.code),className:`w-full text-left px-3 py-2 text-sm hover:bg-zinc-700 flex items-center gap-2 ${p.code===t.language?"text-cyan-400":"text-white"}`,children:[h.jsx("span",{children:p.flag}),h.jsx("span",{children:p.name})]},p.code))})]}),h.jsx("a",{className:"ml-3 md:ml-8",target:"_blank",rel:"noopener noreferrer",href:"https://github.com/oiov/vmail",children:h.jsxs("button",{className:"whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-transparent hover:bg-accent hover:text-accent-foreground text-md flex h-[32px] w-[85px] cursor-pointer items-center justify-center rounded-md border-2 p-2 font-semibold hover:opacity-50",children:[h.jsx(l$,{}),h.jsx("div",{className:"ml-1.5 text-sm",children:"Star"})]})})]})]}),h.jsx(Va,{showModal:n,setShowModal:r,title:e("About"),children:h.jsx(u$,{})}),h.jsx(Va,{showModal:i,setShowModal:s,title:e("Privacy"),children:h.jsx(c$,{})}),h.jsx(Va,{showModal:o,setShowModal:a,title:e("Terms"),children:h.jsx(d$,{})})]})}function h$({className:e}){return h.jsx("svg",{width:"512",height:"512",viewBox:"0 0 24 24",className:"h-6 w-6",xmlns:"http://www.w3.org/2000/svg",children:h.jsx("path",{fill:"currentColor",d:"M8.5 2h2.5L11 2h-2.5zM13 2h2.5L15.5 2h-2.5zM10.5 2h5v0h-5zM8.5 2h5v0h-5zM10 2h3.5L13.5 2h-3.5z",children:h.jsx("animate",{fill:"freeze",attributeName:"d",dur:"0.4s",keyTimes:"0;0.3;0.5;1",values:` M8.5 2h2.5L11 2h-2.5zM13 2h2.5L15.5 2h-2.5zM10.5 2h5v0h-5zM8.5 2h5v0h-5zM10 2h3.5L13.5 2h-3.5z; M8.5 2h2.5L11 22h-2.5zM13 2h2.5L15.5 22h-2.5zM10.5 2h5v2h-5zM8.5 20h5v2h-5zM10 2h3.5L13.5 22h-3.5z; M8.5 2h2.5L11 22h-2.5zM13 2h2.5L15.5 22h-2.5zM10.5 2h5v2h-5zM8.5 20h5v2h-5zM10 2h3.5L13.5 22h-3.5z; - M1 2h2.5L18.5 22h-2.5zM5.5 2h2.5L23 22h-2.5zM3 2h5v2h-5zM16 20h5v2h-5zM18.5 2h3.5L5 22h-3.5z`})})})}function d6({className:e}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"512",height:"512",viewBox:"0 0 24 24",className:"h-6 w-6",fill:"currentColor",children:h.jsx("path",{d:"M1 150c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z",children:h.jsx("animate",{fill:"freeze",attributeName:"d",dur:"0.4s",keyTimes:"0;0.3;0.5;1",values:`M4 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z; + M1 2h2.5L18.5 22h-2.5zM5.5 2h2.5L23 22h-2.5zM3 2h5v2h-5zM16 20h5v2h-5zM18.5 2h3.5L5 22h-3.5z`})})})}function m$({className:e}){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"512",height:"512",viewBox:"0 0 24 24",className:"h-6 w-6",fill:"currentColor",children:h.jsx("path",{d:"M1 150c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z",children:h.jsx("animate",{fill:"freeze",attributeName:"d",dur:"0.4s",keyTimes:"0;0.3;0.5;1",values:`M4 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z; M8 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z; M10 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z; - M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z`})})})}function f6(){return h.jsxs("div",{className:"text-white w-full mt-auto flex flex-col items-center justify-between px-5 pt-16 mb-10 md:px-10 mx-auto sm:flex-row",children:[h.jsx(Yf,{to:"/",className:"text-xl font-black leading-none select-none logo",children:"VMAIL.DEV"})," ",h.jsxs("p",{className:"mt-4 text-sm text-gray-400 sm:ml-4 sm:pl-4 sm:border-l sm:border-gray-200 sm:mt-0",children:["© 2024 Products of"," ",h.jsx("a",{className:"font-semibold underline hover:text-gray-600",href:"https://www.oiov.dev",target:"_blank",rel:"noopener noreferrer",children:"oiov"}),"."]}),h.jsxs("div",{className:"inline-flex justify-center mt-4 space-x-5 sm:ml-auto sm:mt-0 sm:justify-start",children:[h.jsx("a",{href:"https://like.do",target:"_blank",rel:"noopener noreferrer",title:"LikeDo",className:"text-gray-400 hover:text-gray-500 scale-[1.2]",children:h.jsx("img",{src:"/likedo.svg",alt:"LikeDo",className:"w-6 h-6"})}),h.jsx("a",{href:"mailto:hi@oiov.dev",title:"Email",className:"text-gray-400 hover:text-gray-500",children:h.jsx(fw,{className:"w-6 h-6"})}),h.jsx("a",{href:"https://twitter.com/yesmoree",target:"_blank",rel:"noopener noreferrer",title:"Twitter",className:"text-gray-400 hover:text-gray-500",children:h.jsx(c6,{})}),h.jsx("a",{href:"https://github.com/oiov/vmail",target:"_blank",rel:"noopener noreferrer",title:"Github",className:"text-gray-400 hover:text-gray-500",children:h.jsx(d6,{})})]})]})}function h6(){return h.jsxs("div",{className:"mx-auto min-h-screen flex flex-col bg-[#1f2023]",children:[h.jsx(u6,{}),h.jsx(LC,{}),h.jsx(f6,{}),h.jsx(a3,{position:"bottom-right",toastOptions:{style:{background:"#333",color:"#fff"}}})]})}const m6=new QS;function p6(){const[e,t]=b.useState(null);return b.useEffect(()=>{ke.get("/config").then(n=>{t(n.data)})},[]),e?h.jsx(pw.Provider,{value:e,children:h.jsx(ZS,{client:m6,children:h.jsx(UC,{children:h.jsx($C,{children:h.jsxs(Oa,{element:h.jsx(h6,{}),children:[h.jsx(Oa,{path:"/",element:h.jsx(n6,{})}),h.jsx(Oa,{path:"/api-docs",element:h.jsx(r6,{})})]})})})})}):h.jsx("div",{className:"bg-[#1f2023] text-white w-screen h-screen flex items-center justify-center",children:"Loading..."})}const X=e=>typeof e=="string",ps=()=>{let e,t;const n=new Promise((r,i)=>{e=r,t=i});return n.resolve=e,n.reject=t,n},uy=e=>e==null?"":""+e,g6=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},y6=/###/g,cy=e=>e&&e.indexOf("###")>-1?e.replace(y6,"."):e,dy=e=>!e||X(e),zs=(e,t,n)=>{const r=X(t)?t.split("."):t;let i=0;for(;i{const{obj:r,k:i}=zs(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let s=t[t.length-1],o=t.slice(0,t.length-1),a=zs(e,o,Object);for(;a.obj===void 0&&o.length;)s=`${o[o.length-1]}.${s}`,o=o.slice(0,o.length-1),a=zs(e,o,Object),a&&a.obj&&typeof a.obj[`${a.k}.${s}`]<"u"&&(a.obj=void 0);a.obj[`${a.k}.${s}`]=n},v6=(e,t,n,r)=>{const{obj:i,k:s}=zs(e,t,Object);i[s]=i[s]||[],i[s].push(n)},Pl=(e,t)=>{const{obj:n,k:r}=zs(e,t);if(n)return n[r]},w6=(e,t,n)=>{const r=Pl(e,n);return r!==void 0?r:Pl(t,n)},Kx=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?X(e[r])||e[r]instanceof String||X(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Kx(e[r],t[r],n):e[r]=t[r]);return e},Gr=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var x6={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const b6=e=>X(e)?e.replace(/[&<>"'\/]/g,t=>x6[t]):e;class S6{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const P6=[" ",",","?","!",";"],k6=new S6(20),C6=(e,t,n)=>{t=t||"",n=n||"";const r=P6.filter(o=>t.indexOf(o)<0&&n.indexOf(o)<0);if(r.length===0)return!0;const i=k6.getRegExp(`(${r.map(o=>o==="?"?"\\?":o).join("|")})`);let s=!i.test(e);if(!s){const o=e.indexOf(n);o>0&&!i.test(e.substring(0,o))&&(s=!0)}return s},Bd=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const r=t.split(n);let i=e;for(let s=0;s-1&&le&&e.replace("_","-"),E6={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class Cl{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||E6,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r{this.observers[r]||(this.observers[r]=new Map);const i=this.observers[r].get(n)||0;this.observers[r].set(n,i+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{let[a,l]=o;for(let u=0;u{let[a,l]=o;for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,o=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;t.indexOf(".")>-1?a=t.split("."):(a=[t,n],r&&(Array.isArray(r)?a.push(...r):X(r)&&s?a.push(...r.split(s)):a.push(r)));const l=Pl(this.data,a);return!l&&!n&&!r&&t.indexOf(".")>-1&&(t=a[0],n=a[1],r=a.slice(2).join(".")),l||!o||!X(r)?l:Bd(this.data&&this.data[t]&&this.data[t][n],r,s)}addResource(t,n,r,i){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const o=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator;let a=[t,n];r&&(a=a.concat(o?r.split(o):r)),t.indexOf(".")>-1&&(a=t.split("."),i=n,n=a[1]),this.addNamespaces(n),fy(this.data,a,i),s.silent||this.emit("added",t,n,r,i)}addResources(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const s in r)(X(r[s])||Array.isArray(r[s]))&&this.addResource(t,n,s,r[s],{silent:!0});i.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,i,s){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},a=[t,n];t.indexOf(".")>-1&&(a=t.split("."),i=r,r=n,n=a[1]),this.addNamespaces(n);let l=Pl(this.data,a)||{};o.skipCopy||(r=JSON.parse(JSON.stringify(r))),i?Kx(l,r,s):l={...l,...r},fy(this.data,a,l),o.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(i=>n[i]&&Object.keys(n[i]).length>0)}toJSON(){return this.data}}var Qx={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(s=>{this.processors[s]&&(t=this.processors[s].process(t,n,r,i))}),t}};const my={};class El extends uu{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),g6(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Jt.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const r=this.resolve(t,n);return r&&r.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let s=n.ns||this.options.defaultNS||[];const o=r&&t.indexOf(r)>-1,a=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!C6(t,r,i);if(o&&!a){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:X(s)?[s]:s};const u=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(u[0])>-1)&&(s=u.shift()),t=u.join(i)}return{key:t,namespaces:X(s)?[s]:s}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const i=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,s=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:o,namespaces:a}=this.extractFromKey(t[t.length-1],n),l=a[a.length-1],u=n.lng||this.language,c=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(c){const S=n.nsSeparator||this.options.nsSeparator;return i?{res:`${l}${S}${o}`,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:`${l}${S}${o}`}return i?{res:o,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:o}const d=this.resolve(t,n);let f=d&&d.res;const m=d&&d.usedKey||o,p=d&&d.exactUsedKey||o,v=Object.prototype.toString.apply(f),x=["[object Number]","[object Function]","[object RegExp]"],y=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,g=!this.i18nFormat||this.i18nFormat.handleAsObject,w=!X(f)&&typeof f!="boolean"&&typeof f!="number";if(g&&f&&w&&x.indexOf(v)<0&&!(X(y)&&Array.isArray(f))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const S=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,f,{...n,ns:a}):`key '${o} (${this.language})' returned an object instead of string.`;return i?(d.res=S,d.usedParams=this.getUsedParamsDetails(n),d):S}if(s){const S=Array.isArray(f),P=S?[]:{},T=S?p:m;for(const C in f)if(Object.prototype.hasOwnProperty.call(f,C)){const j=`${T}${s}${C}`;P[C]=this.translate(j,{...n,joinArrays:!1,ns:a}),P[C]===j&&(P[C]=f[C])}f=P}}else if(g&&X(y)&&Array.isArray(f))f=f.join(y),f&&(f=this.extendTranslation(f,t,n,r));else{let S=!1,P=!1;const T=n.count!==void 0&&!X(n.count),C=El.hasDefaultValue(n),j=T?this.pluralResolver.getSuffix(u,n.count,n):"",$=n.ordinal&&T?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",_=T&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),W=_&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${j}`]||n[`defaultValue${$}`]||n.defaultValue;!this.isValidLookup(f)&&C&&(S=!0,f=W),this.isValidLookup(f)||(P=!0,f=o);const ve=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&P?void 0:f,te=C&&W!==f&&this.options.updateMissing;if(P||S||te){if(this.logger.log(te?"updateKey":"missingKey",u,l,o,te?W:f),s){const N=this.resolve(o,{...n,keySeparator:!1});N&&N.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let E=[];const O=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&O&&O[0])for(let N=0;N{const A=C&&D!==f?D:ve;this.options.missingKeyHandler?this.options.missingKeyHandler(N,l,L,A,te,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(N,l,L,A,te,n),this.emit("missingKey",N,l,L,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&T?E.forEach(N=>{const L=this.pluralResolver.getSuffixes(N,n);_&&n[`defaultValue${this.options.pluralSeparator}zero`]&&L.indexOf(`${this.options.pluralSeparator}zero`)<0&&L.push(`${this.options.pluralSeparator}zero`),L.forEach(D=>{V([N],o+D,n[`defaultValue${D}`]||W)})}):V(E,o,W))}f=this.extendTranslation(f,t,n,d,r),P&&f===o&&this.options.appendNamespaceToMissingKey&&(f=`${l}:${o}`),(P||S)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${o}`:o,S?f:void 0):f=this.options.parseMissingKeyHandler(f))}return i?(d.res=f,d.usedParams=this.getUsedParamsDetails(n),d):f}extendTranslation(t,n,r,i,s){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const u=X(t)&&(r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(u){const f=t.match(this.interpolator.nestingRegexp);c=f&&f.length}let d=r.replace&&!X(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(d={...this.options.interpolation.defaultVariables,...d}),t=this.interpolator.interpolate(t,d,r.lng||this.language||i.usedLng,r),u){const f=t.match(this.interpolator.nestingRegexp),m=f&&f.length;c1&&arguments[1]!==void 0?arguments[1]:{},r,i,s,o,a;return X(t)&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;const u=this.extractFromKey(l,n),c=u.key;i=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const f=n.count!==void 0&&!X(n.count),m=f&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),p=n.context!==void 0&&(X(n.context)||typeof n.context=="number")&&n.context!=="",v=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);d.forEach(x=>{this.isValidLookup(r)||(a=x,!my[`${v[0]}-${x}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(a)&&(my[`${v[0]}-${x}`]=!0,this.logger.warn(`key "${i}" for languages "${v.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),v.forEach(y=>{if(this.isValidLookup(r))return;o=y;const g=[c];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(g,c,y,x,n);else{let S;f&&(S=this.pluralResolver.getSuffix(y,n.count,n));const P=`${this.options.pluralSeparator}zero`,T=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(g.push(c+S),n.ordinal&&S.indexOf(T)===0&&g.push(c+S.replace(T,this.options.pluralSeparator)),m&&g.push(c+P)),p){const C=`${c}${this.options.contextSeparator}${n.context}`;g.push(C),f&&(g.push(C+S),n.ordinal&&S.indexOf(T)===0&&g.push(C+S.replace(T,this.options.pluralSeparator)),m&&g.push(C+P))}}let w;for(;w=g.pop();)this.isValidLookup(r)||(s=w,r=this.getResource(y,x,w,n))}))})}),{res:r,usedKey:i,exactUsedKey:s,usedLng:o,usedNS:a}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&!X(t.replace);let i=r?t.replace:t;if(r&&typeof t.count<"u"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!r){i={...i};for(const s of n)delete i[s]}return i}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}const nc=e=>e.charAt(0).toUpperCase()+e.slice(1);class py{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Jt.create("languageUtils")}getScriptPartFromCode(t){if(t=kl(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=kl(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(X(t)&&t.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let i=Intl.getCanonicalLocales(t)[0];if(i&&this.options.lowerCaseLng&&(i=i.toLowerCase()),i)return i}catch{}const n=["hans","hant","latn","cyrl","cans","mong","arab"];let r=t.split("-");return this.options.lowerCaseLng?r=r.map(i=>i.toLowerCase()):r.length===2?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=nc(r[1].toLowerCase()))):r.length===3&&(r[0]=r[0].toLowerCase(),r[1].length===2&&(r[1]=r[1].toUpperCase()),r[0]!=="sgn"&&r[2].length===2&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=nc(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=nc(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const i=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(i))&&(n=i)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return n=i;n=this.options.supportedLngs.find(s=>{if(s===i)return s;if(!(s.indexOf("-")<0&&i.indexOf("-")<0)&&(s.indexOf("-")>0&&i.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===i||s.indexOf(i)===0&&i.length>1))return s})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),X(t)&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),i=[],s=o=>{o&&(this.isSupportedCode(o)?i.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return X(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(t))):X(t)&&s(this.formatLanguageCode(t)),r.forEach(o=>{i.indexOf(o)<0&&s(this.formatLanguageCode(o))}),i}}let T6=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],j6={1:e=>+(e>1),2:e=>+(e!=1),3:e=>0,4:e=>e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,5:e=>e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5,6:e=>e==1?0:e>=2&&e<=4?1:2,7:e=>e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,8:e=>e==1?0:e==2?1:e!=8&&e!=11?2:3,9:e=>+(e>=2),10:e=>e==1?0:e==2?1:e<7?2:e<11?3:4,11:e=>e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3,12:e=>+(e%10!=1||e%100==11),13:e=>+(e!==0),14:e=>e==1?0:e==2?1:e==3?2:3,15:e=>e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2,16:e=>e%10==1&&e%100!=11?0:e!==0?1:2,17:e=>e==1||e%10==1&&e%100!=11?0:1,18:e=>e==0?0:e==1?1:2,19:e=>e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3,20:e=>e==1?0:e==0||e%100>0&&e%100<20?1:2,21:e=>e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0,22:e=>e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3};const M6=["v1","v2","v3"],N6=["v4"],gy={zero:0,one:1,two:2,few:3,many:4,other:5},O6=()=>{const e={};return T6.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:j6[t.fc]}})}),e};class R6{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=Jt.create("pluralResolver"),(!this.options.compatibilityJSON||N6.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=O6(),this.pluralRulesCache={}}addRule(t,n){this.rules[t]=n}clearCache(){this.pluralRulesCache={}}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const r=kl(t==="dev"?"en":t),i=n.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:r,type:i});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let o;try{o=new Intl.PluralRules(r,{type:i})}catch{if(!t.match(/-|_/))return;const l=this.languageUtils.getLanguagePartFromCode(t);o=this.getRule(l,n)}return this.pluralRulesCache[s]=o,o}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return this.shouldUseIntlApi()?r&&r.resolvedOptions().pluralCategories.length>1:r&&r.numbers.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(i=>`${n}${i}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((i,s)=>gy[i]-gy[s]).map(i=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i}`):r.numbers.map(i=>this.getSuffix(t,i,n)):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=this.getRule(t,r);return i?this.shouldUseIntlApi()?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i.select(n)}`:this.getSuffixRetroCompatible(i,n):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,n){const r=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let i=t.numbers[r];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(i===2?i="plural":i===1&&(i=""));const s=()=>this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString();return this.options.compatibilityJSON==="v1"?i===1?"":typeof i=="number"?`_plural_${i.toString()}`:s():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?s():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}shouldUseIntlApi(){return!M6.includes(this.options.compatibilityJSON)}}const yy=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=w6(e,t,n);return!s&&i&&X(n)&&(s=Bd(e,n,r),s===void 0&&(s=Bd(t,n,r))),s},rc=e=>e.replace(/\$/g,"$$$$");class D6{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Jt.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:i,prefix:s,prefixEscaped:o,suffix:a,suffixEscaped:l,formatSeparator:u,unescapeSuffix:c,unescapePrefix:d,nestingPrefix:f,nestingPrefixEscaped:m,nestingSuffix:p,nestingSuffixEscaped:v,nestingOptionsSeparator:x,maxReplaces:y,alwaysFormat:g}=t.interpolation;this.escape=n!==void 0?n:b6,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=s?Gr(s):o||"{{",this.suffix=a?Gr(a):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=c?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=f?Gr(f):m||Gr("$t("),this.nestingSuffix=p?Gr(p):v||Gr(")"),this.nestingOptionsSeparator=x||",",this.maxReplaces=y||1e3,this.alwaysFormat=g!==void 0?g:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n&&n.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,r,i){let s,o,a;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=m=>{if(m.indexOf(this.formatSeparator)<0){const y=yy(n,l,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,r,{...i,...n,interpolationkey:m}):y}const p=m.split(this.formatSeparator),v=p.shift().trim(),x=p.join(this.formatSeparator).trim();return this.format(yy(n,l,v,this.options.keySeparator,this.options.ignoreJSONStructure),x,r,{...i,...n,interpolationkey:v})};this.resetRegExp();const c=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:m=>rc(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?rc(this.escape(m)):rc(m)}].forEach(m=>{for(a=0;s=m.regex.exec(t);){const p=s[1].trim();if(o=u(p),o===void 0)if(typeof c=="function"){const x=c(t,s,i);o=X(x)?x:""}else if(i&&Object.prototype.hasOwnProperty.call(i,p))o="";else if(d){o=s[0];continue}else this.logger.warn(`missed to pass in variable ${p} for interpolating ${t}`),o="";else!X(o)&&!this.useRawValueToEscape&&(o=uy(o));const v=m.safeValue(o);if(t=t.replace(s[0],v),d?(m.regex.lastIndex+=o.length,m.regex.lastIndex-=s[0].length):m.regex.lastIndex=0,a++,a>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,s,o;const a=(l,u)=>{const c=this.nestingOptionsSeparator;if(l.indexOf(c)<0)return l;const d=l.split(new RegExp(`${c}[ ]*{`));let f=`{${d[1]}`;l=d[0],f=this.interpolate(f,o);const m=f.match(/'/g),p=f.match(/"/g);(m&&m.length%2===0&&!p||p.length%2!==0)&&(f=f.replace(/'/g,'"'));try{o=JSON.parse(f),u&&(o={...u,...o})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,v),`${l}${c}${f}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,l};for(;i=this.nestingRegexp.exec(t);){let l=[];o={...r},o=o.replace&&!X(o.replace)?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=!1;if(i[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(i[1])){const c=i[1].split(this.formatSeparator).map(d=>d.trim());i[1]=c.shift(),l=c,u=!0}if(s=n(a.call(this,i[1].trim(),o),o),s&&i[0]===t&&!X(s))return s;X(s)||(s=uy(s)),s||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),s=""),u&&(s=l.reduce((c,d)=>this.format(c,d,r.lng,{...r,interpolationkey:i[1].trim()}),s.trim())),t=t.replace(i[0],s),this.regexp.lastIndex=0}return t}}const L6=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const i=r[1].substring(0,r[1].length-1);t==="currency"&&i.indexOf(":")<0?n.currency||(n.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?n.range||(n.range=i.trim()):i.split(";").forEach(o=>{if(o){const[a,...l]=o.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),c=a.trim();n[c]||(n[c]=u),u==="false"&&(n[c]=!1),u==="true"&&(n[c]=!0),isNaN(u)||(n[c]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}},Yr=e=>{const t={};return(n,r,i)=>{let s=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(s={...s,[i.interpolationkey]:void 0});const o=r+JSON.stringify(s);let a=t[o];return a||(a=e(kl(r),i),t[o]=a),a(n)}};class A6{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Jt.create("formatter"),this.options=t,this.formats={number:Yr((n,r)=>{const i=new Intl.NumberFormat(n,{...r});return s=>i.format(s)}),currency:Yr((n,r)=>{const i=new Intl.NumberFormat(n,{...r,style:"currency"});return s=>i.format(s)}),datetime:Yr((n,r)=>{const i=new Intl.DateTimeFormat(n,{...r});return s=>i.format(s)}),relativetime:Yr((n,r)=>{const i=new Intl.RelativeTimeFormat(n,{...r});return s=>i.format(s,r.range||"day")}),list:Yr((n,r)=>{const i=new Intl.ListFormat(n,{...r});return s=>i.format(s)})},this.init(t)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=n.interpolation.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Yr(n)}format(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=n.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(a=>a.indexOf(")")>-1)){const a=s.findIndex(l=>l.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,a)].join(this.formatSeparator)}return s.reduce((a,l)=>{const{formatName:u,formatOptions:c}=L6(l);if(this.formats[u]){let d=a;try{const f=i&&i.formatParams&&i.formatParams[i.interpolationkey]||{},m=f.locale||f.lng||i.locale||i.lng||r;d=this.formats[u](a,m,{...c,...i,...f})}catch(f){this.logger.warn(f)}return d}else this.logger.warn(`there was no format function for ${u}`);return a},t)}}const $6=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class F6 extends uu{constructor(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=i,this.logger=Jt.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(r,i.backend,i)}queueLoad(t,n,r,i){const s={},o={},a={},l={};return t.forEach(u=>{let c=!0;n.forEach(d=>{const f=`${u}|${d}`;!r.reload&&this.store.hasResourceBundle(u,d)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?o[f]===void 0&&(o[f]=!0):(this.state[f]=1,c=!1,o[f]===void 0&&(o[f]=!0),s[f]===void 0&&(s[f]=!0),l[d]===void 0&&(l[d]=!0)))}),c||(a[u]=!0)}),(Object.keys(s).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(s),pending:Object.keys(o),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(l)}}loaded(t,n,r){const i=t.split("|"),s=i[0],o=i[1];n&&this.emit("failedLoading",s,o,n),!n&&r&&this.store.addResourceBundle(s,o,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const a={};this.queue.forEach(l=>{v6(l.loaded,[s],o),$6(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{a[u]||(a[u]={});const c=l.loaded[u];c.length&&c.forEach(d=>{a[u][d]===void 0&&(a[u][d]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",a),this.queue=this.queue.filter(l=>!l.done)}read(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,o=arguments.length>5?arguments[5]:void 0;if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:i,wait:s,callback:o});return}this.readingCalls++;const a=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){const d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&i{this.read.call(this,t,n,r,i+1,s*2,o)},s);return}o(u,c)},l=this.backend[r].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(c=>a(null,c)).catch(a):a(null,u)}catch(u){a(u)}return}return l(t,n,a)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();X(t)&&(t=this.languageUtils.toResolveHierarchy(t)),X(n)&&(n=[n]);const s=this.queueLoad(t,n,r,i);if(!s.toLoad.length)return s.pending.length||i(),null;s.toLoad.forEach(o=>{this.loadOne(o)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),i=r[0],s=r[1];this.read(i,s,"read",void 0,void 0,(o,a)=>{o&&this.logger.warn(`${n}loading namespace ${s} for language ${i} failed`,o),!o&&a&&this.logger.log(`${n}loaded namespace ${s} for language ${i}`,a),this.loaded(t,o,a)})}saveMissing(t,n,r,i,s){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${r}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend&&this.backend.create){const l={...o,isUpdate:s},u=this.backend.create.bind(this.backend);if(u.length<6)try{let c;u.length===5?c=u(t,n,r,i,l):c=u(t,n,r,i),c&&typeof c.then=="function"?c.then(d=>a(null,d)).catch(a):a(null,c)}catch(c){a(c)}else u(t,n,r,i,a,l)}!t||!t[0]||this.store.addResource(t[0],n,r,i)}}}const vy=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),X(e[1])&&(t.defaultValue=e[1]),X(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),wy=e=>(X(e.ns)&&(e.ns=[e.ns]),X(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),X(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),fa=()=>{},V6=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class go extends uu{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=wy(t),this.services={},this.logger=Jt,this.modules={external:[]},V6(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(r=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(X(n.ns)?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const i=vy();this.options={...i,...this.options,...wy(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...i.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);const s=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Jt.init(s(this.modules.logger),this.options):Jt.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:typeof Intl<"u"&&(c=A6);const d=new py(this.options);this.store=new hy(this.options.resources,this.options);const f=this.services;f.logger=Jt,f.resourceStore=this.store,f.languageUtils=d,f.pluralResolver=new R6(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=s(c),f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new D6(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new F6(s(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",function(m){for(var p=arguments.length,v=new Array(p>1?p-1:0),x=1;x1?p-1:0),x=1;x{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,r||(r=fa),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});const l=ps(),u=()=>{const c=(d,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(f),r(d,f)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fa;const i=X(t)?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(i&&i.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const s=[],o=a=>{if(!a||a==="cimode")return;this.services.languageUtils.toResolveHierarchy(a).forEach(u=>{u!=="cimode"&&s.indexOf(u)<0&&s.push(u)})};i?o(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>o(l)),this.options.preload&&this.options.preload.forEach(a=>o(a)),this.services.backendConnector.load(s,this.options.ns,a=>{!a&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(a)})}else r(null)}reloadResources(t,n,r){const i=ps();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=fa),this.services.backendConnector.reload(t,n,s=>{i.resolve(),r(s)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Qx.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const i=ps();this.emit("languageChanging",t);const s=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,u)=>{u?(s(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,i.resolve(function(){return r.t(...arguments)}),n&&n(l,function(){return r.t(...arguments)})},a=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=X(l)?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||s(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,c=>{o(c,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(t),i}getFixedT(t,n,r){var i=this;const s=function(o,a){let l;if(typeof a!="object"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d`${l.keyPrefix}${f}${p}`):m=l.keyPrefix?`${l.keyPrefix}${f}${o}`:o,i.t(m,l)};return X(t)?s.lng=t:s.lngs=t,s.ns=n,s.keyPrefix=r,s}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const o=(a,l)=>{const u=this.services.backendConnector.state[`${a}|${l}`];return u===-1||u===0||u===2};if(n.precheck){const a=n.precheck(this,o);if(a!==void 0)return a}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(r,t)&&(!i||o(s,t)))}loadNamespaces(t,n){const r=ps();return this.options.ns?(X(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=ps();X(t)&&(t=[t]);const i=this.options.preload||[],s=t.filter(o=>i.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return s.length?(this.options.preload=i.concat(s),this.loadResources(o=>{r.resolve(),n&&n(o)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services&&this.services.languageUtils||new py(vy());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new go(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fa;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const i={...this.options,...t,isClone:!0},s=new go(i);return(t.debug!==void 0||t.prefix!==void 0)&&(s.logger=s.logger.clone(t)),["store","services","language"].forEach(a=>{s[a]=this[a]}),s.services={...this.services},s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},r&&(s.store=new hy(this.store.data,i),s.services.resourceStore=s.store),s.translator=new El(s.services,i),s.translator.on("*",function(a){for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c0){var a=i.maxAge-0;if(Number.isNaN(a))throw new Error("maxAge should be a Number");o+="; Max-Age=".concat(Math.floor(a))}if(i.domain){if(!xy.test(i.domain))throw new TypeError("option domain is invalid");o+="; Domain=".concat(i.domain)}if(i.path){if(!xy.test(i.path))throw new TypeError("option path is invalid");o+="; Path=".concat(i.path)}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+="; Expires=".concat(i.expires.toUTCString())}if(i.httpOnly&&(o+="; HttpOnly"),i.secure&&(o+="; Secure"),i.sameSite){var l=typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite;switch(l){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o},by={create:function(t,n,r,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(s.expires=new Date,s.expires.setTime(s.expires.getTime()+r*60*1e3)),i&&(s.domain=i),document.cookie=K6(t,encodeURIComponent(n),s)},read:function(t){for(var n="".concat(t,"="),r=document.cookie.split(";"),i=0;i-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));for(var i=r.substring(1),s=i.split("&"),o=0;o0){var l=s[o].substring(0,a);l===t.lookupQuerystring&&(n=s[o].substring(a+1))}}}return n}},gs=null,Sy=function(){if(gs!==null)return gs;try{gs=window!=="undefined"&&window.localStorage!==null;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{gs=!1}return gs},G6={name:"localStorage",lookup:function(t){var n;if(t.lookupLocalStorage&&Sy()){var r=window.localStorage.getItem(t.lookupLocalStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupLocalStorage&&Sy()&&window.localStorage.setItem(n.lookupLocalStorage,t)}},ys=null,Py=function(){if(ys!==null)return ys;try{ys=window!=="undefined"&&window.sessionStorage!==null;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{ys=!1}return ys},Y6={name:"sessionStorage",lookup:function(t){var n;if(t.lookupSessionStorage&&Py()){var r=window.sessionStorage.getItem(t.lookupSessionStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupSessionStorage&&Py()&&window.sessionStorage.setItem(n.lookupSessionStorage,t)}},J6={name:"navigator",lookup:function(t){var n=[];if(typeof navigator<"u"){if(navigator.languages)for(var r=0;r0?n:void 0}},Z6={name:"htmlTag",lookup:function(t){var n,r=t.htmlTag||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},e$={name:"path",lookup:function(t){var n;if(typeof window<"u"){var r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(r instanceof Array)if(typeof t.lookupFromPathIndex=="number"){if(typeof r[t.lookupFromPathIndex]!="string")return;n=r[t.lookupFromPathIndex].replace("/","")}else n=r[0].replace("/","")}return n}},t$={name:"subdomain",lookup:function(t){var n=typeof t.lookupFromSubdomainIndex=="number"?t.lookupFromSubdomainIndex+1:1,r=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}},Gx=!1;try{document.cookie,Gx=!0}catch{}var Yx=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];Gx||Yx.splice(1,1);function n$(){return{order:Yx,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:function(t){return t}}}var Jx=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};I6(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return U6(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n||{languageUtils:{}},this.options=q6(r,this.options||{},n$()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=function(s){return s.replace("-","_")}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Q6),this.addDetector(X6),this.addDetector(G6),this.addDetector(Y6),this.addDetector(J6),this.addDetector(Z6),this.addDetector(e$),this.addDetector(t$)}},{key:"addDetector",value:function(n){return this.detectors[n.name]=n,this}},{key:"detect",value:function(n){var r=this;n||(n=this.options.order);var i=[];return n.forEach(function(s){if(r.detectors[s]){var o=r.detectors[s].lookup(r.options);o&&typeof o=="string"&&(o=[o]),o&&(i=i.concat(o))}}),i=i.map(function(s){return r.options.convertDetectedLanguage(s)}),this.services.languageUtils.getBestMatchFromCodes?i:i.length>0?i[0]:null}},{key:"cacheUserLanguage",value:function(n,r){var i=this;r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||r.forEach(function(s){i.detectors[s]&&i.detectors[s].cacheUserLanguage(n,i.options)}))}}])}();Jx.type="languageDetector";function Hd(e){"@babel/helpers - typeof";return Hd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hd(e)}function Zx(){return typeof XMLHttpRequest=="function"||(typeof XMLHttpRequest>"u"?"undefined":Hd(XMLHttpRequest))==="object"}function r$(e){return!!e&&typeof e.then=="function"}function i$(e){return r$(e)?e:Promise.resolve(e)}function s$(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var qd={exports:{}},ha={exports:{}},ky;function o$(){return ky||(ky=1,function(e,t){var n=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof Es<"u"&&Es,r=function(){function s(){this.fetch=!1,this.DOMException=n.DOMException}return s.prototype=n,new s}();(function(s){(function(o){var a=typeof s<"u"&&s||typeof self<"u"&&self||typeof a<"u"&&a,l={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function u(E){return E&&DataView.prototype.isPrototypeOf(E)}if(l.arrayBuffer)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],d=ArrayBuffer.isView||function(E){return E&&c.indexOf(Object.prototype.toString.call(E))>-1};function f(E){if(typeof E!="string"&&(E=String(E)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(E)||E==="")throw new TypeError('Invalid character in header field name: "'+E+'"');return E.toLowerCase()}function m(E){return typeof E!="string"&&(E=String(E)),E}function p(E){var O={next:function(){var V=E.shift();return{done:V===void 0,value:V}}};return l.iterable&&(O[Symbol.iterator]=function(){return O}),O}function v(E){this.map={},E instanceof v?E.forEach(function(O,V){this.append(V,O)},this):Array.isArray(E)?E.forEach(function(O){this.append(O[0],O[1])},this):E&&Object.getOwnPropertyNames(E).forEach(function(O){this.append(O,E[O])},this)}v.prototype.append=function(E,O){E=f(E),O=m(O);var V=this.map[E];this.map[E]=V?V+", "+O:O},v.prototype.delete=function(E){delete this.map[f(E)]},v.prototype.get=function(E){return E=f(E),this.has(E)?this.map[E]:null},v.prototype.has=function(E){return this.map.hasOwnProperty(f(E))},v.prototype.set=function(E,O){this.map[f(E)]=m(O)},v.prototype.forEach=function(E,O){for(var V in this.map)this.map.hasOwnProperty(V)&&E.call(O,this.map[V],V,this)},v.prototype.keys=function(){var E=[];return this.forEach(function(O,V){E.push(V)}),p(E)},v.prototype.values=function(){var E=[];return this.forEach(function(O){E.push(O)}),p(E)},v.prototype.entries=function(){var E=[];return this.forEach(function(O,V){E.push([V,O])}),p(E)},l.iterable&&(v.prototype[Symbol.iterator]=v.prototype.entries);function x(E){if(E.bodyUsed)return Promise.reject(new TypeError("Already read"));E.bodyUsed=!0}function y(E){return new Promise(function(O,V){E.onload=function(){O(E.result)},E.onerror=function(){V(E.error)}})}function g(E){var O=new FileReader,V=y(O);return O.readAsArrayBuffer(E),V}function w(E){var O=new FileReader,V=y(O);return O.readAsText(E),V}function S(E){for(var O=new Uint8Array(E),V=new Array(O.length),N=0;N-1?O:E}function $(E,O){if(!(this instanceof $))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O=O||{};var V=O.body;if(E instanceof $){if(E.bodyUsed)throw new TypeError("Already read");this.url=E.url,this.credentials=E.credentials,O.headers||(this.headers=new v(E.headers)),this.method=E.method,this.mode=E.mode,this.signal=E.signal,!V&&E._bodyInit!=null&&(V=E._bodyInit,E.bodyUsed=!0)}else this.url=String(E);if(this.credentials=O.credentials||this.credentials||"same-origin",(O.headers||!this.headers)&&(this.headers=new v(O.headers)),this.method=j(O.method||this.method||"GET"),this.mode=O.mode||this.mode||null,this.signal=O.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&V)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(V),(this.method==="GET"||this.method==="HEAD")&&(O.cache==="no-store"||O.cache==="no-cache")){var N=/([?&])_=[^&]*/;if(N.test(this.url))this.url=this.url.replace(N,"$1_="+new Date().getTime());else{var L=/\?/;this.url+=(L.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}$.prototype.clone=function(){return new $(this,{body:this._bodyInit})};function _(E){var O=new FormData;return E.trim().split("&").forEach(function(V){if(V){var N=V.split("="),L=N.shift().replace(/\+/g," "),D=N.join("=").replace(/\+/g," ");O.append(decodeURIComponent(L),decodeURIComponent(D))}}),O}function W(E){var O=new v,V=E.replace(/\r?\n[\t ]+/g," ");return V.split("\r").map(function(N){return N.indexOf(` -`)===0?N.substr(1,N.length):N}).forEach(function(N){var L=N.split(":"),D=L.shift().trim();if(D){var A=L.join(":").trim();O.append(D,A)}}),O}T.call($.prototype);function ee(E,O){if(!(this instanceof ee))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O||(O={}),this.type="default",this.status=O.status===void 0?200:O.status,this.ok=this.status>=200&&this.status<300,this.statusText=O.statusText===void 0?"":""+O.statusText,this.headers=new v(O.headers),this.url=O.url||"",this._initBody(E)}T.call(ee.prototype),ee.prototype.clone=function(){return new ee(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new v(this.headers),url:this.url})},ee.error=function(){var E=new ee(null,{status:0,statusText:""});return E.type="error",E};var ve=[301,302,303,307,308];ee.redirect=function(E,O){if(ve.indexOf(O)===-1)throw new RangeError("Invalid status code");return new ee(null,{status:O,headers:{location:E}})},o.DOMException=a.DOMException;try{new o.DOMException}catch{o.DOMException=function(O,V){this.message=O,this.name=V;var N=Error(O);this.stack=N.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function te(E,O){return new Promise(function(V,N){var L=new $(E,O);if(L.signal&&L.signal.aborted)return N(new o.DOMException("Aborted","AbortError"));var D=new XMLHttpRequest;function A(){D.abort()}D.onload=function(){var Q={status:D.status,statusText:D.statusText,headers:W(D.getAllResponseHeaders()||"")};Q.url="responseURL"in D?D.responseURL:Q.headers.get("X-Request-URL");var be="response"in D?D.response:D.responseText;setTimeout(function(){V(new ee(be,Q))},0)},D.onerror=function(){setTimeout(function(){N(new TypeError("Network request failed"))},0)},D.ontimeout=function(){setTimeout(function(){N(new TypeError("Network request failed"))},0)},D.onabort=function(){setTimeout(function(){N(new o.DOMException("Aborted","AbortError"))},0)};function z(Q){try{return Q===""&&a.location.href?a.location.href:Q}catch{return Q}}D.open(L.method,z(L.url),!0),L.credentials==="include"?D.withCredentials=!0:L.credentials==="omit"&&(D.withCredentials=!1),"responseType"in D&&(l.blob?D.responseType="blob":l.arrayBuffer&&L.headers.get("Content-Type")&&L.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(D.responseType="arraybuffer")),O&&typeof O.headers=="object"&&!(O.headers instanceof v)?Object.getOwnPropertyNames(O.headers).forEach(function(Q){D.setRequestHeader(Q,m(O.headers[Q]))}):L.headers.forEach(function(Q,be){D.setRequestHeader(be,Q)}),L.signal&&(L.signal.addEventListener("abort",A),D.onreadystatechange=function(){D.readyState===4&&L.signal.removeEventListener("abort",A)}),D.send(typeof L._bodyInit>"u"?null:L._bodyInit)})}return te.polyfill=!0,a.fetch||(a.fetch=te,a.Headers=v,a.Request=$,a.Response=ee),o.Headers=v,o.Request=$,o.Response=ee,o.fetch=te,o})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=n.fetch?n:r;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t}(ha,ha.exports)),ha.exports}(function(e,t){var n=typeof fetch=="function"?fetch:void 0;if(typeof Es<"u"&&Es.fetch?n=Es.fetch:typeof window<"u"&&window.fetch&&(n=window.fetch),typeof s$<"u"&&typeof window>"u"){var r=n||o$();r.default&&(r=r.default),t.default=r,e.exports=t.default}})(qd,qd.exports);var eb=qd.exports;const tb=Wy(eb),Cy=zy({__proto__:null,default:tb},[eb]);function Ey(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ty(e){for(var t=1;t"u"&&typeof global<"u"&&typeof global.process<"u"&&global.process.versions&&global.process.versions.node&&(s["User-Agent"]="i18next-http-backend (node/".concat(global.process.version,"; ").concat(global.process.platform," ").concat(global.process.arch,")")),r&&(s["Content-Type"]="application/json");var o=typeof t.requestOptions=="function"?t.requestOptions(r):t.requestOptions,a=Ty({method:r?"POST":"GET",body:r?t.stringify(r):void 0,headers:s},My?{}:o),l=typeof t.alternateFetch=="function"&&t.alternateFetch.length>=1?t.alternateFetch:void 0;try{jy(n,a,i,l)}catch(u){if(!o||Object.keys(o).length===0||!u.message||u.message.indexOf("not implemented")<0)return i(u);try{Object.keys(o).forEach(function(c){delete a[c]}),jy(n,a,i,l),My=!0}catch(c){i(c)}}},d$=function(t,n,r,i){r&&Ur(r)==="object"&&(r=Kd("",r).slice(1)),t.queryStringParams&&(n=Kd(n,t.queryStringParams));try{var s;vo?s=new vo:s=new Tl("MSXML2.XMLHTTP.3.0"),s.open(r?"POST":"GET",n,1),t.crossDomain||s.setRequestHeader("X-Requested-With","XMLHttpRequest"),s.withCredentials=!!t.withCredentials,r&&s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.overrideMimeType&&s.overrideMimeType("application/json");var o=t.customHeaders;if(o=typeof o=="function"?o():o,o)for(var a in o)s.setRequestHeader(a,o[a]);s.onreadystatechange=function(){s.readyState>3&&i(s.status>=400?s.statusText:null,{status:s.status,data:s.responseText})},s.send(r)}catch(l){console&&console.log(l)}},f$=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i=i||function(){},nr&&n.indexOf("file:")!==0)return c$(t,n,r,i);if(Zx()||typeof ActiveXObject=="function")return d$(t,n,r,i);i(new Error("No fetch and no xhr implementation found!"))};function Ki(e){"@babel/helpers - typeof";return Ki=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ki(e)}function Ny(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ic(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};h$(this,e),this.services=t,this.options=n,this.allOptions=r,this.type="backend",this.init(t,n,r)}return p$(e,[{key:"init",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.services=n,this.options=ic(ic(ic({},y$()),this.options||{}),i),this.allOptions=s,this.services&&this.options.reloadInterval){var o=setInterval(function(){return r.reload()},this.options.reloadInterval);Ki(o)==="object"&&typeof o.unref=="function"&&o.unref()}}},{key:"readMulti",value:function(n,r,i){this._readAny(n,n,r,r,i)}},{key:"read",value:function(n,r,i){this._readAny([n],n,[r],r,i)}},{key:"_readAny",value:function(n,r,i,s,o){var a=this,l=this.options.loadPath;typeof this.options.loadPath=="function"&&(l=this.options.loadPath(n,i)),l=i$(l),l.then(function(u){if(!u)return o(null,{});var c=a.services.interpolator.interpolate(u,{lng:n.join("+"),ns:i.join("+")});a.loadUrl(c,o,r,s)})}},{key:"loadUrl",value:function(n,r,i,s){var o=this,a=typeof i=="string"?[i]:i,l=typeof s=="string"?[s]:s,u=this.options.parseLoadPayload(a,l);this.options.request(this.options,n,u,function(c,d){if(d&&(d.status>=500&&d.status<600||!d.status))return r("failed loading "+n+"; status code: "+d.status,!0);if(d&&d.status>=400&&d.status<500)return r("failed loading "+n+"; status code: "+d.status,!1);if(!d&&c&&c.message){var f=c.message.toLowerCase(),m=["failed","fetch","network","load"].find(function(x){return f.indexOf(x)>-1});if(m)return r("failed loading "+n+": "+c.message,!0)}if(c)return r(c,!1);var p,v;try{typeof d.data=="string"?p=o.options.parse(d.data,i,s):p=d.data}catch{v="failed parsing "+n+" to json"}if(v)return r(v,!1);r(null,p)})}},{key:"create",value:function(n,r,i,s,o){var a=this;if(this.options.addPath){typeof n=="string"&&(n=[n]);var l=this.options.parsePayload(r,i,s),u=0,c=[],d=[];n.forEach(function(f){var m=a.options.addPath;typeof a.options.addPath=="function"&&(m=a.options.addPath(f,r));var p=a.services.interpolator.interpolate(m,{lng:f,ns:r});a.options.request(a.options,p,l,function(v,x){u+=1,c.push(v),d.push(x),u===n.length&&typeof o=="function"&&o(c,d)})})}}},{key:"reload",value:function(){var n=this,r=this.services,i=r.backendConnector,s=r.languageUtils,o=r.logger,a=i.language;if(!(a&&a.toLowerCase()==="cimode")){var l=[],u=function(d){var f=s.toResolveHierarchy(d);f.forEach(function(m){l.indexOf(m)<0&&l.push(m)})};u(a),this.allOptions.preload&&this.allOptions.preload.forEach(function(c){return u(c)}),l.forEach(function(c){n.allOptions.ns.forEach(function(d){i.read(c,d,"read",null,null,function(f,m){f&&o.warn("loading namespace ".concat(d," for language ").concat(c," failed"),f),!f&&m&&o.log("loaded namespace ".concat(d," for language ").concat(c),m),i.loaded("".concat(c,"|").concat(d),f,m)})})})}}}])}();ib.type="backend";qe.use(ib).use(Jx).use(mE).init({debug:!1,fallbackLng:"en",ns:["common"],defaultNS:"common",supportedLngs:["en","zh","fr","ja","hi","de","ko","zh-TW","it","pt","tr","ru"],interpolation:{escapeValue:!1},backend:{loadPath:"/locales/{{lng}}/{{ns}}.json"},detection:{order:["cookie","localStorage","navigator","htmlTag","path","subdomain"],caches:["cookie","localStorage"],lookupCookie:"i18next",lookupLocalStorage:"i18nextLng"}});oc.createRoot(document.getElementById("root")).render(h.jsx(sc.StrictMode,{children:h.jsx(sc.Suspense,{fallback:"loading...",children:h.jsx(p6,{})})})); + M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z`})})})}function p$(){return h.jsxs("div",{className:"text-white w-full mt-auto flex flex-col items-center justify-between px-5 pt-16 mb-10 md:px-10 mx-auto sm:flex-row",children:[h.jsx(Jf,{to:"/",className:"text-xl font-black leading-none select-none logo",children:"VMAIL.DEV"})," ",h.jsxs("p",{className:"mt-4 text-sm text-gray-400 sm:ml-4 sm:pl-4 sm:border-l sm:border-gray-200 sm:mt-0",children:["© 2024-2026 Products of"," ",h.jsx("a",{className:"font-semibold underline hover:text-gray-600",href:"https://www.oiov.dev",target:"_blank",rel:"noopener noreferrer",children:"oiov"}),"."]}),h.jsxs("div",{className:"inline-flex justify-center mt-4 space-x-5 sm:ml-auto sm:mt-0 sm:justify-start",children:[h.jsx("a",{href:"https://like.do",target:"_blank",rel:"noopener noreferrer",title:"LikeDo",className:"text-gray-400 hover:text-gray-500 scale-[1.2]",children:h.jsx("img",{src:"/likedo.svg",alt:"LikeDo",className:"w-6 h-6"})}),h.jsx("a",{href:"mailto:hi@oiov.dev",title:"Email",className:"text-gray-400 hover:text-gray-500",children:h.jsx(sh,{className:"w-6 h-6"})}),h.jsx("a",{href:"https://twitter.com/yesmoree",target:"_blank",rel:"noopener noreferrer",title:"Twitter",className:"text-gray-400 hover:text-gray-500",children:h.jsx(h$,{})}),h.jsx("a",{href:"https://github.com/oiov/vmail",target:"_blank",rel:"noopener noreferrer",title:"Github",className:"text-gray-400 hover:text-gray-500",children:h.jsx(m$,{})})]})]})}function g$(){return h.jsxs("div",{className:"mx-auto min-h-screen flex flex-col bg-[#1f2023]",children:[h.jsx(f$,{}),h.jsx(IC,{}),h.jsx(p$,{}),h.jsx(d3,{position:"bottom-right",toastOptions:{style:{background:"#333",color:"#fff"}}})]})}const y$=new JS;function v$(){const[e,t]=b.useState(null);return b.useEffect(()=>{ke.get("/config").then(n=>{t(n.data)})},[]),e?h.jsx(ww.Provider,{value:e,children:h.jsx(rP,{client:y$,children:h.jsx(KC,{children:h.jsx(_C,{children:h.jsxs(Da,{element:h.jsx(g$,{}),children:[h.jsx(Da,{path:"/",element:h.jsx(s$,{})}),h.jsx(Da,{path:"/api-docs",element:h.jsx(o$,{})})]})})})})}):h.jsx("div",{className:"bg-[#1f2023] text-white w-screen h-screen flex items-center justify-center",children:"Loading..."})}const X=e=>typeof e=="string",ps=()=>{let e,t;const n=new Promise((r,i)=>{e=r,t=i});return n.resolve=e,n.reject=t,n},dy=e=>e==null?"":""+e,w$=(e,t,n)=>{e.forEach(r=>{t[r]&&(n[r]=t[r])})},x$=/###/g,fy=e=>e&&e.indexOf("###")>-1?e.replace(x$,"."):e,hy=e=>!e||X(e),zs=(e,t,n)=>{const r=X(t)?t.split("."):t;let i=0;for(;i{const{obj:r,k:i}=zs(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let s=t[t.length-1],o=t.slice(0,t.length-1),a=zs(e,o,Object);for(;a.obj===void 0&&o.length;)s=`${o[o.length-1]}.${s}`,o=o.slice(0,o.length-1),a=zs(e,o,Object),a&&a.obj&&typeof a.obj[`${a.k}.${s}`]<"u"&&(a.obj=void 0);a.obj[`${a.k}.${s}`]=n},b$=(e,t,n,r)=>{const{obj:i,k:s}=zs(e,t,Object);i[s]=i[s]||[],i[s].push(n)},Cl=(e,t)=>{const{obj:n,k:r}=zs(e,t);if(n)return n[r]},S$=(e,t,n)=>{const r=Cl(e,n);return r!==void 0?r:Cl(t,n)},Yx=(e,t,n)=>{for(const r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?X(e[r])||e[r]instanceof String||X(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Yx(e[r],t[r],n):e[r]=t[r]);return e},Gr=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var P$={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const k$=e=>X(e)?e.replace(/[&<>"'\/]/g,t=>P$[t]):e;class C${constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const r=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,r),this.regExpQueue.push(t),r}}const E$=[" ",",","?","!",";"],T$=new C$(20),j$=(e,t,n)=>{t=t||"",n=n||"";const r=E$.filter(o=>t.indexOf(o)<0&&n.indexOf(o)<0);if(r.length===0)return!0;const i=T$.getRegExp(`(${r.map(o=>o==="?"?"\\?":o).join("|")})`);let s=!i.test(e);if(!s){const o=e.indexOf(n);o>0&&!i.test(e.substring(0,o))&&(s=!0)}return s},Hd=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const r=t.split(n);let i=e;for(let s=0;s-1&&le&&e.replace("_","-"),N$={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class Tl{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,n)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||"i18next:",this.logger=t||N$,this.options=n,this.debug=n.debug}log(){for(var t=arguments.length,n=new Array(t),r=0;r{this.observers[r]||(this.observers[r]=new Map);const i=this.observers[r].get(n)||0;this.observers[r].set(n,i+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i{let[a,l]=o;for(let u=0;u{let[a,l]=o;for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,o=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;t.indexOf(".")>-1?a=t.split("."):(a=[t,n],r&&(Array.isArray(r)?a.push(...r):X(r)&&s?a.push(...r.split(s)):a.push(r)));const l=Cl(this.data,a);return!l&&!n&&!r&&t.indexOf(".")>-1&&(t=a[0],n=a[1],r=a.slice(2).join(".")),l||!o||!X(r)?l:Hd(this.data&&this.data[t]&&this.data[t][n],r,s)}addResource(t,n,r,i){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const o=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator;let a=[t,n];r&&(a=a.concat(o?r.split(o):r)),t.indexOf(".")>-1&&(a=t.split("."),i=n,n=a[1]),this.addNamespaces(n),my(this.data,a,i),s.silent||this.emit("added",t,n,r,i)}addResources(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const s in r)(X(r[s])||Array.isArray(r[s]))&&this.addResource(t,n,s,r[s],{silent:!0});i.silent||this.emit("added",t,n,r)}addResourceBundle(t,n,r,i,s){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},a=[t,n];t.indexOf(".")>-1&&(a=t.split("."),i=r,r=n,n=a[1]),this.addNamespaces(n);let l=Cl(this.data,a)||{};o.skipCopy||(r=JSON.parse(JSON.stringify(r))),i?Yx(l,r,s):l={...l,...r},my(this.data,a,l),o.silent||this.emit("added",t,n,r)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,n)}:this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(i=>n[i]&&Object.keys(n[i]).length>0)}toJSON(){return this.data}}var Jx={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(s=>{this.processors[s]&&(t=this.processors[s].process(t,n,r,i))}),t}};const gy={};class jl extends cu{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),w$(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Jt.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const r=this.resolve(t,n);return r&&r.res!==void 0}extractFromKey(t,n){let r=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;r===void 0&&(r=":");const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let s=n.ns||this.options.defaultNS||[];const o=r&&t.indexOf(r)>-1,a=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!j$(t,r,i);if(o&&!a){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:X(s)?[s]:s};const u=t.split(r);(r!==i||r===i&&this.options.ns.indexOf(u[0])>-1)&&(s=u.shift()),t=u.join(i)}return{key:t,namespaces:X(s)?[s]:s}}translate(t,n,r){if(typeof n!="object"&&this.options.overloadTranslationOptionHandler&&(n=this.options.overloadTranslationOptionHandler(arguments)),typeof n=="object"&&(n={...n}),n||(n={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const i=n.returnDetails!==void 0?n.returnDetails:this.options.returnDetails,s=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,{key:o,namespaces:a}=this.extractFromKey(t[t.length-1],n),l=a[a.length-1],u=n.lng||this.language,c=n.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(c){const S=n.nsSeparator||this.options.nsSeparator;return i?{res:`${l}${S}${o}`,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:`${l}${S}${o}`}return i?{res:o,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(n)}:o}const d=this.resolve(t,n);let f=d&&d.res;const m=d&&d.usedKey||o,p=d&&d.exactUsedKey||o,v=Object.prototype.toString.apply(f),x=["[object Number]","[object Function]","[object RegExp]"],y=n.joinArrays!==void 0?n.joinArrays:this.options.joinArrays,g=!this.i18nFormat||this.i18nFormat.handleAsObject,w=!X(f)&&typeof f!="boolean"&&typeof f!="number";if(g&&f&&w&&x.indexOf(v)<0&&!(X(y)&&Array.isArray(f))){if(!n.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const S=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,f,{...n,ns:a}):`key '${o} (${this.language})' returned an object instead of string.`;return i?(d.res=S,d.usedParams=this.getUsedParamsDetails(n),d):S}if(s){const S=Array.isArray(f),P=S?[]:{},T=S?p:m;for(const C in f)if(Object.prototype.hasOwnProperty.call(f,C)){const j=`${T}${s}${C}`;P[C]=this.translate(j,{...n,joinArrays:!1,ns:a}),P[C]===j&&(P[C]=f[C])}f=P}}else if(g&&X(y)&&Array.isArray(f))f=f.join(y),f&&(f=this.extendTranslation(f,t,n,r));else{let S=!1,P=!1;const T=n.count!==void 0&&!X(n.count),C=jl.hasDefaultValue(n),j=T?this.pluralResolver.getSuffix(u,n.count,n):"",$=n.ordinal&&T?this.pluralResolver.getSuffix(u,n.count,{ordinal:!1}):"",_=T&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),W=_&&n[`defaultValue${this.options.pluralSeparator}zero`]||n[`defaultValue${j}`]||n[`defaultValue${$}`]||n.defaultValue;!this.isValidLookup(f)&&C&&(S=!0,f=W),this.isValidLookup(f)||(P=!0,f=o);const ve=(n.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&P?void 0:f,te=C&&W!==f&&this.options.updateMissing;if(P||S||te){if(this.logger.log(te?"updateKey":"missingKey",u,l,o,te?W:f),s){const M=this.resolve(o,{...n,keySeparator:!1});M&&M.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let E=[];const O=this.languageUtils.getFallbackCodes(this.options.fallbackLng,n.lng||this.language);if(this.options.saveMissingTo==="fallback"&&O&&O[0])for(let M=0;M{const A=C&&D!==f?D:ve;this.options.missingKeyHandler?this.options.missingKeyHandler(M,l,L,A,te,n):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(M,l,L,A,te,n),this.emit("missingKey",M,l,L,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&T?E.forEach(M=>{const L=this.pluralResolver.getSuffixes(M,n);_&&n[`defaultValue${this.options.pluralSeparator}zero`]&&L.indexOf(`${this.options.pluralSeparator}zero`)<0&&L.push(`${this.options.pluralSeparator}zero`),L.forEach(D=>{I([M],o+D,n[`defaultValue${D}`]||W)})}):I(E,o,W))}f=this.extendTranslation(f,t,n,d,r),P&&f===o&&this.options.appendNamespaceToMissingKey&&(f=`${l}:${o}`),(P||S)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${o}`:o,S?f:void 0):f=this.options.parseMissingKeyHandler(f))}return i?(d.res=f,d.usedParams=this.getUsedParamsDetails(n),d):f}extendTranslation(t,n,r,i,s){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...r},r.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!r.skipInterpolation){r.interpolation&&this.interpolator.init({...r,interpolation:{...this.options.interpolation,...r.interpolation}});const u=X(t)&&(r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(u){const f=t.match(this.interpolator.nestingRegexp);c=f&&f.length}let d=r.replace&&!X(r.replace)?r.replace:r;if(this.options.interpolation.defaultVariables&&(d={...this.options.interpolation.defaultVariables,...d}),t=this.interpolator.interpolate(t,d,r.lng||this.language||i.usedLng,r),u){const f=t.match(this.interpolator.nestingRegexp),m=f&&f.length;c1&&arguments[1]!==void 0?arguments[1]:{},r,i,s,o,a;return X(t)&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(r))return;const u=this.extractFromKey(l,n),c=u.key;i=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const f=n.count!==void 0&&!X(n.count),m=f&&!n.ordinal&&n.count===0&&this.pluralResolver.shouldUseIntlApi(),p=n.context!==void 0&&(X(n.context)||typeof n.context=="number")&&n.context!=="",v=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);d.forEach(x=>{this.isValidLookup(r)||(a=x,!gy[`${v[0]}-${x}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(a)&&(gy[`${v[0]}-${x}`]=!0,this.logger.warn(`key "${i}" for languages "${v.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),v.forEach(y=>{if(this.isValidLookup(r))return;o=y;const g=[c];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(g,c,y,x,n);else{let S;f&&(S=this.pluralResolver.getSuffix(y,n.count,n));const P=`${this.options.pluralSeparator}zero`,T=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(g.push(c+S),n.ordinal&&S.indexOf(T)===0&&g.push(c+S.replace(T,this.options.pluralSeparator)),m&&g.push(c+P)),p){const C=`${c}${this.options.contextSeparator}${n.context}`;g.push(C),f&&(g.push(C+S),n.ordinal&&S.indexOf(T)===0&&g.push(C+S.replace(T,this.options.pluralSeparator)),m&&g.push(C+P))}}let w;for(;w=g.pop();)this.isValidLookup(r)||(s=w,r=this.getResource(y,x,w,n))}))})}),{res:r,usedKey:i,exactUsedKey:s,usedLng:o,usedNS:a}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,n,r,i):this.resourceStore.getResource(t,n,r,i)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],r=t.replace&&!X(t.replace);let i=r?t.replace:t;if(r&&typeof t.count<"u"&&(i.count=t.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!r){i={...i};for(const s of n)delete i[s]}return i}static hasDefaultValue(t){const n="defaultValue";for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&n===r.substring(0,n.length)&&t[r]!==void 0)return!0;return!1}}const rc=e=>e.charAt(0).toUpperCase()+e.slice(1);class yy{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Jt.create("languageUtils")}getScriptPartFromCode(t){if(t=El(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=El(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(X(t)&&t.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let i=Intl.getCanonicalLocales(t)[0];if(i&&this.options.lowerCaseLng&&(i=i.toLowerCase()),i)return i}catch{}const n=["hans","hant","latn","cyrl","cans","mong","arab"];let r=t.split("-");return this.options.lowerCaseLng?r=r.map(i=>i.toLowerCase()):r.length===2?(r[0]=r[0].toLowerCase(),r[1]=r[1].toUpperCase(),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=rc(r[1].toLowerCase()))):r.length===3&&(r[0]=r[0].toLowerCase(),r[1].length===2&&(r[1]=r[1].toUpperCase()),r[0]!=="sgn"&&r[2].length===2&&(r[2]=r[2].toUpperCase()),n.indexOf(r[1].toLowerCase())>-1&&(r[1]=rc(r[1].toLowerCase())),n.indexOf(r[2].toLowerCase())>-1&&(r[2]=rc(r[2].toLowerCase()))),r.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(r=>{if(n)return;const i=this.formatLanguageCode(r);(!this.options.supportedLngs||this.isSupportedCode(i))&&(n=i)}),!n&&this.options.supportedLngs&&t.forEach(r=>{if(n)return;const i=this.getLanguagePartFromCode(r);if(this.isSupportedCode(i))return n=i;n=this.options.supportedLngs.find(s=>{if(s===i)return s;if(!(s.indexOf("-")<0&&i.indexOf("-")<0)&&(s.indexOf("-")>0&&i.indexOf("-")<0&&s.substring(0,s.indexOf("-"))===i||s.indexOf(i)===0&&i.length>1))return s})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),X(t)&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let r=t[n];return r||(r=t[this.getScriptPartFromCode(n)]),r||(r=t[this.formatLanguageCode(n)]),r||(r=t[this.getLanguagePartFromCode(n)]),r||(r=t.default),r||[]}toResolveHierarchy(t,n){const r=this.getFallbackCodes(n||this.options.fallbackLng||[],t),i=[],s=o=>{o&&(this.isSupportedCode(o)?i.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return X(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(t))):X(t)&&s(this.formatLanguageCode(t)),r.forEach(o=>{i.indexOf(o)<0&&s(this.formatLanguageCode(o))}),i}}let M$=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],O$={1:e=>+(e>1),2:e=>+(e!=1),3:e=>0,4:e=>e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,5:e=>e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5,6:e=>e==1?0:e>=2&&e<=4?1:2,7:e=>e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,8:e=>e==1?0:e==2?1:e!=8&&e!=11?2:3,9:e=>+(e>=2),10:e=>e==1?0:e==2?1:e<7?2:e<11?3:4,11:e=>e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3,12:e=>+(e%10!=1||e%100==11),13:e=>+(e!==0),14:e=>e==1?0:e==2?1:e==3?2:3,15:e=>e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2,16:e=>e%10==1&&e%100!=11?0:e!==0?1:2,17:e=>e==1||e%10==1&&e%100!=11?0:1,18:e=>e==0?0:e==1?1:2,19:e=>e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3,20:e=>e==1?0:e==0||e%100>0&&e%100<20?1:2,21:e=>e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0,22:e=>e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3};const R$=["v1","v2","v3"],D$=["v4"],vy={zero:0,one:1,two:2,few:3,many:4,other:5},L$=()=>{const e={};return M$.forEach(t=>{t.lngs.forEach(n=>{e[n]={numbers:t.nr,plurals:O$[t.fc]}})}),e};class A${constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=n,this.logger=Jt.create("pluralResolver"),(!this.options.compatibilityJSON||D$.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=L$(),this.pluralRulesCache={}}addRule(t,n){this.rules[t]=n}clearCache(){this.pluralRulesCache={}}getRule(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const r=El(t==="dev"?"en":t),i=n.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:r,type:i});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let o;try{o=new Intl.PluralRules(r,{type:i})}catch{if(!t.match(/-|_/))return;const l=this.languageUtils.getLanguagePartFromCode(t);o=this.getRule(l,n)}return this.pluralRulesCache[s]=o,o}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return this.shouldUseIntlApi()?r&&r.resolvedOptions().pluralCategories.length>1:r&&r.numbers.length>1}getPluralFormsOfKey(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,r).map(i=>`${n}${i}`)}getSuffixes(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const r=this.getRule(t,n);return r?this.shouldUseIntlApi()?r.resolvedOptions().pluralCategories.sort((i,s)=>vy[i]-vy[s]).map(i=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i}`):r.numbers.map(i=>this.getSuffix(t,i,n)):[]}getSuffix(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=this.getRule(t,r);return i?this.shouldUseIntlApi()?`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${i.select(n)}`:this.getSuffixRetroCompatible(i,n):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,n){const r=t.noAbs?t.plurals(n):t.plurals(Math.abs(n));let i=t.numbers[r];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(i===2?i="plural":i===1&&(i=""));const s=()=>this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString();return this.options.compatibilityJSON==="v1"?i===1?"":typeof i=="number"?`_plural_${i.toString()}`:s():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?s():this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString()}shouldUseIntlApi(){return!R$.includes(this.options.compatibilityJSON)}}const wy=function(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=S$(e,t,n);return!s&&i&&X(n)&&(s=Hd(e,n,r),s===void 0&&(s=Hd(t,n,r))),s},ic=e=>e.replace(/\$/g,"$$$$");class $${constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Jt.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(n=>n),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:r,useRawValueToEscape:i,prefix:s,prefixEscaped:o,suffix:a,suffixEscaped:l,formatSeparator:u,unescapeSuffix:c,unescapePrefix:d,nestingPrefix:f,nestingPrefixEscaped:m,nestingSuffix:p,nestingSuffixEscaped:v,nestingOptionsSeparator:x,maxReplaces:y,alwaysFormat:g}=t.interpolation;this.escape=n!==void 0?n:k$,this.escapeValue=r!==void 0?r:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=s?Gr(s):o||"{{",this.suffix=a?Gr(a):l||"}}",this.formatSeparator=u||",",this.unescapePrefix=c?"":d||"-",this.unescapeSuffix=this.unescapePrefix?"":c||"",this.nestingPrefix=f?Gr(f):m||Gr("$t("),this.nestingSuffix=p?Gr(p):v||Gr(")"),this.nestingOptionsSeparator=x||",",this.maxReplaces=y||1e3,this.alwaysFormat=g!==void 0?g:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,r)=>n&&n.source===r?(n.lastIndex=0,n):new RegExp(r,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,n,r,i){let s,o,a;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=m=>{if(m.indexOf(this.formatSeparator)<0){const y=wy(n,l,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,r,{...i,...n,interpolationkey:m}):y}const p=m.split(this.formatSeparator),v=p.shift().trim(),x=p.join(this.formatSeparator).trim();return this.format(wy(n,l,v,this.options.keySeparator,this.options.ignoreJSONStructure),x,r,{...i,...n,interpolationkey:v})};this.resetRegExp();const c=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,d=i&&i.interpolation&&i.interpolation.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:m=>ic(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?ic(this.escape(m)):ic(m)}].forEach(m=>{for(a=0;s=m.regex.exec(t);){const p=s[1].trim();if(o=u(p),o===void 0)if(typeof c=="function"){const x=c(t,s,i);o=X(x)?x:""}else if(i&&Object.prototype.hasOwnProperty.call(i,p))o="";else if(d){o=s[0];continue}else this.logger.warn(`missed to pass in variable ${p} for interpolating ${t}`),o="";else!X(o)&&!this.useRawValueToEscape&&(o=dy(o));const v=m.safeValue(o);if(t=t.replace(s[0],v),d?(m.regex.lastIndex+=o.length,m.regex.lastIndex-=s[0].length):m.regex.lastIndex=0,a++,a>=this.maxReplaces)break}}),t}nest(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,s,o;const a=(l,u)=>{const c=this.nestingOptionsSeparator;if(l.indexOf(c)<0)return l;const d=l.split(new RegExp(`${c}[ ]*{`));let f=`{${d[1]}`;l=d[0],f=this.interpolate(f,o);const m=f.match(/'/g),p=f.match(/"/g);(m&&m.length%2===0&&!p||p.length%2!==0)&&(f=f.replace(/'/g,'"'));try{o=JSON.parse(f),u&&(o={...u,...o})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,v),`${l}${c}${f}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,l};for(;i=this.nestingRegexp.exec(t);){let l=[];o={...r},o=o.replace&&!X(o.replace)?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=!1;if(i[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(i[1])){const c=i[1].split(this.formatSeparator).map(d=>d.trim());i[1]=c.shift(),l=c,u=!0}if(s=n(a.call(this,i[1].trim(),o),o),s&&i[0]===t&&!X(s))return s;X(s)||(s=dy(s)),s||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${t}`),s=""),u&&(s=l.reduce((c,d)=>this.format(c,d,r.lng,{...r,interpolationkey:i[1].trim()}),s.trim())),t=t.replace(i[0],s),this.regexp.lastIndex=0}return t}}const F$=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const r=e.split("(");t=r[0].toLowerCase().trim();const i=r[1].substring(0,r[1].length-1);t==="currency"&&i.indexOf(":")<0?n.currency||(n.currency=i.trim()):t==="relativetime"&&i.indexOf(":")<0?n.range||(n.range=i.trim()):i.split(";").forEach(o=>{if(o){const[a,...l]=o.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,""),c=a.trim();n[c]||(n[c]=u),u==="false"&&(n[c]=!1),u==="true"&&(n[c]=!0),isNaN(u)||(n[c]=parseInt(u,10))}})}return{formatName:t,formatOptions:n}},Yr=e=>{const t={};return(n,r,i)=>{let s=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(s={...s,[i.interpolationkey]:void 0});const o=r+JSON.stringify(s);let a=t[o];return a||(a=e(El(r),i),t[o]=a),a(n)}};class I${constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Jt.create("formatter"),this.options=t,this.formats={number:Yr((n,r)=>{const i=new Intl.NumberFormat(n,{...r});return s=>i.format(s)}),currency:Yr((n,r)=>{const i=new Intl.NumberFormat(n,{...r,style:"currency"});return s=>i.format(s)}),datetime:Yr((n,r)=>{const i=new Intl.DateTimeFormat(n,{...r});return s=>i.format(s)}),relativetime:Yr((n,r)=>{const i=new Intl.RelativeTimeFormat(n,{...r});return s=>i.format(s,r.range||"day")}),list:Yr((n,r)=>{const i=new Intl.ListFormat(n,{...r});return s=>i.format(s)})},this.init(t)}init(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=n.interpolation.formatSeparator||","}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Yr(n)}format(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const s=n.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(a=>a.indexOf(")")>-1)){const a=s.findIndex(l=>l.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,a)].join(this.formatSeparator)}return s.reduce((a,l)=>{const{formatName:u,formatOptions:c}=F$(l);if(this.formats[u]){let d=a;try{const f=i&&i.formatParams&&i.formatParams[i.interpolationkey]||{},m=f.locale||f.lng||i.locale||i.lng||r;d=this.formats[u](a,m,{...c,...i,...f})}catch(f){this.logger.warn(f)}return d}else this.logger.warn(`there was no format function for ${u}`);return a},t)}}const V$=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class _$ extends cu{constructor(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=n,this.services=r,this.languageUtils=r.languageUtils,this.options=i,this.logger=Jt.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(r,i.backend,i)}queueLoad(t,n,r,i){const s={},o={},a={},l={};return t.forEach(u=>{let c=!0;n.forEach(d=>{const f=`${u}|${d}`;!r.reload&&this.store.hasResourceBundle(u,d)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?o[f]===void 0&&(o[f]=!0):(this.state[f]=1,c=!1,o[f]===void 0&&(o[f]=!0),s[f]===void 0&&(s[f]=!0),l[d]===void 0&&(l[d]=!0)))}),c||(a[u]=!0)}),(Object.keys(s).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(s),pending:Object.keys(o),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(l)}}loaded(t,n,r){const i=t.split("|"),s=i[0],o=i[1];n&&this.emit("failedLoading",s,o,n),!n&&r&&this.store.addResourceBundle(s,o,r,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&r&&(this.state[t]=0);const a={};this.queue.forEach(l=>{b$(l.loaded,[s],o),V$(l,t),n&&l.errors.push(n),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{a[u]||(a[u]={});const c=l.loaded[u];c.length&&c.forEach(d=>{a[u][d]===void 0&&(a[u][d]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",a),this.queue=this.queue.filter(l=>!l.done)}read(t,n,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,o=arguments.length>5?arguments[5]:void 0;if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:r,tried:i,wait:s,callback:o});return}this.readingCalls++;const a=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){const d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&i{this.read.call(this,t,n,r,i+1,s*2,o)},s);return}o(u,c)},l=this.backend[r].bind(this.backend);if(l.length===2){try{const u=l(t,n);u&&typeof u.then=="function"?u.then(c=>a(null,c)).catch(a):a(null,u)}catch(u){a(u)}return}return l(t,n,a)}prepareLoading(t,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();X(t)&&(t=this.languageUtils.toResolveHierarchy(t)),X(n)&&(n=[n]);const s=this.queueLoad(t,n,r,i);if(!s.toLoad.length)return s.pending.length||i(),null;s.toLoad.forEach(o=>{this.loadOne(o)})}load(t,n,r){this.prepareLoading(t,n,{},r)}reload(t,n,r){this.prepareLoading(t,n,{reload:!0},r)}loadOne(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const r=t.split("|"),i=r[0],s=r[1];this.read(i,s,"read",void 0,void 0,(o,a)=>{o&&this.logger.warn(`${n}loading namespace ${s} for language ${i} failed`,o),!o&&a&&this.logger.log(`${n}loaded namespace ${s} for language ${i}`,a),this.loaded(t,o,a)})}saveMissing(t,n,r,i,s){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${r}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(r==null||r==="")){if(this.backend&&this.backend.create){const l={...o,isUpdate:s},u=this.backend.create.bind(this.backend);if(u.length<6)try{let c;u.length===5?c=u(t,n,r,i,l):c=u(t,n,r,i),c&&typeof c.then=="function"?c.then(d=>a(null,d)).catch(a):a(null,c)}catch(c){a(c)}else u(t,n,r,i,a,l)}!t||!t[0]||this.store.addResource(t[0],n,r,i)}}}const xy=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),X(e[1])&&(t.defaultValue=e[1]),X(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(r=>{t[r]=n[r]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),by=e=>(X(e.ns)&&(e.ns=[e.ns]),X(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),X(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e),ma=()=>{},z$=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})};class go extends cu{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(super(),this.options=by(t),this.services={},this.logger=Jt,this.modules={external:[]},z$(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(){var t=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof n=="function"&&(r=n,n={}),!n.defaultNS&&n.defaultNS!==!1&&n.ns&&(X(n.ns)?n.defaultNS=n.ns:n.ns.indexOf("translation")<0&&(n.defaultNS=n.ns[0]));const i=xy();this.options={...i,...this.options,...by(n)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...i.interpolation,...this.options.interpolation}),n.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=n.keySeparator),n.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=n.nsSeparator);const s=c=>c?typeof c=="function"?new c:c:null;if(!this.options.isClone){this.modules.logger?Jt.init(s(this.modules.logger),this.options):Jt.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:typeof Intl<"u"&&(c=I$);const d=new yy(this.options);this.store=new py(this.options.resources,this.options);const f=this.services;f.logger=Jt,f.resourceStore=this.store,f.languageUtils=d,f.pluralResolver=new A$(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(f.formatter=s(c),f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new $$(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new _$(s(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on("*",function(m){for(var p=arguments.length,v=new Array(p>1?p-1:0),x=1;x1?p-1:0),x=1;x{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,r||(r=ma),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});const l=ps(),u=()=>{const c=(d,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(f),r(d,f)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ma;const i=X(t)?t:this.language;if(typeof t=="function"&&(r=t),!this.options.resources||this.options.partialBundledLanguages){if(i&&i.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return r();const s=[],o=a=>{if(!a||a==="cimode")return;this.services.languageUtils.toResolveHierarchy(a).forEach(u=>{u!=="cimode"&&s.indexOf(u)<0&&s.push(u)})};i?o(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>o(l)),this.options.preload&&this.options.preload.forEach(a=>o(a)),this.services.backendConnector.load(s,this.options.ns,a=>{!a&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),r(a)})}else r(null)}reloadResources(t,n,r){const i=ps();return typeof t=="function"&&(r=t,t=void 0),typeof n=="function"&&(r=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),r||(r=ma),this.services.backendConnector.reload(t,n,s=>{i.resolve(),r(s)}),i}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&Jx.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let n=0;n-1)&&this.store.hasLanguageSomeTranslations(r)){this.resolvedLanguage=r;break}}}changeLanguage(t,n){var r=this;this.isLanguageChangingTo=t;const i=ps();this.emit("languageChanging",t);const s=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,u)=>{u?(s(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,i.resolve(function(){return r.t(...arguments)}),n&&n(l,function(){return r.t(...arguments)})},a=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=X(l)?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||s(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,c=>{o(c,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(t),i}getFixedT(t,n,r){var i=this;const s=function(o,a){let l;if(typeof a!="object"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d`${l.keyPrefix}${f}${p}`):m=l.keyPrefix?`${l.keyPrefix}${f}${o}`:o,i.t(m,l)};return X(t)?s.lng=t:s.lngs=t,s.ns=n,s.keyPrefix=r,s}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const r=n.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(r.toLowerCase()==="cimode")return!0;const o=(a,l)=>{const u=this.services.backendConnector.state[`${a}|${l}`];return u===-1||u===0||u===2};if(n.precheck){const a=n.precheck(this,o);if(a!==void 0)return a}return!!(this.hasResourceBundle(r,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(r,t)&&(!i||o(s,t)))}loadNamespaces(t,n){const r=ps();return this.options.ns?(X(t)&&(t=[t]),t.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{r.resolve(),n&&n(i)}),r):(n&&n(),Promise.resolve())}loadLanguages(t,n){const r=ps();X(t)&&(t=[t]);const i=this.options.preload||[],s=t.filter(o=>i.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return s.length?(this.options.preload=i.concat(s),this.loadResources(o=>{r.resolve(),n&&n(o)}),r):(n&&n(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],r=this.services&&this.services.languageUtils||new yy(xy());return n.indexOf(r.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new go(t,n)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ma;const r=t.forkResourceStore;r&&delete t.forkResourceStore;const i={...this.options,...t,isClone:!0},s=new go(i);return(t.debug!==void 0||t.prefix!==void 0)&&(s.logger=s.logger.clone(t)),["store","services","language"].forEach(a=>{s[a]=this[a]}),s.services={...this.services},s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},r&&(s.store=new py(this.store.data,i),s.services.resourceStore=s.store),s.translator=new jl(s.services,i),s.translator.on("*",function(a){for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c0){var a=i.maxAge-0;if(Number.isNaN(a))throw new Error("maxAge should be a Number");o+="; Max-Age=".concat(Math.floor(a))}if(i.domain){if(!Sy.test(i.domain))throw new TypeError("option domain is invalid");o+="; Domain=".concat(i.domain)}if(i.path){if(!Sy.test(i.path))throw new TypeError("option path is invalid");o+="; Path=".concat(i.path)}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+="; Expires=".concat(i.expires.toUTCString())}if(i.httpOnly&&(o+="; HttpOnly"),i.secure&&(o+="; Secure"),i.sameSite){var l=typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite;switch(l){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o},Py={create:function(t,n,r,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};r&&(s.expires=new Date,s.expires.setTime(s.expires.getTime()+r*60*1e3)),i&&(s.domain=i),document.cookie=G$(t,encodeURIComponent(n),s)},read:function(t){for(var n="".concat(t,"="),r=document.cookie.split(";"),i=0;i-1&&(r=window.location.hash.substring(window.location.hash.indexOf("?")));for(var i=r.substring(1),s=i.split("&"),o=0;o0){var l=s[o].substring(0,a);l===t.lookupQuerystring&&(n=s[o].substring(a+1))}}}return n}},gs=null,ky=function(){if(gs!==null)return gs;try{gs=window!=="undefined"&&window.localStorage!==null;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{gs=!1}return gs},Z$={name:"localStorage",lookup:function(t){var n;if(t.lookupLocalStorage&&ky()){var r=window.localStorage.getItem(t.lookupLocalStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupLocalStorage&&ky()&&window.localStorage.setItem(n.lookupLocalStorage,t)}},ys=null,Cy=function(){if(ys!==null)return ys;try{ys=window!=="undefined"&&window.sessionStorage!==null;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{ys=!1}return ys},e6={name:"sessionStorage",lookup:function(t){var n;if(t.lookupSessionStorage&&Cy()){var r=window.sessionStorage.getItem(t.lookupSessionStorage);r&&(n=r)}return n},cacheUserLanguage:function(t,n){n.lookupSessionStorage&&Cy()&&window.sessionStorage.setItem(n.lookupSessionStorage,t)}},t6={name:"navigator",lookup:function(t){var n=[];if(typeof navigator<"u"){if(navigator.languages)for(var r=0;r0?n:void 0}},n6={name:"htmlTag",lookup:function(t){var n,r=t.htmlTag||(typeof document<"u"?document.documentElement:null);return r&&typeof r.getAttribute=="function"&&(n=r.getAttribute("lang")),n}},r6={name:"path",lookup:function(t){var n;if(typeof window<"u"){var r=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(r instanceof Array)if(typeof t.lookupFromPathIndex=="number"){if(typeof r[t.lookupFromPathIndex]!="string")return;n=r[t.lookupFromPathIndex].replace("/","")}else n=r[0].replace("/","")}return n}},i6={name:"subdomain",lookup:function(t){var n=typeof t.lookupFromSubdomainIndex=="number"?t.lookupFromSubdomainIndex+1:1,r=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}},eb=!1;try{document.cookie,eb=!0}catch{}var tb=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];eb||tb.splice(1,1);function s6(){return{order:tb,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:function(t){return t}}}var nb=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};W$(this,e),this.type="languageDetector",this.detectors={},this.init(t,n)}return q$(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=n||{languageUtils:{}},this.options=X$(r,this.options||{},s6()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=function(s){return s.replace("-","_")}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Y$),this.addDetector(J$),this.addDetector(Z$),this.addDetector(e6),this.addDetector(t6),this.addDetector(n6),this.addDetector(r6),this.addDetector(i6)}},{key:"addDetector",value:function(n){return this.detectors[n.name]=n,this}},{key:"detect",value:function(n){var r=this;n||(n=this.options.order);var i=[];return n.forEach(function(s){if(r.detectors[s]){var o=r.detectors[s].lookup(r.options);o&&typeof o=="string"&&(o=[o]),o&&(i=i.concat(o))}}),i=i.map(function(s){return r.options.convertDetectedLanguage(s)}),this.services.languageUtils.getBestMatchFromCodes?i:i.length>0?i[0]:null}},{key:"cacheUserLanguage",value:function(n,r){var i=this;r||(r=this.options.caches),r&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(n)>-1||r.forEach(function(s){i.detectors[s]&&i.detectors[s].cacheUserLanguage(n,i.options)}))}}])}();nb.type="languageDetector";function qd(e){"@babel/helpers - typeof";return qd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qd(e)}function rb(){return typeof XMLHttpRequest=="function"||(typeof XMLHttpRequest>"u"?"undefined":qd(XMLHttpRequest))==="object"}function o6(e){return!!e&&typeof e.then=="function"}function a6(e){return o6(e)?e:Promise.resolve(e)}function l6(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Kd={exports:{}},pa={exports:{}},Ey;function u6(){return Ey||(Ey=1,function(e,t){var n=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof Es<"u"&&Es,r=function(){function s(){this.fetch=!1,this.DOMException=n.DOMException}return s.prototype=n,new s}();(function(s){(function(o){var a=typeof s<"u"&&s||typeof self<"u"&&self||typeof a<"u"&&a,l={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function u(E){return E&&DataView.prototype.isPrototypeOf(E)}if(l.arrayBuffer)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],d=ArrayBuffer.isView||function(E){return E&&c.indexOf(Object.prototype.toString.call(E))>-1};function f(E){if(typeof E!="string"&&(E=String(E)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(E)||E==="")throw new TypeError('Invalid character in header field name: "'+E+'"');return E.toLowerCase()}function m(E){return typeof E!="string"&&(E=String(E)),E}function p(E){var O={next:function(){var I=E.shift();return{done:I===void 0,value:I}}};return l.iterable&&(O[Symbol.iterator]=function(){return O}),O}function v(E){this.map={},E instanceof v?E.forEach(function(O,I){this.append(I,O)},this):Array.isArray(E)?E.forEach(function(O){this.append(O[0],O[1])},this):E&&Object.getOwnPropertyNames(E).forEach(function(O){this.append(O,E[O])},this)}v.prototype.append=function(E,O){E=f(E),O=m(O);var I=this.map[E];this.map[E]=I?I+", "+O:O},v.prototype.delete=function(E){delete this.map[f(E)]},v.prototype.get=function(E){return E=f(E),this.has(E)?this.map[E]:null},v.prototype.has=function(E){return this.map.hasOwnProperty(f(E))},v.prototype.set=function(E,O){this.map[f(E)]=m(O)},v.prototype.forEach=function(E,O){for(var I in this.map)this.map.hasOwnProperty(I)&&E.call(O,this.map[I],I,this)},v.prototype.keys=function(){var E=[];return this.forEach(function(O,I){E.push(I)}),p(E)},v.prototype.values=function(){var E=[];return this.forEach(function(O){E.push(O)}),p(E)},v.prototype.entries=function(){var E=[];return this.forEach(function(O,I){E.push([I,O])}),p(E)},l.iterable&&(v.prototype[Symbol.iterator]=v.prototype.entries);function x(E){if(E.bodyUsed)return Promise.reject(new TypeError("Already read"));E.bodyUsed=!0}function y(E){return new Promise(function(O,I){E.onload=function(){O(E.result)},E.onerror=function(){I(E.error)}})}function g(E){var O=new FileReader,I=y(O);return O.readAsArrayBuffer(E),I}function w(E){var O=new FileReader,I=y(O);return O.readAsText(E),I}function S(E){for(var O=new Uint8Array(E),I=new Array(O.length),M=0;M-1?O:E}function $(E,O){if(!(this instanceof $))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O=O||{};var I=O.body;if(E instanceof $){if(E.bodyUsed)throw new TypeError("Already read");this.url=E.url,this.credentials=E.credentials,O.headers||(this.headers=new v(E.headers)),this.method=E.method,this.mode=E.mode,this.signal=E.signal,!I&&E._bodyInit!=null&&(I=E._bodyInit,E.bodyUsed=!0)}else this.url=String(E);if(this.credentials=O.credentials||this.credentials||"same-origin",(O.headers||!this.headers)&&(this.headers=new v(O.headers)),this.method=j(O.method||this.method||"GET"),this.mode=O.mode||this.mode||null,this.signal=O.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&I)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(I),(this.method==="GET"||this.method==="HEAD")&&(O.cache==="no-store"||O.cache==="no-cache")){var M=/([?&])_=[^&]*/;if(M.test(this.url))this.url=this.url.replace(M,"$1_="+new Date().getTime());else{var L=/\?/;this.url+=(L.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}$.prototype.clone=function(){return new $(this,{body:this._bodyInit})};function _(E){var O=new FormData;return E.trim().split("&").forEach(function(I){if(I){var M=I.split("="),L=M.shift().replace(/\+/g," "),D=M.join("=").replace(/\+/g," ");O.append(decodeURIComponent(L),decodeURIComponent(D))}}),O}function W(E){var O=new v,I=E.replace(/\r?\n[\t ]+/g," ");return I.split("\r").map(function(M){return M.indexOf(` +`)===0?M.substr(1,M.length):M}).forEach(function(M){var L=M.split(":"),D=L.shift().trim();if(D){var A=L.join(":").trim();O.append(D,A)}}),O}T.call($.prototype);function ee(E,O){if(!(this instanceof ee))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O||(O={}),this.type="default",this.status=O.status===void 0?200:O.status,this.ok=this.status>=200&&this.status<300,this.statusText=O.statusText===void 0?"":""+O.statusText,this.headers=new v(O.headers),this.url=O.url||"",this._initBody(E)}T.call(ee.prototype),ee.prototype.clone=function(){return new ee(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new v(this.headers),url:this.url})},ee.error=function(){var E=new ee(null,{status:0,statusText:""});return E.type="error",E};var ve=[301,302,303,307,308];ee.redirect=function(E,O){if(ve.indexOf(O)===-1)throw new RangeError("Invalid status code");return new ee(null,{status:O,headers:{location:E}})},o.DOMException=a.DOMException;try{new o.DOMException}catch{o.DOMException=function(O,I){this.message=O,this.name=I;var M=Error(O);this.stack=M.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function te(E,O){return new Promise(function(I,M){var L=new $(E,O);if(L.signal&&L.signal.aborted)return M(new o.DOMException("Aborted","AbortError"));var D=new XMLHttpRequest;function A(){D.abort()}D.onload=function(){var Q={status:D.status,statusText:D.statusText,headers:W(D.getAllResponseHeaders()||"")};Q.url="responseURL"in D?D.responseURL:Q.headers.get("X-Request-URL");var be="response"in D?D.response:D.responseText;setTimeout(function(){I(new ee(be,Q))},0)},D.onerror=function(){setTimeout(function(){M(new TypeError("Network request failed"))},0)},D.ontimeout=function(){setTimeout(function(){M(new TypeError("Network request failed"))},0)},D.onabort=function(){setTimeout(function(){M(new o.DOMException("Aborted","AbortError"))},0)};function z(Q){try{return Q===""&&a.location.href?a.location.href:Q}catch{return Q}}D.open(L.method,z(L.url),!0),L.credentials==="include"?D.withCredentials=!0:L.credentials==="omit"&&(D.withCredentials=!1),"responseType"in D&&(l.blob?D.responseType="blob":l.arrayBuffer&&L.headers.get("Content-Type")&&L.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(D.responseType="arraybuffer")),O&&typeof O.headers=="object"&&!(O.headers instanceof v)?Object.getOwnPropertyNames(O.headers).forEach(function(Q){D.setRequestHeader(Q,m(O.headers[Q]))}):L.headers.forEach(function(Q,be){D.setRequestHeader(be,Q)}),L.signal&&(L.signal.addEventListener("abort",A),D.onreadystatechange=function(){D.readyState===4&&L.signal.removeEventListener("abort",A)}),D.send(typeof L._bodyInit>"u"?null:L._bodyInit)})}return te.polyfill=!0,a.fetch||(a.fetch=te,a.Headers=v,a.Request=$,a.Response=ee),o.Headers=v,o.Request=$,o.Response=ee,o.fetch=te,o})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=n.fetch?n:r;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t}(pa,pa.exports)),pa.exports}(function(e,t){var n=typeof fetch=="function"?fetch:void 0;if(typeof Es<"u"&&Es.fetch?n=Es.fetch:typeof window<"u"&&window.fetch&&(n=window.fetch),typeof l6<"u"&&typeof window>"u"){var r=n||u6();r.default&&(r=r.default),t.default=r,e.exports=t.default}})(Kd,Kd.exports);var ib=Kd.exports;const sb=By(ib),Ty=Uy({__proto__:null,default:sb},[ib]);function jy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ny(e){for(var t=1;t"u"&&typeof global<"u"&&typeof global.process<"u"&&global.process.versions&&global.process.versions.node&&(s["User-Agent"]="i18next-http-backend (node/".concat(global.process.version,"; ").concat(global.process.platform," ").concat(global.process.arch,")")),r&&(s["Content-Type"]="application/json");var o=typeof t.requestOptions=="function"?t.requestOptions(r):t.requestOptions,a=Ny({method:r?"POST":"GET",body:r?t.stringify(r):void 0,headers:s},Oy?{}:o),l=typeof t.alternateFetch=="function"&&t.alternateFetch.length>=1?t.alternateFetch:void 0;try{My(n,a,i,l)}catch(u){if(!o||Object.keys(o).length===0||!u.message||u.message.indexOf("not implemented")<0)return i(u);try{Object.keys(o).forEach(function(c){delete a[c]}),My(n,a,i,l),Oy=!0}catch(c){i(c)}}},m6=function(t,n,r,i){r&&Ur(r)==="object"&&(r=Qd("",r).slice(1)),t.queryStringParams&&(n=Qd(n,t.queryStringParams));try{var s;vo?s=new vo:s=new Nl("MSXML2.XMLHTTP.3.0"),s.open(r?"POST":"GET",n,1),t.crossDomain||s.setRequestHeader("X-Requested-With","XMLHttpRequest"),s.withCredentials=!!t.withCredentials,r&&s.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),s.overrideMimeType&&s.overrideMimeType("application/json");var o=t.customHeaders;if(o=typeof o=="function"?o():o,o)for(var a in o)s.setRequestHeader(a,o[a]);s.onreadystatechange=function(){s.readyState>3&&i(s.status>=400?s.statusText:null,{status:s.status,data:s.responseText})},s.send(r)}catch(l){console&&console.log(l)}},p6=function(t,n,r,i){if(typeof r=="function"&&(i=r,r=void 0),i=i||function(){},rr&&n.indexOf("file:")!==0)return h6(t,n,r,i);if(rb()||typeof ActiveXObject=="function")return m6(t,n,r,i);i(new Error("No fetch and no xhr implementation found!"))};function Ki(e){"@babel/helpers - typeof";return Ki=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ki(e)}function Ry(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function sc(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};g6(this,e),this.services=t,this.options=n,this.allOptions=r,this.type="backend",this.init(t,n,r)}return v6(e,[{key:"init",value:function(n){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.services=n,this.options=sc(sc(sc({},x6()),this.options||{}),i),this.allOptions=s,this.services&&this.options.reloadInterval){var o=setInterval(function(){return r.reload()},this.options.reloadInterval);Ki(o)==="object"&&typeof o.unref=="function"&&o.unref()}}},{key:"readMulti",value:function(n,r,i){this._readAny(n,n,r,r,i)}},{key:"read",value:function(n,r,i){this._readAny([n],n,[r],r,i)}},{key:"_readAny",value:function(n,r,i,s,o){var a=this,l=this.options.loadPath;typeof this.options.loadPath=="function"&&(l=this.options.loadPath(n,i)),l=a6(l),l.then(function(u){if(!u)return o(null,{});var c=a.services.interpolator.interpolate(u,{lng:n.join("+"),ns:i.join("+")});a.loadUrl(c,o,r,s)})}},{key:"loadUrl",value:function(n,r,i,s){var o=this,a=typeof i=="string"?[i]:i,l=typeof s=="string"?[s]:s,u=this.options.parseLoadPayload(a,l);this.options.request(this.options,n,u,function(c,d){if(d&&(d.status>=500&&d.status<600||!d.status))return r("failed loading "+n+"; status code: "+d.status,!0);if(d&&d.status>=400&&d.status<500)return r("failed loading "+n+"; status code: "+d.status,!1);if(!d&&c&&c.message){var f=c.message.toLowerCase(),m=["failed","fetch","network","load"].find(function(x){return f.indexOf(x)>-1});if(m)return r("failed loading "+n+": "+c.message,!0)}if(c)return r(c,!1);var p,v;try{typeof d.data=="string"?p=o.options.parse(d.data,i,s):p=d.data}catch{v="failed parsing "+n+" to json"}if(v)return r(v,!1);r(null,p)})}},{key:"create",value:function(n,r,i,s,o){var a=this;if(this.options.addPath){typeof n=="string"&&(n=[n]);var l=this.options.parsePayload(r,i,s),u=0,c=[],d=[];n.forEach(function(f){var m=a.options.addPath;typeof a.options.addPath=="function"&&(m=a.options.addPath(f,r));var p=a.services.interpolator.interpolate(m,{lng:f,ns:r});a.options.request(a.options,p,l,function(v,x){u+=1,c.push(v),d.push(x),u===n.length&&typeof o=="function"&&o(c,d)})})}}},{key:"reload",value:function(){var n=this,r=this.services,i=r.backendConnector,s=r.languageUtils,o=r.logger,a=i.language;if(!(a&&a.toLowerCase()==="cimode")){var l=[],u=function(d){var f=s.toResolveHierarchy(d);f.forEach(function(m){l.indexOf(m)<0&&l.push(m)})};u(a),this.allOptions.preload&&this.allOptions.preload.forEach(function(c){return u(c)}),l.forEach(function(c){n.allOptions.ns.forEach(function(d){i.read(c,d,"read",null,null,function(f,m){f&&o.warn("loading namespace ".concat(d," for language ").concat(c," failed"),f),!f&&m&&o.log("loaded namespace ".concat(d," for language ").concat(c),m),i.loaded("".concat(c,"|").concat(d),f,m)})})})}}}])}();lb.type="backend";qe.use(lb).use(nb).use(vE).init({debug:!1,fallbackLng:"en",ns:["common"],defaultNS:"common",supportedLngs:["en","zh","fr","ja","hi","de","ko","zh-TW","it","pt","tr","ru"],interpolation:{escapeValue:!1},backend:{loadPath:"/locales/{{lng}}/{{ns}}.json"},detection:{order:["cookie","localStorage","navigator","htmlTag","path","subdomain"],caches:["cookie","localStorage"],lookupCookie:"i18next",lookupLocalStorage:"i18nextLng"}});ac.createRoot(document.getElementById("root")).render(h.jsx(oc.StrictMode,{children:h.jsx(oc.Suspense,{fallback:"loading...",children:h.jsx(v$,{})})})); diff --git a/frontend/build/client/assets/main-D8baTJqc.css b/frontend/build/client/assets/main-D8baTJqc.css deleted file mode 100644 index 1a2c6df..0000000 --- a/frontend/build/client/assets/main-D8baTJqc.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.-mb-1{margin-bottom:-.25rem}.-mr-1{margin-right:-.25rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.mb-\[1px\]{margin-bottom:1px}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.h-1{height:.25rem}.h-20{height:5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-\[32px\]{height:32px}.h-\[488px\]{height:488px}.h-\[60vh\]{height:60vh}.h-\[65px\]{height:65px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[80vh\]{max-height:80vh}.min-h-0{min-height:0px}.min-h-24{min-height:6rem}.min-h-screen{min-height:100vh}.w-3{width:.75rem}.w-4{width:1rem}.w-40{width:10rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-\[85px\]{width:85px}.w-full{width:100%}.w-screen{width:100vw}.max-w-4xl{max-width:56rem}.max-w-\[1400px\]{max-width:1400px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-left{transform-origin:left}.scale-\[1\.2\]{--tw-scale-x: 1.2;--tw-scale-y: 1.2;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-cyan-50\/20{border-color:#ecfeff33}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-700\/50{border-color:#37415180}.border-neutral-300{--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-yellow-600\/50{border-color:#ca8a0480}.border-zinc-600{--tw-border-opacity: 1;border-color:rgb(82 82 91 / var(--tw-border-opacity))}.border-zinc-700{--tw-border-opacity: 1;border-color:rgb(63 63 70 / var(--tw-border-opacity))}.bg-\[\#1f2023\]{--tw-bg-opacity: 1;background-color:rgb(31 32 35 / var(--tw-bg-opacity))}.bg-\[\#ffffffd6\]{background-color:#ffffffd6}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.bg-cyan-600{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-50\/5{background-color:#f9fafb0d}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-neutral-100{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-800\/95{background-color:#262626f2}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-white\/95{background-color:#fffffff2}.bg-yellow-900\/30{background-color:#713f124d}.bg-zinc-600{--tw-bg-opacity: 1;background-color:rgb(82 82 91 / var(--tw-bg-opacity))}.bg-zinc-700{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity))}.bg-zinc-800{--tw-bg-opacity: 1;background-color:rgb(39 39 42 / var(--tw-bg-opacity))}.bg-opacity-10{--tw-bg-opacity: .1}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pr-4{padding-right:1rem}.pt-16{padding-top:4rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-none{line-height:1}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.text-cyan-500{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-50{--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-yellow-200{--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity))}.text-yellow-300\/80{color:#fde047cc}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity))}.text-zinc-100{--tw-text-opacity: 1;color:rgb(244 244 245 / var(--tw-text-opacity))}.text-zinc-200{--tw-text-opacity: 1;color:rgb(228 228 231 / var(--tw-text-opacity))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity))}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500{transition-duration:.5s}*::-webkit-scrollbar{width:0px;height:10px}*::-webkit-scrollbar-thumb{background:#bec3ca00;border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:#96969686}.grids{background-image:linear-gradient(0deg,rgba(122,122,122,.05) 1px,transparent 0),linear-gradient(90deg,rgba(122,122,122,.05) 1px,transparent 0);background-position:50%;background-size:24px 24px}.cool-btn{--btn-default-bg: rgb(41, 41, 41);--btn-padding: 15px 20px;--btn-hover-bg: rgb(51, 51, 51);--btn-transition: .3s;--btn-letter-spacing: .1rem;--btn-animation-duration: 1.2s;--btn-shadow-color: rgba(0, 0, 0, .137);--btn-shadow: 0 2px 10px 0 var(--btn-shadow-color);--hover-btn-color: #0a9ec4;--default-btn-color: #fff;--font-size: 18px;--font-weight: 800;--font-family: Menlo, Roboto Mono, monospace}.cool-btn{box-sizing:border-box;padding:var(--btn-padding);padding-left:0;display:flex;align-items:center;justify-content:center;color:var(--default-btn-color);font:var(--font-weight) var(--font-size);border:none;cursor:pointer;transition:var(--btn-transition);overflow:hidden}.cool-btn span{letter-spacing:var(--btn-letter-spacing);transition:var(--btn-transition);box-sizing:border-box;position:relative;background:inherit}.cool-btn span:before{box-sizing:border-box;position:absolute;content:"";background:inherit}.cool-btn:hover span,.cool-btn:focus span{color:var(--hover-btn-color)}.cool-btn:hover span:before,.cool-btn:focus span:before{animation:chitchat linear both var(--btn-animation-duration)}@keyframes chitchat{0%{content:"#"}5%{content:"."}10%{content:"^{"}15%{content:"-!"}20%{content:"#$_"}25%{content:"№:0"}30%{content:"#{+."}35%{content:"@}-?"}40%{content:"?{4@%"}45%{content:"=.,^!"}50%{content:"?2@%"}55%{content:";1}]"}60%{content:"?{%:%";right:0}65%{content:"|{f[4";right:0}70%{content:"{4%0%";right:0}75%{content:"'1_0<";right:0}80%{content:"{0%";right:0}85%{content:"]>'";right:0}90%{content:"4";right:0}95%{content:"2";right:0}to{content:"";right:0}}.loader{scale:3;height:50px;width:40px}.box{position:relative;opacity:0;left:10px}.side-left{position:absolute;background-color:#0891b2;width:19px;height:5px;transform:skew(0,-25deg);top:14px;left:10px}.side-right{position:absolute;background-color:#0b9fc4;width:19px;height:5px;transform:skew(0,25deg);top:14px;left:-9px}.side-top{position:absolute;background-color:#19b6dd;width:20px;height:20px;rotate:45deg;transform:skew(-20deg,-20deg)}.box-1{animation:from-left 4s infinite}.box-2{animation:from-right 4s infinite;animation-delay:1s}.box-3{animation:from-left 4s infinite;animation-delay:2s}.box-4{animation:from-right 4s infinite;animation-delay:3s}@keyframes from-left{0%{z-index:20;opacity:0;translate:-20px -6px}20%{z-index:10;opacity:1;translate:0px 0px}40%{z-index:9;translate:0px 4px}60%{z-index:8;translate:0px 8px}80%{z-index:7;opacity:1;translate:0px 12px}to{z-index:5;translate:0px 30px;opacity:0}}@keyframes from-right{0%{z-index:20;opacity:0;translate:20px -6px}20%{z-index:10;opacity:1;translate:0px 0px}40%{z-index:9;translate:0px 4px}60%{z-index:8;translate:0px 8px}80%{z-index:7;opacity:1;translate:0px 12px}to{z-index:5;translate:0px 30px;opacity:0}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:right-1:before{content:var(--tw-content);right:.25rem}.before\:top-1:before{content:var(--tw-content);top:.25rem}.before\:z-10:before{content:var(--tw-content);z-index:10}.before\:h-12:before{content:var(--tw-content);height:3rem}.before\:w-12:before{content:var(--tw-content);width:3rem}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-violet-500:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(139 92 246 / var(--tw-bg-opacity))}.before\:blur-lg:before{content:var(--tw-content);--tw-blur: blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.before\:duration-500:before{content:var(--tw-content);transition-duration:.5s}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:right-8:after{content:var(--tw-content);right:2rem}.after\:top-3:after{content:var(--tw-content);top:.75rem}.after\:z-10:after{content:var(--tw-content);z-index:10}.after\:h-20:after{content:var(--tw-content);height:5rem}.after\:w-20:after{content:var(--tw-content);width:5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:bg-rose-300:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(253 164 175 / var(--tw-bg-opacity))}.after\:blur-lg:after{content:var(--tw-content);--tw-blur: blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.after\:duration-500:after{content:var(--tw-content);transition-duration:.5s}.after\:content-\[\'_↗\'\]:after{--tw-content: " ↗";content:var(--tw-content)}.after\:content-\[\'↗\'\]:after{--tw-content: "↗";content:var(--tw-content)}.hover\:border-cyan-400\/30:hover{border-color:#22d3ee4d}.hover\:border-cyan-600:hover{--tw-border-opacity: 1;border-color:rgb(8 145 178 / var(--tw-border-opacity))}.hover\:bg-cyan-700:hover{--tw-bg-opacity: 1;background-color:rgb(14 116 144 / var(--tw-bg-opacity))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.hover\:bg-zinc-700:hover{--tw-bg-opacity: 1;background-color:rgb(63 63 70 / var(--tw-bg-opacity))}.hover\:text-cyan-300:hover{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.hover\:text-cyan-400:hover{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:decoration-2:hover{text-decoration-thickness:2px}.hover\:opacity-50:hover{opacity:.5}.hover\:opacity-90:hover{opacity:.9}.hover\:duration-500:hover{transition-duration:.5s}.hover\:before\:-bottom-8:hover:before{content:var(--tw-content);bottom:-2rem}.hover\:before\:right-12:hover:before{content:var(--tw-content);right:3rem}.hover\:before\:blur:hover:before{content:var(--tw-content);--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:before\:\[box-shadow\:_20px_20px_20px_30px_\#a21caf\]:hover:before{content:var(--tw-content);box-shadow:20px 20px 20px 30px #a21caf}.hover\:after\:-right-8:hover:after{content:var(--tw-content);right:-2rem}.focus\:border-cyan-500:focus{--tw-border-opacity: 1;border-color:rgb(6 182 212 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-cyan-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-600:disabled{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.disabled\:bg-zinc-500:disabled{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity))}.disabled\:text-gray-500:disabled{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:text-cyan-500{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity))}.group:hover .group-hover\:before\:duration-500:before{content:var(--tw-content);transition-duration:.5s}.group:hover .group-hover\:after\:duration-500:after{content:var(--tw-content);transition-duration:.5s}.group:active .group-active\:-rotate-12{--tw-rotate: -12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:active .group-active\:rotate-12{--tw-rotate: 12deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:border-neutral-900[data-state=checked]{--tw-border-opacity: 1;border-color:rgb(23 23 23 / var(--tw-border-opacity))}.data-\[state\=checked\]\:bg-neutral-600[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.data-\[state\=checked\]\:text-neutral-100[data-state=checked]{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:ml-4{margin-left:1rem}.sm\:ml-auto{margin-left:auto}.sm\:mt-0{margin-top:0}.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:border-l{border-left-width:1px}.sm\:border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.sm\:pl-4{padding-left:1rem}}@media (min-width: 768px){.md\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.md\:ml-8{margin-left:2rem}.md\:block{display:block}.md\:inline{display:inline}.md\:w-1\/2{width:50%}.md\:w-\[350px\]{width:350px}.md\:max-w-3xl{max-width:48rem}.md\:max-w-\[350px\]{max-width:350px}.md\:flex-row{flex-direction:row}.md\:rounded-2xl{border-radius:1rem}.md\:border{border-width:1px}.md\:border-cyan-50\/20{border-color:#ecfeff33}.md\:border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-base{font-size:1rem;line-height:1.5rem}}@media (prefers-color-scheme: dark){.dark\:border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.dark\:bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.dark\:data-\[state\=checked\]\:border-neutral-300[data-state=checked]{--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity))}.dark\:data-\[state\=checked\]\:bg-neutral-300[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(212 212 212 / var(--tw-bg-opacity))}}.\[\&_iframe\]\:\!w-full iframe{width:100%!important} diff --git a/frontend/build/client/index.html b/frontend/build/client/index.html index 9e529f7..f16674a 100644 --- a/frontend/build/client/index.html +++ b/frontend/build/client/index.html @@ -5,8 +5,8 @@ VMAIL - Virtual Temporary Email - - + +